Files
mnote/design/01-tree-first-graph-kernel/done/1-13-batch-f-p1-p2-active-tail-checklist-v1.md
T
lix-2026 1882db7681 收口 MNote P0 P1 P2 审查尾项
- 归档 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 .
2026-06-01 09:29:12 +08:00

7.2 KiB
Raw Blame History

1-13 [process] Batch F P1/P2 活跃尾项执行 checklist v1

创建时间:2026-05-21

当前状态:DONE

上位入口:design/01-tree-first-graph-kernel/process/1-8-mvp-post-process-execution-order-v1.md

阶段:Batch F / P1-P2 真实活跃尾项收口

1. 目标

本批次只处理 1-8 中仍有明确未完成项、且可以互不冲突并行推进的三类尾项:

  1. 3-13 GFM AST 迁移尾项:表格/不支持结构降级策略、web_shell.rs legacy marks 适配分支去留判定、process 状态收口。
  2. 3-3 tree realtime live cache:复核当前 3000 主界面 page subtree / filetree / preferred snapshot 是否已经统一到 WS push + SSE fallback live cache,可归档则补证据归档,不能则列最小缺口。
  3. 1-6 Gap A7 / 1-5 command context:复核 ai.canWrite 是否已经进入 Hermes / AI 写入守卫;如未接入,补最小守卫和测试。

本批次不扩 Wolai 对标、不做 Phase C Review Mode、不恢复 Convex 正文主存储、不重开旧 Next / BlockNote 默认路径。

2. 已完成追认

  • 4-38 resource lifecycle / open target 原始 checklist 已归档;后续 4-39 / 4-40 / 4-41 / 4-44 / 4-45 已覆盖其未完成项。
  • 5-26 resource open resolver 已归档,正文附件与 FileTree open target 已不再作为 Batch B/C 尾项。
  • 1-12 Batch E 中 BufferStore conflict UI 与 FileTree CommandContext 接入已完成;仅保留本批次对 AI 写入守卫的补齐。
  • 3-13 GFM AST 迁移尾项已由 Codex 本地复核并归档到 design/03-rust-web/done/Worker A 超时,结果不采纳。
  • 1-6 Gap A7 AI 写入守卫已接入 args.commandContextai.canWrite / workspace.readonly,并补共享守卫测试;Codex 复核后补齐 mnote.artifact.*mnote.mindmap.apply_ops 两个旧守卫漏口。

3. Reasonix Worker 拆分

Worker AGFM AST 降级策略与 process 收口

Owner

  • design/03-rust-web/done/3-13-rust-web-local-markdown-gfm-ast-parser-migration-v1.md
  • rust/crates/mnote-web/src/routes/local_folder_source.rs
  • rust/crates/mnote-web/src/routes/local_markdown_parser.rs
  • rust/crates/mnote-web/src/routes/web_shell.rs

目标:

  • 补齐或追认 3-13 中“列对齐 / 空单元格 / 带 mark 单元格 / 不支持结构降级策略”的测试证据。
  • 审查 web_shell.rslegacyStylesToTiptapMarks 等 legacy marks 适配分支是否仍被当前 bootstrap 使用。不能安全移除时,将其状态改为“保留兼容层并有退出条件”,不要强行删除。
  • 3-13 只剩保留兼容层的合理说明且测试通过,则把 3-13 从 process 迁移到 design/03-rust-web/done/

验收:

  • cargo test -p mnote-web local_markdown -- --test-threads=1
  • cargo test -p mnote-web web_shell -- --test-threads=1
  • git diff --check

Worker BTree realtime live cache 可归档性复核

Owner

  • design/03-rust-web/process/3-3-rust-web-tree-realtime-event-stream-v1.md
  • design/03-rust-web/reference/3-1-rust-web-long-term-checklist-v2.md
  • 只读审查:rust/crates/mnote-web/src/routes/ws.rsrust/crates/mnote-web/src/routes/tree_events.rsrust/crates/mnote-web/src/ssr/pages/layout.rs、相关 tree live smoke。

