Skip to content

fix(context): provide a focused first read for native packets - #7800

Merged
huangruiteng merged 3 commits into
mainfrom
codex/context-first-read-20261101
Nov 1, 2026
Merged

huangruiteng merged 3 commits into
mainfrom
codex/context-first-read-20261101

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

原生完整 packet 只给通用索引时,Agent 要逐层找当前任务、结算义务和验收材料。新增 first_read_command / 只读 context-read --initial-read,用既有 TurnEnvelope owner 与 exact-address selector 提供当前控制、完整 Goal/Todo 正文、来源状态、当前结算义务和已有 outcome 材料地址;必要详情仍从同一个 SHA-bound capture 读取。

实际自用后修订了初版:

  • 当前结算 plan、audit 和未知 step 字段进入首读。仅 required=false 附件的 guidance/templates 按需展开,其身份、入口和未知控制字段保留,使用前必须读完整原附件;未知 plan 版本保持全文。
  • outcome 的既有 id / supporting_material_pointer 直接可见,避免为找当前要求扫完整验收集合。
  • 初读不重复正文中已有的 pointer vector;短续页命令固定原 capture SHA 和 selection SHA,profile 变化则拒绝混读。显式 --select 的输出和续页保持原行为。初读仍不能成为 full-input retention receipt。

自用第一段真实工作中,初版实际发生 5 次 context-read、1 次 index、113,288 bytes 工具可见输出。其中包含作者一次过宽的验收选读及 Host 截断,已精确读取当前 outcome 恢复;这些开销不能全归因 producer,也未证明自然使用已提效。

随后对同一个 236,543-byte 真实 capture核对修订后的必需读路径:首读 46,422 bytes,沿已给出的当前 outcome 地址读取 3,121 bytes,共 2 次、49,543 bytes。首读比初版 32,087 bytes 更大,因为带齐实际结算义务;指标关注完成当前判断所需的总路线。此为同捕获的合法路线验证,不是第二轮自然模型运行、理论上最短旧路线或计费/墙钟/长期收益证明。完整原 capture 与必要原文均保留。

验证:

  • Python 235 passed,TypeScript selector/TurnEnvelope 53 passed,control-plane typecheck、Ruff、semantic smoke 通过。此前另一组 capture/project/配置命令 186 passed、12 个显式 native binary 未配置的 loopback 用例 skipped(有重叠,不作独立测试总数)。
  • 真正 CLI 的 cold/warm/default-off、SHA 拒绝、unknown schema、原要求/操作恢复均验证;本次额外验证 4,500-byte stdout 预算下的短 digest-pinned 非零 offset 续页。必需 plan 各字段与源值逐一相等,required/unknown 附件保持完整,选读无法冒充完整输入。
  • 完整 standard 在 40514a1d5 为 direct 6/6、19 项执行,仍有 1 blocking failure / 1 inherited advisory;最后收紧还补了 15 项首读测试、TS53、typecheck/Ruff,当前 32f3be460 quick 直接6项、选择4项通过(1 inherited advisory)。quick 不代替该 standard 失败或 merge readiness。唯一 blocking failure 为 catalog-run-e2e-smoke.py 的 no-git fixture 缺 maintainability 脚本,base/head 同一断言均 returncode=2、skip=0;已有 host_process_transport.run_host_process maintainability advisory 保留。未把失败改记通过或放宽预算。

入口仍为现有 native should-run/context-project 与 context-read,复用原 activation、权限和 once-only settlement,不新增独立 capability/界面。自用只在作者 checkout 的 CLI 上进行;没有升级冻结实验、全局安装或授予 merge 权。与 #7793 的 claim 指引为独立互补提案。

当前 head:32f3be460e2e5fd73bb4f1759a93a90ed33718cb;base:d41e71b0bee225b9cd69c48fae56e5fd23fa45b8。历史 7f99ac9de 验证不移作新头审查。

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; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=max.

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

[P2] 首读命令也必须在声明的输出预算下可读:quota_capture.py L285–287 只检查了引用 JSON 的大小。独立真实 CLI 对照发现:3000/3500字节预算下,2992字节引用会推荐 first_read_command,但该命令无法装下 selection/continuation 元数据,退出1且不产生 next_offset。相同 base 的通用读、相同 head 的 recovery 读都能前进。下面给出范围、证据和最小修复。

动机

读取原生决策 packet 的 Agent,需要先拿到当前任务、完整 Goal/Todo 正文与停止条件,再决定并执行下一步。
原来完整引用给出通用索引和恢复入口;本次增加聚焦首读,意图减少起始发现步骤。但在3000或3500字节输出预算下,新引用会推荐一个无法输出首个字符的首读命令,而原恢复命令仍能前进。
普通预算下,独立验证确认完整任务、来源状态及原 SHA 保留、详情可补读;较小预算下,首读元数据超过预算的回退缺口已由同一 base/head 调用复现。
本次不验证真实模型采纳、同信息全量消费或长程净收益,也不更改准入、结算、额度、权限及实际宿主安装。

