feat(ai): 新会话/清屏 + 工作中转圈 + 可编辑单槽排队

对标 opsxshell/aiops 契约 14 与附图 UX:顶栏新会话与清屏;
忙时「工作中 N 秒」;排队卡支持立即/编辑/删除;Ask 亦单槽排队;
run 世代防停止后旧 finally 清 busy。
This commit is contained in:
logan committed 2026-10-15 14:28:57 +08:00
1 parent d543f3b924
commit 9c2b623ce4
4 files changed
+318 -77

No files matched your search

+13 -1
View File
@@ -267,7 +267,19 @@ confirm_bind = sha256(connection_id + "\n" + normalize(sql_or_command))
| ✅ | 会话落盘 + HTTP 续跑(`GET/DELETE /api/ai/sessions`、`POST …/continue`)+ UI「加预算继续」 |
| ✅ | NeedConfirm 结束 run 为 `awaiting_confirm` outcome |
| ✅ | 同参循环拒 + 中段检查点(第 4 / 6 轮)接入主循环 |
| ✅ | 忙时单槽排队 UI(覆盖 / 撤销 / 立即 / 结束后自动续发) |
| ✅ | 忙时单槽排队 UI(覆盖 / 编辑 / 撤销 / 立即 / 工作中计时 / 结束后自动续发;Ask+Agent) |
| ✅ | 新会话 / 清屏(侧栏顶栏;清屏丢 sessionId 防隐式续跑) |
### 侧栏 UX(对标 opsxshell / 附图)
| 控件 | 行为 |
|------|------|
| **新会话** | 停止当前 → 清空消息 / sessionId / 排队 / 输入 |
| **清屏** | 停止当前 → 清空消息与排队(草稿保留);丢掉 sessionId |
| **工作中 N 秒** | `aiBusy` 时列表底转圈计时 |
| **排队卡** | 单槽:`立即`(中断开跑)/ `编辑`(拉回输入)/ `删除`(撤销) |
| **忙时输入** | placeholder「继续输入以排队…」;发送=入队(再提交覆盖) |
| ⬜ | Ask 真 token 流式(非假打字)— 成本高:需 openai-chat / anthropic / responses 三套 SSE;本轮记缺口,Ask 仍一次性 Complete |
| ⬜ | MCP「断开」结束外部 Cursor 会话(当前仅 UI 提示) |
| ⬜ | 设置页一键 `npm install -g`(现为复制命令;避免桌面代跑需授权) |