Skip to content

tracking: land research continuity as small PRs into main - #6838

Draft
songoow wants to merge 34 commits into
mainfrom
codex/research-continuity
Draft

songoow wants to merge 34 commits into
mainfrom
codex/research-continuity

Conversation

@songoow

@songoow songoow commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

Research split program

当前唯一方案(2026-10-20):#6784 保持集合 PR;#6838 的剩余工作按小 PR 分别进入 main。 本 PR 保留为来源与协调入口,不再将本 PR 的大分支整体合入 main。旧文中“#6784 也继续拆成 A/B 子 PR”的路线已被本节取代。

已完成的调整

  1. feat: unify default Goal outcomes, evidence review and replan #6784 已在原分支吸收最新 main 5853e151,补齐 A3 da24c787 诊断修复和对应输出断言;后续相关修复继续进入 feat: unify default Goal outcomes, evidence review and replan #6784,按整体功能资格收口。
  2. fix(control-plane): preserve acceptance continuity across replans #6882 / refactor(acceptance): migrate configured checks and all consumers to v2 #6897 / feat(outcomes): retain owned requirements with native and UI recovery #6898 / feat(outcomes): route current evidence gaps through scoped replan feedback #6899 已关闭为重复入口。它们自身的 B1/A1/A2/A3 增量由 feat: unify default Goal outcomes, evidence review and replan #6784 承载;旧分支所含 B2–B5 祖先并不因此混入 feat: unify default Goal outcomes, evidence review and replan #6784。A1 对 B2 测试的契约迁移由 fix(scheduler): preserve qualified dependency waits and scoped admission #6883 保留。
  3. B2/B3/B4/B5/C2 已各自从 main 重放自身增量,PR 直接指向 main;C1 仅保留 B3 的真实短依赖,C3 仅保留 C2 的短基底及 C1 的明确额外准入依赖。每片仍单独审查、单独进入 main。
  4. 完整旧源链归档保留原作者、提交/DCO、修复与证据。现有 PR 编号、分支和讨论继续保留,没有删除来源。重放后的树均与对应本地候选逐字一致。

当前 PR 与合入门槛

PR 自身范围 当前 base / 最终目标 当前 head 处理方式与真实门槛
#6881 CI qualification main 原已合入 已完成,不重复拆分或回退
#6784 B1 + A1/A2/A3 foundation main 9f2cba7 唯一集合入口;整体验证、审查后合入
#6883 B2 dependency wait / scoped admission,24 文件 main b8a837d 依赖 #6784 的 accepted 后无可执行工作收口;纯 main 反馈尾部仍失败
#6884 B3 native launch authority,33 文件 main b9fddbe 自身增量独立;已修复 stdin 背压占用 writer 的 P1 与复杂度 P2
#6885 B4 Worker 持久化 / readback,28 文件 main 06a7c41 依赖 #6784 的稳定 owner-hold 身份及 fixture
#6889 B5 evidence-bound comparison,19 文件 main 5ff7a82 当前资格组合为 #6784+B2+B4+B5;纯 main adopt 仍失败,最小依赖尚未隔离
#6900 C1 provider request admission,8 文件 B3 #6884 → main bea1519 直接使用 B3 launch 接口;B3 合入后转 main,只保留自身增量
#6901 C2 execution evidence / Explore replans,27 文件 main e907547 独立 main 真实流程通过;不能把旧 C1/B5 祖先直接当成硬依赖
#6902 C3 native feedback / explicit waits,26 文件 C2 #6901 → main dd757aa 修改 C2 新文件且需要 C1 的 ResearchRequestGuard;前置未齐,整链收集仍阻塞

#6882、#6897、#6898、#6899:closed / superseded,未单独合入 main。关闭不自动解决原 review,也不表示 #6784 已合入。

保守合入顺序

  • 基础与研究路径:feat: unify default Goal outcomes, evidence review and replan #6784 → B2、B4 → B5。 B2/B4 可并行审查;操作时按 B2 再 B4 排队便于复用本次组合证据。这是已验证的保守顺序,不能仅从旧 git 父子关系断言 B2/B4/B5 互为最小硬依赖。
  • Host/request 路径:B3 → C1。 B3 可独立推进;C1 在 B3 进入 main 后改向 main。
  • 执行证据路径:C2 可独立推进。 C3 等待 C2、C1,并在上述研究路径就绪后执行完整反馈/等待/恢复组合验证,再单独进入 main。
  • 每次 main 前进后,只重放待合入 PR 的自身 delta,重新核对 diff、依赖和精确 head 的 CI/review;不把旧 base 整段带入,不用放宽断言或复制前置来伪造独立性。

本轮实际验证与版本绑定

候选 实际结果 限制 / 阻塞
#6784 tree 7cec6531 native lost-reply / 跨 Turn / Session queue 44 passed;诊断输出 253 passed、1 skipped,该环境项另跑 1 passed;typecheck/ratchet 通过 没有重跑新 head 的完整 packaged browser / Postgres / 付费模型
B2 tree cc952d71 Python 140 passed、TS 89 passed、typecheck 通过;真实 CLI 4 passed / 2 failed 失败为纯 main 的反馈 accepted→quiet;组合中原断言两 provider 通过
B3 tree 0976453d Python 546 passed / 2 skipped,包含真实背压/Stop/Unicode;typecheck/ratchet 通过 TS owner 26 passed / 1 failed;失败在 main 既有 digest matcher,已独立复现,未冒充全绿
B4 tree f5641eb7 Python 102 passed;真实 worker CLI 12 passed / 8 deselected;typecheck 通过 纯 main 缺 foundation fixture,相关整链收集失败
B5 tree 50ddcbbf TS 94 passed、typecheck 通过 纯 main adopt 报 stride_review_basis_mismatch;保留严格测试
C1+B3 tree ee44dac8 request/race/provider/task-entry 68 passed / 22 skipped;native launch/Stop 16 passed / 4 deselected 22 skip 是可选 Harbor 未安装;不声明 benchmark 打包资格
C2 tree ba797604 真实 File/SQLite execution/effective-turn 29 passed,0 skip;TS 41 passed;typecheck 通过 不外推 C3 / 全量 packaged / 模型收益
C3+C2 tree 0dde069e native feedback/cost/report 子集 128 passed / 281 skipped 可选 SForge 未安装;另 3 个整链模块因缺 C1 而 collection error,不是通过

当前增量组合证据: qualification commit 7d8871cf,tree f924b0ba51cba5788e32febdac0c8f02d763e8c9,与本地实测 4a81e57b 完全一致。它只包含 #6784+B2+B4+B5,是验证分支,没有新建集合 PR,也不是这些研究切片的合入入口。

  • B2 feedback closure:File/SQLite 2 passed,180.96s。
  • B4 stable owner-hold ACK:File/SQLite 2 passed,61.61s。
  • B5 interaction comparison/adopt/独立 oracle:File/SQLite 2 passed,169.47s。
  • Control-plane 与 Dashboard typecheck 通过。三组是分开的实际批次;没有宣称完整矩阵、additive、pre_stable/upgrade、Postgres 或新浏览器全量通过。原截图保持历史版本绑定。

尚未完成的门槛

所有本轮新 head 都需新的 Sign-off / merge-gate 与正式 approval;本轮读回没有任何一个已满足 main 的全部合入条件。#6784、B2、B3 的旧 changes-requested / unresolved threads 继续保留,修复不自动视为审查人已经通过。新 CI 正在排队/运行;重定向过程中旧 attempt 的 cancelled/merge-gate 红灯不等于新代码测试失败,也不能拿本地结果替代远端 gate。

main 的既有保护(required checks、code owner、最后推送后的审批、讨论解决)继续生效。本轮没有绕过规则合入 main。

原研究提案、旧版本与历史验证(当前路由以上表为准)

Follow-up for current inbox reads and #6784 compatibility

Validated follow-up: 184181d96, source tree 8d935d6f300740781b5d6aaf32820418f9d6dcea. This retains the concurrent 8027101bd release qualification change and integrates main 31486ac18.

Concurrent follow-up 8fd93c14e subsequently added late-inbox-refusal assertions for ordinary/operation Hosts with File/SQLite, connector documentation, and main 3a8164117. The production launch/decoder/hold/terminal/admission paths below remain unchanged from 184181d96. The expanded regression and the newly integrated main changes are outside the earlier 25-case execution reported here.

Focused corrections

  • Pass this Turn's already dispatched inbox reads to actual Host launch. current_turn_host_launch_decision remains the launch authority. Its hook argument now reads the producer's actual turn_start_capability_hook_dispatch payload key. This avoids dropping the current read or repeating inbox synchronization.
  • Decode configured checks consistently across the current and legacy readbacks. Formal holds, terminal projection and should_run use the shared configured_checks decoder, identical to #6784. Explicit legacy enabled: false remains unconfigured; actual criteria work with the legacy or current shape; Outcome-only readback does not invent a command-check requirement. Failed or unverified configured checks cannot manufacture whole-Goal acceptance.
  • Preserve formal holds and empty-Goal initial planning. Source-qualified legacy ACK handling, held-task ownership and original receipt accounting remain intact. No-work owner contracts without a current accepted result can still enter initial planning, including after a failed preflight. The fixture uses its producing Goal workspace and preserves the production workspace guard.

Focused validation

The patch source at 016fd4e05 completed 25 distinct cases:

Completed batch Cases
Legacy/current readback × unverified/failed/accepted terminal checks 6
Outcome-only frontier with/without an existing gap 2
Legacy/current formal hold and bounded replan 2
Other-Agent work and explicit disabled-contract guard 1
No legacy lookup for disabled, unrelated, current-checkpoint or unrecorded paths 4
Real fresh-inbox launch: File/SQLite × ordinary/operation Host 4
Real initial planning, adoption and work: File/SQLite 2
Empty owner contract: File/SQLite × absent/failed preflight 4

The projection batch finished 15 passed in 16.90s; the real CLI batch finished 10 passed in 610.51s. The four fresh-inbox cases verify actual local Host entry, exactly one hook dispatch, and the existing spend or operation-confirmation wait behavior. The other six CLI cases cover initial planning, adoption, work, and empty-contract admission. Hosts are deterministic local fixtures. Interrupted and overlapping runs are excluded.

All ten patch files—five production and five test files—were byte-for-byte unchanged at 184181d96 after the concurrent CI/main merges. The later 8fd93c14e deliberately extends the Host test; that expansion is outside this preservation statement. This preservation check does not re-label the 25-case run as a fresh execution of every upstream change. Changed-file public scan, RFC pair and diff checks passed; DCO trailers match the publishing author.

Joint qualification with #6784

The qualification branch combines this head with #6784 069be9229, preserving its current canonical observation, request recovery and strict Outcome ACK behavior alongside research continuation and formal owner holds.

The qualification commit 0442a7493 has the validated follow-up commits 069be9229 and 184181d96 as parents and exactly matches the tested source tree 4ba7035c2e6f9ff5f612ee8ec37e648eb19761cb.

Completed joint batch Result
Outcome refinement, mixed replan ACK, stride policy and comparison-selection TypeScript suites 100 passed, no skips; control-plane typecheck also passed.
Complete 128-character-root/depth brief and legacy/current terminal readback projections 7 passed in 23.11s.
Five retained Outcomes through settled ACK/spend, quiet polls and material rearm; successive stale artifact evidence, both File/SQLite 4 passed in 789.75s.
Original legacy settled ACK/Turn/spend recovery, both File/SQLite 2 passed in 284.38s.
Native committed-lost-reply recovery after controller/store restart and a new Turn, both File/SQLite; actual ordinary Host with same-Turn fresh inbox 3 passed in 130.90s.

The legacy batch produces state with a clean old-source CLI pinned to dc9fdbb5186618ec2e797a9d7545e2fe524fee56, then consumes it with the current-source CLI. The processes share a compatible Python environment; the old child's working directory, import path and loaded module locations were verified against the old checkout. This establishes the exercised source-to-source recovery boundary, not an installed-package upgrade. The joint Python total is 16 passed across these four non-overlapping batches; it is reported separately from the per-PR runs above and is not added to overlapping historical counts.

The later concurrent follow-ups 8bf0265e1 and 8fd93c14e are outside this fixed qualification tree; their additional browser and late-inbox assertions are not included in the counts above.

The original PR description and earlier evidence below retain their stated versions and boundaries. Current CI and independent review remain separate from this deterministic compatibility qualification.

Prepared with ChatGPT/Codex assistance; published commits carry DCO sign-offs.


2026-10-19 本轮补充与当前验证

当前实现提交:8fd93c14;完整源码 tree:b1262157682688c07b95982994951bf286912ee7。
以并发更新后的 184181d96 为父提交,合入 main 3a8164117;远端提交、父关系和源码 tree 已读回确认。后文其他 head 的测试与 CI 均为各自历史记录。

当前增量

最新远端已包含配置检查的兼容解码及原 capability-hook dispatch 上下文传递,本轮保留相同生产实现。额外修改集中于 tests/test_host_launch_authority.py 和英中双语 runtime-connector-catalog.md:

  • 保留同一 Turn 内已经派发的 inbox 读取参与实际启动判断的正例。
  • 增加必需读取完成之后又有材料到达的负例:旧读取不能覆盖新材料,普通 Host 和 operation Host 均拒绝模型 Turn 启动。
  • 拒绝结果准确保留此前 inbox 同步已经发生的报告,同时核验原状态和额度没有因被拒绝的启动而新增结算。
  • 主干 Goal 子树读取范围的七文件增量完整合入;治理及 CI 内容与 184181d96 逐字一致。

本次源码的实际验证

范围 结果
test_actual_launch_preserves_same_turn_inbox_read_scope 8 passed,124.58 秒;File / SQLite × 普通 / operation Host × 当前读取 / 后到材料
控制平面和 Dashboard TypeScript 均通过
RFC 双语 staged 与最终提交检查 均通过
公开内容扫描 5,085 files,0 errors / 0 warnings
主干合入及差异核对 七文件 patch ID 与原 main 增量一致;额外 authored 差异为两文件、48 insertions / 3 deletions

所有结果绑定上述完整源码 tree。Dashboard 首次检查缺少本工作树依赖,核对 package/lock 完全相同后使用匹配依赖复验通过;没有为通过测试修改产品或验收规则。这里记录受控真实入口及 File/SQLite 后端验证,完整 hosted CI、native Windows、PostgreSQL 和真实模型测量各有独立资格范围。

与 #6784 / #6838 的组合验证已完成

组合分支:codex/outcome-continuity-integration-20261019;提交 6da4963b。
两个父提交分别为本轮发布的 8bf0265e 与 8fd93c14,完整 tree b8a2f0259b087ee1484413b7cd903b6b2d666bb9 与已测试源码一致。它是独立的组合审查分支,两个原 PR 保留各自范围。

真实混合回归在 File、SQLite 上分别完整通过:1 passed / 130.81 秒、1 passed / 119.43 秒,无 skip。它实际验证:

  1. 同一 Agent 的三个 owner hold 与五个 Outcome 一起进入准入,ACK 保留三个 hold 检查点及一个覆盖全部五项的 Outcome 集合检查点。
  2. ACK 后、扣额前修改第四项 Outcome,原 Turn 仍绑定原 obligation 和 settlement identity;改绑新 obligation 或其他 Todo 被拒绝。
  3. 原 Turn 只结算一次,重放不增加结算或写回;后续 Turn 才接收新一代 obligation。
  4. 五项 Outcome 的原需求与新增需求全部保留,owner holds、验收和执行权限没有被 refinement 越权改变。

混合 TypeScript 契约的 1 个 named case、两端类型检查及源码一致性核对通过;组合公开内容扫描 5,093 files,0 errors / 0 warnings。

前两轮曾因测试误读 Agent 字段位置、以及假设 Outcome upsert 后列表顺序不变而失败。修正后仍核验真实持久化 run 的 Agent/原结算身份,并按精确 ID 集合、数量和逐项需求检查累计保留;没有修改产品来满足错误假设。上述通过数字只来自修正后的最终两次完整运行,历史失败不计入通过。

混合用例使用受控 reviewer,实际 CLI、File/SQLite owner、写回和额度结算均执行;这不是外部模型能力、原生 chat transport 或 EdgeBench 收益验证。

新提交的 hosted CI(2026-10-19 10:12:50 UTC)

当前 head 的 DCO、Dependency Review、PostgreSQL Integration、Frontstage Pages、Optional Ark Turn 及 Desktop Release Artifacts均已成功。全量 Python 和 Release Artifacts 仍运行,完整 CI 尚未结束。这些是本轮 8fd93c14 的实际工作流状态,没有将旧 head 的成功移作本轮证明。

此前实现与验证记录

以下保留原说明;其中引用其他提交的验证应按各自源码和运行范围解读。

本轮继续修复:最新 review、真实恢复与方法比较

Current implementation head: 8027101bd9e685e90ed9b27e526eae00b05676e8; PR base: dc9fdbb5186618ec2e797a9d7545e2fe524fee56.
Implementation: model_agent · GPT-6 Astra Pro · OpenAI · self-reported.

本轮以最新汇总 review的八项发现为起点,保留并整合了已经推送至 6f2be00 的十个跟进提交(包括 b0ec503d5 的前五个)。随后继续复现未覆盖的入口、修复并交叉复查。下面记录本轮实际增量及其资格范围;后文旧 head 的测试数和 CI 记录保留为历史,不移作当前 head 的通过证明。

第八轮继续:让完整 Release 校验有时间执行

新增 DCO 提交 8027101 只把 Release Artifacts 的整个 build 作业上限从 20 分钟改为 30 分钟。所有生产代码、场景、断言、测试自身期限、权限、条件、发布资格检查和产物来源规则保持原值。

原因来自前一实现 head e1959255 的实际 Release 日志:作业从 03:51:29 UTC 开始,04:11:47 完成,约 20 分 18 秒,结论为 cancelled。71 个 packaged 主页面场景在 04:11:26 全部通过;本次更新的 research-worker-readback 场景实际通过,用时 35.825 秒,含损坏后 poll 保留未知状态及零新增工作。随后 team-evidence-return 与 team-feedback-recovery 分别通过,04:11:44 日志报告取消。第三个 companion 流程及后续 DSH、发布契约、源码恢复和产物资格检查尚未完成。

因此,这个 run 仍记录为取消,不能称作完整 Release 通过。现有 20 分钟窗口没有给已完成的主场景和所有收尾留出空间;30 分钟调整给整个既有流程增加余量,不改变单个测试的合格标准。本次没有据未读取的 annotation 推断取消发起者。

实际 diff 经独立只读复查,未发现 blocker;已有 examples/release-artifacts-smoke.py 通过,tests/test_ci_resource_policy.py 132 passed。工作流解析深比较确认执行语义仅改变 jobs.build.timeout-minutes,所有步骤、权限和条件完全相同;公开边界、diff 与实际 base 的 staged/head 双语 RFC 检查通过。新 tree 为 76cd534ff60009b95d2421fb40dc358e8c93eb9a,发布后已核对 commit、父提交及本地工作区一致。