改动思路

首读字段选择放在现有 TurnEnvelope 决策 owner,generic selector 只处理精确地址,Python 保留原值与字节分页,分工合理;问题在展示层仅验证了短引用大小,没有验证生成读命令的可读性。
当前 PR 的合理边界是已启用原生完整 packet 的起始导航和同 capture 恢复,不包括新的权限、状态 owner、独立界面或效果声明;小预算下的可用回退仍须在本 PR 修复。
首读是已识别的完整原生 capture 的导航,不是全部工作输入。来源失败、原始正文和停止条件必须保持可见;具体验收、证据和操作/结算契约仍应在依赖前展开。代码没有把“已给出首读”变成授权或已消费证明,这一方向是正确的。现有机器设置和 Host 入口继续拥有激活,不需要新界面、服务或状态库。

具体改动

关键代码讲解

  1. initialReadPointers L1409 从原 capture 选择当前控制字段、完整 Goal/Todo 正文、来源状态/版本和读入口。它留在 TurnEnvelope owner;未把 Goal 规则塞进 generic selector。未知 schema 继续通用发现,历史和验收详情仍在原 capture。
  2. capturedContextSelection L6 校验精确地址和参数互斥,只返回地址;Python 从原 JSON 取值,避免大整数经 JS value round-trip 失真。read_context_capture L116 验证原 SHA、UTF-8 cursor,并把首读续页改成固定 pointers/selection digest,因此后页不重新计算选择。
  3. _native_context_reference L243 在完整原生引用中优先生成首读命令,并移除 overview/root index。这里的 fits() 只测引用本身;真正选读页面还要携带全部 selected_pointers 和带全部 selectors 的 next_command。两者预算不同,不能用前者证明后者可读。

接受依据为 docs/reference/required-work-context.md,固定修订 d41e71b0bee225b9cd69c48fae56e5fd23fa45b8。Required work context 的完整任务/停止条件与原 Turn 身份在普通路径实现;Selected capture details 的原 SHA、selection digest、连续分页与按需补读实现;Machine default 的受限输出和可用恢复路线在新首读偏好上尚未满足。新增文档说明不是独立验收 oracle。

对主干的风险

独立同一 fixture/harness 在真实 Python CLI → TypeScript selector → 私有物理 capture 上比较:普通路径13组完整观测在 base/head 相同,覆盖完整正文末尾条件、source unavailable 状态/恢复、精确大整数、原 SHA、遗漏 pointer 的整批拒绝、补读历史/criteria、分页、default-off,以及 unsafe integer 的 full fallback 和正常 warm delta。观测摘要 04011c8ff5258f44e68ac63f5e7a809fa1ebb13d35b9c80e866d4a73c1de92fd;首读新增导航字段作为有意差异单列,没有用不同信息量推算费用。再故意从 selector plan 删除 /goal_boundary,同一公开 CLI 的完整条件 oracle 失败,正常 head 通过。

另一个相同预算反例直接执行生成命令:

输出 ceiling base 优先路线 当前 head 优先路线 当前 head recovery
3000 PASS,前进1434 bytes FAIL,引用2992 bytes,但 reader 无进展 PASS,前进1434 bytes
3500 PASS,前进1934 bytes FAIL,同一错误 PASS,前进1934 bytes
4000 PASS PASS PASS
64000 PASS PASS PASS

失败完整诊断为 max-page-output-bytes cannot fit page metadata and one UTF-8 character; increase the limit for this same capture。这不是 CI 未知,也不是原 capture 丢失。现有 small-budget 测试只检查引用/文件存在,较长 pytest 路径还可能令 shortcut 先被省略,无法覆盖“短引用已装下、实际 selected reader 装不下”的分支。在优先发布首读命令前验证选读页面及 continuation 元数据能在相同预算下实际前进;不能时恢复既有通用索引/恢复路线。保持调用者预算、原 SHA 和 Turn 身份。 增加执行真实生成命令的回归,覆盖短临时路径及3000/3500预算,不要提高预算或仅测 JSON 大小。

本地 owning Python 526 passed、53 skipped;TypeScript 87 passed,control-plane typecheck、Ruff、diff 与 semantic advisory 通过。53个条件用例不计入实际宿主/模型采用证据。标准 premerge 的6 direct及19 selected检查没有 blocking command failure,保留1项维护性 advisory;整体首次因旧 scope receipt 失效而未通过,当前独立质量记录 cqr_d08f407344c6770c2470 则因上述真实缺陷明确为 fail。作者历史 no-git catalog 失败仍保留,不推断原因已修复;本次隔离 base/head 同一命令和标准运行均通过该 smoke。

