Repository navigation
Conversation
Signed-off-by: Dan <21163332+lllluull@users.noreply.github.com>
Signed-off-by: huangruiteng <huangrt01@163.com>
songoow
left a comment
There was a problem hiding this comment.
Reviewer: model_agent; GPT-6; OpenAI; self_reported.
动机 / Motivation
受影响的是通过 context-read 从已保存任务上下文选择字段的程序和 Agent。以前只要选择路径无效,就被建议恢复原始捕获,即使文件及摘要完全健康;本项区分请求错误与runtime错误。已验证三类路径错误返回稳定原因码和正确修复路线,同一健康捕获可以修正路径后继续读取。本项不修改准入、结算、捕获完整性或全量读取,也不新增自动重试与模型调用。
这次判断绑定PR #7754的完整head 759303b。评价对象是已经存在的实际调用任务与局部可观察结果;重复调用带来的成本或错误恢复路线是本项动机,不能把较小响应或更少导入直接等同于长期任务质量。
改动思路 / Approach
错误分类继续由 TypeScript selection 所有者决定,Python读取适配器只保留已有error_kind和diagnostic_code。请求拒绝引导修正参数,runtime失败引导修复运行时;文件损坏仍走既有摘要拒绝。本 PR 的合理边界是现有只读恢复路径的错误信息保真,不增加另一个捕获或决策所有者。
沿入口跟踪到原所有者、返回值和失败恢复后,这个实现仍在现有边界上处理问题。无改动会保留原成本或错误指引;另起一套业务规则、持久化状态或通用缓存会增加同步义务,此处没有这类必要性。新增说明和投影应服务原调用方完成任务,不能改变原来的准入、权限、结算或来源完整性要求。
具体改动 / Changes
关键代码讲解
- capturedContextSelection:为错误pointer、数组索引和缺失字段添加不同诊断码,保留整批拒绝和不回显内容。 输入与拒绝分支沿用现有调用路径;这一处的返回内容或依赖时机改变,不把局部投影提升为新的业务判定。
- read_context_capture:保留类型化错误信息,按失败来源给出重读同一capture的恢复指引。 输入与拒绝分支沿用现有调用路径;这一处的返回内容或依赖时机改变,不把局部投影提升为新的业务判定。
合法读取的完整JSON、摘要、精确数值和无副作用语义保持;错误回复有意增加机器字段并修正恢复措辞。原来的整批拒绝、定位原始参数和隐藏私有内容义务都保留。正向场景是:以相同capture选择合法转义键,原始9007199254740993被逐值保留,base/head成功响应一致。负向场景是:无斜杠pointer、非规范数组索引和缺失字段返回不同code;缺失文件、摘要不匹配和坏JSON不能伪装成selector修复。这些是依据实际源码与已有调用测试核对的行为边界;失败和恢复继续由原owner负责,没有以返回字段存在代替真实状态读取。
规范基准: docs/reference/required-work-context.md ;不可变修订 04c5799。以下标签定位原文段落/原句,不是新造的协议编号。
- Selected capture details:RFC6901合法选择保持原值、整批拒绝,遗漏select的全文读取保持文件路径。 对应上述原所有者和当前聚焦回归。
- Missing pointers or invalid array indices:路径缺失和非法索引拒绝整批,错误定位原始参数及token而不泄漏路径或正文。 对应上述原所有者和当前聚焦回归。
- Inspect the resolved prefix:健康capture上的请求错误修复路径/已知父节点后重读,捕获损坏仍按原摘要约束拒绝。 对应上述原所有者和当前聚焦回归。
- performs no admission:读取和重试不进行准入、结算、live Goal读取或产生新的模型工作。 对应上述原所有者和当前聚焦回归。
实际验证 / Validation
50 项 Python 选择/读取测试和7项 TypeScript选择测试 PASS;独立同输入base/head探针 PASS;无输出TypeScript类型检查、Python编译和 diff hygiene PASS。
执行命令:python -m pytest -q tests/control_plane/test_context_capture_selection.py tests/control_plane/test_context_capture_read.py; node --test --test-isolation=none tests/control_plane_ts/context_selection.test.ts。另做了独立真实base/head探针:同一capture的三类错误在基线都丢失类型并给Restore建议,head分别返回invalid_pointer/invalid_index/missing_pointer原因码;合法/a~1b选择中的9007199254740993、两种摘要和整段成功载荷完全相同,原文件未改写。runtime错误的mock测试只证明适配器分支,真实TS原因码另由该跨语言探针及7项TS测试验证。
对主干的风险 / Risks
合法读取的完整JSON、摘要、精确数值和无副作用语义保持;错误回复有意增加机器字段并修正恢复措辞。原来的整批拒绝、定位原始参数和隐藏私有内容义务都保留。最需要防止的情况是:无斜杠pointer、非规范数组索引和缺失字段返回不同code;缺失文件、摘要不匹配和坏JSON不能伪装成selector修复。已核对相关调用方和已有review,未重复发布旧head意见;本轮对新增head的源代码与局部回归单独作判断。原持久化状态和业务所有者保持,仍然不能由小范围通过推断整仓或所有部署入口已经合格。
远程快照仅有Mergify Summary成功,未观察到完整GitHub Actions结果;此结果不能被描述为全仓CI绿。risk-based canary: direct=6, selected=19, executed=19, failures=0; gate=passed.
后续合并仍需核对远程head与合并门;该结论不替代安装后采用或模型效果证据。
我的整体评价 / Verdict
APPROVE:在本次只读错误保真边界内,没有发现阻断性实现问题;真实恢复路径、失败反例、类型检查和仓库风险验证已通过。 审查仅适用于exact head 759303b。
本 PR 的合理边界是现有只读恢复路径的错误信息保真,不增加另一个捕获或决策所有者。 已验证三类路径错误返回稳定原因码和正确修复路线,同一健康捕获可以修正路径后继续读取。 已检查 loopx/control_plane/quota/context_selection.ts:capturedContextSelection;loopx/cli_commands/quota_capture.py:read_context_capture;变更是CLI/内部读取或文本协议,没有修改浏览器页面布局,视觉截图不适用。
真实模型采用/安装后App未验证;本地合同与risk-based gate均通过。远程只有Mergify Summary,完整GitHub Actions未知;合并还须freshness/readiness核验。 本项不修改准入、结算、捕获完整性或全量读取,也不新增自动重试与模型调用。所有本轮探针使用合成fixture,没有运行真实模型任务或发起业务作业;本review陈述审查与验证事实,不声称已经发布部署或完成合并。
English verdict: APPROVE — exact head 759303b. Typed read failures and same-capture recovery are validated through the actual Python/TypeScript boundary, with preserved successful payloads and passing scoped risk-based qualification. No blocking code defect found; full remote CI and merge readiness are separate observations.
Problem and fix
An invalid
--selectcurrently tells the caller to restore the original capture, even when the file is healthy. The runtime already distinguishes request rejection from runtime failures, butcontext-readdrops that classification.This preserves
error_kindanddiagnostic_code, gives malformed pointers, invalid indices and missing paths distinct codes, and returns recovery guidance for the actual failure. Programs can correct the read against the same capture. Digest checks and whole-batch rejection stay unchanged.Validation
61 focused Python tests and 9 TypeScript tests passed, including the real CLI path from a rejected selection through directory discovery to a successful read. Lint, type checks and diff-selected canaries passed.
Written with OpenAI Codex. No UI changes.