Skip to content

feat(research): retain execution evidence through Explore replans - #6901

Open
songoow wants to merge 1 commit into
codex/split-native-request-admissionfrom
codex/split-research-execution-evidence
Open

songoow wants to merge 1 commit into
codex/split-native-request-admissionfrom
codex/split-research-execution-evidence

Conversation

@songoow

@songoow songoow commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

目标与交付边界

初始候选有效,并不代表原研究目标已经完成;执行耗时、实际方法与失败结果需要进入下一次决策和真实后继工作。

这是 #6784 / #6838 拆分中的 C2 研究阶段与执行证据:原候选 Todo → 保留的研究后继 → 实际本地探针 → 普通 Explore 写回 → replan 与研究历程。它提供完整的本地证据链;native 提交、外部反馈与显式等待由 C3 接入。

Author Declaration

Implemented against

Criterion (spec clause) Disposition Symbol / path Test or command
研究运行合同:候选完成只释放独立研究后继;准备不消耗工作 Turn、不重开已准备研究 implemented research_loop.py::prepare_research_continuation 原 test_candidate_stage_leaves_research_work_and_execution_reaches_next_context[sqlite] 本轮 1 passed(338.81 秒);File 参数保留未补跑。
研究运行合同 / RFC §6.2:实际 probe 保留候选、方法变更、耗时/退出,缺失计数未知,坏诊断不抹去宿主观测 implemented research_probe.py::run_probe;explore/execution_observation.py 现有 probe 回归及 execution observation codec;原 AST/Ruff 与 TS 文件已通过,真实路径见下表。
Structured stride control / RFC §6.3:同一执行观测进入 Explore、context、stride 判断及可验证后继工作;准备事件不消费实际 finding implemented explore_result_writeback.ts、explore_turn_context.ts、replan_context.ts、stride_policy.ts 原 5 个 TS 文件通过;本轮原 SQLite candidate→stride→新 Todo 的真实实验闭环 1 passed,原断言与期限未改。
RFC §4、§5:首次分数和长程收益需要匹配的实际 outcome 对照 out_of_scope 集成分支上的后续研究评测 本 PR 不执行模型或正式 benchmark,不宣称收益。
  • Self-check before submission: 核对与 C3 的 TS 输入一致性、三个 native 测试的同步迁移、旧测试回执与公开 synthetic 图片;本轮完整 SQLite 节点另记录实际 checkout、Python imports 和 Node/SQLite 资格。图片来自冻结原始来源,UI 输入未变;当前集成的 packaged 运行结果另列,不能用旧图片替代。

变更与结果

  • 显式 research_loop=True 使用既有 Todo 依赖保留研究后继;候选完成释放后继,准备阶段记录 surface_only,已有研究不会被重新打开。
  • Harbor planning/worker 使用同一执行指引和 evidence_conditioned_v1 策略,安装本地 loopx-research-probe。关闭处理时保留原入口行为。
  • 探针固定明确选择的候选文件,保留进程耗时、退出/超时和可选 solver 诊断。缺失计数保持未知,坏诊断保留可靠宿主测量,候选变化拒绝归因。
  • Explore attachment、追加事件、turn context、replan finding refs 和研究历程保留同一个可选 execution_observation,包括候选绑定、实际方法与变更理由。
  • 准备活动与未知历史 delivery outcome 不消耗被引用的实际结果;负结果和有效阻塞仍进入后续判断。

依赖与源码身份

  • PR base:codex/split-native-request-admission;前置 C1:feat(benchmark): enforce request admission at provider dispatch #6900;发布 head:ce9f90ded5477c22bc8f14021a2377833e23dfaf。
  • 本片来源 tree:8c212cfa1d38af23fa1a126712414ad211f43f66;27 个文件。
  • 三个 native 自动注册测试与对应实现共同进入 C3;原始组合完整恢复;当前发布树另继承 A1 测试归属迁移与 B4 fixture 退出时先等 HTTP 请求完成、注销自身 Effect runtime,并等待子进程 close 后再删临时根的修复,未删除或放宽验收断言。

验证与边界

