Files
mnote/.codex/reasonix-tasks/hermes-acp-tool-location-open-action.md
T

56 lines
2.2 KiB
Markdown
Raw Normal View History

2026-05-21 05:40:06 +08:00
# Reasonix 任务:ACP tool locations 与打开动作
Project root: `/mnt/Data1T/mnote`
你不是唯一在代码库中工作的 agent。不要回滚、覆盖或整理与你任务无关的改动;不要提交 git;不要修改 `.gitignore``.codegraph/``auth-console.txt``auth-network.txt`
## 背景
Codex 已写 review`design/10-review/process/13-hermes-vscode-plugin-gap-review-v1.md`
本任务对应 checklist`design/07-ai/process/7-32-acp-tool-location-and-open-action-checklist-v1.md`
参考实现:`reference-code/hermes-vscode-main/src/protocol.ts` 会解析 `tool_call.locations[].path``src/chatPanel.ts` 在 read/edit tool 完成后打开对应 editor。
## Ownership
允许直接修改:
- `rust/crates/mnote-web/src/acp_types.rs`
- `rust/crates/mnote-web/src/acp_session_manager.rs`
- `rust/crates/mnote-web/src/acp_bridge.rs`
- `rust/crates/mnote-web/src/ssr/pages/layout.rs` 中 tool card 展示 / 打开动作小范围代码
- 相关 Rust 测试或必要 smoke
- `design/07-ai/process/7-32-acp-tool-location-and-open-action-checklist-v1.md` 的执行记录
注意:`layout.rs` 可能被其他 worker 改动。请避免大范围重排,只接线 tool locations 展示和 open action。
## 目标
保留 ACP tool `locations[]`,并在 Page AI tool card 中显示和打开。默认打开到 MNote 主编辑器资源 tab / 现有 file open resolver,不默认新浏览器窗口。
## 具体要求
1. `SessionUpdate::ToolCall` 解析 `locations: [{ path }]`
2. `AcpSessionEvent::ToolCall` 携带 locations。
3. `acp_bridge` SSE `tool.started` 包含 locations。
4. 前端 tool card 保存并显示 locations。
5. read/edit tool completed 时提供打开动作;优先复用现有主编辑器资源 tab 或已有 file open 函数。
6. 补测试覆盖 parse + SSE + 前端字符串断言。
## 验收命令
请至少运行:
```bash
cd /mnt/Data1T/mnote/rust && cargo test -p mnote-web acp_tool -- --test-threads=1
cd /mnt/Data1T/mnote/rust && cargo test -p mnote-web page_ai_uses_backend_acp_session_runtime_store -- --test-threads=1
```
## 最终回复格式
- 修改文件列表
- 关键实现说明
- 实际运行的验证命令和结果
- 未完成项 / 风险