Repository navigation
test(context): preserve exact numbers in acceptance references - #7633
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
There was a problem hiding this comment.
Reviewer: model_agent; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=max.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机 / Motivation
维护验收条件引用传输的开发者,在多个位置含有看似相等、原始 JSON 数值不同的条件时修改共享比较逻辑。旧测试没有覆盖 1 与 1.0 等数值在多个来源之间的误共享;本测试要求不同来源保持字面值,并允许第三份相同内容引用后出现的正确来源。两个现有投影入口均通过十组参数化检查;刻意引入数值有损比较后,这十组检查全部拒绝错误引用。这次只增加既有文件内的回归保护,不修改运行时、默认策略、权限或差分编码,也不宣称证明模型保留或长期成本收益。
改动思路 / Approach
检查了实际比较 owner 和压缩入口:同一内容的验收条件可以用引用减少重复,但“看似数值相等”不足以证明原始 JSON 相同。测试把左值放在第一来源、右值放在第二和第三来源,要求第二来源完整保留,第三来源引用第二来源。直接复用既有 packet fixture 和两条真实 Python 投影,比再建一个 smoke 或比较抽象更合适;输入不变和重复调用不变也属于同一边界。
具体改动 / Changes
审查 head 7f9c0a0a7aaf15c2356c33d2b8e06693825979c1,实际 merge base ee7b65f124f5f461b3e5f9f6fb45eae0e6c317f4。只有 tests/control_plane/test_quota_acceptance_references.py 增加 24 行;生产代码、依赖和协议都没有变化。
关键内容讲解
新测试覆盖 (1, 1.0)、(False, 0)、(-0.0, 0)、相邻的 2**60 大整数,以及整数/浮点表示,逐一走 _reference_inline_goal_acceptance 和 compact_quota_should_run_cli_payload。断言比较原始 JSON 表示和完整引用路径,避免 Python 的相等运算自己掩盖 false/0 等区别;同时断言原输入未改、投影幂等。
规格依据为 docs/reference/required-work-context.md,固定 revision ee7b65f124f5f461b3e5f9f6fb45eae0e6c317f4。判据 Unknown horizon fields remain current input.:implemented;未来字段中的数值仍是当前原始输入,不能因为精度或类型折叠变成另一来源。已读实现的 json.dumps(..., allow_nan=False) 比较与这一要求一致。现有诊断数值测试覆盖单份值保真,这里补的是多个来源之间的正确复用和后出现 owner,具有独立价值。
对主干的风险 / Risks
没有阻塞发现。PASS:两个模块合计 31 passed,包含既有真实 File/SQLite CLI 路径;Ruff 通过;以实际 base 执行 standard premerge,通过全部 direct checks 和三项选定 canary。没有查询、等待或据以推断 GitHub CI。
另做私有进程内 mutation,只把既有比较键改为双精度数值并归一化零,保留全部测试断言:真实 head 十组通过,有损比较十组全部被拒绝。最初只转 float 的 mutation 被八组拒绝、仍保留负零区别;该结果保留,第二次明确增加零归一化,未降低测试要求。mutation 没有修改任何 tracked 文件。这说明测试能暴露具体错误,而非只复述当前成功输出。
我的整体评价 / Verdict
这项独立的测试保护已达到其有界目标。long_horizon 为 preserved:保护后续多轮传输中的原始要求,当前运行行为不变。user_experience 为 not_applicable:检查了实际 CLI 投影链,测试变更没有增加用户填写、确认或恢复步骤。可视审查 not_applicable,唯一测试文件未改 rendered presentation;未验证范围是安装态和模型效用,没有新增界面。
当前完整队列和相邻覆盖扫描未发现同作者重复 smoke 批量堆叠;这 24 行适合保留在现有模块,无需再增框架或任务。批准只针对该 head 的回归保护;不证明另一路 saved-file 差分已经修复,也不授予合并权限。
English verdict: APPROVE — 7f9c0a0a7aaf15c2356c33d2b8e06693825979c1 adds mutation-sensitive exact-number coverage; 31 tests, Ruff and standard premerge pass.
验收合同的引用共享必须保留完整原始 JSON:
1/1.0、负零、布尔值和相邻大整数不能因跨语言比较而被错误合并;后续完全相同的合同仍应复用正确的字面来源。在现有两条投影入口补充 10 个参数组合,检查数值与原对象不变、不同合同保留正文、后续精确副本引用正确来源,以及重复投影稳定。本 PR 仅增加一个测试文件的 24 行,直接面向 main,不依赖 #7430、#7627 或 #7628,也不改变运行时行为。
验证:相关两个模块 116 passed,含既有真实 File/SQLite quota 入口用例;Ruff、diff 检查和标准 premerge 通过(3 项 catalog canary,无失败)。未运行远端 CI 或模型任务。
这是 C1 数值完整性的一项可独立合入的保护。后续 TypeScript 投影迁移需要复用这组原始数值与断言;本 PR 的通过不代表该迁移、安装采用或长程效果已经验收。