fix: reconcile batch b smoke evidence

This commit is contained in:
lix-2026
2026-05-21 11:53:31 +08:00
parent 175b69db79
commit a0823a7e53
18 changed files with 1045 additions and 41 deletions
@@ -296,7 +296,7 @@
- [ ] 保证空段落、空表格单元格、空引用块的处理规则固定。
- [x] 统一处理标题优先级:frontmatter title > H1 > 文件名。
- [ ] 统一处理标题优先级:frontmatter title > H1 > 文件名。
### 11.3 中间 IR -> PageAggregate / block document
@@ -354,7 +354,7 @@
- [x] 保存回写时保留表格分隔行和列数对齐。
- [ ] 列对齐、空单元格、带 mark 单元格的降级策略要写入测试。
- [x] 列对齐、空单元格、带 mark 单元格的降级策略要写入测试。
### 11.7 保存回写
@@ -382,7 +382,7 @@
- [x] 确认本地 `.md` 读写 smoke 不影响 file tree / page tree / page aggregate 路由。
### 11.9 清理与迁移收尾11
### 11.9 清理与迁移收尾
- [ ] 把手写 parser 标记为过渡实现。11
@@ -393,3 +393,39 @@
- [x] 保留回归测试和兼容层,不删除验证资产。
- [ ] 迁移完成后把设计稿状态从 `process` 移到 `done`
---
## 12. 审计记录(2026-05-21 Batch B Worker D
### 12.1 已完成确认
以下 [x] 项经代码审查确认实际完成,证据充分:
- 11.1 全部 6 项:comrak 选型完成,GFM 子集确定,frontmatter 处理方式冻结,IR 边界明确,优先级确定,降级策略明确
- 11.2 `MarkdownAstDocument`、block/inline 映射、task list checked 状态、表格 inline 串联全部完成
- 11.3 AST→PageAggregate 映射集中到 `local_markdown_parser.rs`,兼容性验证通过
- 11.4 code/bold/italic/strike/link 解析+回写全部完成,表格内 inline mark 有集成测试
- 11.5 task list 双向转换全部完成,有 round-trip 测试
- 11.7 前端保存路径写回 `.md`、round-trip 可读回、frontmatter 保留均有测试覆盖
- 11.8 本地 md 读写 smoke 不影响 file tree/page tree/page aggregate
### 12.2 追认修正
| 项 | 原标记 | 审计结论 | 说明 |
|---|--------|---------|------|
| 11.2 标题优先级 | [x] | 应改为 **[ ]** | `parse_markdown_page` (`local_markdown_parser.rs:86-94`) 始终使用 `file_stem_title(file_name)`,完全忽略 frontmatter `title` 和正文 H1。`tree.rs:7307` 测试显式断言 frontmatter title 不应出现。**此为误标,需修正。** |
| 11.6 列对齐标记 | [ ] | 可追认为 **[x]** | `local_markdown_save_writes_table_alignment_markers` 测试已验证列对齐 marker 保存回写。 |
### 12.3 仍保留 [ ] 项的状态
| 项 | 状态 | 说明 |
|---|------|------|
| 11.2 空段落/空表格单元格/空引用块 | **[ ] 保留** | 行为由 comrak 默认输出决定,无显式规则文档化。建议补单测固定当前行为即可,P1 不阻塞。 |
| 11.4 legacy→Tiptap→legacy marks | **[ ] 保留** | 缺少反向转换集成测试。`document_shell_bootstrap_preserves_inline_mark_conversion` 仅验证函数存在性。 |
| 11.6 列对齐/空单元格/带 mark 单元格降级策略测试 | **[ ] 部分完成** | 列对齐已有测试(应追认),但空单元格和降级策略仍无覆盖。 |
| 11.7 保存失败状态保留 | **[ ] 保留** | 冲突/写失败返回 WebError,前端错误处理和状态保留逻辑无测试。 |
| 11.8 web shell 单测 | **[ ] 保留** | 缺少实际调用 legacyInlineContentToTiptap 并验证输出 marks 完整性的测试。 |
| 11.9 手写 parser 标记为过渡 | **[ ] 保留** | `local_folder_source.rs``inline_nodes_to_markdown` / `editor_blocks_to_markdown_*` 写侧函数无 `#[deprecated]` 标注。 |
| 11.9 web_shell.rs 临时适配分支移除 | **[ ] 保留** | JS 侧 `legacyStylesToTiptapMarks` 等适配函数仍存在。 |
| 11.9 process→done | **[ ] 保留** | 以上未完成项关闭后方可移动。