后续实际 CI 已补齐 Release 验证。 新 Release build 于 04:29:45–04:47:08 UTC 完整执行,success,17 分 23 秒。根审查者与独立审查者分别核对原日志及 API:71 个唯一 packaged 场景的 start/end 名称和顺序完全匹配,suite ok;team-evidence-return、team-feedback-recovery、Goal workspace craft 三个配套流程均明确通过。research-worker-readback 用时 24,358 ms,实际 Stop、损坏后 poll 保留未知状态及零新增工作继续通过。DSH managed-runtime 安装、release contract smoke、fixture 恢复、恢复后两个 distribution checksum 校验和 CI 产物上传全部成功。Attestation、正式 Release 上传及 PyPI 发布按原 PR 条件跳过。

这次运行低于旧 20 分钟上限,不能据此声称增加 timeout 导致通过或提速,也不是 EdgeBench 性能结果。可以确认的是完整保留场景及后续检查的新运行已通过;30 分钟提供余量,旧 e195 的 cancelled 和未确认取消发起原因仍保留。

日志实际 checkout 为 92066a08de5da58c1ecfadc38b14a4874095c6e8,即 GitHub 把 head 8027101 合入 a40caa14fd93474fbb3f21515d4246f37f3b4efb 的 PR 合成 merge。新增 main 提交相对 dc9 仅改 CODEOWNERS / GOVERNANCE 两份审查文档,不涉及生产、测试或 workflow。直接比较已发布 head 与实际 CI merge也确认差异只有上述两份治理文档,生产、测试和 workflow 内容相同。这里记录的是该 head 对应的合并检查,不把 CI merge tree 说成直接执行本地 head tree。产物来源资格来自实际 checkout、成功的 metadata 生成/恢复/checksum 步骤及原日志;未额外下载产物中的 RELEASE-SOURCES.json。

同一 head 的 Windows / macOS 桌面、Ark 3.11 / 3.13、真实 PostgreSQL、Frontstage、Dependency Review、DCO 均通过。

后续核查,2026-10-19 05:26:59 UTC(北京时间 13:26:59): 当前 head 的 Python CI 的 jobs API 完整返回 31 / 31 个作业:23 success、6 pending、2 按原条件 skipped;没有 failed、cancelled、queued 或正在运行的作业。已通过的范围包括 changes、kernel static / contracts、Chat bundle、minimum Node、三个 TypeScript core 分组及 coverage summary、全部 Chat / Dashboard 浏览器分组、Dashboard 验收与检查汇总、Windows PowerShell、Stage2c mutants / 两个 E2E 分组 / installed sdist / correctness 汇总。六个全量 Python test-shard 的 runner_id 均为 null、steps 均为空,测试尚未开始,完整 CI 尚未结束;后续依赖它们的测试与覆盖率汇总也需等待。工作流为每个 shard 复用仓库级 concurrency group(queue: max、cancel-in-progress: false),它们的 changes 与 chat-bundle 前置作业已经成功。本轮保留这些共享队列与全量验收规则,当前等待不作为产品失败或测试成功的证明。

共享队列的直接证据,2026-10-19 05:30:23 UTC: 只读检查到 run 39191282091 的六个 test-shard 均有实际 runner、状态为 in_progress,且六个 Run test shard 步骤均已开始。分别读取该 run 的 0866d6f 与本 PR 8027101 的 workflow,确认都使用同一组 loopx-python-test-shard-${{ matrix.shard }}。因此可直接确认当前六组资源被另一个运行占用;没有取消、重跑或修改其他工作流,也不据这个有限快照估计本 PR 的队列顺序或开始时间。本 PR 同时读回仍是 23 success / 6 pending / 2 条件 skipped。

先前 04:51:58 UTC 的 42 个 checks(15 success / 6 skipped / 6 pending / 15 queued)是当时整个 head 的历史快照;上述 05:26:59 数字仅针对 Python workflow 的完整 jobs 集合,统计对象不同,不混合相加,也不把此前 head 的成功挪作当前证明。

为什么继续改,具体改到了哪里

问题与原因 本轮实现与可观察结果
Operation Host 的检查必须落在真实进程创建和 turn/start 发送处;等待 RPC 回复时持锁又会拖延 Stop。 保留远端的两次当前准入复核,并把锁缩到 Popen / 实际请求写入边界。以 b0ec 的 transport 模块执行真实 CLI 反例时,未回复的 RPC 使 Stop 超时;修复后 Stop 可在回复仍未返回时完成。补齐 catalog retry、恢复与创建后异常的子进程清理。
旧 global 镜像的额度或健康信息不能替代当下真实 source 的许可。 普通与 operation turn run-once 复用远端统一的 with_launch_decision / TypeScript 裁决,在原 source → mirror 锁内读取既有 quota、health,并补核原 Turn plan,绑定原 Turn/Todo/replan;不靠新收据或新 operation 绕过原状态。实际 source 额度变为零、状态来源消失时均禁止 native 启动。同一当前判定已扩展到 benchmark heartbeat 执行、heartbeat/turn 初始规划以及同次 wake 的 checkpoint 源会话继续;后者使用真正被截留的原 Turn、非空 event ID 与原 settlement identity。已有 Todo closeout 返回原进程收尾,归档恢复使用目的 Goal 的当前 guard。
去掉整个 Todo 正文,会让旧确认压住新要求;把纯排序变化算成新要求,又会重复复盘。 任务身份保留完整 canonical 正文;仅通过原 priority owner 解码其已声明的优先级前缀,排除显示 title/priority。有限样本改成全整数要求会产生新义务;只改显示或备注不会重复执行。完整 freshness revision 仍反映显示编辑,不使用自然语言“语义相似”猜测。
旧 hold checkpoint 含时间戳,后续显示编辑使“从当前行重建旧摘要”不足以确认原 ACK。 复用原 todo_source 的精确 store、provider revision、cursor 读取旧来源,并核验当前 Todo、owner 合同 digest/revision 与 hold。只作读取投影,不改写持久 ACK、原 Turn、原结算或扣账;错源、缺源、新 owner 修订拒绝继承。完整 dc9 CLI 产生的旧 ACK 和未写回原 Turn 均经过 File/SQLite 实际升级恢复。
合法 legacy 状态和大小写 Agent 输入应沿用既有 Core 语义。 保留 b0ec 的 active / active-* 与 Agent canonicalization 修复;准入、默认 worker 状态路由、锁和观察使用同一 Agent 身份。真实大写入口和小写重启不会获得第二次尝试。
普通轮询把不可读回执当成缺失,会抹掉未决操作的信息。 JSON、UTF-8、schema 或 Goal 关联不可读时保留源字节,返回独立 quota 决策并明确 recorded=false。普通 poll 或 clear 不表示恢复;原 worker 提交其已知原 attempt 的明确观察可以恢复读回,仍不证明执行结束或允许新派发。
source 与 global 的正常同步会改变整行 digest,使原 worker 观察错误地过期。 新观察通过 source_goal_observation_digest 绑定完整原 Goal 和注册表路径,并复用远端已发布的 source-to-global 转换与合并规则核对镜像。正常同步时间变化保持关联;真正的 source、配置、运行环境变化及不可验证路由仍显示未知。旧观察保留原检查;只有原 raw registry 证明仍相同,才可补强其读回关联,持久 attempt 不改写。quota cache 的原 digest 规则不变。

另保留远端已实现的空 Goal 首次规划修复:失败的预检查本身不证明已有工作,不能永久封住第一次规划入口;创建 Todo 仍不自动获得缺失的验收绑定。

停滞时怎样尝试不同方法:本轮新增了实际比较和采用路径

过去的 S5 用例先建立了后续路线的 Todo,它证明负面证据能够接续已有工作,不能证明系统从停滞中产生了新方法。远端 6f2be00 已把默认关闭策略的证据决策要求扩展至四类既有停滞触发,并保留有证据地继续原实验的出口。本轮完整保留这一约束以及实际执行的三方法分配实验(成本 12 / 11 / 5);本轮沿现有 Explore 和 stride owner 补齐“当前实验结果 ↔ 当前 Todo”的来源关系,并用真实执行检验这条关系是否可用。

在已有 Explore planning 与 evidence_conditioned_v1 开启时,当前结果页可提供有界的 comparison_candidates。Agent 可以读取不同方法的实际结果,并通过可选 selected_candidate 指明原 Todo、node、finding 和完整来源摘要,同时在同一 Vision 保留该 Todo。当前 Vision 决策的写回会重放来源;启用策略的周期及上述停滞复核也不能用单独的后继 ACK 代替当前决策。错源、已改变的 finding 或未保留对应工作不能借另一项成功结果获得确认。未进入高排名的合法 Todo 也可参与比较;分页明确报告省略数量。

实际受控实验让一个原 implementation Todo 比较三类方法:

方法 搜索空间 交互关系任务的训练 SSE 评分预算
保留当前方法 原表达式 x + y 54 125 次评分,750 次样本计算
局部调参 固定线性表示 a*x + b*y + c 16 125 次评分,750 次样本计算
改变表达式结构 有限算术 AST 枚举与去重,实际生成候选 0 125 次评分,750 次样本计算

File / SQLite 均实际执行上述三类搜索,再由测得结果选择程序;受控 Host 没有预先得到获胜表达式。结构搜索实际生成并选出 x*y,写入原 implementation Todo 对应的真实模块,由原 owner 的独立 verifier 在四个未用于训练的输入上执行验收。相加关系的正对照中三类 SSE 均为 0,实际保留原 x+y。每个场景有五条唯一工作记录和原 Turn 的五次唯一扣账,分别对应三个 probe、复盘和 MCP 部署;验收链实际调用 verifier 三次,不把评分预算与验收调用混算。两次 worker 重启后不追加历史或扣账。后续 finding 保存采用理由与已验收结果,旧训练 finding 当时的 negative / unknown 不被覆写。

另以真实 CLI 检验停滞场景:远端已有的 12 / 11 / 5 分配实验增加来源绑定变体,错误摘要和单独 typed progress 在原状态不变的条件下被拒绝,合法当前决策及真实工作继续;旧默认关闭变体完整保留。A/B 归因用例允许合法 B 按自己的准入执行实际计算,但 A 的执行和 Goal 收益仍是 unknown;用 B 证据冒充 A 的执行会被拒绝。

这个例子对应的实质改进是:保留原目标和原验收,明确局部表示能表达什么、不能表达什么,让不同机制提出可比较的结果,再把采用落到真实程序。它没有通过固定失败次数强迫换路。相加关系的正对照在相同证据下应保留原方法,防止把“换了方法”本身当收益。

本轮也比较了两条后续方向的适用性:复用 Explore 的证据组合进行联合 probe,以及复用有作用域和时效的负面经验减少跨轮重复。当前先修结果与实际工作之间已经证实的关系丢失;没有添加第二套研究调度器或把 refuted finding 变成永久路线惩罚。

继续核查:真实 EdgeBench 入口怎样启用和收到比较证据

按本轮发布源码继续追踪实际运行入口,未发现仅 fixture 能读取比较证据的缺口。Benchmark 的 heartbeat-prompt --thin 仍生成完整 JSON quota guard;真实 registry/runtime 的 Explore 结果进入 replan_action_packet.stride_control.explore_basis,同一 stride_control 向模型提供 selected_candidate_option。普通输出压缩不删除它,TurnEnvelope 也明确保留它,并提供同次完整决策的读取位置。

新建运行的配置 可达范围
heartbeat-resume,省略 stride 参数 普通工作与原复盘;Explore 默认关闭
heartbeat-resume --stride-strategy evidence_conditioned_v1 结构化复盘可用;默认缺少 Explore 比较来源
heartbeat-explore,省略 stride 参数 Explore 可用;stride 仍默认 off
heartbeat-explore --stride-strategy evidence_conditioned_v1 两项配置齐备;有实际结果、Todo 关联及当前 review 时提供完整比较/采用协议

开启并不自动把任意 shell 日志解释为实验结果。结果须经已有 Explore/writeback owner 持久化,合法 Todo 须用 explore_result_node_refs 明确关联;候选遵守当前分页和 review 来源。模型可使用已交付的读取命令(如 explore turn-context --result-limit 20)取得当前结果;同次 Host 应保留原 guard 的 Turn/capture/envelope 参数,不另造 receipt 来查看字段。

实际新 treatment 使用现有两个参数:

--worker heartbeat-explore
--stride-strategy evidence_conditioned_v1

若要识别 stride 的增量,参照臂也保持 heartbeat-explore,只将策略设为 off;单独的 Resume→Explore 对照用于观察 Explore 的增量。每臂使用新 run ID,保留任务、模型/effort、预算、entry、cadence、envelope、评价和提交规则;显式固定 --feedback、--eval-interval、--submission-cooldown。当前 runner 的 native 默认是 native / 0 / 3600,不能把旧说明里的 best-only 默认代入而改变原研究因素。现有 runner 开启及读回说明已经提供这些入口,本次核查没有新增策略或执行真实模型。

冻结 HF 公开版没有完整 worker/Explore/stride argv,不能据字段缺失判断用户两轮当时的实际开关;也不能借另一项 portfolio study 的设置补齐。其 METHODS明确限制了公开投影的可还原范围。当前链路可达和受控程序采用,仍不代表历史已经启用或真实模型必然产生有效的新方法。

多轮复查与验证

  • 第一轮: 按八项 review 复现实际入口,区分既存启动缺口、兼容回归与错误测试预期。

  • 第二轮: 整合 b0ec 后交叉审查,发现并修复等待 turn/start 回复期间持锁;补核旧 ACK 后续显示编辑、真实源额度/健康变化及 source/global 观察关联。

  • 第三轮: 复查候选分页、当前来源重放、原回执采用和独立验收。发现只看高排名候选会排除可比较方法,改为复用完整 planner 的合法候选;对旧 generic Turn 的疑点用完整 b0ec CLI 产生四个真实探针,原 Todo effect/Goal/Agent/Todo/Turn 绑定未变,因此没有增加猜测性的兼容别名。

  • 第四轮: 与新发布 6f2be00 三方整合。复用已发布的统一启动裁决和来源 witness,避免并行实现两套规则;独立复核停滞触发下的所有合法出口,并以真实 CLI 组合错误来源、typed progress、当前决策、执行及后续归因。

  • 第五轮: 扩展到 Benchmark 首段与 checkpoint 续段,分别核验当前拒绝、初始规划和原 held Turn 恢复。同时读取新版本 Release CI 的实际失败:旧页面用例仍破坏废弃关联字段。更正为当前 source witness,并保留超时和未知状态断言,追加损坏后普通 poll 的字节与零派发检查。

验证范围 当前结果与解释
整合后的原 Host / operation / chat transport 最终兼容批次 296 passed / 33 skipped,0 failure/error,包含真实 operation Stop、当前 source 准入与原 S10 四例。33 skip = 31 缺可选 harbor + 2 显式 live-host release。另一个批次中的 resume transport 文件为 21 passed / 1 skipped(缺 native Codex binary);该批之后有三个旧 planning fixture 失败,所以不称整个旧命令成功。只补实际 status 已报告缺失的 domain / adapter.kind 后,受影响文件在最终批次中 40 项通过。 新 benchmark / checkpoint 场景分两批核验:第一批 22 passed / 2 failed;两个失败来自把待结算 Todo 当成可新 capture 的错误预期。保留此记录,更正为原进程收尾,并补跑真正 unbound 两例后,最终针对性批次 4 passed / 10 deselected,0 failure/error/skip。由这些分批证据覆盖 26 个独立场景,未宣称存在一条 26 项全绿命令。
整合后的 worker / 回执 / 历史读回 最终合并源码 124 passed,0 failure/error/skip,包含 worker、host-poll 回执、完整 source→global→HTTP 读回和历史关联。
通用正文修改完整 worker 路径 8 passed:File/SQLite × acceptance disabled/uncovered × returned unresolved/accepted settled;正文 owner 未被同期提交改动。最终合并源码的 replan basis 与 external worker CLI 两文件另为 32 passed,0 failure/error/skip;17 个相关生产文件的开始/结束 SHA256 一致。
完整旧版本升级 dc9 完整 CLI → 当前:4 passed;默认 CI 冻结旧 checkpoint producer → 当前真实 CLI:另 4 passed,两种证据来源分别保留。
Frontier / acceptance owner 修正后的两个 owner 文件 66 passed;相关 canonical 实际入口 8 例通过。原 held-worker 四例已通过;它们与后续回归有范围重叠,保持独立记录,不累加覆盖数。
方法比较与来源 / followthrough 最终合并源码真实 CLI:20 passed,另 2 passed 的来源绑定停滞变体单列,共 22 个不同场景。覆盖四个真实搜索/正对照、两个 A/B 归因场景、原 assignment 与默认关闭的 replan/replay/blocker/terminal 入口;没有付费模型调用。
类型、协议和预算 实际命名用例:comparison/replan 101、Host owner 10、canonical digest owner 17 均通过;frontier owner 另有 45 例记录。未将 Node wrapper 的文件进程数当作额外用例;control-plane typecheck、配置范围 mypy(17 文件)、依赖与模块预算 7 项通过;全树 semantic vocabulary / registry I/O 检查通过,仍保留该工具对未证明 producer 的原限制。
基线/当前真实 CLI 输出差分 dc9 与当前各 96 份输出,0 个新增候选场景;唯一 review signal 是之前已说明的 brief 中省略禁用能力的空 pr_review_pre_quota_command,没有放宽既有预算。
打包界面 更正当前 source witness 的用例后,先前远端 Release 的页面回归已在同范围本地通过,保留原超时与状态断言。 重建 Chat 后,真实 source CLI worker → 正式 global 同步 → HTTP → 打包 UI 的暂停/未知 × 中英文 × 桌面/移动端 8 组合通过。含实际 Stop、损坏后再普通 poll、过期源隐藏和只读导航不派发。已检查首屏。 当前合并源码生成的比较数据也经真实 Explore HTTP→现有结果页读回;桌面与 390×844 手机实际滚动视口均核对 SSE、采用说明和原 Todo 完成状态,导航前后工作/结算历史不变。

批次存在重叠,不把它们相加成覆盖总数。新增 fixture 使用一次性合成 Goal、真实 CLI/worker/MCP/File/SQLite 和受控本地程序;历史失败和 fixture 修正前的记录均保留,没有改写为通过。

本轮提交与界面证据

实现部分按 worker、Goal、比较、Host、文档分为五个 DCO 提交,追加在 6f2be00 之后,形成 e1959255。该实现 head 的完整 tree f631d01dd8e8544dd6a0b04bfd104e03446f82cf 与本地最终验证版本相同,并已通过最终全范围 Ruff、公开边界检查(46 个文本文件,另 3 张人工核对的合成截图)、实际 base 的 staged/head 双语 RFC 检查与干净工作区核验。随后第六个提交 8027101 仅调整 Release 作业时限,形成当前 tree 76cd534ff60009b95d2421fb40dc358e8c93eb9a;生产代码和上述界面证据均未变化。

