chore: initial commit (sources + docs, ignore build artifacts and secrets)

This commit is contained in:
toot
2026-09-16 12:24:49 +08:00
commit 8a6c55d94a
124 changed files with 12168 additions and 0 deletions
@@ -0,0 +1,28 @@
# 09:单 Agent 任务闭环
## 本阶段目标
接收来自已认证总控的单条文本任务,在本地持久化任务运行状态,并回传接收、运行和完成事件。
## 已实现范围
1. 本地 SQLite 新增 `task_runs` 与 `task_events`,以 `task_id` 作为幂等键记录任务生命周期。
2. `ControllerSession` 只处理总控下发的 `task_dispatch`;无效任务载荷会被拒绝。
3. `TaskExecutor` 对重复 `task_id` 返回已有状态,不会重复执行。
4. 当前执行器是受限的内置演示执行器:仅生成文本结果,不运行模型、插件、Shell、浏览器、文件或桌面控制。
5. 各阶段事件通过已配对的 WSS 会话回传;短暂断线时,内存中的待发送事件会在下一次认证连接后发送。
6. 托盘菜单的状态文字会显示最近一次任务阶段。
7. 总控的单独指派与按行 `@` 批量指派沿用同一条文本任务协议;子 Agent 只接收自己的独立任务文本,不保存跨任务上下文,也不会接收附件或远程终端协议。
## 本阶段刻意限制
- 待发送事件尚未实现跨进程持久化;本地任务记录已保存,后续会补充重启恢复与事件重放。
- 不接收附件、不执行工具、不接入模型供应商,因此不会要求或保存任何模型 API 密钥。
- 取消、超时、资源限制和任务工作目录将进入后续任务运行时阶段。
## 验收步骤
1. 完成与总控的安全配对,Agent 进入托盘并保持在线。
2. 从总控下发一个文本任务。
3. 确认托盘状态依次变为 `accepted`、`running`、`completed`。
4. 在总控任务记录中确认结果到达;重复下发同一 `task_id` 时不应重复执行。