feat(ai): session persist + continue HTTP/UI, checkpoints, queue

落地 docs/16 P1:会话落盘与真续跑(prior tool 轨迹)、incomplete「加预算继续」、
awaiting_confirm outcome、同参拒+第4/6轮检查点、侧栏忙时单槽排队。
Ask 真 token 流式记缺口(三协议 SSE 成本高)。
This commit is contained in:
logan committed 2026-10-15 14:18:18 +08:00
1 parent 1513f4bc2d
commit d543f3b924
10 files changed
+783 -104

No files matched your search

+13 -6
View File
@@ -264,12 +264,19 @@ confirm_bind = sha256(connection_id + "\n" + normalize(sql_or_command))
| ✅ | MCP 工具面、Ask\|Agent、SSE、P1 确认写、`run_id` / confirmBind、触顶 incomplete |
| ✅ | 设置 → **MCP** 子页(安装检测、只读/危险 SQL、白名单、多客户端片段) |
| ✅ | 官网 AI/MCP 块 + 文档 `/docs/mcp` |
| ⬜ | 会话落盘 + HTTP 续跑(`/api/ai/sessions`)+ UI「加预算继续」 |
| ⬜ | NeedConfirm 结束 run 为 `awaiting_confirm` outcome(语义对齐) |
| ⬜ | 同参循环拒 / 中段检查点接入主循环 |
| ⬜ | 忙时单槽排队 UI |
| ⬜ | Ask 真 token 流式(非假打字) |
| ✅ | 会话落盘 + HTTP 续跑(`GET/DELETE /api/ai/sessions`、`POST …/continue`)+ UI「加预算继续」 |
| ✅ | NeedConfirm 结束 run 为 `awaiting_confirm` outcome |
| ✅ | 同参循环拒 + 中段检查点(第 4 / 6 轮)接入主循环 |
| ✅ | 忙时单槽排队 UI(覆盖 / 撤销 / 立即 / 结束后自动续发) |
| ⬜ | Ask 真 token 流式(非假打字)— 成本高:需 openai-chat / anthropic / responses 三套 SSE;本轮记缺口,Ask 仍一次性 Complete |
| ⬜ | MCP「断开」结束外部 Cursor 会话(当前仅 UI 提示) |
| ⬜ | 设置页一键 `npm install -g`(现为复制命令;避免桌面代跑需授权) |
*本节随交付勾选;大 UI 续跑优先于 Evolver / 审批流。*
### 10.1 本轮验收要点
- `go test ./internal/ai/ ./internal/aitools/ ./internal/server/`
- Agent 触顶 → `run_outcome=incomplete` + 气泡「加预算继续」→ `continue=true` 注入落盘 prior
- 写工具无确认 → `awaiting_confirm`;确认条仍走 `/api/ai/agent/confirm` + confirmBind
- Agent 忙碌时再发送 → 单槽排队条;结束后自动发或点「立即」
*本节随交付勾选;Ask SSE 与 MCP 杀外部进程后置。*