feat: 计划模式 + 后续消息 + 会话分支接云端 (#65)
- 计划模式:tasks 加 plan 列;plan 与 approval=full / goal 冲突时
400;执行器在 approval 参数后追加 --sandbox read-only(本地
dispatch/run/goal/popen 与 Docker 内层命令全覆盖),host 任务
存下 sandbox 后续轮次自动继承只读。
- 后续消息:新表 task_followups;POST/GET /tasks/{id}/followups
(仅 queued/running 的非 goal 任务;direct 立即往链路追加
phase=followup-direct 条目,本轮跑完后优先于排队执行;排队
按 direct 优先、队内先来先服务逐条再跑一轮,同一 thread;
一条失败即停、剩余 pending 留给重试入口;取消时回 pending)。
- 会话分支:POST /tasks/{id}/fork(仅终态任务;继承 executor/
模型/强度/权限/计划,goal 字段置空);worker 先 fork 再跑首轮,
首轮失败不自动重试、不重复分叉,失败后走重试入口重跑首轮。
- 修任务级模型被覆盖:worker 此前无条件写成主模型,控制台
选的模型实际不生效;现为任务级 > worker 主模型 > 配置。
- Docker 租户准备抽成 _docker_task_context,供普通尝试与 fork 共用。
- console:新建任务计划勾选(含冲突拦截)、详情计划徽标与
分支来源、分支按钮与表单、后续消息区、列表 [计划]/[分支] 标记。
- 测试:cloud/tests/test_task_links.py 17 个(server 校验与继承、
worker 模型优先、只读命令、排空顺序与停排、goal 不排空、
fork 单次性);全量 cloud 542、host 49、deploy 14。
Co-authored-by: host <host@test.local>
This commit is contained in:
1 parent
6da3745127
commit
f4443dca4f
7 files changed
+1120
-74
No files matched your search
@@ -239,6 +239,15 @@ python3 host.py daemon-stop
|
||||
`GET /tasks/{id}/trace/stream`(运行中任务的 SSE:先 snapshot 再逐条
|
||||
entry,终态发 done 关流;命令台详情的链路区用 fetch 流式读它,
|
||||
EventSource 不能带 X-API-Key 头故不用)。
|
||||
新业务链路:建任务可带 `plan`(计划模式:只读沙箱,执行器传
|
||||
`--sandbox read-only`;不能与 `approval=full` 或 goal 同用);
|
||||
`POST /tasks/{id}/followups`(body/mode,mode 为 queued 或
|
||||
direct;仅 queued/running 的非 goal 任务可接)与
|
||||
`GET /tasks/{id}/followups`(按创建时间排序)——排队不打断当前
|
||||
轮、跑完按序再跑一轮,直接发送立即进链路(phase=followup-direct)
|
||||
且跑完当前轮后优先于排队执行;`POST /tasks/{id}/fork`
|
||||
(message 必填;仅终态任务可分支,继承 executor/模型/强度/
|
||||
权限/计划,goal 字段置空,首轮失败不自动重试、不重复分叉)。
|
||||
|
||||
## GitHub PR/CI 的外部条件(真实 PR 仍缺这两样)
|
||||
|
||||
|
||||
Reference in new issue
Block a user