当前结论与边界

  • 来源精确绑定代表可审查的规划意图。它不替代 Todo 调度、claim、quota、Stop 或验收;合法 B 的执行不能用来声称所选 A 已执行。没有证据时 followthrough 继续显示 unknown。
  • 比较固定了训练输入和评分次数;语法生成 CPU、provider token、重试和完整费用并未因此相同。受控 Host 代码只读训练输入,fixture 不是对恶意 Host 的数据访问隔离。
  • 当前 quota 回调的完整本地资格覆盖可执行 legacy 的 local/source/source-to-global 路径。source_session_v1 保留 lifecycle-only,未启用其 CLI;benchmark 其它模式保留各自 owner。归档不移植源 Goal claims/Turn/spend;Todo closeout 不转成新 capture;合法 health-repair 仍由原 quota owner 决定。本地 writer lock 不构成分布式 exactly-once,legacy 字节完全相同的实例重建仍不可辨识。
  • 没有重跑付费 Astra / DeepSeek EdgeBench,没有新增真实模型分数、费用下降或普遍研究能力提升的结论。历史数据用于诊断,局部程序实验用于检验可归因的方法选择与原验收链。
  • 当前 head 8027101bd9e685e90ed9b27e526eae00b05676e8 的 Release PR 构建与全部适用检查、两个桌面平台、Ark 两版本、真实 PostgreSQL、Frontstage、依赖与 DCO 均通过;原始日志和实际合并源码归属见上节。截至 2026-10-19 05:26:59 UTC,Python workflow 完整返回的 31 个作业中 23 success、6 shard pending、2 按条件 skipped;六个分片尚未分配 runner、没有执行步骤,完整 CI 尚未结束。旧 e195 的 Release 取消记录继续保留,未用新成功改写旧运行结论,也未把运行时间差归因为本次修改带来的提速。
  • 这是作者侧修复和多轮独立分工复查;尚不等同于维护者批准或合并。当前 native PR-review CLI 的 GitHub 元数据读取不可用,未把手工收集或离线材料称为成功的正式 review packet。

English delivery note: This revision repairs source-qualified execution/recovery boundaries and adds optional exact Explore-to-Todo comparison provenance. Controlled finite program search tests measured method choice and adoption under the original acceptance, with explicit scheduling, cost and live-model limits. It preserves all ten concurrently published follow-ups through 6f2be00, including the evidence-linked stall review gate, and qualifies the merged execution and planning paths separately. Independent maintainer review and exact-head CI remain separate; no merge or paid benchmark execution is claimed.


Earlier head-specific implementation and validation record

最新修复:当前启动准入、可靠回读与停滞后的路线决策

Current head: 6f2be000423d8c26503f47698e8b2d40bea86acf. Implementation follow-up: GPT-6 Astra Pro, OpenAI, self-reported.

在最新 b0ec503d56beed3dce37ff5c24bfe1544c29eb83 的五个修复提交之上,再补充五个 DCO 提交;原提交与首次规划修复全部保留。本轮对齐已发表的八项合并 review和上一轮修复说明,补齐最新实现仍未覆盖的实际启动、来源回读与停滞决策链路。这是作者侧修复与验证记录;PR 保持 open,未合并。

Review 意见如何落地

Review 项目 最新实现与本轮增量
F1:operation-tools 在 Stop 后启动 保留上轮 Popen/turn-start guard;进一步将 guard 收窄到真实 request write/flush,等待 native ACK 前释放。最新 b0ec 上已复现持锁阻挡 Stop,本轮补齐。
F2:旧计划不能代表当前 quota/health legacy 普通 Codex CLI 与 operation-tools 在实际启动前,通过原 quota owner 读取 source 与 mirror 的当前决定,保留原 Turn/Todo/effective action。quota=0、晚到健康失败或当前动作改变均拒绝旧动作。当前项目已声明的状态文件缺失也不再依赖 global 镜像是否存在。
F3:正文中的新要求被旧 ACK 覆盖 保留上轮完整 text/title/priority owned identity;新增 returned/settled × File/SQLite 实际 worker 回归。维护 note 不产生新义务,有限样本改为全整数证明会重新触发。没有恢复旧的标题/priority 全局排除规则。
F4:旧 Acceptance checkpoint 与原 Turn 恢复 保留上轮来源可证明的历史 digest 与 lifecycle recovery owner,不增加第二条恢复路径。新增“旧 codec 只负责准入、当前代码完成原 writeback”的测试,并以实际 base CLI 写入的状态验证原 obligation/context/receipt/settlement identity、ACK 与幂等结算。
F5:合法 active-* 被拒绝 保留上轮规范化 legacy 状态语义。source_session_v1 继续 lifecycle-only,exact lifetime guard 不进入新增 legacy quota reader。
F6:Agent 大小写破坏 scope 保留上轮 worker scope/state-route 规范化;补普通 poll writer 的 Agent key 规范化,防止大写轮询错误改变小写 unknown row 的接续状态。
F7:损坏回执被普通 poll 清空 保留上轮 unreadable 拒绝写入,增加真实 corrupt → ordinary poll → HTTP 回读覆盖;原字节和 unknown attempt 保留。
F8:source/global 与 no-op sync 误判 stale 新 observation 使用独立 source Goal/route witness,并复用既有 global projection/merge owner。完整 source Goal 不变时,镜像同步时间与已消费的镜像指令不使原观察失效;真实来源/配置/实例/runtime 变化仍 stale。旧 raw digest 保留原义,旧 attempt 仅在原证明仍匹配时补充 observation,不改写原 attempt。

最新 b0ec 的五个 Host 反例先失败、再经修复通过:source quota 为零、source/global 健康漂移、无 global 的晚到状态丢失,以及 ACK 等待时 Stop 获取锁超时。正常首次规划和原健康修复例外仍由既有 quota owner 决定。

停滞时如何探索不同机制

已有、默认关闭的 execution_profile.stride_strategy=evidence_conditioned_v1 保留上轮“比较不同表征、分解、搜索机制或信息来源”的指引。本轮让它在既有停滞触发时成为实际决策检查点:除 periodic_review_due 外,覆盖 typed_progress_repeat、no_progress_streak、repeated_action_loop、external_progress_review_drift。任何可接受出口都需要绑定当前 obligation/context 的有证据决定;普通 progress、裸 successor、blocker 或 terminal 字段不能代替复核。

允许有依据的 continue/no_change 保留尚未完成的完整实验;不强迫换路,不靠编造进展或新建 Todo 结束复核。显式 Acceptance/capability 限制、原结算、默认 off 与执行权限保持既有边界。replan_context、行动包与最终 writeback 使用同一 outcome owner,避免提示与实际门槛不一致。

新增实际 CLI 旅程在 File/SQLite 中保留原 Todo,比较原贪心顺序、反向顺序这一局部对照,以及全局联合分配,实际计算成本 12 / 11 / 5,写入并回读普通工作结果,再让下一轮决策创建具体的独立 transfer-validation Todo。它验证“决定 → 实际工作 → 结果 → 下一轮决定”的工程链;脚本结果不证明真实模型采纳或 EdgeBench 得分改善,execution_and_goal_gain 仍保留 unknown。

动机使用固定公开 EdgeBench 诊断窗口:该 230 分钟窗口有 902 个 completed native turns、0 次提交。它是单个事后诊断窗口,不能据此推断原因、所有窗口表现或策略收益;未出现 apply_patch 也不等于没有其他写入。保留已验证的最佳产物,区分干预未执行、局部结果未迁移和路线解释被反驳,再用完整、有界、可区分解释的实验决定 grow/switch/verify。没有重启真实模型或付费 benchmark。

最终合并源码验证

范围 结果
Host/runtime/health/operation/实际 launch/Codex CLI/default Chat 530 passed,2 live deselected;其中新旧 launch 入口合计 34 例,已去重。
worker、continuity、poll receipt、真实 CLI/sync/HTTP 118 passed。
研究任务身份与历史 Acceptance CLI 12 passed;另有实际 base 写入 → 当前读取/写回的 File/SQLite 原包核验。
stride/progress 与原 Turn 接续 CLI 31 passed,包括实际机制比较与后续证据引用。
TypeScript 实际注册用例 96 passed:stride 35、context 26、semantics 25、Host owner 10。
静态/协议门禁 control-plane typecheck、配置范围 mypy(17 个源文件)、配置范围 Ruff、语义 smoke、CLI base/head 输出预算、29 个公开候选文件扫描、模块增长检查、RFC 双语检查及 diff 检查通过。

这些是最终整合工作树的批次,不累计旧 head 或上一轮重复批次。发布前逐个比较 GitHub commit tree 与本地验证 tree,最终源码 tree 完全相同。两项 live-native 未执行;本轮没有 PostgreSQL、完整真实模型成本或 EdgeBench 新效果资格声明。未改 UI 布局;新增验证包含真实 HTTP 状态回读,不把上轮截图当作新 head 的全组合浏览器重跑。

新 head 的 CI 已触发,发布后首次回读仍为 queued/pending/in_progress,尚未完整结束。上轮及原 PR 的验证和截图作为历史来源保留在下面,不能当作本 head 全部 checks 通过。

原始 S1–S12 交付目标与历史验证记录(through 4437fa0)

以下目标继续作为验收基准;历史完成声明、测试和截图仅对应各自当时版本。

Goal And Delivered Outcome

Keep an adopted research Goal progressing through its current requirements and evidence, while preventing unresolved reviews, waits and recovery from repeatedly starting the same work.

  • Outcome basis: the accepted request to improve LoopX using the published EdgeBench history, implement the improvements, and complete multiple independent review/fix rounds before opening a PR.
  • Public evidence: frozen LoopXBench public data. The diagnostic history motivates the regression scenarios; it does not establish a causal cost saving or a new model score.
  • Before → after: a local stage result cannot close other requested work; neutral review observations cannot rearm or evict the original review basis; qualified dependency waits stay quiet; actual current feedback and permitted independent work progress; recovery retains its original operation and settlement identity.
  • Target: main, integrated at dc9fdbb5186618ec2e797a9d7545e2fe524fee56. No unrelated upstream commits are included in the PR diff.

中文说明:为什么这样修复,以及实现取舍

公开的历史诊断窗口中,出现过 Host 唤醒、执行和网关请求持续发生,却没有新补丁或提交的情况。这提示我们需要单独验证研究目标是否真的前进。因此,这次改进围绕“当前要求 → 下一项获准工作 → 实际产物与采纳 → 验收 → 原操作结算”建立回归验证,并修复其中可以复现的断点。

1. 阶段成功后,为什么还要检查整个 Goal?(S1、S6、S12)

一个阶段获得了有效结果,后续比较、证明或其他已请求的工作仍可能尚未完成。原有局部成功信号需要受到整个 Goal 的完成条件约束,否则容易提前结束研究。

实现上由现有 Goal frontier / terminal 和 acceptance owner 共同判断:检查已启用的当前验收契约,并要求完整 Todo 来源可用、原始工作范围的 frontier 已闭合。A 完成后,仍要求执行的 B 会继续;如果当前要求明确接受 A 替代 B,则通过原 Todo 的 successor 关系完成替换,保留可追溯的范围变更。有限实验结果与证明要求分别验收。同时保留初次规划入口,避免“尚无工作项的空契约”被当作未完成工作而永久阻塞。

这样可以解释清楚为什么结束、还有什么要做,以及是谁改变了要求。本 PR 复用显式启用的验收契约;自动从任意自然语言中提取不可变要求仍在本次范围之外。

2. 为什么等待要绑定具体来源,恢复时还要重新检查权限?(S2、S3、S8、S9)

“被阻塞”本身不能说明正在等什么,也不能证明新的反馈已经满足当前依赖。等待必须能验证具体来源,并满足对应类型的约束;Monitor 反馈还要核对当前代际及可达的轮询安排,到期恢复则使用结构化时间。旧反馈保留为历史,但不能解锁已经更新的依赖。

实现复用现有 scheduler、action portfolio 和 completion admission:当前反馈到达后实际采纳并继续分析;局部 UserGate 允许当前已获准的独立任务继续;结构化到期时间触发一次新的准入检查。Stop、额度和健康状态仍在当下生效,普通文字里的时间不能自行授予定时执行权限。

这使重复轮询和重启可以维持等待状态,同时为真正可做的工作保留入口。File / SQLite 的回归分别覆盖 100 次新 CLI 轮询及重启后的 100 次轮询,检查派发、受控模型入口、业务结果和原始额度结算均无新增。

3. 为什么要区分实质证据与空操作,并保存未决尝试?(S4、S5)

重复的空重规划记录会挤占有限历史窗口,展示文字或优先级变化也可能使同一件未决工作被误认为需要重新审查;另一方面,真实的负面实验结果必须保留,才能指导下一轮研究。

实现先从实质历史窗口中过滤规范的 replan_noop / repair_noop,保留真实证据;hold ACK 通过现有 owner 精确匹配来源、义务、frontier 摘要及类型化接受结果。对这些规范记录,展示层变化保持原义务身份;真实 owner 修订或独立缺口仍会改变义务。后续实际进程需要读取负面产物、完成工作并结算,测试也沿这条路径验证。

外部 worker 在唤醒 Host 前持久化尝试,并对配置的本地状态路由加锁。超时、非零返回或结果未知时继续关联原操作,重启后依据原有恢复/结算证据处理;进程返回 rc=0 也只代表进程结束。这样能防止通过新 operation ID 或重新轮询绕过原来的未决状态。该锁的保证范围是本地路由,不构成分布式 exactly-once 保证。

4. 为什么 Host 启动前还需要最后一次检查?(S7、S10、S11)

规划通过与真正创建进程之间存在时间差,期间用户可能执行 Stop,来源状态也可能改变。已有计划、旧镜像或恢复收据不能单独替代当前新进程的启动授权;原恢复收据仍用于核验原操作及其剩余结算。

实现沿用现有 writer locks,按 source → mirror 顺序锁定,并在实际 Host 进程启动前重新核验;锁只覆盖启动边界。当前 source 的 Stop 优先于旧镜像,缺失、自指或循环的来源路由在启动前拒绝。精确 GoalRef 与 legacy alias 的凭据保持各自的身份边界。

恢复继续使用原 session、journal、operation 和额度结算身份:已完成但 ACK 丢失的操作先对账,随后才推进当前获准工作。新阶段则读取当前 probe,保留原阶段历史和限额。回归通过实际进程及模型入口标记检查是否启动,避免把未知的公开状态字段误当作“确定没有调用”。

5. 为什么界面要明确展示“暂停/原结果未知”?

用户需要知道现在为何停住、下一步该做什么,以及未决结果对应哪一次原始操作。Goal 概览因此增加了与当前作用域关联的 worker 观察、下一步动作和可展开的原操作信息。

这些信息复用同一后端状态;缺失、损坏或作用域过期时回退为未知并隐藏不适用的旧操作。读取页面、展开和导航不会触发新工作,Stop 仍使用原有控制入口,完整成本未知时保持明确标注。这样界面不会把一次观察误呈现为已经完成、已经结算或已经获准执行。

6. 多轮 review 后,为什么还做这四项 CI 修复?

  • Windows brief 长度: 该超限已在基线复现。相同原始长度的路径在 JSON 转义后长度不同,固定预算下会超限。brief 模式仅省略已禁用能力的空 pr_review_pre_quota_command 字段,使已复现样本从 10522 降至 10487 字符,并保留完整命令、路由和 10500 字符预算。该结果针对已观察到的配置。
  • 只读 plan 的锁副作用: 检查命令曾捕获随后被丢弃的 legacy 启动凭据,留下锁文件。现在只读检查跳过该捕获,真实 Host 启动仍保留凭据、锁和启动前校验;来源配置变化及缺失凭据的拒绝行为也有回归覆盖。
  • 摘要格式归属: ACK 复用已有 BARE_SHA256_PATTERN,登记实际消费者,使格式规则由同一个 owner 维护,避免重复定义逐步分歧。
  • 独立浏览器 fixture: 打包环境未安装 pytest,fixture 却间接导入了依赖 pytest 的测试模块。改用同一真实 worker、现有 File helpers 和标准库清理机制,保持实际 HTTP、Stop、损坏/过期状态和只读无新增工作的断言,并在禁止导入 pytest 的环境完成验证。

这些修复分别处理实际实现或 fixture 边界,原有预算、语义检查和准入保护均有保留。下文列出了五轮作者侧独立 review/修复、对应测试和失败前证据,便于逐项复核。

验证结论与边界

本 PR 的工程验收走真实 CLI、File / SQLite、worker、MCP、HTTP、进程启动和结算路径,模型输出使用确定性替身;最后一次打包界面验证覆盖两种状态 × 两种语言 × 桌面/移动端的 8 种组合。这些证据支持所列场景的继续执行、安静等待和恢复行为。

公开历史数据用于定位问题和设计回归。本次没有重跑真实 Astra / DeepSeek benchmark,因此没有宣称模型分数提升、实测费用下降或完整成本上限。各批次测试的范围与 CI 状态以原有 Validation 节及当前 GitHub checks 为准;作者侧多轮 review 也不等同于维护者批准合并。

Author Declaration

  • Written by: model_agent, OpenAI GPT-6 Astra.

Implemented against

  • Specification: the accepted implementation request, restated below as public-safe S1–S12 criteria. This description is the reviewable request basis; private planning material is not attached.
  • Existing owner contract: Goal vision/replan protocol at the implementation baseline. This PR updates that protocol and the runtime connector catalog for the implemented behavior.
  • Counters in the fixtures: D = Host dispatch, P = entry into the controlled model boundary, E = new business result/adoption, Q = original quota settlement. Q is not a monetary bill; these counters do not measure hidden provider retries or complete costs.
Criterion Disposition Owning behavior Decisive validation
S1: stage completion preserves other current requirements; explicit owner replacement can close the original scope implemented Goal frontier/terminal and existing acceptance/Todo succession owners test_research_stage_continuity.py: File/SQLite, actual A → B comparison once; R2 accepts A in place of B through the original successor relation, then restart D/P=0 without a B result or receipt
S2: identified pending dependencies remain cheap and quiet across repeated polls/restart implemented Resume source proof, scheduler arbitration and hints test_dependency_vision_wait_cli.py: 100 fresh real CLI polls plus 100 after restart per provider; D/P/E/Q increments 0; missing, expired and unscheduled sources remain guarded
S3: only current feedback releases the current dependency and is actually adopted implemented Existing dependency/generation, MCP completion and settlement owners test_dependency_feedback_cli.py: old C0/F0 retained but cannot release C1; current F2 is adopted and analyzed once, original successor and receipt retained
S4: no repeated semantic review for an unchanged unresolved basis implemented Material history, exact hold ACK, persisted external-worker attempts test_research_replan_basis_cli.py and worker regressions: no-op logs, display edits and restart do not rearm; exact accepted ACK survives display edits; a real owner revision still changes the obligation
S5: useful negative evidence remains material and feeds subsequent long work implemented Material history plus existing worker/operation owners test_research_negative_continuation_cli.py: the next real process reads the negative artifact, produces its result once and settles once; concurrent/restart attempts add no work
S6: local work acceptance cannot replace current Goal requirements implemented Current acceptance projection, independent validators and terminal owner test_research_requirements_cli.py: finite research may satisfy an explicitly finite criterion; the same evidence fails a proof criterion and cannot certify Goal completion
S7: current Stop, quota, health and missing authority constrain actual launch implemented First-party Host launch admission and existing writer locks Native launch and model markers, source/mirror Stop negatives and current quota/health cases in test_loopx_turn_codex_cli.py, test_first_party_host_runtime.py and scoped dispatch tests
S8: a scoped gate preserves independently admitted work without waiving other gates implemented Exact requested/selected fallback through action portfolio and completion admission test_dependency_dispatch_cli.py: File/SQLite, zero quota stays D/P/E/Q=0; restoring quota permits only current independent B; wrong targets and global Stop remain rejected
S9: structured due time causes fresh admission of the original work implemented Existing deferred resume lifecycle and current delivery route test_dependency_dispatch_cli.py: gated/ungated × File/SQLite, due work executes once only when currently allowed; natural-language time alone grants no timer authority
S10: due review and lost ACK preserve the original completed operation implemented Existing Host session, effect journal and settlement recovery test_host_research_recovery_cli.py: governed/heartbeat × File/SQLite, O3 is reconciled without rerun or duplicate spend; current R2 work then executes once
S11: authorized new phase uses its current probe and the original session implemented Existing pinned checkpoint provider plus first-party launch guard test_phase_probe_continuation.py: four Host/provider combinations; real native process reads S2 probe, original S1 history/limits retained; one extension event, no duplicate work or settlement
S12: first adopted planning works; observation and ordinary chat do not start research implemented Existing initial planning admission, with an empty-contract regression fix test_initial_planning_host_cli.py and test_research_requirements_cli.py: actual plan → work adoption for both providers; fresh enabled empty contract still admits planning; observe-only/ordinary chat negative

