Repository navigation
fix(context): prioritize current goal and action on full and delta reads - #7985
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: actor_kind=model_agent; model=gpt-6.1-sol; provider=OpenAI; reasoning_effort=max; declaration_source=runtime_reported
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机 / Motivation
开始或恢复长任务、需要先看清当前 Goal、停止条件和本次动作的 Agent。 大段 scoped preferences 可排在完整 Goal 前,warm delta 也没有直接的首读入口;现在正文及其来源先读,full/delta 都从本次完整捕获读取当前动作。 这能让读者先判断本轮要做什么、何时停止,再按需展开证据。独立复验确认改善的是相同事实的读取顺序,没有减少必须遵守的要求。模型是否真正采纳、长程效果及完整输入成本尚未验证;本次不承诺所有必要来源在一页内。
独立六种来源排列中,基线三种把偏好放在 Goal 前且六种都缺当前动作;当前六种均先提供完整 Goal 和当前动作,来源失败、修订及完整偏好都保留。 未证明模型保留、token 节省或长期收益,也未新建准入、扣额或执行权限。
改动思路 / Approach
现有 TypeScript owner 负责优先级与 JSON pointer 合并,Python 仅适配摘要绑定文件入口;没有第二份正文、排序决策或准入 owner。 content.text 是现有结构字段,排序不靠 Goal 名称或正文关键词。先选当前动作,再稳定地优先正文来源及其 provenance;其余来源仍保留原组内顺序。数组若整体合并会恢复原始顺序,就保留元素,并把不能合并的边界传播到祖先。Python 的 full/delta 引用都指向当前完整捕获,wire delta 的 command 继续指向补丁。
当前可独立交付的是首读导航及兼容恢复,不是上下文成本或模型采用的资格化。 这是沿现有 owner 的完整小切片:无新缓存、schema、CLI 选项或第二份决策。全量更小或引用预算过小时,仍按原规则回退,不为了首读入口移除恢复契约。
具体改动 / Changes
复核完整 acb9ca11aa34efbe10289f86f8b4cd4b2b446963,实际 merge base 为 cbc1eeabd740ac557c3a4fb7bf67050ad063b629;全差分5文件 +125/-17。规范依据是 docs/reference/required-work-context.md,spec_revision=cbc1eeabd740ac557c3a4fb7bf67050ad063b629。Selected capture details / 按需读取捕获详情 与 Native context delivery 两项均 implemented:完整来源、严格摘要、固定历史引用、只读恢复及原结算义务保持;full/delta 当前首读是本次有意扩展,不表示全部必要材料已读。
关键代码讲解
initialContextReadPointers加入已有当前动作四字段,按结构化正文类型分组;偏好完整current与来源失败/恢复信息仍可见。coalescedInitialPointers检查数组合并后的元素位置,阻止父级把优先级重新覆盖;显式 RFC 6901 选择和已固定引用的 canonical validation 仍由原逻辑处理。_native_context_reference为 warm delta 同样提供当前捕获first_read_command;缺少旧 baseline 不影响当前读取,当前文件损坏仍拒绝。
PASS:当前四个 reader/reference/capture/delivery CLI 模块186项、不可变基线183项;TypeScript typecheck;标准 source premerge 的 direct、10 catalog、8 risk 与公开边界检查。独立六来源排列在相同8KiB预算下,基线3/6先读偏好、0/6带当前动作,当前6/6都先读 Goal且带动作;完整 Goal、偏好、修订、未知来源错误与恢复指引保留。这个fixture两端仍各8页,当前选读字节略增,不能据此声称 token 或总成本节省。
对主干的风险 / Risks
主要反例是整个数组均被选中后发生父节点合并,使偏好重新排到正文之前;当前反例与六排列均通过。warm normal→replan 在移走旧基线后,经显式/opaque入口仍读取本次动作;当前捕获篡改失败关闭。File/SQLite 的真实 native CLI fixture 保留原一次 admission、零 spend,原状态和捕获字节不变。历史 pinned、recipe-only、旧 selection digest 拒绝、未知 schema、小预算与关闭路径均在本次通过的模块内。
语义与 CI 对齐
复用现有词汇和 owner;模型指引明确增加“从本次捕获读取、不先读取旧基线”,没有删 actor、来源、完整附件先读、停止条件或结算约束。未验证模型采纳。premerge 中已有 maintainability ratchet advisory 保留为 advisory,未将它或其单项失败改写成独立通过;未见触及本次文件的新增直接门失败。CI 未查询、未轮询、未等待,按 wait_for_ci=false 记为 UNVERIFIED、非必需证据。
独立重跑同一 maintainability ratchet,两端均 FAIL:render_canonical_todo_sections 的既有 oversized finding、完整输出及源 blob 相同,magnitude_regressions=0;没有新增本次模块债务。
我的整体评价 / Verdict
当前完整 head 无阻塞发现,结论 APPROVE。long_horizon=preserved:必要要求与权限保持,长期成本/效果未验证;user_experience=improved:当前正文、来源和动作更早可见。Existing CLI/Agent capture navigation changes; no new visual product surface or settings editor is introduced. 不认证模型理解、完整信息在一页内或其他产品 UI。 未证明模型保留、token 节省或长期收益,也未新建准入、扣额或执行权限。 已采用 repository-experience 的首个有用旅程审视建议,但没有将建议投递当成采用或 utility。后续 approval closeout、合并就绪和合并权限分别判定,本 review 不授予安装或合并权。
English verdict: APPROVE for this exact head; current-source ordering and full/delta recovery are independently covered. CI was not consulted; model adoption and total-cost benefit remain unverified.
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: actor_kind=model_agent; model=gpt-6.1-sol; provider=OpenAI; reasoning_effort=max; declaration_source=runtime_reported
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
精确 reviewed head:15bee37524c801e97cc17568852fd35b00f92d21;比较基线:cbc1eeabd740ac557c3a4fb7bf67050ad063b629。当前完整范围已按 capability-owned 19项证据重新判断。
动机 / Motivation
开始或恢复长任务、需要先看清当前 Goal、停止条件和本次动作的 Agent。 大段 scoped preferences 可排在完整 Goal 前,warm delta 也没有直接的首读入口;现在正文及其来源先读,full/delta 都从本次完整捕获读取当前动作。 独立六种来源排列中,基线三种把偏好放在 Goal 前且六种都缺当前动作;当前六种均先提供完整 Goal 和当前动作,来源失败、修订及完整偏好都保留。 未证明模型保留、token 节省或长期收益,也未新建准入、扣额或执行权限。 生产模型采用、持续完整成本及已安装交付仍未资格化;旧106/107的TS fixture失败保留,本次独立当前16模块263通过/1跳过,不把历史失败改记为通过。
改动思路 / Approach
当前可独立交付的是首读导航及兼容恢复,不是上下文成本或模型采用的资格化。
现有 TypeScript owner 负责优先级与 JSON pointer 合并,Python 仅适配摘要绑定文件入口;没有第二份正文、排序决策或准入 owner。 正向链路为 native_context_capture_view → initialContextReadPointers → capturedContextSelection/coalescedInitialPointers → digest-bound reader → current source values; warm delta retains wire command and current full recovery.。原捕获和摘要仍是读取依据,argv只是选择执行这条已有命令的实现;有结果输出不意味着新准入、来源保留或执行权限。当前186 Python、263 TypeScript/1跳过及typecheck通过;不可变基线的逆序祖先反例失败,当前保序。 这是一项现有旅程的完整、有界修复,长期模型采用与完整成本属于未验证边界。
具体改动 / Changes
依据不可变规范/owner docs/reference/required-work-context.md@cbc1eeabd740ac557c3a4fb7bf67050ad063b629,逐项映射:Selected capture details / 按需读取捕获详情:implemented,同一摘要绑定捕获上的完整选读、失败关闭、固定历史引用和不重准入。;Native context delivery:implemented,首读提供当前控制、完整正文与来源,完整偏好和结算义务保持;warm delta 保留原补丁入口。。检查了所有变更路径、实际调用者和现有owner,未增加重复决策、配置或存储。普通显式选择、固定引用、原捕获恢复和关闭路径仍沿用既有约束;原始字节、必要来源及停止条件不能被导航成功替代。组合检查仅使用独立未提交源码树,重叠文档同时保留两项含义,不是安装、主干合并或运行中实验更新。
关键代码讲解
- function initialContextReadPointers:按既有 content.text 结构提前正文和当前动作,不从关键词猜政策。
- function coalescedInitialPointers:普通自然顺序仍可合并;逆序数组优先级不被祖先覆盖。
- _native_context_reference:full/delta 共用本次完整捕获的首读入口,原 delta 与完整恢复保留。
对主干的风险 / Risks
旧数组和祖先整体合并会把显式优先级恢复为原数组顺序;当前保留分项。warm delta 读本次捕获,旧基线缺失、损坏当前捕获、固定旧引用及off/unknown路径的既有覆盖保留。 新提交只有TS测试文件变化,生产与文档逐字节等于已审acb9ca11;旧106/107失败保留。本次重新评估完整19项,并执行当前186 Python、263 TS/1跳过、typecheck及标准premerge。独立新反例在不可变基线把两项合成/complete/facts而失败,当前保留逆序地址及原事实。旧完整代码与六排列证据仅按生产字节相同复用,没有继承旧head的批准。
当前三项组合候选的实际路由、首读、command及staged检查为 94 PASS / 1 SKIP;16个相关TS模块为 263 PASS / 1 SKIP。该组合树不代表任一独立PR的资格,也不证明已安装产品。单项标准premerge通过,保留一项原始 FAIL 的既有maintainability advisory:完整base/head输出及formatter blob相同,magnitude_regressions=0;未把它改记为单项通过。
语义与 CI 对齐
复用现有程序选择、捕获、JSON pointer和状态owner,未新增共享词表。行为变化明确披露并通过真实调用反例校验;文档是读取/恢复义务,不能视为额外授权。未查询、轮询或等待CI,远端状态为 UNVERIFIED;CI未知不构成独立review阻塞,真实回归、必要覆盖、readiness与合并授权仍分别判断。
我的整体评价 / Verdict
当前head的可观察读取/恢复得到改善,原要求、状态及权限语义保持;long_horizon取preserved,user_experience取improved。生产模型采用、持续完整成本及已安装交付仍未资格化;旧106/107的TS fixture失败保留,本次独立当前16模块263通过/1跳过,不把历史失败改记为通过。 有界重构结论为applied:复用既有owner及合并/argv逻辑,没有引入更大框架或无关迁移。当前没有已验证的阻塞发现;批准结论仅覆盖该head及上述证据,后续单独读取approval closeout与merge readiness,不执行合并或安装。
English verdict: APPROVE this exact head; CI was not consulted. Merge readiness and authority remain separate.
首读中,完整 scoped preferences 可能把当前 Goal 正文挤到数页之后;warm delta 又没有直达当前捕获的
first_read_command,动作变化时调用方容易先猜旧字段再遭到拒绝。此修复让现有 CLI 首读先交付当前动作、正文及其来源状态,并保留完整偏好、验收、停止条件与恢复路径。TypeScript 的既有
initialContextReadPointers负责排序:依据已存在的content.text结构稳定提前正文来源,不分析关键词或另建决策 owner。现有 RFC 6901 selector 在完整数组合并会逆转读取优先级时保留分项,祖先也不能再合并覆盖该顺序。Python 仅为 full/delta 包装同一当前捕获的首读入口;delta 的原command、精确基线与完整恢复仍可用。同一不可变捕获、同一真实
context-readCLI 的 base/head 对照(12,000-byte content pages):Goal 正文起点 45,717 → 9,737 bytes,从第 4 页提前至第 1 页。原 1,539 项叶事实全部保留,新增 4 项既有动作字段;选读正文 150,251 → 150,761 bytes,仍为 13 页。这里只证明导航位置改善,不据此声称减少总 token、模型已采用或 benchmark 收益。公开测试使用合成数据。验证:
15bee37524c801e97cc17568852fd35b00f92d21的 6 个 TypeScript context/Stride 模块 108/108 通过。自然数组顺序仍合并完整父节点;倒序优先级在完整祖先下仍保留原事实及显式 reader。新反例在冻结 mainac74f90c4778381b6fcedd5d76059522591c3f42复现失败。生产及文档字节与已审acb9ca11相同,新增提交仅修正旧的倒序数组合并断言并补充回归;原 106/107 失败已保留,不记作通过。当前 head 独立 review 另行复核。advisory_inherited_failure:既有render_canonical_todo_sectionsoversized decision function;无 magnitude regression,且该文件不在此 diff。此处未将该历史失败记为单项通过。复现主要回归:
uv run --extra test pytest -q tests/control_plane/test_context_first_read.py tests/control_plane/test_context_read_reference.py tests/control_plane/test_context_capture_read.py tests/control_plane/test_context_delivery_cli.py。边界:变更的是既有 Agent CLI 导航,无新设置、协议字段、权限或存储 owner,也不安装候选或改变运行中的实验。相邻的有限重构应用在现有数组合并 owner,避免在调用方重复修补顺序。延续 #7965 的固定选读兼容路径;旧 raw initial cursor 仍严格拒绝摘要变化并保留原完整捕获恢复。首读不等于完成全部必读内容或取得执行权限。