Written-by: Codex 这是用户已确认的后端边界收敛设计记录,不代表已实现、已部署或真实任务已验证;暂不自动派发、启动实施或中断现有前端流程。优先盘点并复用现有服务,不建立平行身份、任务、会话或调度系统。区分主仓 main 与交付分支已有能力。 常规技术设计可独立完成,改变既定产品/权限边界才向用户提交具体方案。 ## 关联与定位 复用现有 Harness、worker、资源 lease 和已确认退出机制,细化 #2175/#2177/#2179;与 #2182 状态和 SQLite 事务设计协调。 ## 统一执行服务 提供准备、启动、追加输入、停止、恢复、查询、释放资源等语义能力,实际名称映射现有服务,避免新增同义入口。 - 执行前固定并记录 Project、Task、Attempt、Role 定义版本、逻辑 Session、Harness 和 Resource 绑定。 - Codex、Claude Code 与 FlyBot 原生执行通过适配器接入;适配器声明 resume、追加输入、取消、退出确认等实际能力,不假定跨 Harness 可原样恢复。 - Role 定义修改遵循治理;现有会话保留定义版本,打回时明确变化,不静默替换约定;权限撤销立即限制后续操作。 - 同一可执行 Task 仅一个有效执行权;未确认旧执行退出,不能启动新的写入者。无法确认退出是可见异常,不用超时直接推断安全释放。 - 新进程/Attempt 不等于新 Session;打回或父 Task 续接恢复原 Task-role 上下文,恢复失败不得静默重开。 - 停止、超时、崩溃、撤权、资源不可用分别有状态、原因及恢复/核对路径。 - 外部动作由 Effects 在提交后触发;保留代次、实际 worker、退出证明和回执,不以已派发推断已运行或已完成。 - 活跃资源释放后才允许新执行;历史产物/摘要保留与临时资源回收分开。 ## 设计交付 定义生命周期、服务/适配器接口、能力表、幂等/并发校验、取消与自然退出竞争、资源清理和恢复契约。 保持临时角色执行与持久 Chief 的不同策略,共用受控上下文机制。禁止新增第二套任务执行器或计时器体系。 ## 验收 - 三类 Harness 的适配契约与真实支持范围;真实 Codex 任务作为第一条端到端验证,其他未实测能力明确标记。 - 启动响应丢失、重复启动、旧回调、取消与完成竞争、崩溃/重启、未知退出、撤权等情况下无双授权。 - 打回恢复原 SDK/逻辑会话、追加输入回执、模型压缩/摘要共存;不兼容绑定变化可见。 - 父 Task 等待子 Task 时释放资源,解除阻塞后只形成一次有效恢复执行。 - 不打断既有健康任务;迁移时保留 Task、Attempt、Session、worker 和 lease 历史。 ## 交付要求 - 同步项目长期记忆、架构/子系统文档、接口/配置说明和变更记录。 - 测试标明实际提交、执行项及未覆盖项;区分测试替身通过与真实 SDK/实际任务可用。 - 不改 control-plane,不擅自部署、合并或中断健康执行。后续按依赖拆可审阅实施项。
Activity
zy95-12 commentedon Nov 2, 2026
Written-by: Codex
用户已授权逐条实施,开始 feat/2184-execution-lifecycle,基于 #2183 分支6eeba41fb(对应PR #2203)。当前已定位实际续接缺口:project-harness.js 将 sha(spec.prompt) 作为 backendBindingKey 的 definition 部分,任务反馈/进展导致 prompt 改变便返回新绑定;resumableBinding 对已存在上下文的不兼容 key 直接返回null,形成静默重开。
先以失败回归修复稳定角色定义/动态输入分离及显式恢复失败,再收敛统一执行元数据、能力与停止/释放契约,保留当前 lease/退出证明。角色版本与动态角色治理、原生会话能力会逐项核对,不将SDK替身测试说成真实供应商验证。不部署、不打断现有前端。
zy95-12 commentedon Nov 2, 2026
Written-by: Codex
补充核对并纠正前述触发范围:spec.prompt 是调用方传入的执行说明,当前 preparePoolRole 将反馈/进展放在 session.context,再由 roleExecutionPrompt 组合,不是都放入 spec.prompt。因此不能声称普通反馈必然触发新 Session。新增 worker-process 回归覆盖的是调用提示词变化场景。另一个实际缺口是实际 persona/skills 在 context 内,没有参与旧指纹,无法表达角色定义版本边界。
resumableBinding 对不兼容 key 返回null,以及 findLast(matching key) 可能回到较旧上下文,是已确认的实现行为;新回归已重现。将以稳定角色定义、最新上下文、显式恢复失败及兼容迁移来收敛,不以未经证实的触发原因描述问题。
zy95-12 commentedon Nov 2, 2026
Written-by: Codex
SDK续接基础已提交 Draft PR #2208,commit b4fa8de,全量验证4524/0失败/0跳过。保留最新上下文、角色版本与显式恢复错误,补充真实子进程回归和旧绑定迁移。原生角色续接、在途撤权收敛、父任务/事务/接口整合及新一轮真实Codex验证仍未完成,继续保留本issue和原PR,不按基础阶段关闭。
Authenticate scoped personal-agent connections with existing delegati…
Preserve execution context and verify approved custom Project roles (#…
Expose durable handoff contracts and separate private consultations (#…
Bound Chief and Task-role context, preserve scoped memory and work su…
Add Chief admission and resumable child waits to Project Tasks (#2226)
Persist Project state and Effects with guarded SQLite migration (#2227)
zy95-12 commentedon Nov 3, 2026
按 Owner 要求阶段关单:对应 PR #2208 已 squash 合入
delivery/ai-centric-development-service,合并提交e5146f069b36fb63267f4bf301e82388fc01f3d9。最终集成提交
f95946fce81ad020cb6dd568c34efe9eb5d2f5be的完整文件树与已通过 4726 项完整验证的源码d720f8cced5b09d79123e979de1d448584b94fb6完全一致。所有已确认功能缺口和未完成的真实任务/运行验收统一迁移至 #2292,继续保持 open。本次关闭表示已实现部分的阶段归档,不表示本 issue 原有所有验收项均已完成;不修改未验证的 checklist。未部署或重启服务。