Test files above are under tests/control_plane/ unless the full path is stated otherwise; test_loopx_turn_codex_cli.py is under tests/.

  • Self-check: reviewed the current owner rules, actual failing packets, changed production paths, public/private boundary and screenshots. Independent agents cross-reviewed the owning changes; the final affected scenarios were executed through real CLI/backend paths with deterministic model substitutes.

Scope And Continuation

  • Complete within this engineering scope. Twelve DCO commits separate the core S1–S12 implementation, real-path validation, public documentation and four follow-up CI repairs. No merge or full model-benchmark improvement is claimed.
  • Requirements reuse the existing explicitly enabled acceptance contract. This PR does not automatically convert arbitrary unconfigured natural-language Goal text into an immutable requirements authority.
  • The worker records an attempt before dispatch and preserves it through restart. Unknown original outcomes require their original recovery/settlement evidence. A local state-route lock is not distributed exactly-once execution; legacy alias reuse has no exact recreation guarantee.
  • This is a dispatch limit on existing replan work. Host/provider retry, token and process limits remain their existing controls. In-flight provider usage and complete costs can remain unknown.
  • No real Astra/DeepSeek rerun, new benchmark score, measured monetary saving, shared-authority promotion or new automatic review-model path is claimed. No active operator Goal was modified. No successor is required to complete the selected implementation slice.

Validation

  • Published revision: 4437fa0a0b2879c30ede6bbafdf6f80225663f82.
  • Run state: local qualification and all four CI-driven repairs below are complete. Latest-head GitHub checks are running for 4437fa0a0b2879c30ede6bbafdf6f80225663f82. Readback at 2026-10-18 23:56 UTC found 13 success, 14 in progress, 3 queued, 6 pending and 2 skipped; no new failure was recorded, but this is not a fully green CI claim. DCO and kernel static checks passed. The failed first run at cfbe756 remains linked below as before-fix evidence, rather than being counted as validation of the repaired head.
  • Input classes: synthetic, public_fixture.
  • Revision mapping: S1–S12 real-path qualification used the candidate source on 82f9c09; integration of dc9fdbb preserved all 84 original changed file blobs. Four CI follow-up commits are separately qualified below, bringing the PR to 89 changed files. All 12 published commits' full Git trees match their reviewed local counterparts. Final type checks, Ruff, repository invariants, output differential, public-boundary and DCO/RFC checks were verified for the repaired source.
Check kind Result Public-safe evidence / limitation
static passed Full npm run typecheck:control-plane; python -m mypy (17 source files); CI Ruff scope; repository dependency/module invariants (7 tests); diff-scoped module ceiling check; DCO and RFC bilingual diff checks
static passed Public boundary scan: 89 candidates, no blocking hits, unreadable files or missing roots. One credential-reference classification is a synthetic controller token generated during the fixture, not an embedded credential
unit passed Focused original owner/worker tests, including 49 worker/readback cases and actual registered TypeScript cases for ACK/history, waits and selection; counts from overlapping batches are not combined
real_entrypoint, real_backend passed File and SQLite through production CLI/MCP/worker/settlement. Final S1: 4; S4/S6: 10; enabled-contract bootstrap: 2; S3/S8/S9: 10. The final Host groups contain 14 distinct successful cases, including S11/S12 and source/mirror launch negatives
real_entrypoint, real_backend passed Earlier complete, retained qualification: S2 two 200-poll cases; S5 two negative-result/long-work cases; S10 four recovery cases. These were not reported as newly rerun after unrelated changes
regression_parity passed Final CLI base/head output differential against target dc9fdbb: 96 matched receipt rows passed; the one preserved review signal records omission of null $.pr_review_pre_quota_command in brief JSON. No comparator waiver was added. Earlier real failing-before → passing-after checks for formal ACK/display edits and enabled-contract initial planning. Original explicit-withdrawal fixture was corrected to write its missing successor relation, not to weaken terminal admission
real_entrypoint, manual passed Four packaged browser checks: blocked reason, Monitor, Goal acceptance, research-worker readback. The new readback scenario covers two states × two locales × desktop/mobile, actual HTTP readback, stale scope/corruption negatives, task navigation and the existing Stop action
static, regression_parity passed Packaged frontend rebuilt after latest-main integration and the canonical digest repair; source fingerprints verified. Both changed shared TypeScript inputs are outside presentation assets; current JS/CSS/assets remain byte-identical to the captured candidate
integration not_run Full repository CI, native Windows and PostgreSQL qualification were not executed locally. Optional native checkpoint-provider fixtures may skip where that provider is absent; local S11 qualification used its pinned revision 071a884012754127f28f5b84be10f533a42db527

Coverage follows the changed decisions through actual subsequent work, artifact adoption, validators and original settlement. Controlled model substitutes make the local checks deterministic; they do not establish model reasoning quality or hidden provider cost limits.

CI-driven repair qualification

The first hosted run exposed three candidate regressions and one pre-existing Windows fixture failure. Each was reproduced before repair; budgets, semantic comparators, real workload paths, negative cases and CI gates were retained.

Finding and before-fix evidence Repair and decisive local result
Windows brief JSON fixture: 3 cases emitted 10522 characters against 10500; the exact dc9fdbb base job has the same failures Brief metadata omits only a disabled null prequota command: 10522 → 10487 characters. Synthetic Windows spelling fixes both 128 raw path characters and 9 backslashes; all 20 full route occurrences, actual commands, task body and Markdown are preserved. New budget + existing prompt/route checks: 59 passed, 2 deselected. Original native-fixture/diagnostic cases plus the read-only-plan case: 11 passed on Linux. Native Windows remains a hosted check.
Adapter contract: read-only turn plan created a legacy registry lock CLI inspection avoids the discarded legacy launch capture. Actual Host runners retain their locked witness capture and pre-spawn checks. Original plan + new preview, source-profile-change and missing-witness negatives: 4 passed. Independent real CLI Stop/source-stale-mirror tests for File/SQLite and writer-lock serialization: 5 passed. Full path/file snapshots exclude no lock files.
TypeScript digest-owner contract: duplicate digest regex and missing consumer registration Reuse BARE_SHA256_PATTERN and register the two actual consumers. Canonical matcher, scanner and recorded exceptions are unchanged. Actual owner, Host and replan/ACK tests: 49 passed, 0 skipped.
Packaged browser, dashboard browser and package build: standalone fixture imported pytest-only test modules The fixture directly uses the same real worker, existing canonical File helpers and standard-library cleanup. All Python subprocesses in local validation reject pytest/_pytest imports. Real HTTP readback passes for paused/unknown; the original packaged scenario passes all 8 state/locale/viewport combinations, actual Stop, corrupt/stale associations and zero new work from observation. No dependency installation or scenario assertion change is used to pass.

These counts describe separate focused batches; overlapping cases are not summed. The Windows change qualifies the observed feature-off fixture, not arbitrary path depths or all optional capability combinations. A small output-character reduction is not a token, billing or benchmark-score claim.

Review and repair rounds

  1. Owner review and regression reproduction repaired terminal scope, neutral/material history, qualified waits and preserved replan attempts.

  2. Independent cross-owner review and real CLI checks repaired exact hold ACK after display edits, empty-contract initial planning, scoped due delivery and source/mirror checks immediately before native launch.

  3. Final integration review closed two fixture issues: explicit B → accepted A replacement needed the original successor write; an unknown public error field needed independent pre-stdin process/model markers instead of being asserted false. Repaired cases passed on both providers.

  4. Hosted CI review identified the standalone-fixture dependency, read-only lock side effect, digest-owner violations and the existing Windows budget failure. Four focused repair commits retain the original budgets, locks, semantic checks and real backend scenarios.

  5. Independent repair review confirmed source-profile races and missing witnesses still fail closed, actual Stop remains enforced before Host launch, and the pytest-free fixture is equivalent to the original real File scenario. Focused regressions and the complete packaged readback journey passed; hosted qualification remains separate.

These are author-side independent review/fix rounds, not a maintainer approval or merge-readiness claim.

Frontend / Visual Evidence

  • UI impact: changed. The existing Goal overview shows the worker's latest scoped paused/unknown observation, next useful action, expandable original identity and explicit unknown complete costs.
  • Boundary: synthetic disposable Goal and Agent; locally served packaged dashboard. No hosted preview is available.
  • Before: upstream 82f9c09bd61e26e458cecfd4cffeab2350359381. After: the source content in cfbe75662d542bc234eeb809242bb4ad5f45d873, verified against the packaged build.
  • Repaired-head build: 4437fa0a0b2879c30ede6bbafdf6f80225663f82 has byte-identical presentation assets to the captured candidate; the real packaged readback scenario was rerun after the CI fixture repair, including the exact published head with pytest imports blocked and the existing CJK font configuration. All 8 combinations passed, and the four Chinese desktop/mobile views were visually inspected.
  • States/viewports: paused and unknown; zh-CN and en; desktop 1512×982 and mobile 390×844. Images below use zh-CN.
First viewport Before After: paused
Desktop Before desktop After desktop
Mobile Before mobile After mobile

Unknown-state screenshots and reproduction.

  • Attention/craft review: the observation uses the existing overview hierarchy and status styles, with no new grouping-only card or competing hero. Uncertainty is visible, operation details remain expandable, and the existing tasks and Stop controls remain accessible. Desktop/mobile overflow and both locale variants were checked. Reading and navigation do not create a new dispatch.

Type of Change

  • Bug fix
  • Documentation update
  • Test update

LoopX Area

  • Control plane
  • Benchmark boundary
  • Public docs or presentation surface
  • Host or runtime integration

Technical Direction

Core control-plane hardening and long-horizon benchmark evidence, applied to the concrete continuation/recovery defects above.

Shared-authority RFC fixture impact

N/A: this PR does not claim TypeScript migration or shared Goal Authority promotion. It qualifies existing local File/SQLite owners and preserves the existing source-session and legacy boundaries; PostgreSQL promotion/rehearsal is outside this claim.

Boundary Checklist

  • The diff, description and attachments contain no private state, credentials, raw traces/verifier output, internal links or local machine paths.
  • No maintainer-owned benchmark run was duplicated; the new deterministic regression work uses synthetic business problems.
  • Changes remain scoped to the accepted request and stated engineering boundary.
  • No existing English/Chinese RFC pair changed; the committed bilingual diff check passes against the actual target.
  • Before/after first-viewport evidence is included for the changed UI.
  • Every commit retains a DCO Signed-off-by trailer.

Keep no-op observations out of decision windows, retain exact owner hold checkpoints across display edits, and require current acceptance before derived Goal closure. Preserve legitimate first planning and concrete successor work.

Signed-off-by: Codex <codex@openai.com>
Keep positively proven dependency waits alive without model dispatch. Recheck admission at dated recovery and carry the existing exact independent-task grant through selection and settlement without reopening a gated lane.

Signed-off-by: Codex <codex@openai.com>
Fence first-party CLI and benchmark process launch with the existing authority writer. Preserve original host state when launch is refused, and reject a stopped source even when its legacy global mirror could not be synchronized.

Signed-off-by: Codex <codex@openai.com>
Retain the original dispatch attempt across restarts and serialize one configured worker route. Reuse exact settlement recovery for unknown effects, preserve ordinary work, and show paused or unknown observations in the existing Goal overview without granting new execution or claiming known provider costs.

Signed-off-by: Codex <codex@openai.com>
Exercise real governed and heartbeat Host entry points on File and SQLite with deterministic model boundaries. Retain the original operation, session and quota evidence across lost acknowledgements and phase changes. Prove pre-spawn rejection with independent native and model markers while keeping unknown public error readback conservative.

Signed-off-by: Codex <codex@openai.com>
Exercise current feedback adoption and actual independent work through the existing CLI, MCP, scheduler and canonical File/SQLite providers. Verify 200 fresh dependency-wait polls per provider, quota and UserGate negatives, structured due resumes, and replay without duplicate business work or spend.

Signed-off-by: Codex <codex@openai.com>
…nuation

Run actual stage comparison, negative-result adoption, independent acceptance and replanning through both canonical Todo providers. Preserve unchanged-basis dispatch limits, retain original failed proof requirements, and qualify explicit owner replacement through the original successor lifecycle.

Signed-off-by: Codex <codex@openai.com>
Document current acceptance scope, qualified waits, persistent replan attempts and original Goal launch authority. Include synthetic before/after desktop and mobile screenshots with reproducible packaged browser evidence and explicit unknown-cost and legacy-identity limitations.

Signed-off-by: Codex <codex@openai.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-18T23:27:55.074734Z cfbe756 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Preserve the complete task body, executable routes and the 10500-character brief JSON budget on the existing deep Windows fixture. Omit only the null prequota metadata when external polling is disabled; keep all active commands and other modes unchanged.

Signed-off-by: Codex <codex@openai.com>
Avoid acquiring a legacy registry writer lock for the admission object that CLI planning discards. Preserve source-profile detection and exact identity rejection. Actual Host runners retain their default witness capture and locked pre-spawn admission; an uncaptured witness cannot authorize launch.

Signed-off-by: Codex <codex@openai.com>
Use the shared bare SHA-256 matcher for exact acceptance ACKs and register the replan and Host admission consumers in the existing owner inventory. Keep the canonical matcher, duplicate-matcher scan and recorded exceptions unchanged.

Signed-off-by: Codex <codex@openai.com>
Keep the real worker, CLI, File authority, HTTP and Stop journey available in packaged browser and build environments that install runtime dependencies only. Prepare the same synthetic authority with existing helpers and standard-library cleanup instead of importing pytest test modules.

Signed-off-by: Codex <codex@openai.com>

@songoow songoow left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent · Codex (GPT-5 family) · OpenAI · self_reported(当前运行时未公开精确构建与 effort)

Request changes conclusion (author-owned PR; GitHub blocks formal self-review)

评审 head:4437fa0a0b2879c30ede6bbafdf6f80225663f82;对比 main:dc9fdbb5186618ec2e797a9d7545e2fe524fee56。有两处需要修复,建议暂不合并;不是因为 CI 尚未结束。

  1. [P1 / S7] 启动前的 Stop 检查遗漏了 operation-equipped Codex 路径。 新的 launch guard 只在普通 run_codex_cli_host 中使用。turn run-once --host codex-cli --codex-operation-tools 会走另一个 Host,直接调用 CodexChatAgentSession.start。我用真实 CLI、canonical File provider 和本地假 app-server 复现:在最后的 native start 前通过原生命周期 owner 停止 Goal,读回 verified=true,随后仍观察到原生进程启动以及 turn/start 请求;最终 CLI 虽然返回 status=stopped,却已有 effects.host_invoked=true。没有调用真实模型,也没有外部副作用。这是旧漏洞未被完整修复,不是声称该旁路由本 PR 新引入。 最小修复是在实际 app-server 进程/Turn 启动边界接入同一 admission owner,覆盖 source 与 legacy 路由,并在启动后及时释放锁,不能锁住整个模型运行。回归应通过这个实际 CLI 选项验证:Stop 在前、进程/Turn 在后时零启动,且保留原 session 和结算身份;已有普通 exec 用例不能替代它。

  2. [P2 / S4] 不应把所有 Todo 正文修改都视作展示改名。 checkpoint() 无条件从 owned identity 删除 text。普通 Goal 并不一定启用独立 acceptance contract,因此注释所说的另一层 acceptance guard 并不总是存在。真实 CLI 对照:创建 15 个已认领、具有完整 revision 的任务,接受并结算一次长链复盘,再用 todo update --text 把其中一项改成“改做 route B,并在 rollout 前证明与 route A 等价”,保持 ID/target/依赖不变。两版均能完整读回新正文;main 产生新的 autonomous_replan_required,PR 却返回 normal_run、无新义务。独立断言在 main 通过、在 head 失败。这不是直接跳过 Todo 验证或取得额外权限,而是新要求错误地继承了旧研究复盘。最小修复是让默认长链依据保留实质正文;确切 acceptance hold 的防重复已经有独立 checkpoint,不应因此全局抹去要求变化。确需忽略展示修订时,应有明确的既有规范依据,不能靠模型或字符串猜测正文是否只是改名。补充未启用合同和启用但不覆盖该任务的反例,并继续保留纯展示防重复用例。

动机

受影响的是把一个长期 Goal 交给外部执行器的用户:一个阶段完成后还有后续要求,或者工作正在等依赖,执行器可能误收尾、反复复盘,恢复时还可能重做已经发生的操作。拟交付的改善是保留未完成要求、无变化时安静等待、有结果后按原操作接续,并让暂停和未知结果可见。本 PR 不证明研究分数提升、模型采纳、费用降低或分布式恰好一次。

当前仍缺 S4 的实质要求变化复盘和 S7 的 operation 启动检查。

改动思路

主干思路值得保留:规范 Todo/验收/历史是事实来源,现有 TypeScript owner 决定等待、复盘和选择,Python Host 负责锁、进程与持久回执,页面只读观察。replan_attempts 是进程派发与未知结果的原始事实,不应另充 Goal 完成状态;页面没有从该观察生成新执行许可。

整体复用边界成立;需要现在缩小的是全局正文忽略,而不是重写整包。当前 PR 的合理边界是本地研究接续、等待及启动/恢复安全,不扩张到默认自然语言验收、跨 Host exactly-once 或研究收益证明。相较什么都不做,这些修复有实际价值;相较再造一套研究状态机,扩展现有 owner 更小且可回退。上述两处仍须在这个边界内补齐。

具体改动

89 个文件中,38 个生产文件为 +893/-155;测试、fixture、示例及截图 49 个文件为 +4447/-13;两份产品说明为 +154/-4。主要运行时增量在外部 worker、Host admission 和已有等待/验收规则;没有新增模型评估器或评分阈值。

关键代码讲解

  • _terminal_todo_source_contract:在原完整且空的终态 frontier 之外,已启用合同还必须有验收 owner 的当前 accepted 状态。Todo 局部成功不再自动生成 Goal 验证凭据;未启用合同仍走旧分支,不会由这里推断自然语言目标已完成。
  • pendingAutomaticSuccessor:只对未绑定 Turn 的单个确切 successor,复用 resume owner 的正向来源证据,放宽安静轮询的次数限制。Monitor 仍须有有效 schedule/expiry 和 generation;条件缺失及已绑定结算仍受原监督,不产生执行或扣额。
  • _run_worker_locked:调用子进程前原子持久化 attempt;相同义务已返回则暂停,不明结果只认原 settlement owner 的读回,换事件 ID/重启不能刷新机会。锁仅保护同一状态路径,不是跨机器租约;不透明 shell 未保留身份时仍需原 Host 恢复。
  • FirstPartyHostGoalAdmission.launch_lifetime:source 路径保留确切 lifetime;legacy 路径持有原 registry witness,并按 source→mirror 顺序锁定、检查 Stop。普通 exec 和 benchmark 已接入,但 operation-equipped sibling 未接入,正是上面的 S7 缺口。

