- 归档 OnlyOffice live bridge、Page AI、mindmap、design governance 与相关 bug 条目 - 补齐 MinerU OCR 后端 runtime 合同与 smoke/test 基线 - 收口 ChatOnly/Doubao、ObjectIdentity、Page Aggregate compat 与 runtime owner 文档口径 验证: - cargo test --manifest-path rust/Cargo.toml -p mnote-web local_ocr -- --test-threads=1 - cargo test --manifest-path rust/Cargo.toml -p mnote-web onlyoffice_bridge -- --test-threads=1 - git diff --check - git diff --cached --check - codegraph index . --force && codegraph status . - codegraph sync . && codegraph status .
23 KiB
1-8 [process] MVP 后阶段 process 执行总序 v1
创建时间:2026-05-21
当前状态:
PROCESS2026-05-22 归档治理补充:当前 active
process/只保留可直接执行的少量收口稿;长期架构、愿景、参考矩阵、Wolai 对标基线、Mindmap 总设计、旧 AI 块级执行稿和 Convex Web 迁移入口已分别移动到reference/、done/或old/。本文是后续调度入口,不代表下列所有历史入口仍在process/。2026-05-31 口径复核:当前主线仍以
CURRENT_ARCHITECTURE.md、ARCHITECTURE.md与本文件为准;历史design/01-05-current-priority-overview.md已迁入design/old/01-05-current-priority-overview.md,不再作为 active 调度入口。3-3、3-18等已归档文档只保留为完成证据,后续 live / local-folder runtime 收口默认看3-23、5-32与相关 bug。2026-06-01 P0/P1/P2 复核:P0 阻塞项已由
4-44/4-45/4-34/4-28归档证据覆盖,不再作为实现阻塞;5-30与5-33已归档到05-editor-mainline/done/,导航页 breadcrumb / fetch guard 尾项拆到5-35;7-35/7-36已降级为协作参考,不再占用产品 process 队列。当前 active 产品 process 重点收敛为3-23、3-25、5-35、7-18、7-43及对应 bugs/process。目标:把本轮 design governance 后剩余的主线
process/文档排成可执行顺序,避免后续 worker 在 active process 中自行猜优先级。上位依据:
/mnt/Data1T/mnote/ARCHITECTURE.md/mnt/Data1T/mnote/CURRENT_ARCHITECTURE.md/mnt/Data1T/mnote/design/README.md/mnt/Data1T/mnote/design/10-review/done/15-design-governance-mvp-post-review-v1.md/mnt/Data1T/mnote/design/10-review/done/18-current-design-and-bug-hunt-review-v1.md
1. 一句话顺序
后续执行顺序固定为:
先补阻塞验证和工作区身份底座,再收 Page Aggregate / BufferStore / live cache / command context,随后补资源打开与文件树 action,最后扩 AI、mindmap、Wolai 对标和远期分享同步。
不要从 process/ 中按编号顺序机械执行。编号只代表历史产生顺序,不代表当前优先级。
2. 状态分类
2.1 Active Process
代表仍需继续推进的执行或架构收口文档。
判定规则:
- 有未完成 checklist。
- 或者是当前主线架构入口,仍会指导后续实现。
- 或者有明确阻塞项、smoke 缺口、compat 瘦身缺口。
2.2 Reference
放在对应大类的 reference/,不是当前直接执行 checklist。
典型文档:
- 参考实现采用矩阵。
- Wolai / 思源 / Sidex / Hermes 对照证据。
- P3 / future 候选合同。
- 已拆成执行 checklist 的 review 原始证据。
处理规则:
- 不迁入
done/,因为不是“当前代码已完成”的实现文档。 - 不保留在
process/,避免干扰后续执行队列。 - 不当作当前 sprint 的任务源。
- 需要转实施时,新建更小的执行 checklist。
2.3 Done / Old
- 已完成且有真实代码、测试、smoke 或明确验收证据:移动到同域
done/。 - 已被覆盖且口径过时但未完成:移动到
design/old/<domain>/process/并标[recycle]。 - 本轮已完成一批
done/归档,详见15-design-governance-mvp-post-review-v1.md。
3. P0:先清阻塞和验证红灯
这一步先处理“会干扰后续判断”的验证缺口,不扩新产品面。
P0.1 FileTree action / open editors smoke 前置
入口文档:
design/04-tree-domain/done/4-45-filetree-open-editors-lifecycle-link-checklist-v1.mddesign/04-tree-domain/done/4-44-filetree-action-layer-paste-drop-delete-v1.md
执行目标:
- 修复或明确
task430-vscode-explorer-stage7-smoke.js/task471-local-folder-bulk-resource-trash-smoke.js的 workspace bootstrap 前置条件。 - 把 4-44 中未通过的 browser smoke 跑绿,或把环境阻塞写成可复现 bug。
- 补 open editor / filetree active row / lifecycle 状态断言。
验收:
node --check scripts/task430-vscode-explorer-stage7-smoke.jsnode --check scripts/task471-local-folder-bulk-resource-trash-smoke.js- 对应 smoke 实跑通过,或形成
bugs/04-tree-domain/process/中明确 bug。
归档条件:
4-45四项 checklist 完成后归档到04-tree-domain/done/。4-44browser smoke 全绿后归档到04-tree-domain/done/。
2026-06-01 状态:本项已由 4-44 / 4-45 done 文档和 task471 / task476 / task487 复跑证据覆盖,不再作为 P0 阻塞项。
P0.2 local folder no-refresh / restore focus
入口文档:
design/04-tree-domain/done/4-34-filetree-trash-dual-browser-no-refresh-v1.mddesign/04-tree-domain/done/4-28-trash-restore-location-reveal-focus-v1.md
执行目标:
- 补 local folder 非 md 资源 trash / restore / purge 的双浏览器 no-refresh 证据。
- 补 restore 后 DOM focus / reveal 的浏览器证据。
验收:
- 新增或复用 task436 等价 smoke,证明 B 浏览器不刷新能看到 local folder 资源生命周期变化。
- restore location / reveal / focus smoke 截图和 JSON 证据落盘。
归档条件:
- local folder 子项通过后,
4-34归档。 - React / Rust 主壳 focus 证据完成后,
4-28归档。
2026-06-01 状态:本项已由 4-34 / 4-28 done 文档和后续 tree/filetree lifecycle smoke 证据覆盖,不再作为 P0 阻塞项。
4. P1:统一工作区身份、BufferStore 和 Page Aggregate
这一步是 MVP 后阶段真正的底座收口。
P1.1 WorkspacePath / ObjectIdentity
入口文档:
design/01-tree-first-graph-kernel/reference/1-4-next-phase-execution-roadmap-v1.mddesign/01-tree-first-graph-kernel/reference/1-5-next-phase-sequential-execution-checklist-v1.mddesign/01-tree-first-graph-kernel/done/1-6-next-phase-gap-closure-checklist-v1.mddesign/05-editor-mainline/done/5-26-resource-open-resolver-convergence-checklist-v1.md
执行目标:
- 统一 page
.md、raw local file、directory、asset folder、mindmap、office 的 canonical identity。 - 让 FileTree open target、主编辑器 tab、Open Editors snapshot 和 URL active state 消费同一套 identity。
- 解决
5-26中“正文附件 open resolver 与 FileTree open resolver 收敛”未闭环问题。
验收:
cargo test -p mnote-web filetree_runtime -- --test-threads=1cargo test -p mnote-web web_shell -- --test-threads=1- 覆盖 markdown / office / mindmap / raw file / directory 的 browser smoke。
- 2026-06-01 进展:已补
scripts/task524-workspace-object-identity-matrix-smoke.js,覆盖 page.md、directory、raw text、mindmap、OnlyOffice 在 FileTree rowworkspacePath、OpenEditorsSnapshot entry、URLresourceTab、active tab identity 之间的对齐;验证命令MNOTE_UI_BASE_URL=http://127.0.0.1:3301 node scripts/task524-workspace-object-identity-matrix-smoke.js已通过。P1.1 的 identity 浏览器矩阵缺口已收口,后续只保留与1-5 / 1-6历史 checklist 对账。
归档条件:
5-26checklist 完成后归档。1-5 / 1-6中对应 identity 缺口完成打勾。
P1.2 DocumentBuffer / BufferStore
入口文档:
design/01-tree-first-graph-kernel/reference/1-5-next-phase-sequential-execution-checklist-v1.mddesign/01-tree-first-graph-kernel/done/1-6-next-phase-gap-closure-checklist-v1.mddesign/05-editor-mainline/done/5-6-page-aggregate-alignment-checklist-v1.md
执行目标:
- 让 tiptap、resource tab、watcher、agent 写入和冲突 UI 共用打开态与文件版本仲裁。
- 避免 dirty editor、资源 tab、文件树点击分别维护状态。
- 把已有 BufferStore 基础设施接到更多真实 runtime 消费点。
验收:
cargo test -p mnote-web document_buffer -- --test-threads=1cargo test -p mnote-web local_folder -- --test-threads=1- 外部修改、dirty buffer、agent writeback、tab 切换 smoke 全部可解释。
归档条件:
1-6中 BufferStore 运行时接入、浏览器读回、冲突 UI 相关项完成。
2026-06-01 状态:历史 BufferStore 读回 / conflict UI 已由 1-6 与 Batch C 证据覆盖;真实 agent writeback -> watcher -> BufferStore -> Page Aggregate -> tiptap 的端到端回收仍归入 design/07-ai/process/7-18-local-first-agent-file-editing-control-plane-v1.md Phase B,不再作为本文模糊 P1.2 阻塞。
P1.3 Page Aggregate compat 瘦身
入口文档:
design/05-editor-mainline/done/5-6-page-aggregate-alignment-checklist-v1.mddesign/05-editor-mainline/reference/5-5-page-aggregate-single-truth-alignment-v1.mddesign/03-rust-web/done/3-13-rust-web-local-markdown-gfm-ast-parser-migration-v1.md
执行目标:
- 收敛
body.content/ compat join / 临时转换分支。 - 补 GFM AST parser 写侧尾项:web shell 单测、手写 parser 过渡标记、临时适配分支清理。
- 明确
PageAggregateClientState哪些仍是合法 draft state,哪些应退出事实源地位。
2026-06-01 收口口径:body.blockDocument / editorDocument 是 local-first 浏览器主消费面;PageBody.content 在 mnote.page_aggregate.v1 中继续保留为必填兼容镜像 / fallback,不作为 active editor 初始化优先事实源。body.content 改可选或删除必须进入 v2 协议升级或独立迁移 checklist,不能在 v1 兼容期直接删除。
验收:
cargo test -p mnote-web local_markdown -- --test-threads=1cargo test -p mnote-web web_shell -- --test-threads=1- Page Aggregate body/options/title smoke 不回退。
归档条件:
3-13已完成 GFM AST 迁移尾项并归档到design/03-rust-web/done/;web_shell.rslegacy marks 分支改判为兼容层保留,不再作为迁移阻塞项。5-6剩余 Phase G/H 小尾项完成或拆成更小 checklist 后归档;bugs/05-editor-mainline/done/5-41-page-aggregate-compat-slimming-gaps-v1.md已明确PageBody.content的 v1/v2 边界。
5. P2:tree live cache 与 command context
P2.1 Tree realtime live cache
入口文档:
design/03-rust-web/done/3-3-rust-web-tree-realtime-event-stream-v1.mddesign/03-rust-web/reference/3-1-rust-web-long-term-checklist-v2.mddesign/03-rust-web/process/3-23-sidebar-local-folder-resource-runtime-followup-v1.mddesign/05-editor-mainline/done/5-32-filetree-lazy-loading-sidex-alignment-v1.md
执行目标:
- 把 local-folder watcher、projection refresh、WS/SSE snapshot/delta/resync 收进同一 live cache。
- 减少 polling、手动 refresh 和双路径补偿。
- 明确 Convex realtime 只服务 cloud / sync replica,不回到 local-first 默认真相层。
验收:
- tree create / rename / move / archive / restore / purge 双浏览器 smoke。
- local folder watcher 修改
.md、resource、directory 后主壳不整页刷新。
归档条件:
3-3已归档为 tree realtime event stream 完成证据;剩余 live cache / refresh 收口不得重新打开旧3-3,应拆入3-23、5-32或明确的bugs/process。
P2.2 Local folder tree live consumer 收口
入口文档:
design/03-rust-web/done/3-18-local-folder-tree-live-consumer-convergence-checklist-v1.md
执行状态:
- 2026-05-21:已完成后端 SSE 形状、前端 tree live controller 接入与 browser smoke 复核;
task487已在新编译的 3000 进程上通过,data-mnote-tree-live-transport=local-folder-events、data-mnote-tree-live-status=connected,外部创建 / 删除后data-mnote-tree-live-applied=resync。 - 2026-05-21:completion hook 口径已补进 Reasonix runner / skill;后续派发无需再靠短轮询等待结果。
3-18已归档到design/03-rust-web/done/,local_folder tree live consumer 收口不再是1-8的阻塞项。
验收:
node scripts/task487-local-folder-tree-live-consumer-smoke.js- 真实浏览器里确认 local_folder 不再依赖
local-folder-static作为默认主链。
归档条件:
3-18已完成并归档,且 smoke / Rust targeted tests 已通过。
P2.2 Command context / context key
入口文档:
design/01-tree-first-graph-kernel/reference/1-5-next-phase-sequential-execution-checklist-v1.mddesign/04-tree-domain/done/4-44-filetree-action-layer-paste-drop-delete-v1.md
执行目标:
- 菜单、快捷键、按钮、AI 写入能力共享 enablement 判断。
- 让 readonly、dirty、permission、resource kind、open target 统一成为 context key。
- 降低 filetree / editor / AI 各自硬编码能力判断的概率。
验收:
- Rust 或 JS 单测覆盖 context key
when判断。 - 文件树右键、主编辑器附件菜单、快捷键的 disabled/hidden 行为一致。
归档条件:
4-44action layer smoke 全绿。1-5command context 对应项完成。
6. P3:AI 主线继续收口
P3.1 online markdown final content truth
入口文档:
design/07-ai/done/7-27-online-markdown-writeback-final-content-truth-v2.mddesign/07-ai/process/7-18-local-first-agent-file-editing-control-plane-v1.md
执行目标:
- 将
7-27限定为历史 online / compat 回归证据,不再把mnote.doc.markdown_edit推回 active 设计。 - 以
7-18为当前 AI 编辑执行入口:MNote 只提供文件定位、授权边界、selection/context、审计和前台同步。 - Hermes / Reasonix 用自身文件 read / write / patch / diff 能力在 allowed roots 内修改
.md。 - 先实现 Agent Target Resolver / target chip / target picker,解决多工作区、多 tab、多资源时到底把哪个对象发送给 agent 的问题。
验收:
- Page AI composer 可见 target chip,能展示 workspace、target title、resourceKind、scope、dirty / readonly 状态。
- target picker 能在当前焦点、打开 tabs、树选中项之间选择;默认 target 来自 last focused editor / resource tab。
- local-first agent 编辑 smoke 断言不调用
mnote.doc.markdown_edit。 - Hermes / Reasonix run body 包含
currentFile、allowedRoots、allowedFiles、selection 和 dirty / readonly context。 - Hermes / Reasonix run body 包含
targetPackage,且切 tab 后不影响已冻结 run target。 - agent 写入后 watcher -> BufferStore -> Page Aggregate -> ProseMirror 可见更新。
- dirty buffer 下 agent 写入不会静默覆盖。
归档条件:
7-27的 6 步实施计划已完成并归档;后续只保留revisionRef注释可见性、复杂 GFM fallback、多余退役函数体清理等增强项,不阻塞 Batch E。7-18Phase A0/A/B/C 完成后归档到design/07-ai/done/。
P3.2 ACP runtime 后续步骤
入口文档:
design/07-ai/done/7-15-page-ai-acp-agent-runtime-unified-layer-v1.mddesign/07-ai/reference/7-12-page-ai-hermes-tool-routing-and-review-surface-v1.mddesign/07-ai/done/7-34-acp-runtime-cleanup-availability-stability-tail-v1.md
执行目标:
- 继续拆
7-15step 8 之后:Reasonix wrapper、前端 runtime selector、存量迁移、旧 HTTP proxy 兼容隔离。 - 给
7-12的 manifest / review surface / state event 仍未完成项拆新 checklist。 - Phase C / Review Mode 仍冻结,不在未解冻前实现流式 apply。
验收:
- ACP Hermes 与 ACP Reasonix 均能真实回复。
- session load、permission、tool location、plan UI 不回退。
归档条件:
7-15后续步骤拆成并完成具体 checklist 后再归档。7-12Phase B-F 完成或冻结项移出后再归档。
7. P4:mindmap、Wolai 对标和参考流程
P4.1 Mindmap 尾项
入口文档:
design/06-mindmap/reference/6-mindmap-kernel-phase6-projection-editor-v1.mddesign/06-mindmap/done/6-mindmap-phase6-leptos-ui-shell-reuse-checklist-v1.mddesign/06-mindmap/reference/6-mindmap-leptos-adapter-reference-notes-v1.md
执行目标:
- 明确 simplemindmap 当前产品化边界。
- 给 KMind visual parity 设置可退出标准,避免无限尾项。
- 后续 AI 操作 mindmap 时以 Resource Tree 对象能力为入口,不塞入 Markdown 正文真相。
验收:
- mindmap open / save / filetree active / resource tab smoke 继续通过。
- KMind parity 未完成项要么完成,要么明确降级为参考。
P4.2 Wolai-aline 持续项
入口文档:
design/05-editor-mainline/reference/5-9-wolai-aline-continuous-checklist-v1.mddesign/08-wolai-aline-test-flow/reference/wolai-aline-test-flow-v1.mddesign/05-editor-mainline/reference/5-7-wolai-page-tree-main-editor-experience-restoration-v1.md
执行目标:
- 清理
5-9中已被5-6覆盖但仍显示 TODO 的 Page Aggregate 项。 - 对 A4 字体 token、E18 paste/clipboard 等仍有价值项补 smoke 或降级。
- 所有 Wolai 对标任务继续按
wolai-alineskill 和08流程执行。
归档条件:
5-9剩余项全部完成或降级后归档。
8. P5:远期 / 候选 / 参考
这些文档不进入当前直接执行序列,只有当产品优先级明确时再拆 checklist:
design/old/03-rust-web/process/3-17-convex-export-web-entry-v1.md- CLI 已有迁移闭环;Web 管理入口在当前 Convex 默认退役后已降级为历史设想,不作为 active 或 reference 执行入口。
design/04-tree-domain/reference/4-23-local-cloud-explicit-bridge-p3-candidate-v1.md- P3 候选,不能进入 local-first 默认主链。
design/07-ai/reference/7-17-acp-session-convex-sharing-contract-v1.md- Future sharing contract。
design/07-ai/reference/7-28-resource-ai-tool-contract-v1.md- mindmap / office Resource AI tool 草案。
design/09-siyuan-reference/reference/9-siyuan-reference-boundary-and-adoption-v1.md- 参考边界,不是实施入口。
design/10-review/reference/12-*、13-*、14-*- 原始 review 证据;执行项已拆出或归档。
9. 推荐执行批次
Batch A:清验证阻塞
4-454-444-344-28
完成后预期:tree/filetree action 和 trash/no-refresh 的判断不再被 smoke 红灯干扰。
Batch B:身份与打开态
5-261-5identity 子项1-6BufferStore / conflict browser 子项
完成后预期:页面、资源、tab、filetree active、open editors 可围绕同一 identity 和 buffer state 工作。
Batch C:Page Aggregate / local markdown 写侧
3-135-61-5Page Aggregate 子项
完成后预期:正文真相、runtime projection、compat join 的边界更薄。
当前批次状态:
3-13的空引用块、空表格单元格、legacy marks、web_shell 过渡注释已由 Batch C 追认。1-6的 A2 浏览器可见读回、conflict UI、C1 export smoke 已由 Batch C / 本轮复核完成。5-26已归档到design/05-editor-mainline/done/,Resource Open Resolver / 主编辑器资源 tab / FileTree open target 的收口证据不再作为 Batch B/C 尾项。4-38已归档到design/04-tree-domain/done/,其 resource lifecycle / open target 原始未完成项已由4-39/4-40/4-41/4-44/4-45覆盖。3-13已由 Batch F 归档;表格 colspan 降级、table marks、alignment、保存失败状态保留和 web shell legacy marks 兼容层均已有证据。1-6A7 的ai.canWrite写入守卫已由 Batch F 接入 hermes_tools;后续新增 AI 写入口必须透传同一份commandContext。task451与task486已在当前 3000 主进程上复测通过,不再作为本轮尾项。
Batch D:live cache / command context
3-3(已由 Batch H 归档到design/03-rust-web/done/)1-5command context 子项(已由 Batch H 更新 Phase A7 状态)4-44(已在design/04-tree-domain/done/,task471/task476均已复跑通过)
完成后预期:树域实时与 enablement 判断更统一。
当前批次状态:
3-3已由 Batch H 归档,3-14WS push、3-18local folder tree live consumer 和task487已覆盖旧 9.2 未完成项。1-5Phase A7 已追认CommandContext/whenevaluator、FileTree 右键菜单、Delete/Backspace、ai.canWrite写入守卫的完成证据;editor/object tab 更完整 context 仍作为后续扩展,不阻塞本轮 Batch D 收口。task487、task471、task476已在当前 3000 环境复跑通过。
Batch E:AI 与资源工具
7-187-27(已归档到design/07-ai/done/,只作为历史 online / compat 回归证据)7-15后续拆分(下一批拆7-34)7-12Phase B-F 拆分(下一批拆7-34)7-28仅在 mindmap / office AI 明确排期后进入
完成后预期:local-first AI 主路径稳定,普通 Markdown 编辑不再依赖 MNote 专用编辑工具。
当前批次状态:
7-27已由 Batch I 复核归档;mnote.doc.markdown_edit在线写回以最终 markdown 为真源,markdown_edit相关 targeted tests 与 manifest write contract 测试已通过。7-18已成为当前 active AI 编辑控制面稿;后续实现不再保留mnote.doc.markdown_edit作为 local-first 默认、fallback 或 remote fallback。7-29已完成 Worker A/B/C 审查,结论是7-15Step 15-17 与7-12Phase B/F 不应继续压在一个大文档里推进。7-34已完成并归档到design/07-ai/done/:旧 HTTP proxy 默认关闭、page_ai_workflow受共享 tool executor 守卫保护;profile disabled list 三处同源;capabilityScope中心校验已完成;ACP abort API 改为 best-effort cancellation 并主动推送run.aborted;task488已在当前 3000 真实通过,覆盖 3 个 Reasonix ACP session、并发 run、abort 与 SSE terminal event。cache benchmark 仍是 P2 度量;Phase C Review Mode 继续冻结。
Batch F:体验对标与远期
6-mindmap-*5-93-174-237-17
完成后预期:产品体验和分享同步进入产品化,而不是继续扩底层 compat。
10. 每轮执行的固定流程
每次从本文选一个 batch 后,按以下流程推进:
- 先读本文和对应入口文档。
- 对该 batch 新建或更新一个小 checklist,不直接修改大而旧的全景文档。
- 如果有 2 个以上互不冲突方向,按 Reasonix parallel flow 拆 worker。
- worker 只改其 ownership 范围,不提交 git。
- Codex 复核 diff、跑 targeted tests / browser smoke。
- 完成后:
- 更新 checklist 状态和证据。
- 能归档的移动到
done/。 - 被覆盖但未完成的移入
old/并标[recycle]。 - 更新本文对应 batch 状态。
- 运行
codegraph sync .。
Reasonix 执行说明:Reasonix 编码任务默认使用 30 分钟超时;完成后应通过 completion hook 主动回传结果,不再依赖短轮询等待。
11. 不做事项
- 不按文件编号顺序清空 process。
- 不把
reference/下的资料当作当前实现任务。 - 不因为文档老就移动到
done/;必须有真实完成证据。 - 不把 Phase C / Review Mode / cloud sync / sharing future 合同提前实现。
- 不恢复旧 Next / BlockNote / Convex 默认主存储口径。