Repository navigation
fix(ci): reconcile qualification invariant owners - #6347
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
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
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机
运行完整 Python 资格化及读取 Goal 工作前沿的维护者。
原先三个可复现失败同时存在:资源读取违反显式 UTF-8 合约,前沿模块超过原 2000 行上限,架构测试拒绝已由现有维护性 owner 记录的精确迁移例外。 现在资源读取固定 UTF-8,两个计数复用原有 owner,模块从 2007 降至 1998 行;架构测试按既有精确例外及其理由、退役计划判定,邻近错误边与陈旧例外仍被拒绝。
本 PR 不提高上限,不新增运行时依赖或授权例外,不改变 claim、终态、provider 默认,也不宣布全量 hosted CI 或发布资格已完成。
完整四分片/双 worker/coverage/time-limit 的 hosted 资格、安装采用与发布容量仍未在本审阅验收;作者额外全包 mypy 失败记录保留,不能当作相同签名基线 waiver。
改动思路
复用现有计数与 reviewed-debt owner,比删除 Explore 完成 guard、抬高行数上限或增设第二套 allowlist 更小且保留语义。
这是独立可验证的源代码资格化矛盾修复;它交付三个具体失败的消除,完整 CI 与发布验收仍归原 owner。
冻结依据为 docs/development/testing-and-quality.md 于 fee889e617e1d063b42acff34b46445c49cee062 的预算失败决策:本审阅索引 measure_same_contract、preserve_semantics、disclose_tradeoff 对应同负载测量、保持消费者语义、披露取舍。另核原架构的 zero-exception 声明与同 base 已有 reviewed-debt owner,不能把本 PR 更新后的文档反过来当作规范。S10/S12 的完整 CI 与发布标准保留。
这个改动不改变运行时边、lease/claim/终态或 stride 决策。Python 仍仅承接词法资源与既有派生计数;TypeScript owner 不迁移。架构验收从无条件拒绝改为现有完整 source→target 精确例外;必须有原理由和退役计划,陈旧例外仍失败。原 Explore 完成 evidence guard 保留,不能通过删 guard 或另造宽泛 allowlist 获得通过。
具体改动
loopx/control_plane/work_items/stride_policy_codec.py:15—stride_strategy_options:ExplicitUTF8 lexical schema read feeds existing CLI and editor;TypeScript decides stride.loopx/control_plane/goals/goal_frontier/__init__.py:579—_summary_task_counts:Call same imported count helpers;claim/terminal/user semantics and largeintegerprecision retained.tests/architecture/test_control_plane_import_boundaries.py:210—_review_outward_dependencies:Translate exact AST edge IDs into existing reviewed-debt evaluator;no runtime allowance added.
全 diff 为 5 文件 +106/-22。实际 fork 是 fee,GitHub intake base 为713;先前从713做两点比较显示的无关 Chat prompt 差异已排除,未归入本PR。本批只修 UTF-8 参数、两条 aliases、原架构 oracle 与对应文档/15计数案例和8负例,未加例外或抬上限。
对主干的风险
无阻塞发现。最强风险是精确迁移债务被误扩成 neighboring source/target 许可;当前五个邻近错误边、缺 reason/retirement 两项与一个 stale case 均拒绝,真实 repository AST 扫描允许的仍是已有完整旧边。status/quota-Markdown 的零例外约束保持,动态 import 不在 AST 证明范围内。
独立执行:211 个当前 source 检查通过,UTF-8/实际 configuration editor 32 个检查通过;同15个计数断言在不可变 fee 旧 owner、当前与隔离 wheel 都通过。真实 File/SQLite CLI 保持 own/free/peer =1/1/1、选中 own、excluded/deferred 不入选。不可变 base 的原 UTF-8/架构检查 2 failed /19 passed,ratchet 失败指向2007/2000;head 原检查与1998行、原2000上限通过。
188-byte 当前资源完全是 ASCII,旧/new codec 在 ASCII locale 都可读取;我最初预期 UnicodeDecodeError 的 probe 没有证实该错误,保留原记录后回到真正失败的“显式 UTF-8”全树合约。正常构建 wheel 后在 checkout 外检验:1694 产品文件 source/wheel/installed 字节同,17个计数/真实 canonical File/SQLite CLI 检查通过;实际 configure-goal parser 和已有 configuration editor 在 ASCII 下读回相同 off/evidence_conditioned 选项。仅 fixture 的 TS 资源根指向 installed package;不改测试断言或伪造 provider。
5 direct /18 selected canary、Ruff/编译、changed advisory/full semantic/public 边界通过,gate passed、manual hold0。自己按 pyproject 的 python -m mypy 执行,fee/head 都为19 source files 无问题。作者另一个更广范围的 4724 errors/556 files 记录未由这次19-file结果覆盖;原不同签名及失败仍保留,不称 baseline waiver。完整 hosted 四分片、双 worker、coverage/time-limit/full pytest、Windows/nativeDesktop/PG/live模型或发布容量没有在本审阅通过。CI 未查询、轮询或等待。
我的整体评价
APPROVE:这是一项有真实 baseline 失败、精确反例与普通消费者读回的有界 source repair。既有规则被复用,原预算与 M3 guard 保持;新的 architecture 验收默认已通过重命名测试和公开文档显式披露。已应用有界整理:删除两个重复 wrapper、复用一个 reviewed-debt owner,减少后续修改的双重知识来源。普通运行时默认/配置字段无需另加开关或 frontend 操作,现有 editor/CLI 被实际检验。
本结论不关闭完整 CI 或发布任务,也不授予合并、安装升级权限;author-owned COMMENTED 承载批准,并与 GitHub formal approval 分开。
English verdict: APPROVE — c077d6d
The exact head fixes three reproduced source qualification failures by pinning UTF-8 and reusing existing count and exact reviewed-debt owners. Immutable-base counterexamples, eight rejection cases, source and normal-wheel File/SQLite CLI/configuration readback preserve the unchanged ceiling and runtime semantics. Full hosted/all-package qualification and release capacity remain open; no merge authority.
Reviewer: model_agent; model=gpt-6.1-sol; provider=OpenAI; runtime_reported; reasoning_effort=xhigh
Three reproducible full-CI qualification failures share contradictory or duplicated ownership: the packaged stride schema read lacks explicit UTF-8, the frontier module exceeds its unchanged 2,000-line ceiling, and the architecture oracle rejects a legacy dependency already admitted by the maintainability policy.
This repair pins the existing resource read to UTF-8, reuses two existing counter helpers, and makes the architecture oracle consume the exact reviewed dependency-debt owner. The frontier drops from 2,007 to 1,998 lines without raising the budget. Configuration values, claim/terminal semantics, the legacy Explore completion-evidence guard and runtime dependency edges remain unchanged.
The architecture validation behavior changes explicitly: the previously unconditional rejection now accepts only existing, fully identified reviewed edges with valid reasons and retirement plans. No exception is added. Eight negative cases reject other source modules, neighboring targets, missing review evidence and stale exceptions; the architecture documentation describes the same owner.
Validation:
Qualification remains held: an additional configured mypy run fails with 4,724 errors across 556 transitive files on both the immutable base and head. Complete diagnostic signatures differ at fourteen frontier line positions, so this is not an identical-signature baseline waiver. The quality receipt retains that failure and the unverified complete hosted CI/release-capacity acceptance. Full-suite four-shard/two-worker/time-limit criteria are unchanged; no installed product adoption or merge readiness is claimed.