目标:

  • 复核 3-3 的三个未完成判断:sidebar、page subtree、filetree 是否仍未统一 live cacheWS 是否仍只算骨架;preferred snapshot 补偿链是否仍是阻塞。
  • 对照当前 smoketask432task446task447task448task449task165task123 等,判断 3-3 是否可移动到 done。
  • 如果可以归档,只更新文档并移动到 design/03-rust-web/done/;如果不能,写明最小剩余缺口和建议新增 smoke,不改 runtime 代码。

验收:

  • 至少运行语法检查:相关 smoke 的 node --check
  • 如当前 3000 服务可用,优先实跑 1-2 个代表性 smoke;若环境不具备,必须在文档中说明阻塞。
  • git diff --check

Worker CAI 写入 CommandContext 守卫

Owner

  • design/01-tree-first-graph-kernel/done/1-6-next-phase-gap-closure-checklist-v1.md
  • design/01-tree-first-graph-kernel/reference/1-5-next-phase-sequential-execution-checklist-v1.md
  • rust/crates/core-protocol/src/command.rs
  • rust/crates/mnote-web/src/hermes_tools/doc.rs
  • rust/crates/mnote-web/src/hermes_tools/page.rs
  • 相关 Hermes / AI 写入单测

目标:

  • 复核 CommandContext.ai.canWrite 是否已被 AI / Hermes 写入路径消费。
  • 若未消费,补最小写入守卫:只读 workspace 或无写权限时,Hermes 写正文/页面命令应返回明确拒绝,不进入文件写入。
  • 补针对性单测,避免只停留在 core-protocol evaluator 层。
  • 更新 1-6 / 1-5 对应状态。

验收:

  • cargo test -p core-protocol command_context -- --test-threads=1
  • cargo test -p mnote-web hermes_tools -- --test-threads=1
  • 如 hermes_tools 过滤过大,可运行新增测试名的 targeted cargo test。
  • git diff --check

4. Codex 复核项

  • 读取每个 worker 的结果文件与 diff,不凭文字结论直接验收。
  • 对 Worker A 运行 cargo test -p mnote-web local_markdown -- --test-threads=1cargo test -p mnote-web web_shell -- --test-threads=1
  • 对 Worker B 至少复跑 node --check,并按可用环境实跑代表性 live cache smoke。
  • 对 Worker C 运行 cargo test -p core-protocol command_context -- --test-threads=1 与相关 Hermes targeted tests。
  • 更新 1-81-123-133-31-6 的状态,不保留互相矛盾的 process 口径。
  • 提交前运行 git diff --checkcodegraph sync .codegraph status .

5. 本轮执行记录

  • 2026-05-21Codex 新建 Batch F checklist,准备并行派发 Worker A/B/C。
  • 2026-05-21Worker A 长时间未生成 final.md / result.jsonCodex 终止并记录 .codex/reasonix-tasks/results/batch-f-worker-a-gfm-archive-timeout.md
  • 2026-05-21Worker B 输出串线到 Worker C 方向,不能作为 3-3 归档证据;记录 .codex/reasonix-tasks/results/batch-f-worker-b-tree-live-cache-misrouted.md。Codex 已复跑 task123/task432/task446/task447/task448/task449node --check
  • 2026-05-21Codex 本地复核 3-13,确认 colspan 降级、table marks、alignment、web shell legacy marks 兼容层均有证据,已移动到 design/03-rust-web/done/
  • 2026-05-21Codex 整理 Worker C 半截补丁,新增 ToolCallInput::command_context_bridgeensure_write_authorized,让 Hermes 写入工具消费 ai.canWrite / workspace.readonly
  • 2026-05-21Codex 复核发现 artifact.rsresource.rs 仍保留旧写入守卫,已改为委托 ensure_write_authorized。验证:cargo test --manifest-path rust/Cargo.toml -p core-protocol command_context -- --test-threads=1 7 passedcargo test --manifest-path rust/Cargo.toml -p mnote-web hermes_tools -- --test-threads=1 64 passedcargo test --manifest-path rust/Cargo.toml -p mnote-web ensure_write_authorized -- --test-threads=1 2 passed。
  • 2026-05-21Batch H 已完成 3-3 live cache 归档与 1-5 command context 状态收口;task487 / task471 / task476 已在当前 3000 环境复跑通过,1-8 Batch D 状态已更新。