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

115 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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. 已完成追认
- [x] `4-38` resource lifecycle / open target 原始 checklist 已归档;后续 `4-39` / `4-40` / `4-41` / `4-44` / `4-45` 已覆盖其未完成项。
- [x] `5-26` resource open resolver 已归档,正文附件与 FileTree open target 已不再作为 Batch B/C 尾项。
- [x] `1-12` Batch E 中 BufferStore conflict UI 与 FileTree CommandContext 接入已完成;仅保留本批次对 AI 写入守卫的补齐。
- [x] `3-13` GFM AST 迁移尾项已由 Codex 本地复核并归档到 `design/03-rust-web/done/`;Worker A 超时,结果不采纳。
- [x] `1-6` Gap A7 AI 写入守卫已接入 `args.commandContext``ai.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.rs``legacyStylesToTiptapMarks` 等 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.rs``rust/crates/mnote-web/src/routes/tree_events.rs``rust/crates/mnote-web/src/ssr/pages/layout.rs`、相关 tree live smoke。
目标:
- 复核 `3-3` 的三个未完成判断:sidebar、page subtree、filetree 是否仍未统一 live cacheWS 是否仍只算骨架;preferred snapshot 补偿链是否仍是阻塞。
- 对照当前 smoke`task432``task446``task447``task448``task449``task165``task123` 等,判断 `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 复核项
- [x] 读取每个 worker 的结果文件与 diff,不凭文字结论直接验收。
- [x] 对 Worker A 运行 `cargo test -p mnote-web local_markdown -- --test-threads=1``cargo test -p mnote-web web_shell -- --test-threads=1`
- [x] 对 Worker B 至少复跑 `node --check`,并按可用环境实跑代表性 live cache smoke。
- [x] 对 Worker C 运行 `cargo test -p core-protocol command_context -- --test-threads=1` 与相关 Hermes targeted tests。
- [x] 更新 `1-8``1-12``3-13``3-3``1-6` 的状态,不保留互相矛盾的 process 口径。
- [ ] 提交前运行 `git diff --check``codegraph sync .``codegraph status .`
## 5. 本轮执行记录
- 2026-05-21Codex 新建 Batch F checklist,准备并行派发 Worker A/B/C。
- 2026-05-21Worker A 长时间未生成 `final.md` / `result.json`Codex 终止并记录 `.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/task449``node --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_bridge``ensure_write_authorized`,让 Hermes 写入工具消费 `ai.canWrite` / `workspace.readonly`
- 2026-05-21Codex 复核发现 `artifact.rs``resource.rs` 仍保留旧写入守卫,已改为委托 `ensure_write_authorized`。验证:`cargo test --manifest-path rust/Cargo.toml -p core-protocol command_context -- --test-threads=1` 7 passed`cargo test --manifest-path rust/Cargo.toml -p mnote-web hermes_tools -- --test-threads=1` 64 passed`cargo 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 状态已更新。