115 lines
7.2 KiB
Markdown
115 lines
7.2 KiB
Markdown
# 1-13 [process] Batch F P1/P2 活跃尾项执行 checklist v1
|
||||
|
|
|
|||
|
|
> 创建时间:2026-05-21
|
|||
|
|
>
|
|||
|
|
> 当前状态:`PROCESS`
|
|||
|
|
>
|
|||
|
|
> 上位入口:`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 A:GFM 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 B:Tree realtime live cache 可归档性复核
|
|||
|
|
|
|||
|
|
Owner:
|
|||
|
|
|
|||
|
|
- `design/03-rust-web/process/3-3-rust-web-tree-realtime-event-stream-v1.md`
|
|||
|
|
- `design/03-rust-web/process/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 cache;WS 是否仍只算骨架;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 C:AI 写入 CommandContext 守卫
|
|||
|
|
|
|||
|
|
Owner:
|
|||
|
|
|
|||
|
|
- `design/01-tree-first-graph-kernel/process/1-6-next-phase-gap-closure-checklist-v1.md`
|
|||
|
|
- `design/01-tree-first-graph-kernel/process/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-21:Codex 新建 Batch F checklist,准备并行派发 Worker A/B/C。
|
|||
|
|
- 2026-05-21:Worker A 长时间未生成 `final.md` / `result.json`,Codex 终止并记录 `.codex/reasonix-tasks/results/batch-f-worker-a-gfm-archive-timeout.md`。
|
|||
|
|
- 2026-05-21:Worker 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-21:Codex 本地复核 `3-13`,确认 colspan 降级、table marks、alignment、web shell legacy marks 兼容层均有证据,已移动到 `design/03-rust-web/done/`。
|
|||
|
|
- 2026-05-21:Codex 整理 Worker C 半截补丁,新增 `ToolCallInput::command_context_bridge` 与 `ensure_write_authorized`,让 Hermes 写入工具消费 `ai.canWrite` / `workspace.readonly`。
|
|||
|
|
- 2026-05-21:Codex 复核发现 `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-21:Batch H 已完成 `3-3` live cache 归档与 `1-5` command context 状态收口;`task487` / `task471` / `task476` 已在当前 3000 环境复跑通过,`1-8` Batch D 状态已更新。
|