检查 验证输入与结果
Ruff / Python AST / 明确路径检查 / diff check 通过;本轮再次核对差异格式通过。
control-plane typecheck 通过。
Explore writeback、turn-context、history、replan-context、stride-policy 5 个 TypeScript 测试文件通过,0 failed / skipped;实际输入为 C3 tree 8f852d440aae2875e916463236c79fa5ee984aff,与本片的相关 TS/Node 测试输入相同。
本轮 SQLite 候选阶段 → 实际 probe → Explore → replan → 改变后的后继实验 原完整节点 test_candidate_stage_leaves_research_work_and_execution_reaches_next_context[sqlite],C2 commit 17b7c4d6e1315482212a0c34e1c350ca3bce2be9 / 上述来源 tree:1 passed / 0 failed / 0 skipped(338.81 秒)。实际 Python imports 来自该 checkout,Python 3.12.14 / pytest 9.1.1;Node v24.19.0、SQLite 3.53.3,原 runtime qualification=true。源码、断言与期限未改。
同一完整路径的 File 参数 本轮未补跑,保留为该路径的独立证据缺口;不能将 SQLite 通过记为 File 通过。
packaged Dashboard 浏览器路径 下方为继承来源的 synthetic 示例;尚未在拆分 head 重新运行浏览器。

本轮 SQLite 原节点实际验证:初始候选完成仍保留独立研究工作;两步本地 probe 的同一观测进入 Explore、context 与 history;另一候选 SHA 的结果被拒绝且不追加;stride packet 传递实际测量并接受有证据的 replan,随后准入不同新 Todo 并实际执行五步候选,读回不同候选哈希和 stdout。它补齐 C2 独立阶段/stride/新 Todo 的完整路径,C3 的 native 反馈恢复路径另验。

这次通过对应明确的 C2 来源 tree,不是最终发布 head 的完整回归。发布组合还包含列明的前置修复与集成更新,其 packaged 验证按实际输入另列;File 参数本轮没有补跑。

视觉证据

冻结来源 eac81014fd3a8842ddd420d7908657af107c6787 中保留的 public synthetic research-history 示例;本轮相关 UI 输入未变。截图展示计划/实际方法、变更理由、耗时/上限、未知搜索次数、停止原因与候选 SHA-256;它们不是新的拆分 head packaged 验证。

研究执行证据:桌面示例

研究执行证据:窄屏示例

执行观测不认证方法收益,不判定 Goal 完成。本次没有模型调用或正式 benchmark,不能据此声称首次质量或长期收益改善。前置 C1 本轮在其来源 tree 上原背压 File 单例精确诊断 1 passed(31.05 秒),未改源码、断言或期限;C1/C3 历史同节点失败保留,不能将该单例结果赋给完整 native 矩阵。

本轮发布链与集成验证

  • 本 PR 当前发布 head:ce9f90ded5477c22bc8f14021a2377833e23dfaf;tree:bc90b589616adb2761ef2c0600df2183b8992c4f。
  • 完整拆分现为 12 个普通 PR。实际 source refs、head/tree 和依赖祖先已逐一读回;每片 base 为真实已发布前片,完整顺序与后续状态集中维护在 #6838。
  • 统一集成分支 commit d1dc8ebfe,tree cb8b1777655d7f37e3571b5087d6cd4db286dbbd,组合本次观察的 main 45d742088a3f7896a0a008761f68d2437398bcd1 与上述 12 个实际 source heads。LoopX supplied-candidate 收据为 in_sync、drift 为空;远端集成 head 已读回。
  • 完整性:集成 tree 等于冻结的完整来源与同一 main 合并后,加 A1 的 v2 测试断言迁移及 B4 的请求 drain/退出检查修复。唯一合并冲突是 chat_store.py 指标基线,按自动合并文件实测的 2067 行结算;没有新增集成专用产品逻辑。
  • 静态资格:逐切片 RFC 双语检查 12/12 通过;拆分基线后的唯一历史提交 DCO/作者匹配 14/14 通过。集成 tree 的 control-plane TypeScript 检查 passed(50.754 秒),标准 Chat 打包构建(包含 Dashboard TypeScript)passed(131.930 秒)。构建在同 tree 的本地候选上运行,随后核对与上述远端 tree 完全一致。
  • 当前 packaged UI:Outcome 恢复场景首轮在原 90 秒 fixture 启动窗口内未就绪(总计 92.463 秒),尚未进入浏览器;原失败保留,正在定位。Worker readback 与 research-history 的当前集成场景待串行验证。本段不将构建成功写成浏览器通过。
  • 本轮实际路径使用 synthetic 本地 authority/native HTTP,没有外部模型或正式 benchmark。每项历史/本轮来源版本仍按上文分别记载;CI 和 review 的合并门禁单独判定。

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

Rebuild this complete slice on its actual published predecessor, preserving the disclosed acceptance test and worker fixture repairs.

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

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.

1 participant