Files
mnote/.codex/reasonix-tasks/hermes-acp-session-info-plan-ui.md
T

55 lines
2.2 KiB
Markdown
Raw Normal View History

2026-05-21 05:40:06 +08:00
# Reasonix 任务:ACP session info / plan UI
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-33-acp-session-info-plan-ui-checklist-v1.md`
当前 `AcpSessionManager` 已解析 `SessionInfoUpdate``PlanUpdate`,但 `acp_bridge.rs` 丢弃它们。
## Ownership
允许直接修改:
- `rust/crates/mnote-web/src/acp_bridge.rs`
- `rust/crates/mnote-web/src/routes/hermes_client.rs`
- `rust/crates/mnote-web/src/ssr/pages/layout.rs` 中 session info / plan event 处理的小范围代码
- 相关 Rust 测试
- `design/07-ai/process/7-33-acp-session-info-plan-ui-checklist-v1.md` 的执行记录
注意:`layout.rs` 可能被其他 worker 改动。请只做 event handling 和轻量 UI,不重排 Page AI drawer。
## 目标
`session_info_update``plan` 通过 SSE 转到 Page AI UI。session info 用于更新当前会话标题;plan 用轻量系统/状态消息展示,不写入页面正文。
## 具体要求
1. `AcpSessionEvent::SessionInfoUpdate` 转成 `session.info.updated` SSE。
2. `AcpSessionEvent::PlanUpdate` 转成 `plan.updated` SSE。
3. 前端收到 session info 后更新当前 session title,并持久化当前 session list。
4. 前端收到 plan 后渲染轻量 plan 状态,不能作为普通 assistant 正文。
5. 如果可低风险实现,解析 tool output 中 todo JSON 并复用 plan 区域展示;若风险高,可只写 TODO 到 checklist 执行记录。
6. 补 bridge 单测和 `SIDEBAR_TREE_JS` 字符串断言。
## 验收命令
请至少运行:
```bash
cd /mnt/Data1T/mnote/rust && cargo test -p mnote-web acp_bridge -- --test-threads=1
cd /mnt/Data1T/mnote/rust && cargo test -p mnote-web page_ai_uses_backend_acp_session_runtime_store -- --test-threads=1
```
## 最终回复格式
- 修改文件列表
- 关键实现说明
- 实际运行的验证命令和结果
- 未完成项 / 风险