chore: 保存当前架构收口与 bug 修复快照

归档本轮 P0/P1 bug 修复、设计审查迁移、AI selection scope 收口与 stream contract 调整,并保留当前 05 主线迁移起点。
This commit is contained in:
lix-2026
2026-05-18 17:01:35 +08:00
parent 61ee4a38a2
commit a2cb1338c8
953 changed files with 14383 additions and 211845 deletions
@@ -19,6 +19,7 @@ pub enum EditorBlockType {
Toc,
PageReference,
BlockReference,
Resource,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
@@ -588,6 +588,18 @@ fn block_to_tiptap_node(
content: Vec::new(),
})
}
EditorBlockType::Resource => Ok(TiptapNode::Paragraph {
attrs: TiptapParagraphAttrs {
block_id: Some(block.block_id.clone()),
text_align: text_align_from_props(&block.props),
mnote_block_type: Some("resource".into()),
mindmap_id: None,
root_node_id: None,
projection_version: None,
extra: block.props.extra.clone(),
},
content,
}),
EditorBlockType::Heading => Ok(TiptapNode::Heading {
attrs: TiptapHeadingAttrs {
level: block.props.heading_level.unwrap_or(1),
@@ -698,6 +710,21 @@ fn node_to_block(
child_block_ids: vec![],
})
}
TiptapNode::Paragraph { attrs, content }
if attrs.mnote_block_type.as_deref() == Some("resource") =>
{
let mut props = props_with_text_align(attrs.text_align.clone());
for (key, value) in &attrs.extra {
props.extra.insert(key.clone(), value.clone());
}
Ok(EditorBlock {
block_id: attrs.block_id.clone().unwrap_or(fallback_block_id),
block_type: EditorBlockType::Resource,
props,
content_nodes: text_nodes_from_tiptap(content)?,
child_block_ids: vec![],
})
}
TiptapNode::Paragraph { attrs, content } => Ok(EditorBlock {
block_id: attrs.block_id.clone().unwrap_or(fallback_block_id),
block_type: EditorBlockType::Paragraph,