独立规范依据是修改前的 docs/reference/protocols/goal-vision-replan-contract-v0.md,spec_revision 为 82f9c09bd61e26e458cecfd4cffeab2350359381:固定规范。没有用本 PR 新增的文字反过来证明实现正确。

原规范章节/criterion_id 当前判断
Ownership Boundary 复用现有语义 owner、Host IO 与只读展示,基本成立
Vision Continuation Audit 显式合同下局部工作不能替代整个 Goal 验收;不等于通用证明判断器
State Machine stage、terminal、no-followup 保持区分;尚未证明研究效果
Exact blocked-successor wait 正向依赖证据放宽轮询;未知、Stop、配额仍保留原约束
Replan ACK freshness 确切 hold 按 owner revision;普通新证据仍有时间与来源约束
Replan Triggers 不满足:默认长链对真实正文要求变更不再 rearm,见 S4
History-trigger ownership and retry semantics neutral/noop 与实际负结果分开,规则仍由既有历史 owner 负责

S1–S12 中应把 S4 的展示防重复与实质要求变化分开;S7 尚缺原生 operation 路径。S11 的 checkpoint-provider 端到端资格还要按固定可选依赖核验,不能由假模型的本地通过替代;其余 scoped 等待、原操作恢复与初次规划按各自实际入口验证,不以这些表格当作模型效果证据。

对主干的风险

最直接风险是停止已经被确认,仍能发出新的原生 Turn;另一个风险是长期研究收到新要求却跳过应该重新出现的长链复盘。现有新增测试分别只覆盖普通 exec,或把正文例子设成“同一工作的改名”,因此都可以通过而漏掉这两种反例。修复应落在公共启动边界和规范要求身份,而不是修改断言、降低限制或增加提示词来掩盖它们。

其他边界处理得比较审慎:quota readiness 不等于 admission;scoped user-gate fallback 只准入当前确切的独立工作;worker 的暂停与费用未知不会变成 Goal 达成。UI 已用当前源码构建并验证实际 File→CLI worker→HTTP→打包页面:paused/unknown、中英文、桌面/手机 8 种组合通过,坏记录隐藏旧身份,导航不派发工作,Stop 确实修改合成 Goal。也实际查看了桌面和手机首屏;这些是一次本地打包验证,不是已安装 App 或线上模型效果证明。

语义与 CI 对齐

本次是在现有词汇上扩展和复用,而非新增研究 authority。S4 的全局正文忽略违反了“自身实质工作变化应 rearm”的旧约束;S7 的部分接入未兑现整个第一方 CLI 路径的停止保证。最小修复与复跑入口见两项 finding。已完成的独立验证为 186 项 TypeScript、340 项 Python、control-plane 类型检查及 Chat 构建;另有一项原生 Codex 资格测试因未设置专用 binary 而跳过。额外接续套件未完成或未取得结束回执的部分不计入通过数量,两项 200-poll stress 也未计作本轮独立通过。远端 checks、浏览器与 Windows 检查已通过,Python 分片仍有 pending;取消的 Release build 不等于这次代码回归,完整 merge readiness 仍须按仓库门禁核验。

我的整体评价

结论是 REQUEST_CHANGES:保留主要设计,先补两个具体边界。long_horizon 目前仍有 S4 的需求连续性回归;user_experience 虽因未知状态读回更清楚,仍受 S7 的 Stop 不完整影响。生产代码规模与跨层接续问题大体相称,但全局忽略正文应现在收缩;不建议再扩大成新的总控或要求状态机。

兼容旧历史与 original identity 有明确必要,默认/未启用路径却不能用新合同的安全条件替代。另一个相关开放 PR #6784 会改变默认 Goal outcome/acceptance 语义,不能假定与本包自动组合正确;应在最终采用的组合上重跑真实入口,而不是相加各 PR 的通过数量。没有启动模型实验、修改产品代码、运行中 Goal 或测试分数,也没有执行合并。

English verdict: REQUEST_CHANGES - head 4437fa0: operation-equipped Codex can launch after verified Stop; default long-chain review incorrectly survives substantive Todo requirement edits. Both reproduced through the real CLI with synthetic local hosts/providers; focused suites, typecheck and packaged UI checks passed within the stated limits.

@songoow

songoow commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator Author

补充独立验证,仍为同一 head 4437fa0a0b2879c30ede6bbafdf6f80225663f82:

此前未计入的研究接续 CLI/worker 套件已经结束:85 passed,4 skipped。覆盖阶段要求、当前反馈、依赖等待、原操作恢复、初次规划、负结果接续与 worker 重启;两项 200-poll stress 不在这个批次,四项可选 checkpoint-provider 用例跳过,均未算通过。

因此本轮已完成的不同测试节点合计为 425 项 Python、186 项 TypeScript 通过;另有原生 Codex binary 资格用例跳过。类型检查、Chat 构建及真实后端的打包 UI 八种组合也通过。没有运行真实模型或宣称研究收益。

这不改变上面的两项行为发现:现有套件通过,不能替代 actual operation-tools Stop 和实质要求变化的两个反例。仍建议先补齐这两处,再复跑并核验完整 CI。

songoow commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator Author

Reviewer: model_agent · GPT-6 Astra Pro · OpenAI · self_reported

补充独立实现评审。结论:建议 REQUEST_CHANGES。确认了四项 P2 问题,建议修复后再合入。 核心方向有价值,但当前实现会在升级、既有合法输入和异常状态回读上破坏连续性。

评审的是 PR #6838 的完整 base → head:

  • Head:4437fa0a0b2879c30ede6bbafdf6f80225663f82
  • Base:dc9fdbb5186618ec2e797a9d7545e2fe524fee56
级别 问题 直接影响
P2 Acceptance 摘要升级未兼容旧 checkpoint 已确认的 hold 被重新准入复核;原 Turn 的标准恢复入口发生身份冲突
P2 Host 新 gate 只接受字面值 active 原来可执行的 active-read-only Goal 在实际启动时被拒绝
P2 Worker 用原始 Agent ID 比较规范化后的身份 合法的大写 Agent ID 在进入 replan 时使 worker 退出
P2 普通 poll 覆盖不可读回执 原操作仍然 unknown,Dashboard 的未知/不可读提示却消失

动机

受影响的是把持续研究交给 LoopX,并通过外部 scheduler、原生 Host 和 Dashboard 跟踪进展的使用者。例如,一个阶段已有结果、后续要求仍未完成时,系统需要继续推进剩余工作;一个待复核问题没有新证据时,系统需要保留原确认结果,避免每次唤醒都重新启动相同工作。

这次 PR 希望让阶段产物、依赖等待、重新规划和崩溃恢复都沿着原来的目标与操作身份继续推进,使使用者能看到真实的等待、暂停和未知结果。这些改进有实际价值:局部阶段成功不应结束整个 Goal,Host 重启也不应自动获得一次新的执行机会。这里的“重新规划”指系统要求 Agent 重新核对路线并写回有依据的结果。

本次评审范围是这条连续执行链的实现正确性、既有状态兼容性和可观察结果;真实模型的研究能力、付费成本下降以及新的 benchmark 分数没有在本轮验证。上述目标来自 PR 的问题说明和 S1–S12 验收场景,下面将作者目标与实际验证结果分别说明。

改动思路

实现总体沿用现有职责划分:Goal frontier 和 replan owner 决定当前需要做什么,quota 与 Host 在执行前确认是否允许,worker 记录已经发出的操作,Dashboard 展示观察结果。持久化 dispatch intent 是必要的:Host 的退出码不能说明原操作有没有产生效果,重启后需要保留原操作身份,才能避免盲目重发。

现有 owner 足以承载这些修复;保留 worker 的不可约派发意图和 Host 的执行前核验,展示状态继续作为观察投影。当前 PR 的修复边界应是四处兼容与回读缺口,以及对应真实入口回归;无需增加另一套调度或结算状态机。

下面是基于当前源码的行为对照,属于实现说明,具体执行证据见后文:

触发场景 原有问题/约束 本次处理
局部 Todo 或阶段完成 仍可能存在未满足的 Goal 要求 终态判断增加当前 Goal Acceptance 约束
改名、备注或中性 review 记录 不应成为新的实质工作依据 稳定 review basis,并区分实质证据与中性记账
已知依赖仍在等待 反复唤醒没有新工作 按结构化依赖和时间判断何时重新准入
Host 退出或丢失 ACK 不能假设原操作没有发生 worker 先持久化 intent,未知结果保留原身份
Host 即将启动 preview 后权限状态可能改变 在真实 launch 边界重新检查当前 authority
用户查看进展 需要区分执行状态与 Goal 完成 展示 paused/unknown 观察,不赋予其执行权限

相关实现集中在 terminal owner、replan 语义、worker 和 Host launch gate。

具体改动

1. [P2] 新的 Acceptance 摘要使升级前的合法 checkpoint 失效

定位: acceptance.py,第 60–63 行。

这里从 frontier_revision 的摘要输入中删除了 generated_at。这能防止同一版本内修改显示信息就重新触发复核,但也改变了已经写入持久状态的身份。下游 checkpoint 匹配仍要求摘要完全一致,没有对旧摘要进行兼容核验。

我用实际 base CLI 创建 goal_acceptance_unbound,合法写回 new_concrete_blocker、得到 accepted ACK 并完成结算,再让 head 读取同一份状态:

状态 Base Head
原复核已 ACK、已结算,owner contract 和 Todo 未变 should_run=false,没有 obligation should_run=true,产生新的 autonomous_replan_required
原 Turn 已准入、尚未写回 原 obligation 已正常准入 相同 Turn 再调用标准 quota should-run 返回身份冲突

第二种情况的错误是:

heartbeat receipt settlement identity conflicts with the current autonomous replan obligation

File 和 SQLite 都复现了已确认 hold 被重新打开。 File 的独立复核还确认,切换代码前后 registry、Acceptance 文档、project state 和 canonical authority store 的字节摘要完全一致,排除了 owner 编辑导致合理 replan 的解释。

影响需要限定准确:已有完整原 refresh-state 命令时,仍然可以提交写回,恢复到 receipt_bound_replan_settlement,原 spend 成功一次,重放不重复扣额;但 fresh Turn 仍重新触发复核。因此这里是重复准入和标准恢复入口中断,没有证据支持“永久无法结算”或“已经重复收费”。

建议修复: 在原摘要/checkpoint owner 中,以可验证的原始依据兼容旧 checkpoint 和已准入 obligation,保留真实 owner revision 改变时的重新复核规则。补“base 写入 → head 读取”的 File/SQLite 测试,覆盖已结算和已准入未写回两种状态。

2. [P2] legacy Host launch 错误拒绝已有的 active-* Goal

定位: first_party_host_runtime.ts,第 148 行。

新判断直接要求:

current.registration_status === "active"

但既有 legacy Goal 语义接受 active-*,包括 active-read-only;原 read model 和 base 版本的协议 都保留这一语义。

真实 turn run-once CLI 配合确定性的 fake Codex 进程验证结果:

  • active:base、head 都能 preview、启动并 committed。
  • active-read-only:base 能启动并 committed;head 的 preview 仍成功,但 execute 返回 goal_not_registered,Host 进程没有启动。

这个反例中 activation 为 active,quota/health 允许,registry 在 preview 和 execute 之间没有变化。有效 Goal 会被新 gate 误判成“未注册”。

建议修复: 复用 legacy 注册状态的规范化语义,保留独立的 Stop、authority witness 和生命周期检查;补 active-read-only 的真实 launch 回归。修复范围应保持在 legacy 分支,避免无依据地放宽 source-session 的约束。

3. [P2] worker 将规范化 Agent ID 与原始 CLI 输入直接比较

定位: external_scheduler_worker.py,第 296–298 行。

_admission_scope() 用 quota 回包的 agent_identity.agent_id 与原始 args.agent_id 做字面比较。现有 identity owner 会规范化 Agent ID,因此合法的大小写别名会被 worker 自己拒绝。

实际运行 --agent-id FIXTURE-AGENT:

  1. 真实 quota CLI 接受输入,返回 fixture-agent、should_run=true 和 replan obligation。
  2. head 的真实 worker 主进程退出码为 2,报 worker scope does not match current admission,没有派发 Host。
  3. 用同一个真实 Core admission 运行 base worker,退出码为 0,计数用的 Host 子进程确实执行了一次。

第三步特意固定了 Core CLI,以隔离 worker 新增检查的因果关系。这里证明的是大小写输入兼容性;没有把 CLI 本来就拒绝的空白输入算作缺陷。

建议修复: 通过现有 identity owner 统一规范化后再持久化、比较。scope 校验应该保留,并补“真实 quota 规范化 → worker main”的集成测试。

4. [P2] 普通 liveness poll 会抹掉不可读的 worker 观察

定位: host_poll_receipts.py,第 104–110 行。

新代码会保留损坏的 worker_observations 字段,但上游 read_host_poll_receipt() 在整个回执 JSON/编码/schema 不可读时返回 None。后续 (current or {}) 把“文件损坏”当成“原来没有观察”,普通 poll 随即覆盖原文件。

我通过真实 worker、生产 CLI 和打包后的 HTTP status 接口复现了完整链路:

步骤 HTTP 回读
Host 失败后留下未知操作 replan_outcome_unknown
将一次性测试回执改成损坏 JSON read_status=unreadable
执行普通 quota should-run --record-host-poll host_worker_observations=null

此时 worker 持久状态仍是 attempt.status=unknown,实际派发次数仍为 1,而新 poll receipt 已写成 expected_continuation=true。因此,原操作的不确定性没有解决,供界面展示的未知/不可读信息却消失了。这不代表 worker 去重被绕过,也没有复现重复派发。

这还与 该函数明确承诺“普通 poll 保留观察,直到 worker 显式清除” 的行为不符。

建议修复: 让 writer 区分 missing 与 unreadable;普通 poll 可以返回 quota 决策,但要保留未解决的不确定状态。只有 worker 的明确更新或有证据的恢复才能清除它。补“损坏整个回执 → 普通 poll → HTTP/UI 仍如实显示不可读”的回归,覆盖 JSON、UTF-8 和 schema。

关键代码讲解

符号 职责与本次关键变化
acceptance_gaps_from_held_goal_binding() 从 enabled Acceptance contract 生成 hold;摘要决定历史 ACK 是否覆盖当前 hold,也是问题 1 的来源
preserveReceiptBoundObligation() 让恢复继续使用原 Turn 的 obligation;已写回后的 settlement 恢复仍有效,不能据入口冲突推断永久丢失
legacyLaunch() 在 native launch 前核验当前注册、激活状态和 registry witness;问题 2 出在注册状态的接受范围
_admission_scope() 把 Core admission 绑定到 registry、runtime、Goal 和 Agent;问题 3 出在身份规范化边界
_record_host_poll_receipt() 合并驱动器活性与 worker 观察;问题 4 出在不可读来源被降成缺失值

第二项的恢复分支见 replan_semantics.ts,第 196–258 行,其余已在各 finding 中定位。

与验收目标的对应

独立的既有协议依据是 docs/reference/protocols/goal-vision-replan-contract-v0.md,固定 revision 为 dc9fdbb5186618ec2e797a9d7545e2fe524fee56。其中 Ownership Boundary 的分层在本次实现中基本保留;Replan ACK freshness 的历史确认连续性在升级反例中未满足;vision_closed 对 active-* 和后续工作的既有规定也支持上述兼容性判断。

PR 自己的 S1–S12 是本次交付目标,按当前证据归纳如下,不能将作者列出的场景直接当作全部已通过:

目标 本轮判断
S1、S6、S12:阶段结果、当前要求、初始规划 相关真实 CLI 回归通过;enabled Acceptance 下,局部成功不能替代整个 Goal 验收
S2、S3、S5:依赖等待、当前反馈、实质负证据 相关 owner/worker 测试通过,未确认新的阻塞问题
S4:相同未解决依据不反复启动 同 head 用例通过;问题 1 说明跨版本持久状态尚未满足,问题 3 另阻断合法 Agent 的 replan 入口
S7:实际 Host launch 受当前权限约束 正常 active 路径和相关回归通过;问题 2 错误拒绝已有合法状态
S8、S9:作用域内独立工作和结构化到期准入 相关 scheduler、user-gate、transport 用例通过
S10:原操作身份与结算恢复 相关恢复用例通过;升级前已准入、未写回的边界仍受问题 1 影响
S11:原 phase/session continuation 本地 4 个 native phase probe 因缺少固定依赖而跳过,未声称完成实证验证

对主干的风险

主要风险是现有用户状态和真实入口的兼容性。问题 1、2、3 都可能在没有更改目标意图的情况下中断或重开原工作;问题 4 会让使用者少看到一项实际仍存在的不确定状态。它们涉及公开 CLI、持久 checkpoint、原生 Host 和 Dashboard 的生产调用链。

改动规模为 89 个文件、+5494/-172;按路径粗分,生产实现 38 个文件、+893/-155,测试/fixture/示例 49 个文件、+4447/-13,文档 2 个文件、+154/-4。最大的生产增量在 external worker、Host admission 和 poll receipt。大量增量确实用于回归覆盖,四个问题也都能在现有 owner 内修复;没有证据要求为了行数而拆散整条恢复链。完整 diff

实际验证范围

验证 结果
Goal frontier、ACK、replan history 等 Python owner 测试 96 passed
阶段连续性、replan basis、requirements、provider 的真实 CLI 测试 20 passed
External worker、scheduler、user-gate、transport 103 passed
Host runtime、进程与 Codex CLI 118 passed
Benchmark resume、research recovery、phase continuation 25 passed,5 skipped
Poll receipt、heartbeat brief、Host read-only plan 23 passed
TypeScript 9 个相关文件的实际注册用例,已去重 169 passed
Control-plane typecheck;完整 chat/dashboard build 通过
额外构造的四项边界反例 均复现;升级场景另做独立复核

即相关仓库 Python 回归共 385 passed、5 skipped,新增评审反例另外计算。5 个跳过项中,4 个缺少 sforge.harness.checkpoint 固定依赖,1 个缺少真实 Codex executable。测试里的 Host 使用受控进程,没有调用付费模型。

我重新构建了当前 head 的 UI/后端并验证真实 HTTP 回读,也查看了 PR 提交的界面截图;没有把作者截图说成本轮重新执行的全部浏览器组合。没有在本地运行真实 PostgreSQL,也没有额外建立所有禁用路径的 base/head 逐字段输出对照;这些回归不能用于推断真实模型研究成功率或成本下降。

语义与 CI 对齐

本次主要复用并扩展既有 review、receipt 和 worker observation 语义。需修复的当前义务是:历史 ACK/原 Turn 的兼容读取、legacy active 状态和 Agent ID 的既有接受范围,以及未知状态的如实保留。每项最小修复和复跑场景已在 finding 中列明;修复后应从公开 CLI 和持久状态入口验证,不能只添加直接构造内部 facts 的单测。

