Files
mnote/bugs/07-ai/done/7-58-mindmap-p2-apply-ops-and-ui-smoke-gap-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

58 lines
3.3 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.
# 7-58 Mindmap P2 apply_ops 与真实 UI smoke 缺口
## 状态
- 状态:done
- Owner07-ai / mindmap resource skill / Page AI target runtime
- 发现时间:2026-06-01
## 现象
Mindmap skill 和资源 target 已有最小闭环:`fetch``create_from_outline``apply_ops` 基础工具、`mnote-mindmap` skill 注册、`task503``task525` smoke 已覆盖 API/target 绑定。但 P2 第二批仍缺 apply_ops 操作白名单文档化、长文本节点策略和真实 UI 交互 smoke。
## 证据
- `rust/crates/mnote-web/src/hermes_tools/resource.rs` 已有 mindmap `fetch/apply_ops/create_from_outline` 入口。
- `scripts/task503-mindmap-skill-capability-smoke.js` 覆盖 skill、create_from_outline、fetch、embed。
- `scripts/task525-page-ai-mindmap-resource-target-smoke.js` 覆盖 mindmap resource tab / Page AI targetPackage。
- 当前缺口未在独立 bugs/process 中跟踪;历史相关 bug `7-48/7-51/7-52` 已作为各自窄问题归档。
## 影响
- agent 可以调用 mindmap 工具,但不清楚 `apply_ops` 的稳定操作白名单和限制。
- 长文本节点可能破坏 mindmap 渲染或 agent 输出可读性。
- 现有 smoke 偏 API/target 合同,未覆盖用户真实 UI 交互,例如节点编辑、拖拽、导出等。
## 下一步
1. 已文档化 `apply_ops` 支持的操作白名单、payload schema、dry-run/revision 规则和失败形态。
2. 已为关键 ops 增加 Rust 单测,覆盖成功、别名、delete、dry-run、revision mismatch、越权/只读拒绝、unsupported op、invalid ops payload、禁止删除 root。
3. 已在 skill prompt 中明确长文本节点压缩策略:短语化、避免长段落,拆成 child nodes。
4. 已用真实 mindmap UI smoke 覆盖打开、插入、渲染、样式抽屉默认状态、slash 菜单层级和 resize 基础交互。
## 验收
- [x] `apply_ops` 白名单与限制写入 design / skill。
- [x] `hermes_tools_mindmap_apply_ops_*` targeted tests 覆盖核心操作。
- [x] 长文本节点策略有测试或明确降级说明。
- [x] 至少一条真实 mindmap UI browser smoke 通过并登记到 `scripts/TESTING_REFERENCE.md`
## 2026-06-01 修复记录
- `skills/mnote-mindmap/SKILL.md` 已新增 `Current apply_ops contract`,明确支持 `updateText/updateNode``insertChild/addChild``deleteNode`,记录 `nodeId/id``text/title``parentId/nodeId` 等 payload schema、未知 op 拒绝、禁止删除 root、长文本短语化/拆子节点、`dryRun` 与 revision checks。
- `rust/crates/mnote-web/src/routes/hermes_tools.rs` 已补齐 apply_ops targeted tests
- `hermes_tools_mindmap_apply_ops_accepts_common_aliases`
- `hermes_tools_mindmap_apply_ops_deletes_child_node`
- `hermes_tools_mindmap_apply_ops_dry_run_returns_diff_without_writing`
- `hermes_tools_mindmap_apply_ops_rejects_invalid_ops_payload`
- `hermes_tools_mindmap_apply_ops_rejects_root_delete`
- `hermes_tools_mindmap_apply_ops_rejects_unsupported_op`
- 已通过:
- `cargo test --manifest-path rust/Cargo.toml -p mnote-web hermes_tools_mindmap_apply_ops -- --test-threads=1`
- `node --check scripts/task455-local-folder-mindmap-clean-smoke.js`
- `MNOTE_WEB_SMOKE_BASE_URL=http://127.0.0.1:3303 node scripts/task455-local-folder-mindmap-clean-smoke.js`
真实 UI smoke 结果:
- `tmp/task455-local-folder-mindmap-clean-smoke/result.json`