语义与 CI 对齐

现有 vocabulary、机器激活与 authority owner 均复用,新增 boolean 只表达只读导航意图。原 SHA、Turn、停止与依赖读取义务没有因短视图而取消;但合法小预算下推荐了不可读的第一步,违反当前可用恢复的调用约束。未查询、轮询或等待 CI;本次 REQUEST_CHANGES 的依据是独立复现的本地 caller regression。

我的整体评价

REQUEST_CHANGES,限 7f99ac9dea10a423857e6c3a84845b1be17d6f9e。架构范围与问题相称,普通路径和 default-off/warm 行为有实证;仍需先补齐首读预算与 fallback 的一致性。长程续行与使用路径在该反例下退化,不能用大量通过测试覆盖掉这个失败。修复后重跑相同 base/head预算反例、首读/恢复 suites 和 exact-scope质量记录,再按新 head 重审即可;不要求额外模型调用或冻结实验。

已检查既有差分上下文设置的激活契约和原生 CLI/Host 入口;本次没有渲染页面改动,visual_review 不适用。
实际模型自然采用、总成本及真实宿主收益未验证;没有页面布局变化。这个源码导航切片也不能证明父级长程收益。GitHub 同作者限制下通过 COMMENTED 记录此结论,不执行合并或撤回他人 review。

English verdict: REQUEST_CHANGES — the preferred initial read can be unreadable under its own legal output budget at 7f99ac9dea10a423857e6c3a84845b1be17d6f9e.

