Skip to content

fix(context): preserve complete current preferences in initial reads - #7935

Merged
huangruiteng merged 1 commit into
mainfrom
codex/initial-preference-view-20261102T195337Z
Nov 3, 2026
Merged

huangruiteng merged 1 commit into
mainfrom
codex/initial-preference-view-20261102T195337Z

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

Goal And Delivered Outcome

已启用偏好 hook 时,required_reads 已被履行,但推荐的 first_read_command 只选择 current.revision 和不存在的单数 current.instruction。实际 owner 返回复数 instructions、items、authority 等,导致当前纠偏、退役记录和 advisory 边界没有进入首读。

复用现有 TypeScript initial selector,直接选择 owner 的完整 current 视图;不再手工维护子字段白名单,也不重复投影父子值。空视图、不可用的 null 和未知字段均原样保留。原 capture、来源校验、后续动作前精确作用域新读及权限边界不变。

  • Outcome basis: 可复现的推荐首读信息遗漏;实现依据为 docs/reference/required-work-context.md 在 f941b5939345c6d1c3d770a982182624e7ef393f 的原生首读契约及现有偏好 owner。
  • Related to C1: deliver complete-source Turn input and recovery #7430;base 为 main。本修复可独立验收和回滚,完整 C1 仍由原提案继续。

Author Declaration

Written by: model_agent — OpenAI GPT-6 / Codex。

Criterion Disposition Symbol / path Evidence
首读交付当前工作前必要上下文 implemented initialContextReadPointers 真实 File/SQLite 偏好 lifecycle → native reader
保留 current 纠偏、退役、空替换及未知值 implemented current 整体选读 活跃/纠偏/退役、null/空/未来字段回归
advisory、后续新读和原 capture 校验 implemented 既有 owner;reference 文档 读取前后 capture 不变;混 profile 拒绝后重新首读恢复

Self-check: 完整阅读五文件 diff;复用既有 owner 和 reader,无新 schema、状态、配置或权限门。同域简化已由两条易失子字段选择收敛为一个完整 owned view;无须额外框架或改写其他 caller。

Scope And Continuation

这个首读遗漏在本范围内已修复。跨 Host 默认、两层配置、完整 C1 writer/历史 reader 退出、原五项输出预算及同预算实际决策/成果/完整成本仍不由本 PR 认证;沿 #7430 继续。

Validation

  • Tested revision: b7c7dae8c0385f41b5dffd23a903489e19cc6203。reader/native 测量与 Python 测试在提交前对相同产品和测试 blob 执行;提交后静态和 premerge 检查另列。
  • Run state: finished;input classes: synthetic, public_fixture。
Check kind Result Evidence / limitation
regression_parity passed 新增/扩展的五个 case 在原产品代码上均失败;修复后通过。
real_entrypoint / real_backend passed test_context_first_read.py、test_context_read_reference.py、test_agent_preferences.py 完整三模块 73 过;File/SQLite 隔离状态覆盖活跃、纠偏、退役及动作前新读。
integration passed test_context_capture_read.py、test_context_capture_selection.py、test_context_capture_registry_independence.py 完整三模块 69 过。
unit passed TS progressive_context、context_delivery、agent_preferences、context_selection 四模块 54 过。
real_entrypoint passed 实际 Codex exec 与 CodeMode 各消费三页完整 current,并写出独立核验的合成产物;确定性 localhost provider、隔离 home。最初两次被测试工具对分页 schema 的错误假设挡住;改用原 source/digest coverage oracle 后通过,产品检查未放宽。原始记录未公开,公开复现以已提交回归为准。
regression_parity passed 同一不可变 capture:旧 profile 续读拒绝,新的同源首读恢复;原 capture/Goal/admission ledger 不变,读取没有新准入或扣额。
static passed control-plane typecheck、涉及 Python 文件 Ruff、五文件公开边界扫描、自修复 pattern lookup、staged/committed 双语与 whitespace 检查。
manual passed 精确五文件 CQR:8d7fdada1a772fc9b894f6000d8de1109efb6548e069f1c5ab9bccef8f79dccd,receipt cqr_8d7fdada1a772fc9b894 valid;0 blocker/0 warning/1 advisory,safe-fix allowed、未应用质量修复 pass。
integration passed standard premerge:5 direct + 17 selected checks、0 blocking failure;保留 1 项 maintainability ratchet advisory failure。该门通过不授予合并权。

同一合成 capture 的完整正文 F=50,613B;修复前所选正文 17,759B,修复后 19,407B,补齐必要信息增加 1,648B。三页 stdout 合计 21,192→22,892B(+1,700B),规范 argv JSON 合计仍为 2,536B,调用数仍为三次。当前 1−V/F 为 61.6561%,只适用于该合成 capture;前后语义不同,不能称本修复带来压缩收益,也不能推导模型采用、token/费用、科学收益或整体净收益。

Coverage gaps: 无外部模型、现场安装、自然模型决策/retention、科学实验或完整成本资格。没有改 PostgreSQL authority store;本次不运行其集成套件。远端 CI 未查询或手动触发;没有合并、安装或默认提升。

Frontend / Visual Evidence

UI impact: none。修复既有原生读取路径,不新增界面或独立能力。截图和 viewport review 不适用。

Type of Change / LoopX Area

Bug fix;control plane、host integration、reference docs、durable regression tests。

Shared-authority RFC Fixture Impact

N/A:不变更 provider routing、存储、写入或共享权威协议。

Boundary Checklist

  • 五个公开文件及正文均不含私有状态、原始轨迹、凭据、内部链接或本机路径。
  • 没有重复科学任务、修改预算/评分/实验条件或扩大权限。
  • 变更局限于当前首读遗漏及其验证和可复用诊断。
  • 无成对 RFC 变更;双语 diff gate 通过。
  • UI impact 为 none。
  • 提交有 DCO Signed-off-by。

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: actor_kind=model_agent; model=gpt-6.1-sol; provider=OpenAI; declaration_source=runtime_reported; reasoning_effort=max.

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

动机 / Motivation

通过原生 quota/Turn capture 的 first_read_command 获取当前偏好的 Agent 与宿主消费者。 hook 已满足 pre-work required_reads 后,初读仅选择 current.revision 和不存在的 singular instruction;真实 plural instructions、items、纠偏/退役与 advisory 边界被静默省略。 既有 TypeScript initial selector 选择 owner 的整个 current,完整保留当前指令、偏好、退役/空值与未来字段;不复制父子选择,不重写原 capture,也不把当前视图当作外部写入前的 fresh exact-scope read。 不宣称模型已理解偏好、live Codex/CodeMode/安装版采用、跨 PR 的完整 C1 资格、token 节约或可比完整成本净收益;偏好始终不授予权限。 原生 reader/模型实际采用与完整成本仍由既有 C1/#7430 和 context/runtime owner 验收;作者随后报告固定集成 ON/OFF checkpoint 均通过,本轮未重跑,也不签发其组合或 parent 研究资格。

改动思路 / Approach

现有偏好 owner 已产出完整 current,丢失发生在 initial selector 的子字段白名单。直接复用 TypeScript include 选择完整 owner 值,比复制所有已知字段或新增一层配置更小且更稳妥;原 writer、digest-bound reader 和 lifecycle 不变。 Select the owner whole value with existing include rather than inventing a field whitelist, duplicate state or authority owner. The source current schema can evolve without silently dropping owner obligations; existing native paging/digest owner remains authoritative. 本次闭合的是既有 capture 初读投影,原偏好 writer、生命周期、context digest、admission 与 settlement 继续归原 owner;没有新配置、reader 协议或状态副本。 没有新状态、permission、scheduler 或第二个执行 owner;保持同一用户请求到可读结果的已有入口,不增加确认轮次。

具体改动 / Changes

规范依据是先读的不可变 base f941b5939345c6d1c3d770a982182624e7ef393f 的 Required work context:Initial selection must preserve current source obligations and literal empty/unavailable/future values; capture identity, selected-view digest and fresh action-scoped preference reads remain distinct. 当前是一个 independently usable 的 justified_increment;当前改过的文档不能单独给自身作验收证明,原 parent/真实宿主与完整成本仍 deferred。

