# Batch C Worker B:GFM AST 尾项小包 项目根目录:`/mnt/Data1T/mnote` 你不是单独在代码库里工作,可能有其他 worker 并行执行。不要回滚、覆盖或格式化与你任务无关的文件;不要提交 git。 ## 背景 `design/03-rust-web/process/3-13-rust-web-local-markdown-gfm-ast-parser-migration-v1.md` 仍有尾项: - 空段落 / 空表格单元格 / 空引用块处理规则未固定。 - legacy block -> Tiptap -> legacy marks 缺测试。 - 保存失败前端状态保留缺测试。 - 写侧手写 Markdown 函数未标记为过渡实现。 - `web_shell.rs` legacy JS 适配分支仍无过渡说明。 本次只做低风险小包,不修复 frontmatter title 优先级。 ## 目标 1. 补一个或多个 Rust 单测,固定空表格单元格 / 空引用块等当前行为。 2. 补 web_shell 相关测试或断言,证明 legacy->Tiptap inline marks 转换至少不会丢核心 marks。 3. 给写侧手写 Markdown 回写函数和 web_shell legacy 适配分支加简短中文过渡注释。 4. 更新 `3-13` 执行记录和 checklist 状态。 ## 允许修改范围 - `rust/crates/mnote-web/src/routes/local_folder_source.rs` - `rust/crates/mnote-web/src/routes/web_shell.rs` - `design/03-rust-web/process/3-13-rust-web-local-markdown-gfm-ast-parser-migration-v1.md` - 可新增 `.codex/reasonix-tasks/results/batch-c-worker-b-gfm-tail.md` 禁止事项: - 不修改 frontmatter title > H1 > 文件名行为。 - 不删除 legacy 适配函数。 - 不改 Page Aggregate 读取主链。 ## 验收命令 ```bash cargo test --manifest-path rust/Cargo.toml -p mnote-web local_markdown -- --test-threads=1 cargo test --manifest-path rust/Cargo.toml -p mnote-web web_shell -- --test-threads=1 ``` ## 输出要求 最终写入 `.codex/reasonix-tasks/results/batch-c-worker-b-gfm-tail.md`,包含: - 修改文件列表。 - 关闭/追认了哪些 `3-13` 尾项。 - 验证命令和结果。 - 未完成项和风险。