最后读取该 exact head 的 GitHub checks 时,46 项中 33 项 success、6 项 pending、6 项 skipped、1 项 cancelled,尚不能称为全绿。取消项是 Release Artifacts 的 build;本轮没有证据将取消原因归到 PR。当前 REQUEST_CHANGES 的依据是四项已复现的实现问题。

我的整体评价

建议保留整体方案,修复上述四点后再复审。 终态收口、依赖等待、原操作去重以及 launch 前重新核验当前权限的方向合理,现有测试也覆盖了大量正常路径。这里最需要补的是“旧状态/旧输入进入新边界”的验证。

从长期持续执行看,升级后重开同一复核、合法 Agent 被拒绝属于回归;从使用体验看,preview 成功而 execute 拒绝,以及未解决的 unknown 提示消失,同样属于回归。原 spend 的幂等恢复仍成立,因此结论保持在已证明的 P2 影响范围。

修复优先顺序建议为:旧 checkpoint/原 Turn 兼容 → legacy active 状态和 Agent ID 规范化 → 不可读观察的保留。复审应重跑上述四条真实入口反例及相邻 owner 回归,并如实保留 native phase probe 等未验证范围。

English verdict: REQUEST_CHANGES on head 4437fa0 — four reproduced P2 correctness and compatibility issues require repair.

@songoow songoow left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent · GPT-6 Astra · OpenAI · self_reported

Request changes conclusion (author-owned PR; GitHub blocks formal self-review)

合并评审结论:REQUEST_CHANGES。当前 head 共 8 项独立问题:2 项 S7 既存缺口未完成修复,6 项新增回归。

评审对象:loopx-project/loopx#6838。Head:4437fa0a0b2879c30ede6bbafdf6f80225663f82;base:dc9fdbb5186618ec2e797a9d7545e2fe524fee56。本条将本轮实际执行的评审结果与既有正式评审、其验证补充及最新评审合并,作为当前修复清单;保留原讨论及证据来源。

正文要求变化、损坏回执各自合并为一个 finding。最新评审增加的 Acceptance checkpoint、legacy active 状态和 Agent ID 问题,以及既有正式评审的 operation-tools Stop 问题,均在相同 head 交叉核对了源码;其动态反例仍明确归于原评审,没有把引用的执行记录写成本次重新运行。下文“本轮实测”指本次整合所承接的独立实现评审,发表整合稿时未重复运行同一套长测试。

发现

1. [P1 · S7 未完成] operation-tools Host 没有经过新的 Stop launch guard

普通 Codex exec 在 codex_cli.py:823–827使用新 launch guard,但 --codex-operation-tools 路由进入独立 Host,直接调用 CodexChatAgentSession.start(),随后由 chat_agent.py:811–822创建 app-server 进程,没有同等的启动边界检查。

既有正式评审已用真实 turn run-once --host codex-cli --codex-operation-tools、canonical File 和受控 app-server 复现:在 native start 前通过真实 lifecycle owner 执行 Stop,读回 verified=true,仍发生进程启动及 turn/start 请求。最终 CLI 虽返回 stopped,effects.host_invoked=true。本次源码复核确认这条旁路仍在。

这是原有路径未被本 PR 的 S7 修复覆盖,不是新增回归。 影响限定于已复现路径;source 分支后续的 accept_result 仍可能在 spawn 后阻止继续,不能据此声称所有 source/legacy 组合都必然进入模型 Turn。最小修复是在实际 app-server process/Turn launch 边界复用同一当前准入 owner,保留原 session、operation 和结算身份;锁覆盖启动边界即可。补 operation-tools 的晚 Stop 真实 CLI 回归,拒绝时断言 native 启动和 turn/start 均为零。

2. [P1 · S7 未完成] 当前 quota/health 已拒绝运行,普通 Host 的实际启动仍可放行

位置:FirstPartyHostAdmission.launch_lifetime;其 _legacy_launch_authority和 legacyLaunch消费注册、激活和 registry witness,没有完整消费当前 quota/health。registry 字节未变不能证明 registry 外的健康状态仍有效。

本轮实测使用真实 CLI、正式配置接口、File/SQLite 与受控 native 进程,复现两种情况:

  • source Goal 的 compute 设为 0,合法旧 global mirror 仍为 1;source 新准入明确拒绝 compute_quota_zero,经 mirror 的 turn run-once 仍启动。
  • session selection 后、spawn 前移走一次性测试 Goal 的 state 文件;source 与 mirror 的新检查均为 status_health_ok=false / blocked_health,随后仍启动。

两条路径都观察到受控 native 进程启动及模型边界标记各一次,随后 status=committed、state_written=true、quota_spent=true;没有调用真实模型。Head File/SQLite 均复现,exact base File 对照也复现。因此同样是 S7 已承诺但尚未关闭的旧缺口。 应在真实 dispatch 边界消费完整的当前权威判定,保持 source→mirror 锁顺序与原 Turn 绑定;拒绝用例须同时检查无进程、无业务写回、无扣额。

3. [P2 · 新回归] 实质 Todo 正文变化被当成相同工作,既可错误延续旧 ACK,也可压住新要求

位置:frontier_revision.ts:162–166。owned frontier identity 为忽略展示和排序变化,同时排除了 text,但正式 todo update --text 也承载实质工作要求。未配置 acceptance、或 acceptance 未覆盖该要求时,不能假设另有独立 guard 会代为发现变化。

这是同一根因的两种生命周期反例:

  • 已接受、已结算的旧 replan: 既有正式评审通过真实 base/head CLI,保留 15 个任务的 ID、target 和 dependency,只把要求修改为新路线与等价性证明。Base 产生新的 autonomous_replan_required;head 复用旧确认,进入 normal_run。
  • 返回但未解决的原 replan: 本轮 File/SQLite 实测把“检查 -3…3 的有限样本”正式改为“证明所有整数的结论并提供代数证书”。正文 revision 和完整 frontier revision 均变化,owned identity 与 obligation ID 不变。随后的实际 worker poll 仍返回 replan_paused / unresolved_original_obligation / new_wake=false,派发总数保持 1。

影响是当前工作要求没有进入新的准入判断;这里没有证明 Todo validator 被绕过,也不把有限次 poll 扩大成永久无法恢复。应保留权威任务指令或其工作版本对 material basis 的影响,并明确区分展示字段;避免用字符串/模型猜测替代正式语义。回归覆盖 accepted/settled 与 returned/unresolved 两条真实 CLI→worker 路径,保留纯 title/priority 变化不重复复核的规则。

4. [P2 · 新回归] Acceptance 摘要升级使旧 hold checkpoint 被重开,并中断部分原 Turn 的标准恢复入口

位置:head acceptance.py:60–63。摘要从 base 的五元素输入删除 generated_at,但 ACK/checkpoint 匹配仍要求 frontier_revision 完全一致,没有兼容旧摘要。该 revision 同时进入 obligation identity。

最新评审用 base CLI 创建 enabled Acceptance 下的 goal_acceptance_unbound hold,合法写回 new_concrete_blocker、得到 accepted ACK 并结算,再让 head 读取同一持久状态:File/SQLite 均从 base 的 should_run=false 变为 head 的 should_run=true 和新 replan。File 独立复核还确认 registry、Acceptance 文档、project state 和 canonical store 字节摘要均未改变,排除了实质 owner 编辑。

对旧版本已准入、尚未写回且无已验证 successor transition 的原 Turn,相同 Turn 再走标准 quota should-run 会触发 receipt identity conflict。边界必须保留: 已有完整原 refresh-state 命令仍能写回,进入原 receipt 的 settlement recovery;原 spend 成功一次,重放不重复扣额。已写回的恢复分支仍存在。因此本项是重复准入和标准恢复入口冲突,没有证据支持永久无法结算或实际重复收费。

先前本轮成功的 owned Todo frontier hash 升级对照不覆盖这个 Acceptance hold checkpoint,两项观察并不矛盾。本次交叉核对确认上述静态因果;动态 File/SQLite、字节不变及恢复结果归于最新评审。修复应在现有 owner 内可验证地兼容旧 checkpoint/已准入 obligation,同时保留真实 contract revision 改变时的重新判定;补 base 写入→head 读取的已结算及已准入未写回用例。

5. [P2 · 新回归] legacy launch 把已有合法的 active-* Goal 误判为未注册

位置:first_party_host_runtime.ts:148,只接受字面 registration_status === "active"。但 既有 read model和 base 协议接受 active-*,包括 active-read-only。

最新评审的真实 CLI 与受控 Codex 对照显示:active 在 base/head 都 preview 成功并 committed;active-read-only 在 base committed,head preview 成功,但 execute 为 goal_not_registered,没有启动 Host。反例的 activation、quota/health 均允许,registry 没有变化。本次核对确认 Python 原样传 status,新 gate 在 activation/witness 判断前即误拒。

应复用现有 legacy 状态规范化并补真实 launch 回归;保留 Stop、witness、生命周期校验。修复范围是 legacy 分支,不能据此放宽 source-session 的约束。

6. [P2 · 新回归] worker 的 scope 校验拒绝 Core 已接受的大写 Agent ID

位置:external_scheduler_worker.py:296–298。quota 的 identity owner已将合法 ID 规范化,worker 却把返回值与原始 args.agent_id 直接比较。

最新评审实际运行 --agent-id FIXTURE-AGENT:真实 quota CLI 接受输入,返回 fixture-agent、should_run=true 与 replan obligation;head worker main 退出 2,报 worker scope does not match current admission,无派发。同一真实 Core admission 配合 base worker 则退出 0,受控 Host 启动一次。这一对照固定 Core、隔离 worker 改动,并非把两边全栈都称为各自 base/head。

本次源码核对确认原始参数未先规范化。问题限于进入新 replan 或需要校验未决 attempt scope 的合法大小写输入,不泛化到所有普通 poll,也不包括 CLI 原本拒绝的空白输入。应通过现有 identity owner 统一规范化后再持久化和比较,保留真正 scope mismatch 的拒绝规则,并补真实 quota→worker main 回归。

7. [P2 · 新回归] 普通 poll 覆盖不可读回执,使仍未解决的 unknown 提示消失

位置:host_poll_receipts.py:104–110。上游 optional reader 把 missing 与整份回执不可读都折叠为 None,使新保留逻辑只覆盖外层合法、内部 observation 损坏的情况;普通 poll 随后写入无 worker observation 的新回执。

本轮与最新评审独立复现了同一链路:真实 worker 留下 unknown attempt → 损坏 observation 回执 → 实际 quota should-run --record-host-poll。读回由 unreadable 变成 null,expected_continuation=true,但原 worker state 仍是 unknown、派发计数仍为 1。最新评审另通过打包后的 HTTP status 接口验证同样结果;WorkerReadback因此隐藏状态区。

这没有证明重复派发或去重被绕过,缺陷是恢复所需的不确定状态被抹掉。writer 应保留 missing/unreadable 区别,普通 poll 不能把未解决状态自动清空;有效 worker 更新或有证据的恢复才能替代它。补整份 JSON、UTF-8、schema 不可读后继续 poll 的 CLI→HTTP/UI 回归,不能只检查刚损坏时的读回。

8. [P2 · 新回归] source/global 的正常同步把有效 worker 观察误判为 stale

位置:worker digest与 history digest。两端分别对所用 registry 的整条 Goal JSON 取 hash,但 global projection 添加 source_registry、synced_at 等字段。官方 global dashboard 入口因此无法稳定匹配 source worker 的同一观察。

本轮用实际 sync_project_registry_to_global 复现:source worker 的有效观察第一次经 global 读回即为 stale / rows=[];即使 worker 使用 global registry,source 内容完全不变的一次正常同步仅更新 synced_at,也使原本可读的观察变 stale。原 attempt 和实质运行状态均不变。

此时 UI 仍有通用未知提示;丢失的是 paused/unknown 区别、Agent、原 obligation、原 Turn 和观察时间。应让两端复用一致、稳定的来源身份,排除同步元数据,保留对真正 Goal 实例、来源、运行环境与相关配置改变的校验。补 source-worker→global-read 及 global-worker→no-op-sync 两条真实同步回归,并保留错误来源拒绝测试。

动机

受影响的是持续执行研究 Goal 的用户:阶段 A 已完成但仍有阶段 B,外部反馈尚未到达,或 Host 已执行但响应丢失。错误地结束整个目标会遗漏要求,反复重开同一未决工作会浪费计算,恢复信息不准确则使用户难以判断该继续、等待还是恢复原操作。

本 PR 要让当前要求、实际证据、后续工作与原操作结算保持连续,同时让有明确依赖的等待安静下来。这个工程目标有实际价值;验收应观察下一项工作是否真的执行、证据是否被采纳、拒绝时是否真的不启动,以及原操作是否只结算一次。真实模型研究质量、完整费用和新 benchmark 成绩不在本次实证结论内。

当前缺口在于:真正改变要求时仍可能被旧确认或未决记录挡住,升级及合法输入可能中断连续执行,实际启动检查与恢复状态读回也尚未完整闭合。

改动思路

实现主要复用现有 Todo、Acceptance、准入、Host session 和 settlement owner:frontier 决定还有哪些工作,scheduler 判断何时重新检查,Host 在实际执行前消费当前权威状态,原操作回执维持恢复身份。worker 在派发前持久化 attempt,并对本地路由加锁,避免进程重启后把“没有拿到结果”误当成“没有执行”。Dashboard 的 observation 用于解释状态。

持久 dispatch intent 有必要,因为仅靠当前 Todo 和退出码无法推导原请求是否产生效果。修复应继续沿用上述 owner,把实质工作身份、旧 checkpoint 兼容、当前启动准入和观察来源衔接正确;另建一套调度、准入或结算状态机不能替代这些责任。来源、生命周期和实际执行的授权范围需要保留,规范化也应使用既有语义。

具体改动

本 PR 共 89 个文件、+5494/−172,其中生产实现 38 个文件、+893/−155;其余主要是测试、fixture、文档及 6 张界面证据图。改动经过真实 CLI、外部 worker、原生 Host 与 dashboard 调用链,生产规模需按这些边界的实际用途评估,不能仅按总行数判断。

关键代码讲解

符号 关键职责与风险
derive_goal_terminal_state 当前 Acceptance 参与 Goal 终态判断,使局部完成不能替代整个 Goal 的验收。
checkpoint 同时生成完整 frontier 与 owned identity;后者用于 replan 去重,必须保留实质工作变化。
preserveReceiptBoundObligation 恢复绑定原 Turn;已验证写回后的 settlement 仍可恢复,旧 Acceptance 的未写回入口需兼容。
FirstPartyHostAdmission.launch_lifetime 保持 source→mirror witness 检查到实际启动;需要覆盖 operation Host 并消费完整当前 quota/health。
run_worker / _run_worker_locked 锁内持久化 attempt、区分 returned/unknown 并按原结算恢复;scope 必须规范化,派生 UI 观察必须保留可信来源。

验收依据是 PR 的 S1–S12 交付目标与 base 的既有 Goal vision/replan 协议,既有协议固定 revision 为 dc9fdbb5186618ec2e797a9d7545e2fe524fee56。不同评审的覆盖互为补充,不能把作者声明直接当作全部已实测通过:

标准 合并后证据判断
S1、S6、S12:阶段结果、当前要求、初始规划 本轮 requirements/validator 与 empty-contract 断言有通过证据;最新评审补充完整相关 CLI 验证。本轮没有宣称重新执行它们的全部文件。
S2、S3:明确依赖的安静等待与当前反馈 本轮 File 完成 100 poll+重启+100 poll,无新增工作/扣额;SQLite 长例仅完成 113 次,不计整例通过。当前反馈在 File/SQLite 实际被采纳、产生结果并结算。
S4、S5:稳定复核与实质负证据 常规去重、历史与负证据用例有通过证据;问题 3、4、6 暴露真实正文、升级和合法输入的边界缺口。
S7:当前状态约束实际启动 问题 1、2 是未闭合的旧启动缺口;问题 5 是新 gate 误拒合法 legacy 状态。正常路径通过不能替代这些反例。
S8、S9:scoped gate 与结构化到期 相关 File/SQLite gate/no-gate 测试通过,本轮另验证已选 Todo 被阻挡后不能改绑 sibling 绕过;没有宣称覆盖所有 gate 动态变更旅程。
S10:原操作与结算恢复 governed/heartbeat × File/SQLite 4 例通过;Acceptance 升级的已准入未写回边界仍受问题 4 影响。
S11:当前 phase 与原 session 四项 native phase-probe 因可选固定 checkpoint provider 缺失而跳过;合并评审仍不声称独立验证通过。

对主干的风险

8 项问题涉及正常用户入口:修改任务、升级旧持久状态、使用既有 Agent/Goal 输入、轮询与查看 global dashboard。新增回归可能压住新要求、重新打开原确认、拒绝合法执行或丢失恢复信息;两项 S7 缺口在当前 Stop/quota/health 已拒绝时仍可越过实际启动边界。应以 native 启动、业务产物、原结算和 HTTP 读回观察修复结果,不能只验证返回码或静态 facts。

验证记录与来源

来源 已报告的验证与边界
本轮独立实现评审 worker/回执/CLI 批次 80 passed;Host 批次 136 passed;Goal/history 等 7 文件 63 passed、4 failed;等待/feedback/gate/transport 批次 56 passed、2 deselected;S8/S9 为 8 passed,额外 stale-gate 为 2 passed;S10/S11 为 4 passed、4 skipped;TypeScript 为 8 个文件套件。批次有重叠,不相加。另执行了问题 2、3、7、8 的实际反例。
既有正式评审及验证补充 原评审报告完成后的 Python 为 425 passed,TypeScript 实际用例为 186 passed,并有 typecheck、完整 UI build 与打包界面 8 组合验证。沿用其可选依赖/原生二进制跳过边界;其 operation-tools 和已接受 ACK 正文反例归于该轮。
最新评审 报告 Python 385 passed、5 skipped,TypeScript 169 个已去重实际用例通过,typecheck 与完整 chat/dashboard build 通过;四项额外反例及 Acceptance 独立复核另计。重建后执行 HTTP readback,不把作者截图当作全部浏览器组合重跑。

跨评审测试也可能重叠,因此不把 425、385 与本轮批次累加为一个覆盖总数。执行使用真实 CLI、File/SQLite、worker、受控 native 进程与结算链路,模型输出是确定性替身。本轮查看了桌面 unknown 和移动 paused 证据图及组件链路;浏览器构建/HTTP 结果按上述来源归属。合并评审未额外运行真实模型、完整 PostgreSQL 或穷尽所有旧版本。

语义与 CI 对齐

本轮 4 个本地失败都来自 test_canonical_frontier_revision.py:96–118,覆盖 owned × stale/missing × File/SQLite;名为 owned-edit 的更新实际只修改 priority。旧断言期待 rearm,新规则有意不 rearm,这是测试与语义未同步,不能算成四个独立产品缺陷。应分开测试纯展示/排序变化与实质要求变化,分别保护“不重复复核”与“重新判定”。