overview = result.pop("overview")
instruction = result["instruction"]
result["instruction"] = "Start with first_read_command for current facts and source navigation. " + instruction
result["first_read_command"] = context_capture_read_command(current_path, current["sha256"],

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.

[P2] 在优先发布首读前校验实际选读页可前进。这里的 fits() 只测引用 JSON;选读页面还携带全部 selected_pointers 和固定 selectors 的 next_command。用短私有 capture 路径与普通 recognized decision,3000/3500-byte ceiling 下引用为2992bytes,仍会推荐 first_read_command,但真实 quota context-read 退出1:max-page-output-bytes cannot fit page metadata and one UTF-8 character;没有 next_offset。相同 base 的通用读和当前 head 的 recovery 读在相同预算下都成功。请在选读页/continuation 不能满足预算时整体省略 shortcut 并保留既有通用发现/恢复;增加执行真实生成命令的短路径、小预算回归,不能只测引用大小或提高 ceiling。

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; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=max.

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

动机

读取原生决策 packet 的 Agent,需要找到当前任务、完整原始条件、具体验收入口和结算义务,再继续已授权工作。
原来完整引用优先给通用目录,需要进一步寻找相关字段;本次提供聚焦首读,同时保留同一 capture 的完整恢复。旧 head 在3000/3500字节预算下会推荐无法前进的读命令,当前头用较短的双摘要续页和整体回退修复了这个反例。
独立真实 CLI 验证了完整任务与停止条件、当前结算及未知控制字段、按地址补读验收和附件、错误拒绝与非零 offset 续页;相同 base/head 的13组既有完整观测一致,原小预算反例已通过。
本次只资格化源码中的导航与恢复切片,不证明自然模型已采纳、计费或墙钟节省、长程净收益、安装升级、冻结实验结果或合并权限。

改动思路

字段选择继续由既有 TypeScript TurnEnvelope 决策 owner 负责,generic selector 只返回精确地址,Python 保留原 JSON 值与文件分页;短命令复用 selection digest,没有增加状态、服务或第二个权限 owner。
当前 PR 的边界是已启用原生完整引用的起始导航、同 capture 义务恢复和旧预算缺陷修复;模型自然采用与完整成本仍需实际工作证据,本次不把它们作为已交付收益。

首读是一个起点,不是全部必要上下文。当前 Goal/Todo 原文、来源不可用状态和结算约束保持原值;具体验收、历史证据和可选附件仍可从同一原捕获读取,依赖前必须读完整材料。只对明确 required=false 附件延后已知 recipe 字段;未知计划、step 字段及附件控制保留。原 SHA、Turn 和 once-only settlement 没有因短视图而获得新权限或被替换。

具体改动

关键代码讲解

  1. initialReadPointers L1409 在原决策 owner 选择当前控制、完整来源正文、settlement 与既有 outcome 地址。未知 plan 全文保留;附件仅延后已知可选说明/模板。未知字段不会因“可选附件”而被整体隐藏。
  2. capturedContextSelection L6 只校验 RFC 6901 地址与互斥选项,返回路径。Python 再从原 JSON 取值,精确大整数不会因 JS round-trip 丢失;旧 select/list 路线保留。
  3. read_context_capture L124 先验证源 SHA,再构建并校验 selection digest。首读页省去重复 pointer vector,续页使用短 initial-read 选项固定原选择;profile 变化会拒绝混读,显式 select 的原 wire 不变。
  4. _native_context_reference L250 优先提供完整可用的首读命令;预算紧、schema 未知或 warm delta 保留原路线。完整 recovery 始终可达,选读 EOF 不能成为完整输入保留证明。

接受依据是 docs/reference/required-work-context.md,固定修订 d41e71b0bee225b9cd69c48fae56e5fd23fa45b8:Required work context 的完整原条件与来源义务由真实 CLI 逐值验证;Selected capture details 的原值、双摘要、连续字节页与非完整输入边界通过;Machine default 的原关闭态、warm 与合法小预算恢复路线通过。新增文档是行为说明,没有拿它覆盖改动前的验收 oracle。

对主干的风险

同一独立合成 fixture/harness 在实际 Python CLI → TypeScript selector → 物理 immutable capture 上比较。13组原有完整观测相同,摘要 04011c8ff5258f44e68ac63f5e7a809fa1ebb13d35b9c80e866d4a73c1de92fd:完整原文末尾 stop、source unavailable/recovery、精确大整数、原 SHA、缺失 pointer 整批拒绝、具体验收/历史补读、连续分页、default-off,以及正常 warm delta 与 unsafe-integer full fallback。没有把错误细节或权限差异归一化掉。

原 P2 预算反例使用相同生成命令重跑:

stdout ceiling 当前优先路线 结果
3000 bytes 通用 recovery PASS,前进1434 bytes
3500 bytes 新首读/短续页 PASS,前进2424 bytes
4000 bytes 新首读/短续页 PASS,前进2924 bytes
64000 bytes 新首读 PASS,完整选读

另一个真实 CLI oracle 验证全部当前 plan/step/必需附件及未知控制;完整可选 recipe 和当前 outcome 沿地址恢复。对同一新增未知附件 gate,实际中间头405失败、当前32f通过。非零页之间故意改变 profile,得到 digest changed 且没有混合 content;再故意移除原 goal_boundary,同一当前条件 oracle 失败,正常 head 通过。选读页始终被既有 range parser 拒绝为 full-retention receipt。

当前 head 的 owning Python 530 passed、53 skipped,TypeScript 87 passed,control-plane typecheck、Ruff、compile、diff、semantic advisory/完整 semantic smoke 与公开边界扫描通过。53项为未配置显式 native checkpoint binary 的条件用例,不计为实际模型或安装采用。当前质量记录 cqr_ce2a4b27102ff2e02c9a 已验证;standard premerge 6 direct + 19 selected,0 blocking failure/hold,保留1项既有 Host maintainability advisory。

作者此前 no-git catalog 的本地失败继续保留为历史事实,本次不把当前通过解释为该历史运行已修复;本次独立 standard 在本次隔离环境通过,同样没有移入 #7804 的修补。未知 CI 未被查询、轮询或等待,也未被当作缺失必需覆盖。当前旧 P2 的具体条件已经用同一预算和真实命令重验,而非用一个新的绿色计数替代。

语义与 CI 对齐

复用已有 interaction、settlement、page/selection vocabulary;新增 boolean 是本地只读意图,已知可选 recipe 字段过滤是保守 projection,未知控制原样保留。首读建议与必要来源义务分别写清;关闭态和 warm 分支有真实对照。没有新增 Goal、lease、额度或权限 owner,也没有扩大为自动执行或全量保留协议。

我的整体评价

APPROVE,限 32f3be460e2e5fd73bb4f1759a93a90ed33718cb。完整8文件范围已重审,原预算缺口和最后的未知附件控制反例均有独立证据。原 source/recovery 语义、错误与后续续读保持可用;这完成的是源码导航切片,不是模型自然采纳或长程效率验收。继续保留作者自用的局限:一次自然路径与同捕获合法路线 inspection 不能混成受控模型收益。

已检查既有 Differential context 机器设置、Codex 激活/readback 以及原生 CLI/Host 消费链;本次不改变任何渲染页面,visual_review 不适用。
自然模型采纳、计费、墙钟与长程净收益未验证;未执行安装升级,现有页面不受本次 diff 影响。

本结论通过同作者 COMMENTED fallback 记录;历史讨论保留,GitHub raw reviewDecision、merge readiness 与当前合并/dismiss 权限仍分别判断,本次不合并或撤回其他 review。

English verdict: APPROVE — current obligations and usable digest-pinned recovery are preserved at 32f3be460e2e5fd73bb4f1759a93a90ed33718cb; natural model/cost benefit remains unqualified.

@huangruiteng
huangruiteng merged commit 32a6c7b into main Nov 1, 2026
29 of 41 checks passed
@huangruiteng
huangruiteng deleted the codex/context-first-read-20261101 branch November 1, 2026 10:25
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