docs: update commander supervision references

This commit is contained in:
Codex
2026-05-22 17:01:40 +00:00
parent 77b577a2cc
commit 5f091c0b63
3 changed files with 39 additions and 1 deletions
+27 -1
View File
@@ -1,6 +1,8 @@
# Host Codex Commander Skeleton
本文定义 host Codex 指挥官的本地 skeleton 阶段。当前只提供 `/health``/api/commander/contract``.state/commander/` 状态读写、trace summary dry-run 聚合和 approval draft preview;不接 live bridge,不发送 ClaudeQQ,不接管人工指挥官。
本文定义 host Codex 指挥官的本地 skeleton 阶段。仓库内正式 `commander` CLI 当前只提供 `/health``/api/commander/contract``.state/commander/` 状态读写、trace summary dry-run 聚合和 approval draft preview;不接 live bridge,不发送 ClaudeQQ,不接管人工指挥官。
当前允许存在一个 operator-run 的高鲁棒 stdio 保活形态,用于在人工授权下让 host Codex 持续承担指挥官工作。该形态不是仓库内正式 daemon,也不替代 skeleton contract;它应被视为过渡运行方式,后续产品化仍必须回到本文件的 contract、state、approval 和安全边界。
## 边界
@@ -20,6 +22,30 @@ bun scripts/cli.ts commander approval request --action <action> --dry-run [--rea
`plan``smoke``approval request` 必须显式使用 `--dry-run`,缺失时返回 `error=dry-run-required`
## Operator-Run Stdio Loop
当前高鲁棒指挥官循环脚本固定放在 `/root/.unidesk/commander_loop.py`,工作目录使用 `/root/unidesk/`。它通过 `codex app-server --listen stdio://` 直连 Codex app-server JSON-RPC,而不是反复启动普通交互式 CLI;外层必须有持续循环和异常保护,fatal error 后自动重启,避免单次 stdio、网络或 app-server 错误让指挥官长期停止。
指挥 prompt 固定放在 `/root/.unidesk/commander_prompt.md`。脚本启动时读取该文件;运行中检测到 prompt 文件变化时,优先通过 `turn/steer` 注入当前 active turn。如果 steer 失败,脚本应记录失败、interrupt 当前 turn 并回到外层循环重启;不能静默忽略 prompt 变更。默认可以尝试 resume 指定 commander threadresume 失败时必须降级为新 thread 继续运行。
前台输出应保持低噪声、单行化和可读:只显示时间、总运行时间、message、tool command start/completed/failed、stderr 和关键状态;完整 app-server JSON-RPC 事件不应直接刷屏。前台输出只是监督界面,分析和追责以 JSONL 文件日志为准。
完整日志必须写入 `/root/unidesk/logs/commander.log.<启动时间戳>.jsonl`,其中启动时间戳精确到秒,例如 `commander.log.YYYYMMDD_HHMMSS.jsonl`。后续分析时先用以下命令定位当前或最近一次运行日志:
```bash
ls -t /root/unidesk/logs/commander.log.*.jsonl | head -n 1
```
日志中应保留完整 JSON-RPC 事件和脚本派生事件,重点关注:
- `thread/resume/requested``thread/resumed``thread/start/requested`:确认是否复用了预期 thread。
- `turn/started`:确认当前 active turn。
- `prompt/loaded``prompt/changed``prompt/steered``prompt/steer_failed`:确认外部 prompt 是否真实注入。
- `item/completed` 中的 `agentMessage``commandExecution`:复盘 commander 说了什么、派了什么命令以及命令结果。
- `stderr`:定位 Codex core、stdio bridge 或工具路由错误。
该运行形态可以用于指挥 Code Queue、审阅任务、创建/更新 issue、PR 收口和必要的热修复例外,但不得被解释为普通 worker。涉及实现、测试和 PR 创建的常规工作仍应优先通过 Code Queue 派单;host commander 直接执行只适用于授权的 PR 收口、基础设施热修复或 runner 权限缺口,并且必须留下复盘和长期改进 issue。
## Dev 验证计划
`commander smoke --dry-run` 是无 daemon smoke contract。它只输出验证计划,不启动 HTTP daemon、不打开 SSH/PTY/stdio bridge、不发送 ClaudeQQ、不重启服务、不 interrupt/cancel 任务、不部署、不跑全量 check/e2e。