Skip to content

[设计] 收敛执行服务生命周期与 Harness/Resource/Session 绑定及恢复 #2184

Closed

Description

@zy95-12

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

  1. zy95-12 commented on Nov 2, 2026

    @zy95-12
    CollaboratorAuthor

    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替身测试说成真实供应商验证。不部署、不打断现有前端。

  2. zy95-12 commented on Nov 2, 2026

    @zy95-12
    CollaboratorAuthor

    Written-by: Codex

    补充核对并纠正前述触发范围:spec.prompt 是调用方传入的执行说明,当前 preparePoolRole 将反馈/进展放在 session.context,再由 roleExecutionPrompt 组合,不是都放入 spec.prompt。因此不能声称普通反馈必然触发新 Session。新增 worker-process 回归覆盖的是调用提示词变化场景。另一个实际缺口是实际 persona/skills 在 context 内,没有参与旧指纹,无法表达角色定义版本边界。

    resumableBinding 对不兼容 key 返回null,以及 findLast(matching key) 可能回到较旧上下文,是已确认的实现行为;新回归已重现。将以稳定角色定义、最新上下文、显式恢复失败及兼容迁移来收敛,不以未经证实的触发原因描述问题。

  3. zy95-12 commented on Nov 2, 2026

    @zy95-12
    CollaboratorAuthor

    Written-by: Codex

    SDK续接基础已提交 Draft PR #2208,commit b4fa8de,全量验证4524/0失败/0跳过。保留最新上下文、角色版本与显式恢复错误,补充真实子进程回归和旧绑定迁移。原生角色续接、在途撤权收敛、父任务/事务/接口整合及新一轮真实Codex验证仍未完成,继续保留本issue和原PR,不按基础阶段关闭。

  4. zy95-12 commented on Nov 3, 2026

    @zy95-12
    CollaboratorAuthor

    按 Owner 要求阶段关单:对应 PR #2208 已 squash 合入 delivery/ai-centric-development-service,合并提交 e5146f069b36fb63267f4bf301e82388fc01f3d9。

    最终集成提交 f95946fce81ad020cb6dd568c34efe9eb5d2f5be 的完整文件树与已通过 4726 项完整验证的源码 d720f8cced5b09d79123e979de1d448584b94fb6 完全一致。

    所有已确认功能缺口和未完成的真实任务/运行验收统一迁移至 #2292,继续保持 open。本次关闭表示已实现部分的阶段归档,不表示本 issue 原有所有验收项均已完成;不修改未验证的 checklist。未部署或重启服务。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions