Skip to content

fix(explore): keep research execution independent of the historic Todo facade - #6317

Merged
huangruiteng merged 3 commits into
mainfrom
codex/c1-current-writer-boundary-20261012-122853
Oct 12, 2026
Merged

huangruiteng merged 3 commits into
mainfrom
codex/c1-current-writer-boundary-20261012-122853

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

Fresh research execution added in #5280 imported loopx.todos again after the earlier reader retirement. With the historic facade removed in a disposable canonical package, explore observe failed before validating the current Todo. Import the existing full reader directly and extend the existing retirement matrix with fresh execution, refusals, lineage readback and historical replay. A whole-production import guard prevents ordinary import regrowth.

Written by: model_agent — GPT-6, OpenAI.
Implemented against the TypeScript migration RFC R5/T4 frontier, revision 3af55c6461aa7d24118b62e515050bdae8768025.

Criterion Disposition Evidence
Production consumers reuse concrete Todo owners implemented Direct todos/list_readback.py import; public facade function identity retained
Real source/normal-wheel File/SQLite work with retired modules absent implemented for this reader boundary 87 consumer tests, including eight fresh research cases, plus 73 adjacent research tests
Supported 1.x public imports and source writers remain available retained Existing public-import identity test; deletion occurs only in disposable package copies
Core trial, cohesive 2.0 writer cutoff, outbox disposition and release qualification deferred Existing R5/T4 program; no migration/default/writer cutoff here

Validation at a4fdfd9b45bb7b0e27be6ea8fc374bed99094e4b: source and normally built wheel retirement matrix 87 passed, zero skipped; adjacent lineage/composition/gate/retry suites 73 passed; focused head 11 passed, final static/identity 7 passed. The frozen base static guard fails at the one regrown import; the real base matrix has two facade-present passes and two facade-absent failures. Earlier validation-fixture mistakes are preserved separately and corrected before those results.

Ruff, semantic advisory/full drift, public-boundary scan, exact-scope CQR and native premerge pass. Premerge ran five direct and nineteen selected checks. An initial long temporary-root budget probe measured the same 15,585/15,500 characters on base and head through the native canary wrapper. Matched short isolated roots pass equally; the limit, payload and obligations are unchanged. This is fixture path sensitivity, not evidence that this PR fixed quota size.

No new schema, setting, rule, RPC, UI entrypoint or authority-store behavior. Existing typed actor/runnable/input rules and replay-before-read ordering remain. Packaged App HTTP import/restart and local Lark preview are regression coverage, not live installation, external Lark adoption or a natural cohort claim. No PostgreSQL store changes; no full C1/T4, D2 or release-default qualification. The bounded future-facing pass reuses the retained reader and adds the guard in the existing tests; no production abstraction is added. Maintainer merge required.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent 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; model=gpt-6.1-sol; provider=OpenAI; declaration=runtime_reported; effort=xhigh

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

动机

后续删除旧 Todo 兼容入口的维护者,以及提交研究执行结果的调用方。
原来清理兼容模块后,提交一次合法研究执行结果就出现缺模块错误,无法留下结果;现在直接读取相同的当前任务来源,合法结果能写入,旧观察重放继续保持原记录。
临时源码和正常安装包副本中,旧模块缺席仍能提交合法研究结果、读回准确归属,非法新结果拒绝且不追加,原观察重放不重绑。
1.x 公开导入和旧源写入继续保留;本批不认证整族写入删除、完整 Goal 恢复、自然试用或默认发布。
旧源正常 writer、outbox 处置、实际安装采用和自然核心开发者试用仍按原 R5/T4 路径推进。

本次独立审查绑定 #6317a4fdfd9 的全部六个文件,按修复完整研究执行 reader 出口判断,不拿测试数或父路线全部完成作为证明。旧测试里的 Explore 图投影/重放不触发新鲜研究执行的任务读取,因而需要当前反例和完整 fresh 路径。

改动思路

使用既有完整 Todo reader,保持单一 typed 校验与重放 owner;只消除运输层对旧兼容入口的依赖,并在原测试中守住该出口。
本 PR 完成交付这一研究执行 reader 出口及可回归的完整路径,不把它扩大成 1.x 破坏性写入删除。
既有公开 facade 实际重导出同一个 list_goal_todos,所以这里采用现有 owner 就足够。保持 TypeScript 的当前 agent/Todo/gap/input 校验,Python 只提供 transport。历史观察的相等重放继续先于当前源读取,不借重试刷新已有证据。

独立规范为 docs/architecture/rfcs/typescript-control-plane-migration-v0.md,不可变 revision 3af55c6461aa7d24118b62e515050bdae8768025:打开相同规范。逐项映射:

  • T4: production consumers bypass the historic re-export:implemented,现有 reader 直接导入;不是新增包装器或 RPC。
  • T4: disposable source and normal-wheel two-provider qualification:此 reader 边界 implemented,完整 source/正常 wheel、facade 存在/缺席、File/SQLite 实际 CLI 矩阵通过。
  • T4: supported historic public imports:保留,同函数身份及正常旧源入口继续受支持。
  • T4: reversible core trial and cohesive 2.0 normal-writer cutoff:deferred,原 R5/T4 的可逆试用、整族截止和最后 outbox 处置继续;本批没有创建并行路线。

具体改动

  1. append_research_observation 仅把函数内导入改为 control_plane.todos.list_readback。有 execution lineage 的新观察读取完整当前源,校验后在原锁内追加;已存在的观察继续直接只读返回。公开参数、输出、错误与所有 typed rules 都保持。
  2. 原退休矩阵接 test_fresh_research_execution_and_historical_replay_use_retained_owners:复用原研究种子和真实 provider,在选择的隔离分发包中跑 explore observe/summary。缺失/错误 actor、deferred/缺失 Todo、变更输入拒绝且日志/源/registry 不变;权威重开后确实写入并独立读回 lineage;Task 和 input 再改变后,原观察重放仍不追加/重绑。
  3. _historic_todo_imports 以 AST 解析绝对、相对、alias 和函数内 imports,扫描完整生产包。四种进口反例及内部 control_plane.todos 区分保护守卫本身;新的能力不能仅依赖过去一次盘点。动态加载仍须真实隔离路径,守卫没有冒充全量动态证明。共享 fixture 在自己的私有临时域收尾运行时,研究 fixture 直接用既有 mutation owner。
  4. 两份 RFC 以同一边界替换过宽的“已关闭”结论:记新回流、当前 fresh 验证与持续守卫,保留受支持1.x API/writer及所有后续退出。

完整 diff 是 162 add / 9 del:产品 1 / 1,测试 138 / 2,文档 23 / 6。生产模块没有增长,没有新增状态、配置或通用 Python 决策。做不做这个 PR 的最强反对点是当前1.x包仍保留兼容入口;但确认该回流并用最小现有 owner 加持续守卫,可以解除可复现的退役阻塞,属于有用且可回滚的增量。已应用相关 future-facing pass,不增加推测性框架。

对主干的风险

无阻塞发现。精确 head 的 source/正常构建 wheel 完整 consumer 矩阵 87 passed / 0 skipped;相邻研究、composition enabled/off、当前 authority 与 post-writeback retry 73 passed;focused 11 passed,最终 static/公开同函数身份 7 passed。冻结 base 的最终同一 CLI oracle 2 facade-present pass / 2 facade-absent fail;AST 守卫 1 fail / 5 pass 精确识别 py117。早期测试种子不匹配 progress/lineage 和把有意 Todo 投影更新当作不可变源的错误已纠正,原失败保留;这与产品缺模块反例分开。

Ruff、advisory/全树语义、公开边界、当前 CQR cqr_df7e9526b3a0a28b91fb 通过。最终 native premerge 5 direct + 19 selected 通过、0 hold。初次 quota size smoke 在长私有临时路径下 15,585 > 15,500,同一原生 canary wrapper 在不可变 base 和当前 head 复现完全相同值/签名;wrapper 的21字符路径增加在8个位置带来168字符,两臂等量。相同短隔离根两臂均通过;预算、载荷、扫描范围、决策义务均未改。这是原 fixture 路径敏感性,当前 PR 未宣称修复它,也未用预算放宽抹除失败。

反例经实际 public CLI 与真实 File/SQLite,而不是注入待审 reader 返回;parent helper 仅生成合成输入。既有 packaged App HTTP 冷导入/动作/重启和 Lark 本地 preview 属回归覆盖,live Lark、实际默认安装采用、自然试用、完整 writer 删除和 PostgreSQL 未新验、不宣称通过。CI 没有查询,遵循当前 wait_for_ci=false。历史公开入口仍受支持,composition 关闭不获新字段/指令/side effect,typed actor 和当前状态 obligation 没有被降成 guidance。

我的整体评价

APPROVE,作为上述有边界的 reader 退役增量交维护者。使用既有完整 Todo reader,保持单一 typed 校验与重放 owner;只消除运输层对旧兼容入口的依赖,并在原测试中守住该出口。 本 PR 完成交付这一研究执行 reader 出口及可回归的完整路径,不把它扩大成 1.x 破坏性写入删除。 原 C1/T4、自然采用、整族写入和发布资格保持各自验收;此评审不授予 merge,当前没有本 PR 的维护者合并授权。

English verdict: APPROVE - a4fdfd9; reuse the existing exact Todo reader, prevent ordinary import regrowth, and preserve current lineage validation plus inert historical replay. Source/normal-wheel retirement87, adjacent research73, static7, exact CQR and premerge5+19 pass; the initial long-path budget failure is identically attributed to base and head. No new default/authority or full-retirement/adoption claim.

@huangruiteng
huangruiteng merged commit 54123eb into main Oct 12, 2026
14 of 28 checks passed
@huangruiteng
huangruiteng deleted the codex/c1-current-writer-boundary-20261012-122853 branch October 12, 2026 14:44
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