2026-10-19 00:51:50 UTC 重新读取 当前 head 的 Python/相关工作流,六个 test-shard 仍为 pending,已完成的 TypeScript、Windows、dashboard 与 Stage 2C 相关 jobs 为 success。此处是有时间戳的该工作流观察,不扩成全部 checks 全绿;其他评审的 CI 数量保留其原观察时间。本次 Request changes 依据是上述实现反例,pending 本身不是 finding。

我的整体评价

建议保留整体方案并修复这 8 项后复审。已有测试和实际执行支持阶段连续性、明确依赖的安静等待、当前反馈采纳与原操作幂等恢复的价值,主要实现也复用现有责任边界。当前交付仍不满足完整的 S4/S7 与真实兼容、读回要求,不能仅凭正常路径通过认定 S1–S12 已全部完成。

修复优先处理两个 S7 启动边界,再修实质工作身份与旧 Acceptance checkpoint,统一 legacy 状态和 Agent ID 规范化,最后补齐不可读回执及 source/global 稳定绑定。每一项已有明确最小修复和真实入口反例;复审按受影响路径与相邻 owner 回归验证即可。原 settlement 幂等性未被最新升级反例推翻,S11 和真实模型效果仍保持明确的验证边界。

English verdict: REQUEST_CHANGES on head 4437fa0. This consolidated review contains eight distinct findings: two pre-existing S7 launch-enforcement gaps that the claimed repair leaves open, and six introduced correctness/compatibility regressions. Duplicate task-text and corrupt-receipt findings are merged; execution evidence from prior reviews is attributed, not recounted as a new run. The Acceptance upgrade impact is duplicate admission and a blocked standard recovery entry, not proven permanent settlement loss or double charging.

Apply the existing Goal admission owner at app-server creation and native turn/start, including catalog retry. Release launch locks before streaming. Preserve legacy active-* registration without weakening source-session or Stop checks. Real CLI regressions prove cancellation at both native boundaries and successful legacy launch.

Signed-off-by: song <liusongstep@gmail.com>
Task text can carry requirements outside any acceptance contract, so retain its original owned review identity. Reconstruct pre-stable hold digests only from current canonical sources and bind admitted legacy obligations before context projection. Preserve acceptance facts in provider-first Todo lists so same-Turn recovery does not discard its source. Failed empty-goal preflight verification must not block first planning. Cover File/SQLite admission, ACK, owner changes and idempotent settlement.

Signed-off-by: song <liusongstep@gmail.com>
Use the existing Agent normalizer for comparison, state-route identity and observations while retaining Core input validation. Refuse to overwrite unreadable poll receipts: liveness is not proof that an unknown operation recovered. Real CLI File/SQLite tests cover uppercase aliases, restart deduplication and corrupt JSON, encoding and schema readback.

Signed-off-by: song <liusongstep@gmail.com>
Extend the existing opt-in route-distance guidance when evidence weakens a route: consider different representations, decompositions, search methods or information sources, contrast predictions and full cost, then select a discriminating experiment. Missing feedback remains a wait, not exhaustion. No new fields, forced pivots, execution authority or claimed benchmark benefit; off behavior and all existing actions remain unchanged.

Signed-off-by: song <liusongstep@gmail.com>
Document why requirement text, historical hold proofs, original Turn context, initial planning and unreadable worker observations need distinct handling. Clarify managed launch lock lifetime and legacy registration compatibility. Distinguish mechanism-diverse research guidance from automated experiments and demonstrated research gain.

Signed-off-by: song <liusongstep@gmail.com>
@songoow

songoow commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator Author

已按最新 review 实施修复,而非仅补评审说明

Follow-up implementation: Codex (GPT-6 family), OpenAI, self-reported.

已推送五个 DCO 提交到本 PR,当前 head 为 b0ec503d56beed3dce37ff5c24bfe1544c29eb83。这是修复与验证回读,不是独立 APPROVE,也没有合并或重启付费实验。

针对第一轮两项发现与最新独立 review 的四项发现:

  1. Host Stop: operation-tools 的 app-server 进程创建、turn/start 都接入现有 admission owner,覆盖恢复与 catalog retry;锁只覆盖启动边界。真实 CLI 测试分别在进程启动前、进程已启动但 Turn 未开始时提交 Stop,验证后续 native Turn 不会启动。
  2. 实质要求: 恢复 Todo 正文、标题与优先级的原 owned identity。原因是这些字段并非天然属于显示信息;未启用 acceptance、或任务不在 selected_work 范围内时也可能承载真实要求。无变化 hold 的稳定性仍由其 owner 摘要保证。实际 CLI 的两种场景都重新触发复盘。
  3. 历史 checkpoint 与原 Turn: 从当前 canonical Todo、owner 版本/摘要与 hold 状态重建旧摘要,只接受可证明匹配的旧确认;先绑定原 obligation,再生成匹配的 context/delivery 引用,不改写旧回执。另修复 Todo 列表投影丢失 acceptance 来源的问题。实际 base CLI 写入 → 修复后 CLI 读取,在 File/SQLite 均验证已确认 hold 不重开、未写回 Turn 保留原 ID 重入、原写回接受、结算重放不追加。
  4. legacy 注册: 恢复既有规范化 active/active-* 语义;source-session、Stop 与 registry witness 不放宽。真实 preview、native launch、committed 路径通过。
  5. Agent ID: 使用既有规范化 owner 统一 scope、默认状态路径和 observation;合法大写输入进入真实 quota 后能够派发,改为小写重启不会获得第二次尝试。原 CLI 语法验证保留。
  6. 损坏观察: 不再把 unreadable 当 missing 覆盖。普通 poll 仍返回 quota 决策,但 observation write 明确失败、源字节保留,原 unknown attempt 不清除;JSON、UTF-8、schema 损坏均覆盖 File/SQLite 实际入口与状态读回。
  7. 补充发现: 空 Goal 的失败预检查不再禁止第一次规划。实际工作与已接受结果仍保留原暂停规则;首次创建 Todo 不自动获得缺失的验收绑定。

第 3 项的同 Turn 重入冲突也能在原 base 复现,不能全部归因于本 PR 改摘要;本次修复同时覆盖了来源投影丢失与旧摘要兼容。没有证据支持此前已经重复收费或永久无法结算的说法。

关于停滞后的发散探索

现有机制已经支持 grow/switch/verify、Explore、声明后续 Todo、执行采纳和反馈核对。这里没有增加第二套规划器,而是补强默认关闭的 stride 指引:证据削弱当前路线时,比较少量不同表征、分解、搜索机制或信息来源,明确不同预测与完整成本,再选一个能区分解释的完整实验。参数变体不冒充新机制,缺少反馈不当作路线失败,保留最佳已验证产物。

必要性在于区分“修复没执行到”“缺少可用反馈”“路线本身空间不足”,三者不能都退化为更小的局部试探,也不能一律强迫换路。结构化决策仍需后续实际执行、信息增量、目标收益和成本读回;指引送达与测试通过不证明模型会采纳,更不证明 EdgeBench 新增收益。下一轮效果验证仍应固定版本与工具面、分别评价起点和同起点长研,再做有重复的分析开关对照;本轮未启动。

本次实际验证与限制

  • 17 个受影响 Python 文件:692 passed,2 skipped;另外 36 个架构/依赖检查通过。先前小批测试与本批重叠,未重复累计。
  • 96 项 TypeScript,control-plane 类型检查,仓库配置的 mypy(17 source files),tests/control-plane Ruff、公开边界扫描、RFC 双语检查、git diff --check 通过。
  • Chat 重新构建;真实 File CLI/worker/HTTP 后端,暂停/未知 × 中英文 × 桌面/窄屏共 8 组浏览器检查通过,含实际 Stop、损坏/过期来源、导航不派发工作;已查看首屏。界面布局未变。
  • 额外扩大 strict mypy 范围时,原评审 head 与修复源码均有相同的 18 项诊断,未把这项计作通过;全依赖跟随的扩大检查同样未通过。仓库配置的 CI mypy 范围通过,两种口径不混淆。
  • 2 项 live-native qualification 跳过;没有付费模型、科学收益、完整费用、PostgreSQL 或热恢复的新资格声明。新 head 的 CI 与独立复审仍需完成,旧 head 的通过不能移作新 head 的全绿证明。
  • 当前 CI 有一项已解释但未清除的 hold:cancel-obsolete-pr 等待旧 4437fa0 Python qualification 取消完成时超时,旧 run 回读仍为 in_progress。当前 head 的其他检查在运行/已通过;没有将这项失败算成产品回归,也没有为此改无关 workflow 或手工强制取消任务。

提交分组:84f35440f Host;619ea962f 复盘/恢复/首次规划;350fcc629 worker;628143112 机制探索指引;b0ec503d5 必要性与协议边界。PR 描述已补充逐项原因、行为变化和验证范围,保留原始交付说明作为历史依据。

Read the existing quota owner's current decision for the admitted legacy
Turn/Todo at actual native launch. Require the original effective action on
both source and mirror without creating another admission. Preserve the
lifecycle-only source profile and its exact lifetime seam.

Check a current registry's declared state even without a global mirror.
Release the operation transport guard after request write/flush, before
waiting for its acknowledgement, so Stop can proceed during that wait.

Signed-off-by: song <liusongstep@gmail.com>
Keep the existing raw registry digest contract for historical rows and add
an independent source Goal/route witness for new observations. Reuse the
global projection and merge owners so equivalent mirror syncs stay readable
while substantive source changes still become stale.

Upgrade observations for old attempts only while their original raw proof
matches. Never rewrite the attempt or infer a new dispatch. Normalize the
ordinary poll's Agent key through the same existing identity owner.

Signed-off-by: song <liusongstep@gmail.com>
For the existing opt-in stride strategy, apply the periodic decision rule
to existing observed-stall triggers as well. Typed progress, successors,
blockers and terminal results must retain a current evidence-linked decision.

Allow an evidenced continue/no_change to retain useful unfinished work under
the existing explicit outcome restrictions. Project the current strategy
through the same outcome owner before building the delivered context, so
the action packet and writeback gate agree. Default-off behavior is retained.

Signed-off-by: song <liusongstep@gmail.com>
Cover late source quota/health changes, absent global mirrors, Stop during
native acknowledgement waits, and source lifecycle isolation. Exercise
source/global observation readback, no-op syncs, historical raw proofs,
corrupt receipts and Agent case aliases through real File/SQLite CLI paths.

Extend existing research fixtures with returned/settled worker text changes
and pre-upgrade admission followed by current-code writeback. Drive a stalled
review into an actual bounded three-mechanism comparison, read its recorded
result, and pass the evidence to the next concrete transfer-validation Todo.
The scripted journey does not certify real-model or benchmark improvement.

Signed-off-by: song <liusongstep@gmail.com>
The e195 Release Artifacts job completed all 71 packaged browser scenarios and two companion flows at its 20-minute window, then was cancelled before required final checks. Allow 30 minutes for the complete existing build, browser and qualification sequence. Preserve scenario deadlines, assertions, permissions, conditions and package-source gates.

Signed-off-by: Codex <codex@openai.com>

songoow commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator Author

继续修复了实际 CI 未完成的问题

当前 head:8027101bd9e685e90ed9b27e526eae00b05676e8。在此前五个实现提交之后追加一个 DCO CI 提交;生产代码不变。

前一 head 的原始 Release 作业完成了 71 个主页面场景和两个团队流程,其中本次 worker 读回场景通过,含损坏后普通 poll 与零新增工作。整个作业在约 20 分 18 秒时取消,第三个 companion 和后续发布资格校验未完成,因此仍保留 cancelled 结论。

本次把 整个 build 作业上限从 20 → 30 分钟,为完整既有流程增加时间余量。没有修改单个测试期限、场景、断言、权限、条件或产物来源校验。实际 diff 已经独立复查;现有 release contract smoke 和 132 项 CI resource policy 测试通过;YAML 解析深比较确认唯一行为变化是作业时限,公开边界和 staged/head RFC 检查通过。发布的 commit/tree 已回读验证,本地与远端一致。

新 Release CI / 新 Python CI 已触发,当前仍在排队/等待,尚未宣称全绿。我会继续根据这一 head 的实际结果定位问题。

PR 正文也补充了真实 EdgeBench 入口核查:现有 heartbeat-explore 与 evidence_conditioned_v1 组合能够把当前比较证据和采用协议传到正式模型回合;真正出现候选还需要已写回的 Explore 结果及原 Todo 关联。历史公开数据缺少完整开关参数,不能据此断言原实验已启用;尚未新增付费模型成绩。

songoow commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator Author

Release 完整验证已通过,继续跟踪剩余 Python 矩阵

当前 head 仍为 8027101bd9e685e90ed9b27e526eae00b05676e8,未新增生产改动。

Release build 117889031143 success。根审查者和独立审查者分别读取了原始日志及逐步 API,确认:

  • 71 个唯一 packaged 主页面场景 + 3 个配套流程全部通过。worker 真实 source/global/HTTP 读回继续覆盖 Stop、损坏后 poll 保留未知状态和零新增工作。
  • 此前未执行完的 DSH 安装、发布契约、fixture 恢复、两个 distribution checksum 复核均通过,验证后的 CI artifact 已上传。
  • Attestation、正式 Release 和 PyPI 发布按原 PR 条件跳过;此次完成的是构建与适用的 PR 验证。
  • 同一 head 的桌面 Windows/macOS、Ark 3.11/3.13、真实 PostgreSQL、Frontstage、依赖和 DCO 均通过。

新 Release 耗时 17 分 23 秒,低于旧 20 分钟上限。这个成功不能单独证明调高 timeout 导致通过或提速;它证明保留完整流程的新运行已成功,30 分钟设置提供余量。旧 e195 作业仍记录 cancelled,没有改写历史或把运行时间差称为 EdgeBench 性能收益。

实际 CI checkout 为 92066a08de5da58c1ecfadc38b14a4874095c6e8(8027101 合入 a40caa1 的 GitHub PR 合成 merge)。a40 相对 dc9 只新增 CODEOWNERS/GOVERNANCE 审查文档;这里明确记录检查源码来源,未把 CI merge tree 与本地 head tree 混写。完整日志 SHA-256:ec666f8f1b86a4fa7ddf510ec4f8ab932bc18fb7789fe662cceb3e05f5930131。

Python CI 的 changes、kernel static、Chat bundle、minimum Node 已通过,后续完整矩阵仍待执行。04:51:58 UTC 快照:15 success / 6 条件 skipped / 6 pending / 15 queued,无 failed/cancelled。完整 CI 尚未全绿。 中文 PR 正文已同步补充这些证据和限制。

…uity-followup

Signed-off-by: Codex <codex@openai.com>

Signed-off-by: song <liusongstep@gmail.com>
…ontracts

Signed-off-by: Codex <codex@openai.com>

Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: Codex <codex@openai.com>

Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: Codex <codex@openai.com>

Signed-off-by: song <liusongstep@gmail.com>
Retain the configured-check decoder and original capability-hook dispatch fixes
already present on the research-continuity branch. Extend the ordinary and
operation Host regression cases for File and SQLite to reject launches when
material arrives after the required same-turn read, without claiming a model
Turn started or charging quota. Document the connector contract in English
and Chinese, and incorporate the current Goal subtree read-scope main changes.

Signed-off-by: song <liusongstep@gmail.com>

songoow commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator Author

本轮补充已发布:8fd93c14。

生产路径保留最新远端已有的 configured_checks 兼容解码与原 capability-hook dispatch 上下文;本次增加后到 inbox 材料的拒绝用例,以及 connector catalog 英中说明。旧读取不能覆盖同一 Turn 中随后到达的新材料;拒绝启动时仍如实报告已有同步,不产生模型 Turn 或新额度结算。

最终源码上的 8 项 Host 回归全部通过(124.58 秒):File / SQLite × 普通 / operation Host × 当前读取 / 后到材料。控制平面和 Dashboard TypeScript、双语 RFC 检查通过;公开内容扫描 5,085 files、0 errors / 0 warnings。主干七文件增量完整保留,治理/CI 与原分支逐字一致。

两支功能的实际组合

已发布 组合分支(6da4963b),父提交就是本轮两个 PR 的 8bf0265e / 8fd93c14。其 tree b8a2f0259b087ee1484413b7cd903b6b2d666bb9 与实际测试源码一致。

真实混合用例在 File / SQLite 均完整通过(各 1 passed,130.81 / 119.43 秒,无 skip):三个 owner hold 和五项 Outcome 一起进入准入,四个 checkpoint 完整 ACK;ACK 后修改第四项 Outcome,原 Turn 仍只结算原 obligation 一次,重放不追加,旧 Turn 改绑新义务/其他 Todo 被拒绝,后续 Turn 才接新一代义务。五项 Outcome 的累计要求和原 owner holds 均保留。

Python 实际链路用例 · TypeScript 混合契约用例。

混合回归的前两次失败分别来自测试误读 Agent 的存放层级及误设 upsert 后的列表顺序;最终按真实持久化 run、精确 ID/数量及逐项要求检查。没有通过修改产品或放松原 Turn、身份、扣额断言来迁就错误假设。上述通过仅归属于修正后的最终源码;受控 reviewer 不代表真实模型收益。

并行发布的 较早组合资格分支也已核对:原六个生产冲突路径中的五个全文相同,第六个仅注释不同,可执行代码一致。其既有资格报告完整保留,未把旧源码的测试次数叠加为本轮新增通过。

CI 读回(2026-10-19 10:12:50 UTC)

本轮 head 的 DCO、依赖审查、PostgreSQL、Frontstage、Optional Ark 及桌面工作流均成功。全量 Python 和 Release Artifacts 仍运行,完整 CI 尚未结束。