关键代码讲解

  • initialContextReadPointers 将 revision/singular instruction 两个子选择改为整个 current;own-key 检查保留 null/空对象,未来字段和含 /、~ 的值不被裁剪,也不再重复父子选择。
  • native_context_capture_view 仍从原 capture 发出既有 first-read/recovery 命令,不重写原始 payload 或决定身份。
  • read_context_capture 保留原 capture SHA、selection digest 和 UTF-8 分页顺序;旧 profile 不能拿新选择结果续读。

独立完整6个 Python 模块 142 PASS、完整4个 TS 模块 54 PASS,control-plane typecheck PASS。实际 File/SQLite 经 remember→correct→retire 后,直接执行 emitted initial read,逐值对照当前 owner;retired statement 保持 null,旧声明不复活。

另用相同 436563字节 capture 调用两版真实 native入口:base 只读8175字节/仅 revision,head 完整读91042字节,2页按返回 cursor 覆盖到 EOF;完整 current 与原值相同,capture SHA 和字节不变。null、空对象和含未来转义键的3个场景旧版全失败、当前全通过。所有非偏好选择相等;hook不存在时实际 TS owner 使用真实 caller 字段得到相同指针;旧 profile 的续读仍以 digest changed 拒绝,不执行 guard/admission/spend,新初读可在同一原 capture 上完成。

对主干的风险 / Risks

完整指令增加了上下文成本。刻意较大的30项夹具中 selected8175→91042字节、reader stdout9087→93527字节、1→2次调用,原capture436563字节相同;这些是 bytes/calls,不是 tokens、压缩收益或全成本净益。初读仍只是当时 snapshot:外部动作前须 fresh exact-scope preference read,空/unknown 不等于免除义务,偏好不授予权限。没有实际模型/安装版采用资格;作者额外集成臂与原 C1/#7430 验收不由本轮通过。

Independent standard premerge:5 direct checks passed;17 selected,16 passed and1 inherited maintainability advisory failure; no blocking failure, skip or manual hold. Raw maintainability check remains failed. 独立同命令在 immutable base 与本 head 运行 raw ratchet,完整 stdout 和空 stderr 逐字节相同,仍是 render_canonical_todo_sections 未登记的 oversized decision function,magnitude regressions 为0;该失败 owner 的完整源文件 blob 也相同。不是按相同总数归因,原始 FAIL 没有改记通过,作者 CQR FAIL/invalid_receipt 没有被豁免。受改动 invariant 则由上述完整模块与实际入口正反例独立覆盖。DCO/diff/public scan 和需要的双语/语义检查已核验。CI 未查询、未轮询或等待,未知 CI 本身不是缺失评审证据;review、CQR、实际 merge readiness 与 merge 权限分别处理。

我的整体评价 / Verdict

APPROVE 精确 head b7c7dae8c0385f41b5dffd23a903489e19cc6203,未发现当前阻塞性缺陷。本次闭合的是既有 capture 初读投影,原偏好 writer、生命周期、context digest、admission 与 settlement 继续归原 owner;没有新配置、reader 协议或状态副本。 现有 first_read_command 一次入口即可分段读到完整当前偏好,不要求人工复制已知指令或增加确认;原 hook-off 行为和明确 unknown/empty 含义保留。 复用既有 owner 的同域简化已落在当前差异中;不引入为了小修复而新增的框架。已检查完整5路径和现有调用入口:仅内部运行时/初读投影、契约与测试变化,没有渲染页、布局或设置编辑器变更。 没有视觉改动需截图;未宣称已安装 App、真实宿主或设备上的采用。 不宣称模型已理解偏好、live Codex/CodeMode/安装版采用、跨 PR 的完整 C1 资格、token 节约或可比完整成本净收益;偏好始终不授予权限。 原生 reader/模型实际采用与完整成本仍由既有 C1/#7430 和 context/runtime owner 验收;作者随后报告固定集成 ON/OFF checkpoint 均通过,本轮未重跑,也不签发其组合或 parent 研究资格。

English verdict: APPROVE b7c7dae8c0385f41b5dffd23a903489e19cc6203; the reproduced defect is fixed on the exact head, unrelated raw ratchet failure is retained, real-host adoption and net benefit remain unverified.

@huangruiteng
huangruiteng merged commit 1f9c477 into main Nov 3, 2026
29 of 40 checks passed
@huangruiteng
huangruiteng deleted the codex/initial-preference-view-20261102T195337Z branch November 3, 2026 01:08
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