- add npm dev:hot wrapper using cargo-watch and page reload polling - add mnote-web dev hot reload endpoint and coverage - record current architecture review and tracked bug findings across realtime, tree, editor, and AI runtimes Verification: - node scripts/task-dev-hot-plan-test.js - node --check scripts/dev-hot.js - cargo test -p mnote-web dev_hot -- --nocapture
1.5 KiB
1.5 KiB
7-22 [process][bug] mnote.doc.apply_block_ops 批量写入缺少 revision / conflictDetectionKey 校验 v1
发现时间:2026-05-17
状态:
[process]关联主线:
07-ai
1. 问题定义
mnote.doc.apply_block_ops 的批量入口只校验 dryRun / idempotency 写入合同,没有调用页面 revision、conflictDetectionKey、blockRevisionRef 的写前校验。
同文件中已有 ensure_page_write_preconditions,但该批量入口没有使用它。
2. 证据
- block.rs 定义
doc_apply_block_ops。 - block.rs 仅调用
ensure_write_contract。 - block.rs 存在
ensure_page_write_preconditions,但批量入口未调用。
3. 影响
- AI 可能基于旧
PageAggregate对正文写入,覆盖用户新编辑。 - 多轮 Hermes / ACP run 同时写入时缺少冲突保护。
markdown_edit在线分支会转调apply_block_ops,因此该缺陷会影响 markdown 主路径。
4. 建议修复
doc_apply_block_ops真实写入前必须校验 page revision 与 conflictDetectionKey。- 块级操作应支持并校验 blockRevisionRef 或等价版本字段。
- 增加负向测试:缺少 revision / conflictDetectionKey 时真实写入必须拒绝。
5. 状态
已确认批量写入入口缺少必要冲突校验,尚未修复。