…evidence (#6858)

* fix(replan): require material delivery for result followthrough

Signed-off-by: song <liusongstep@gmail.com>

* feat(research): connect scoped continuation, request admission and execution evidence

Signed-off-by: song <liusongstep@gmail.com>

* fix(research): retain port-specific provider proxy exclusions

Signed-off-by: song <liusongstep@gmail.com>

* fix(benchmark): preserve request admission across slow connections

Pin the original native owner before connecting, then recheck its liveness, binding and current authority immediately before sending. Keep connection setup outside the authority lock so a slow transport cannot block Stop or borrow a resumed Turn.

Signed-off-by: Codex <codex@openai.com>

* feat(research): bind native feedback and resume canonical waiting work

Journal the actual native submission snapshot and operation, recover lost acceptance responses without another POST, and bind released results to accepted archive and probe identities. Feed durable observations through the existing Explore and Todo owners, release only explicit feedback dependencies, and wake the existing scheduler without new admission or budget authority.

Retain probe measurements when optional diagnostics fail, record passive cost coverage, and enforce research-treatment receipt parity. Cover local HTTP acceptance, File/SQLite waiting and interrupted writeback, original-operation recovery, replan and an executed successor experiment.

Signed-off-by: Codex <codex@openai.com>

* docs(research): describe native feedback and qualification boundaries

Document explicit feedback waits, immutable native attribution and retry recovery, normal scheduler wakeup, measured cost coverage and the remaining checkpoint and live-model qualification requirements.

Signed-off-by: Codex <codex@openai.com>

* fix(research): bound guarded requests and recover native feedback

Give admitted POST headers and body one shared send deadline so upstream
backpressure cannot hold the Goal writer lock for a long model response.
Keep stale binding refusals from poisoning a valid replacement while
preserving recovery after a genuine current admission failure.

Recognize only the native provider's proven pre-admission capacity refusals
as rejected. Isolate malformed tar and gzip manifests per native record so
unrelated verified results remain usable without false probe attribution.

Serialize feedback consumption and derive wake revisions from canonical
completed observation Todos. Publish each durable release immediately and
reconstruct notifications after a completion-to-publication failure.

Cover the repaired boundaries with real File/SQLite authority, loopback
HTTP, native admission, consumer contention and replay regression cases.

Signed-off-by: Codex <codex@openai.com>

* docs(research): explain bounded sends and feedback recovery

Document the guarded send deadline, stale-binding isolation, explicit
retry after proven native capacity refusal, malformed archive isolation
and canonical feedback notification recovery in English and Chinese.

Signed-off-by: Codex <codex@openai.com>

---------

Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: Codex <codex@openai.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent | gpt-6.1-sol | OpenAI | runtime_reported | reasoning_effort=max

REQUEST_CHANGES — 精确头 eac81014fd3a8842ddd420d7908657af107c6787。连续执行与恢复的主要真实路径通过了本次独立验证;两项既有质量门与新增背压测试的可移植性仍失败,需先修复。

动机

需要让研究任务跨轮、跨重启继续推进的使用者,以及查看暂停原因并决定何时恢复或停止执行器的操作者。 例如,已交付可行路线 A,但用户原本还要求比较路线 B:旧流程可能把阶段结束当成整体结束,或因同一暂停记录反复唤醒;当前改动让原任务、依赖和未解决义务继续约束下一次真正执行。 受控真实 CLI 路径中,路线 B 被独立执行并验证,等待反馈时不发请求,旧状态升级仍保留原 Turn 的一次结算;打包后的界面能显示暂停、未知和停止后的状态。 这次有用边界是既有执行链的连续性、当前准入和可核对的观察,不把本地有限验收当作完整研究成果,不改变评测评分,也不以观察记录授予模型、合并或付费执行权限。 真实模型的长期效果与完整费用、原生提供方的全部运行阶段和已安装分发仍需各自现有验收;当前两项仓库质量门回归及一项背压测试的可移植性缺陷必须先修复。

改动思路

先从原任务与当前权威状态决定是否允许工作,再在真正启动进程或发送请求前复核;完成一个阶段后,仍由原需求、依赖和当前验收决定后续任务。可选观察只带回事实,不能创建新的执行或结算权限。当前准入与原义务属于既有控制面不变量,评测提交和测量属于可选提供方,执行观察属于原 Explore 与历史投影;这些 owner 可以复用,不需要另建调度或验收权威。 本 PR 可交付受控真实路径的连续执行、恢复和可用读回;长期模型收益、原生平台资格与分发验收继续由已有拆分链及对应提供方承担,不能由测试计数替代。

这比新增一套研究调度器更小:控制面继续使用 TypeScript 的 replan、action selection、first-party Host 和 interaction owner,Python 保留本机进程、网络与特定提供方 IO。原 ACK/Turn 的兼容读取用于确实跨升级存在的持久化义务,不要求保留第二套决策。工作器在发送前记原尝试,未知结果只能由同一 effect owner 恢复;一个本地锁不构成分布式 exactly-once 承诺。

触发情况 当前决策与有用结果 必须保留的停止边界
A 完成,但仍要求 B 原任务继续,实际比较 B 并独立验收 A 的局部成功不能关闭整体目标
明确依赖尚未就绪 只作非模型等待;重启后继续等同一来源 未知、失效来源及 Stop 不能借此永久静默
旧回执或发送结果未知 保留原 Turn/义务,按原 journal 恢复 不重发猜测,不借新进程权限
可选执行测量 原 Explore/历史展示候选哈希、耗时和未知项 测量不证明质量、完整费用或整个 Goal 达成

此表是 eac81014fd3a 的源码流程说明,实际执行证据与限制见下文;未渲染 Mermaid,因此使用普通表格。使用者已经给出任务和授权时,无需再补一次“是否继续”来读取暂停状态。观察走现有 Goal/任务入口,技术身份收在详情;只有原有 Stop 操作保留其实际状态变更交互。显式开启可选研究提供方仍需要真正的使用意图,不能从“已安装”推断。

具体改动

依据为改动前 Goal replan protocol,固定基线 3a816411785fea545c379769a1ff98f5e881bd5d。独立标准包括:Ownership Boundary → implemented(阶段验收和原需求分离);Replan ACK freshness → implemented(旧 ACK 精确来源及真实需求变化);Exact blocked-successor wait → implemented(正面就绪证据与未知/过期反例);Replan Triggers → implemented(no-op 在材料窗口前中立处理);Acceptance → implemented(有限阶段结果不能代替整体目标);History-trigger ownership and retry semantics → implemented(原身份、当前 Stop/quota/health)。这些结论限定于所列受控真实路径,完整平台与实际模型收益仍是既有资格边界;总体路线的成果/完整成本标准没有被测试数量取代。

本头完整差异 176 个路径,+15,700/−316:53 个核心运行路径、18 个领域适配路径、6 个产品表面、78 个验证文件、9 个文档、11 张视觉资产和一项 CI workflow。核心改动包括原需求文本参与身份、展示字段不旋转原 hold、历史 no-op 不挤掉有效工作、已知依赖安静等待、独立工作仍按精确 gate 继续、终止前检查当前验收以及实际 Host send 的新鲜准入。提供方部分包括显式 research-loop、接受提交的 journal、当前请求保护、源绑定的反馈写回、执行探针及复用完整 session 的成本读回;没有改变评分语义或引入通用 benchmark 义务。UI 在原 Goal 与历史页读回观察,缺失测量显示未知;CI 仅增加整个 job 的余量,不放宽各条验证语义。

关键代码讲解

  • FirstPartyHostGoalAdmission(loopx/control_plane/goals/first_party_host_admission.py:270):Bind current source admission around the final Host effect. Source/current quota is checked under owner locks; original Turn and admitted-read scope are retained.
  • _resolve_quota_should_run_route(loopx/control_plane/quota/should_run_packet.py:894):Combine typed scoped fallback with existing route precedence. Qualified exact independent work may proceed while broader delivery remains closed; Stop/quota/health still win.
  • run_codex_cli_host(loopx/control_plane/turn_driver/codex_cli.py:648):Launch and supervise existing Codex process. Final Popen uses current admission; rejected/ambiguous effect stays tied to original request.
  • normalizeExploreExecutionObservation(loopx/control_plane/capabilities/explore_execution_observation.ts:9):Validate source-attributed optional execution measurement. Canonical digest validation accepts the same selected candidate and explicit null unknowns; it cannot certify utility.

FirstPartyHostGoalAdmission 从当前源 Goal 读权限并在实际副作用边界持锁复核,保留原 Turn 和已准入读取范围。_resolve_quota_should_run_route 的局部 fallback 只接受既有 typed selection 的精确资格,较大 delivery lane 仍关闭,不能顺带绕过健康或额度。run_codex_cli_host 的进程启动与 operation 的 turn/start 共享当前准入,不把整个模型运行包在写锁里。normalizeExploreExecutionObservation 校验来源归属和显式未知值,后续仍要由原 finding、候选方法与实际工作证明采用和收益。

已阅读旧作者 COMMENTED 评审与八项历史反例;它们位于更老的头,不能作为本头独立批准。当前实现和本次回归覆盖了旧 source/Stop、canonical text、旧 checkpoint、非正式 acceptance 状态、Agent 大小写、损坏观察保留和同步元数据问题,不重复列为新缺陷。现有十二个拆分提案是可复用交付链,组合 PR 仍需通过自己当前的质量门。

对主干的风险

[P2] 解决三处新增复杂度预算失败。 相同 maintainability ratchet 在实际基线通过,当前头新增三项未获例外的 oversized decision function:build_heartbeat_prompt 91 statements/上限90,_resolve_quota_should_run_route 91/90,run_codex_cli_host 63 decision points/上限60。这是当前必需 premerge 门的确定回归,不是据此断言运行结果错误。最小修复是在原 owner 内做保留语义的局部简化,或按现有预算决策流程提交相同负载的证据与必要例外;不要只提高全局上限、改扫描范围或删除有用诊断/停止条件。

[P2] 将新 codec 纳入既有共享摘要消费者清单。 explore_execution_observation.ts:7 正确导入 canonical BARE_SHA256_PATTERN,但既有 content_digest_single_owner.test.ts:878 比较实际 importers 与 CANONICAL_CONSUMERS 时,多出此新模块。相同文件在基线 17 passed;当前 14 份 TypeScript 测试共 278 项,277 passed、1 failed,唯一失败就是该清单。请补齐本次已审查的新消费者并保留 canonical import 和使用断言;不能复制正则或删掉 owner 导入来躲过保护。

验证采用实际精确源码与隔离状态:24 份 Python 文件 206 passed、2 failed;通过项覆盖 File/SQLite、A→B 的真实结果验证、100 次等待+重启+100 次等待、旧身份恢复、当前 Stop/quota、未知发送、网络锁竞争,以及 scoped gate 的正反两面。另跑 4 passed 的真实基线 CLI→当前 CLI 升级:仅把旧夹具内存中的“期望修订号”数据设为本次真实基线,未改产品或测试源码;这四种形状与大矩阵重叠,不能称为 212 个独立用例。TypeScript 类型检查、Chat 打包及普通 CLI 输出预算通过。本地 canary 的 6 个直接门通过,19 个选择项均执行;maintainability 仍失败。未查询、轮询、等待或派发远端 CI。

[P2] 让新增 TCP 背压测试真正进入发送阻塞。 两个失败项均为 test_backpressured_post_releases_the_goal_stop_writer[file/sqlite]。其 Stop 写入断言已通过,失败在等待发送线程 10 秒退出;不能把它称为 Stop 锁未释放。未修改输入的独立测量复跑显示,128KiB 请求在请求的4096字节发送缓冲设置下仍于 0.2025秒 完整发送,随后进入文档明确允许的较长响应等待。因此现有夹具没有建立它所声称的背压前提。只在隔离进程内将该测试输入改为8MiB的明确诊断,两个提供方均在 1.0025/1.0028秒 触发发送 TimeoutError,Stop、502和未知 forwarded 断言通过。这个诊断没有编辑产品或测试源码,不是“当前原测试通过”。应让夹具确定进入背压后再断言预算,保留发送与响应等待的不同语义;不要以延长断言或删掉保护消除失败。

保留两类失败的区别:最初测试临时项目放在审查仓库内部,继承了外层 Git 身份,正确触发工作树交付门(中断前 62 通过、8 失败);catalog e2e 在基线和当前也因同一夹具位置失败。移到确认无 Git 祖先的系统临时根后,原断言与源码不变,原工作树身份失败不再出现,两端 catalog 通过;当前矩阵另有下述背压夹具的独立失败。原失败记录保留,不能算本 PR 回归,也不能只挑后一次绿灯而不解释环境差异。

默认关闭对照使用相同冻结源文件分别运行两端普通 quota plan、history 和未注册 Agent 的 guard:计划/历史均成功,guard 均按原缺失注册输入拒绝;逐字段差异仅为明确列出的时钟/rollout 诊断及历史新增的 null worker observation,注册表/原 Run 索引/花费字节保持相同。显式可选分支另有开启与关闭的现有 owner 回归;此结论有受测输入范围,不表示枚举了所有环境。领域特定的两类 503 前准入匹配仍留在提供方本地,其他未知响应不能被当作安全重试。

实际使用本头构建后的 Chat 和真实 File worker/HTTP backend,在桌面与窄屏查看暂停记录、进入原任务页、损坏专用合成回执后刷新为“未知”、恢复原字节后返回暂停,再从现有界面 Stop 并在源 Goal 读回 stopped。只读/导航/刷新没有新增派发;未调用模型。执行资源面板的作者合成截图与源码已查看,但没有把它冒称为本次浏览器实测。PostgreSQL、真实原生提供方的完整阶段、实际模型采用/收益、完整成本和已安装版本均未独立验证。

我的整体评价

problem_context=justified_increment,在上述受控持续执行和可用读回边界内,long_horizon=improved、user_experience=improved;这些标签不证明活模型研究质量或成本下降。架构保持既有 owner、默认策略与可选 IO 的边界,change_proportionality=proportionate,不因文件多就要求重建方案,也不因已修旧问题就忽略当前成本。兼容层有实际持久化消费者和旧 CLI 升级证据;局部三处热点应优先解决,较大的原生平台与效果资格继续交给已有拆分链/提供方,不额外制造跟踪任务。

当前两项本地必需门及新增背压测试仍失败,因此 semantic_alignment=violated,结论仍为 REQUEST_CHANGES。修复复杂度预算、消费者清单与背压夹具后,在同一精确新头重跑相同 owner/真实调用路径并重新审查;不需要删除 Stop、需求或诊断语义来换取绿灯。此次发布不包含 approval、merge 或任何执行权限扩张。

English verdict: REQUEST_CHANGES — eac81014fd3a8842ddd420d7908657af107c6787. The controlled continuity/recovery slice is useful:206/208 Python cases,4 actual base-to-head upgrade cases and built File-backed worker UI recovery/Stop pass. Three bounded blockers remain: the new backpressure fixture is not portable (128KiB send completes in0.203s here, so its timeout assertion tests response waiting); three existing decision functions exceed the maintainability ratchet, and the new canonical digest importer is missing from the pinned consumer inventory (base17pass; head277/278pass). Resolve these bounded issues while preserving semantics and canonical reuse. Initial temp-project Git ancestry failures are retained and separately attributed; external-temp reruns remove the original ancestry failures; the two current fixture failures remain. An explicit8MiB diagnostic times out near1s for both providers, without product edits; it is not a repaired test pass. Live/native model utility, complete cost, PostgreSQL and installed distribution were not qualified; no remote CI was queried.

should_run=should_run,
normal_delivery_allowed=normal_delivery_allowed,
)
if (prepared.action_selection_qualification or {}).get("state") == "qualified":

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] 处理这次新增的三处复杂度门失败:在原 owner 内做有语义回归保护的局部简化,或按现有预算决策流程给出同负载证据与必要例外;保留当前准入、诊断和停止条件,不能只放宽全局上限或删除决策语义。

Observed: Base passes; head reports3new unreviewed oversized_decision_function failures: build_heartbeat_prompt91 statements/90, _resolve_quota_should_run_route91/90, run_codex_cli_host63 decisions/60. This leaves the required premerge gate red.

Validation: Same actual base/head maintainability ratchet: base passes, head3new failures. Rerun the ratchet and affected public CLI/Host cases after repair.

import type {JsonObject} from "../runtime_decode.ts";
import {EffectRuntimeRequestError} from "../effect_runtime_errors.ts";
import {requireJsonObject} from "../runtime_decode.ts";
import {BARE_SHA256_PATTERN} from "../content_digest.ts";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] 把经过本次审查的新 Explore codec 消费者补入 CANONICAL_CONSUMERS,并保留这处共享摘要 owner 的导入与使用断言;不要通过删掉 canonical import 或复制正则来绕过清单检查。

Observed: Existing pinned-consumer guard fails with control_plane/capabilities/explore_execution_observation.ts added to the actual importers. Base same17tests pass; head278testmatrix has this one failure.

Validation: Same content_digest_single_owner.test.ts: base17passed; head pinned-consumer assertion at878fails. Rerun this file and changed TypeScript owners with the reviewed inventory updated.

try:
with guard.serve():
guard.bind(process, current_env, session, original_quota=initial)
body = json.dumps({"input": "x" * (128 * 1024)}).encode()

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] 让背压夹具先证明实际发送被阻塞,再验证一秒发送预算与 Stop 可写入;128KiB 不一定耗尽各平台 TCP 缓冲。可使用受控 transport 边界或有边界的大输入,但不要靠缩短合法响应等待、延长断言超时或把本次诊断冒称原测试通过。

Observed: Both original File/SQLite cases fail. Measurement-only unchanged File rerun shows send completes0.2025seconds within the1second budget; then the documented response wait is allowed. Explicit8MiB input diagnostic reaches real backpressure and times out near1.003seconds for both providers. This is a new nonportable test/oracle, not evidence that Stop stayed locked or the send deadline failed.

Validation: Keep the original206pass/2fail matrix and unchanged measured failure; rerun both providers with a deterministic backpressure oracle, preserving Stop commit, deadline and unknown forwarded assertions.

@songoow songoow changed the title fix: preserve research progress across replans, waits and Host recovery tracking: land research continuity as small PRs into main Oct 20, 2026
@songoow
songoow marked this pull request as draft October 20, 2026 06:45

songoow commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator Author

2026-10-20 继续调整:阻止集合误合入,推进真实依赖修复

继续执行用户确定的唯一方向:#6784 保持集合 PR,相关修复均回到该 PR;#6838 的剩余功能由现有小 PR 各自进入 main。 不恢复旧的 12 层串行拆分,也不新建重复子 PR。

本次已实际完成

  1. 本 tracking: land research continuity as small PRs into main #6838 已转换为 Draft,保留为来源与协调入口,防止将整条研究大分支误合入 main。这里的 Draft 表示原集合已不作为交付入口,不是让已经完成的小 PR 因等待 CI/review 而退出审查队列。
  2. B3 fix(host): recheck Goal admission before process launch and turn dispatch #6884 继续在原分支追加 c3f421545962e7bc8915d86df20e42d2ceb7073f,tree 515a51cbeed08d26a1c474034192d0bae9dedf53。修复实际 stdin writer 晚启动/晚完成时仍可能报告成功的绝对 deadline 竞态;只增加 7 行生产检查和一个定向测试文件。未改变发送预算、Goal owner 或 main。
  3. C1 feat(benchmark): enforce request admission at provider dispatch #6900 同步到 6fcce3fff454d19493d7079b30d4545485e1d0fe,tree d60a7ec5dad25f01ff3d329a5ef539d2e4fbac55;真实双父提交保留原 C1 与新 B3 历史。两侧改动路径不重叠;对新 B3 比较,C1 仍只有原八文件增量。两次分支更新都使用 expected-head 校验、非 force 推进。
  4. 已在 B3 原 P1 讨论中记录复现、修复和验证边界,并在 C1 发布同步说明;没有代替审查人关闭 unresolved thread,没有批准或合并 main。

正文中 B3 b9fddbe / C1 bea1519 的测试仍属于上一轮 head;上面的新提交是其后继,不能继承旧 head 的全量通过结论。本次读回 #6784 仍为 9f2cba7,没有在本轮覆盖其分支或重新拆分。

本次新证据与限制

精确远端生产模块 blob 经 hash 核对后,在隔离模块 worktree 执行新增六个案例:before 2 failed / 4 passed;after 6 passed(2.60s)。包括四个确定性 deadline 调度案例,以及真实 Linux 子进程的大 Unicode 和 8 MiB stdin 背压取消/回收。py_compile 与 staged diff-check 通过,发布 blob 与实测文件 hash 相同。

这不是完整仓库、File/SQLite Goal/Stop、Windows 或整套 C1 回归;Ruff 在本环境未安装。进程树清理回调的总期限仍需独立验证。B3、C1 新提交的 hosted CI 已触发,当前为 queued/pending,不宣称通过。

接下来的执行顺序与边界

集成分支仅用于组合验证,不是新的研究集合 PR,也不替代各小 PR 的合入门槛。当前 main 读回为 5853e151;本轮未合入 main。

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants