feat: expose bot task progress

This commit is contained in:
zenord
2026-08-17 14:37:51 +08:00
parent 91bf4e7a0c
commit 2795567f8c
13 changed files with 321 additions and 54 deletions
+8 -3
View File
@@ -76,16 +76,21 @@ gori-agent list
- 加载当前 Bot skills、计算 fingerprint、生成版本化 bootstrap。
- `src/acp/client.ts`
- ACP initialize/new/resume/load/prompt/cancel 和 permission request。
- 当前 session 的每个 `session/update` 只触发活动回调,不记录或泄露 update 内容。
- `src/acp/worker.ts`
- 直接使用 resolved Bot 的 agent,在 `bot.workspace` 启动。
- 记录 turn 开始/最近活动时间,并区分 `idle`、bootstrap `initializing`、普通 prompt `processing`。
- `src/acp/session-manager.ts`
- 固定 Bot 的 binding、worker pool、恢复、idle sweep、capacity、cancel/reset。
- status 暴露 `phase`、`runningSeconds`、`idleSeconds`。
- `src/core/durable-session-store.ts`
- state v2,保存 bot/platform identity 和 chat binding。
- 单 writer lock、串行持久化、临时文件、fsync、原子 rename。
- `src/core/gateway.ts`
- 入站 allowlist、群 mention、命令、per-chat lock 和回复。
- `/cancel` 必须绕过 chat lock。
- 入站 allowlist、群 mention、命令、per-chat lock、队列状态和回复。
- policy 后 `/status`、`/cancel`、`/help` 必须绕过 chat lock,`/new` 必须保持串行。
- 异步平台普通消息入队即发送中文处理/排队确认;对应 prompt 等确认完成或安全失败后才开始,排队确认不等待前项;确认失败只写安全日志且不阻止任务,同步 webhook 不发送确认。
- QQ 同一入站 `msg_id` 的确认使用 `msg_seq=1`,最终/错误回复使用 `msg_seq=2`;单条命令回复使用 `msg_seq=1`。
- `src/core/command-router.ts`
- `/help`、`/status`、`/cancel`、`/new`;旧 role 命令返回 retired 提示。
- `src/platforms/*`
@@ -199,7 +204,7 @@ Binding 保存 agent ID、workspace、native session ID、Bot fingerprint 和时
首次消息创建 native session,发送隐藏 bootstrap,成功后保存 binding。重启/idle 后优先 resume,再 fallback load。prompt 失败不重放。
`/new` 删除当前 chat binding;下一条消息创建新 session。`/cancel` 不等待 chat lock。
`/new` 在 per-chat lock 内删除当前 chat binding;下一条消息创建新 session。`/status`、`/cancel`、`/help` 不等待 chat lock;status 合并 Gateway running/queued/started 时长与 ACP phase/running/idle 时长。
## 6. 单平台装配