4.5 KiB
4.5 KiB
1-11 [done] Batch D P1 小尾项执行 checklist v1
创建时间:2026-05-21
当前状态:
DONE目标:把 P1 阶段剩余的两个最小尾项拆成可独立执行的小批次,避免继续在大而散的 process 文档中发散:
- 资源打开 resolver 收敛
- 本地 Markdown 页面标题优先级收口
上位依据:
/mnt/Data1T/mnote/design/01-tree-first-graph-kernel/process/1-8-mvp-post-process-execution-order-v1.md/mnt/Data1T/mnote/design/05-editor-mainline/process/5-26-resource-open-resolver-convergence-checklist-v1.md/mnt/Data1T/mnote/design/03-rust-web/process/3-13-rust-web-local-markdown-gfm-ast-parser-migration-v1.md/mnt/Data1T/mnote/design/01-tree-first-graph-kernel/process/1-6-next-phase-gap-closure-checklist-v1.md
1. 执行顺序
先跑资源打开收敛,再跑 Markdown 标题优先级。
- 资源打开收敛影响面更窄,且可通过现有 smoke 快速确认。
- Markdown 标题优先级属于读侧口径收口,改动点更集中,但会影响 page tree / aggregate 的标题展示,因此单独成批。
不要把这两个尾项和 open editors、filetree action、BufferStore conflict UI、AI 主线混在同一轮 worker 中。
2. Batch D1:资源打开 resolver 收敛
2.1 目标
继续对照 Sidex editor input resolver,把正文附件、FileTree asset、new-window、active-tab 的资源打开策略收敛到更一致的 helper 和断言。
2.2 允许修改范围
rust/crates/mnote-web/src/ssr/pages/layout.rsscripts/task463-onlyoffice-resolver-smoke.jsdesign/05-editor-mainline/process/5-26-resource-open-resolver-convergence-checklist-v1.md
2.3 禁止事项
- 不修改
rust/crates/mnote-web/src/routes/web_shell.rs - 不修改
rust/crates/mnote-web/src/routes/onlyoffice.rs - 不修改 ACP / Hermes 相关文件
- 不破坏文件树 edit-mode active tab 已验证行为
- 不把
md/text/code改成 OnlyOffice 默认打开
2.4 Checklist
- 审查
buildLocalOnlyOfficeOpenUrl、openEditorAttachmentEditTab、openConvexAssetFromFileTree与正文附件 open path 的重复判断。 - 提炼最小 helper,优先减少正文附件与 FileTree 的分歧。
- 保持正文附件
弹窗编辑进入 main resource tab。 - 保持正文附件
新窗口编辑进入浏览器新窗口。 - 保持
md/text/code继续走 tiptap / 内建编辑器。 - 更新或补充 smoke 断言,覆盖正文附件编辑模式分流。
2.5 验收
cargo test -p mnote-web sidebar_tree_runtime_opens_office_assets_through_resource_shell -- --test-threads=1node scripts/task463-onlyoffice-resolver-smoke.js
2.6 完成条件
这一批完成后,可以把 5-26 中对应重复判断项打勾,并保留剩余未完成项在原文。
3. Batch D2:Markdown 标题优先级收口
3.1 目标
把本地 Markdown 页面标题口径收口为:
frontmatter title > 第一条 H1 > 文件名
当前 parse_markdown_page 仍只按文件名生成标题,需要补齐前两级优先级,但不能破坏 mnote_id / path-id 相关行为。
3.2 允许修改范围
rust/crates/mnote-web/src/routes/local_markdown_parser.rsrust/crates/mnote-web/src/routes/local_folder_source.rs
3.3 禁止事项
- 不改 resource lifecycle / trash / open resolver 行为
- 不改 Page Aggregate 的 identity 规则
- 不引入新的大解析层或额外 adapter
- 不把标题优先级改回前端补丁
3.4 Checklist
- 为
parse_markdown_page增加 frontmatter title 优先级。 - 若 frontmatter 没有 title,则回退到正文第一条 H1。
- 若都没有,再回退到文件名 stem。
- 保持 page_id / document_id / path-id 规则不变。
- 更新现有标题相关测试,避免继续断言“标题只取文件名”。
- 补一个最小回归测试,覆盖 frontmatter / H1 / 文件名三层优先级。
3.5 验收
cargo test -p mnote-web local_markdown -- --test-threads=1
3.6 完成条件
这一批完成后,可以把 3-13 中标题相关尾项打勾,并继续保留其余 GFM AST 迁移尾项为 process。
4. 本轮执行记录
- 2026-05-21:已将 P1 剩余尾项拆为
Batch D1(资源打开 resolver 收敛)与Batch D2(Markdown 标题优先级收口)。 - 2026-05-21:这两个批次都保持最小 scope,不与 open editors、BufferStore conflict UI、AI 主线混跑。
- 2026-05-21:两项都已完成并经 Rust 单测、task474 / task463 浏览器 smoke 与 CodeGraph 同步复核,现归档到
done/。