Repository navigation
test(steward): follow the owner executor vocabulary - #8029
Conversation
The steward editor test hard-coded the pre-Antigravity endpoint list even though the editor follows steward_executor_endpoints(). Compare against that owner so the required configuration suite tracks accepted executors without a second vocabulary copy. Signed-off-by: JasonBuildAI <jasonbuildai@gmail.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · gpt-6.1-sol · OpenAI · max · runtime_reported
APPROVE — 当前 exact head 未发现 blocking finding。 我独立复现了旧断言失败,并用有区分度的错误投影确认新断言仍能发现遗漏、多余和重复 executor。
动机
受影响的是为 Steward 配置或相关 Python 变更运行必需验收的贡献者。产品已经把 antigravity 作为合法 executor,与 codex、dsh 一起从 namespace owner 投影到编辑器;旧测试却只接受后两个值。此前正确产品行为也会使测试失败;本 PR 让测试检查编辑器与合法词汇的一致性,并由既有独立测试继续固定已出货的 Antigravity 支持。可观察结果是:同一套配置/owner 测试在 base 为 38 passed、1 failed,当前 head 为 39 passed。它不改变产品配置、默认 executor、权限或模型调用,也不宣称完整 CI 已绿。
这是一个可独立交付的内部维护修复:消除已复现的伪失败,恢复验收路径的信号,而非为了增加测试数量。保留旧列表会继续阻断正确结果;改成另一个三项字面量虽能暂时通过,却仍在测试中维护第二份词汇。
改动思路
固定评审 17aa7c92be9fb25ebc7caea5df9d71b14556435d,base a0130633723210a5406dca61ee27aa33fe48b3f3。machine_defaults.py 已是合法 endpoint 的 owner,configuration_ui._steward_executor_editor_options() 读取它并排序,编辑器只展示这一结果。当前变动让测试复用这个契约,不增加运行时分支或新的 vocabulary。机器限定、字段类型、required/nullable、Goal override 拒绝和配置来源读回等其他断言全部保留。
最强反对理由是新期望也读 owner,可能把产品错误一起接受。这里需要分清两个不变量:此测试检查“编辑器准确投影 owner”,既有 test_antigravity_is_registered_in_steward_executor_vocabulary 则独立检查“owner 仍接受已出货的 Antigravity”。我实际让 projection 缺项/多项/重复,当前测试全部拒绝;再让 process-local owner 移除 Antigravity,一致性测试会接受两个值,但独立 shipped-endpoint guard 会失败。这证明保留的是两层互补的覆盖,不能用前者替代后者。
具体改动
test_capability_configuration_ui.py:13–15导入既有steward_executor_endpoints;:140将旧['codex', 'dsh']换为sorted(steward_executor_endpoints())。只改这个既有测试文件,4 additions/1 deletion,不改生产源或新增测试框架。- 实际调用链是测试的
capability_configuration_editor('steward_executor')→configuration_ui.py:35–43的 options projection →machine_defaults.py:87的 closed owner。断言仍比较完整排序列表,而非contains、集合子集或跳过校验,所以漏项、多余值、重复项都会被检测。 - 既有 Antigravity guard 在
test_antigravity_steward_adapter.py:38–69独立固定 literal、normalize、默认模型和 channel binding;namespace 测试保留未知 endpoint 拒绝、非法 flexible pool、机器配置 live-store 读回及错误恢复。没有执行真实 Host 或模型。
规格依据是 #8028 的 Expected behavior,以其复现基线 a0130633723210a5406dca61ee27aa33fe48b3f3 的 owner/editor 契约核对;没有另造一份 RFC 或新 acceptance:
| criterion_id | 要求与 disposition |
|---|---|
Expected behavior |
implemented:编辑器提供的 executor ids 必须恰好等于 namespace 接受的 ids。真实 base/head 同命令复现/通过;错误 projection 的独立反例确认完整一致性仍被检查。 |
已读取 #7832 与 #7746 的公共交付背景,并核对当前实际源码;前者已出货 Antigravity,后者把词汇 owner 收敛到 namespace。历史描述只作来源,不代替本轮执行。当前记忆建议提醒审视第一有用结果;此处是已出货功能的必要测试修复,适用内部前置边界,不额外要求新的 UI、模型试用或父级 roadmap 交付。
对主干的风险
独立 Python 3.14 运行:base 的 focused test 稳定失败于旧两项列表;完整配置文件、shipped Antigravity guard 与 namespace suite 为 38 passed/1 failed。当前 head 同命令为 39 passed,focused 也通过。当前测试在缺少 Antigravity、多余未知 executor、重复 executor 三种 process-local 错误投影下都失败;旧断言反而会接受缺失 Antigravity 的投影。这些是隔离进程内的故意 mutation,没有修改作者或评审 worktree 的 tracked 源码。
现有 Python 3.11.17 的隔离 source-installed 环境跑了 focused test 加 shipped endpoint/namespace cases,11 passed,匹配仓库 workflow 的 Python 主版本。初次 offline 环境准备因 coverage wheel 不在缓存而失败,尚未开始 pytest;补齐测试环境依赖后执行成功,保留原准备失败,不把它称为测试通过。两侧 Ruff 通过;当前原生 quick premerge 的五项 direct checks 和精确 CQR cqr_d1e7d23ae67393af0e13 通过,DCO trailer 存在。
本轮不查询或等待 CI。完整六分片、完整 Antigravity runtime suite 和真实 Host 未跑;作者提到的两条 trusted_owner 历史失败仅保留为未独立归因的诊断,不声称已修复或已全绿。这个一文件测试差分不改变该产品路径,当前必要的 projection/owner/反例证据已独立成立。没有 rendered UI 变化,因此无需新增首屏截图;visual_review 检查范围是测试和未变的 owner/editor 调用链。
我的整体评价
这个修复保留测试的实质约束,移除了会再次漂移的词汇副本。对当前合同而言,这是完整、有真实消费者且可撤回的维护结果;用户配置和长期执行路径保持原样,贡献者的验收不再被该伪失败阻断。没有用测试数或 PR 数证明长期效率收益。
durable_smoke_value 判断为有持续价值:既有配置测试保护 UI projection 与 namespace 的一致性,独立 shipped-endpoint guard 保护支持集合,两者没有重复;本轮 mutation 也证明它们分别能发现什么。当前同作者队列中治理、UTF-8 恢复和研究 fixture 各有不同路径,未发现这次改动增加同形脚手架或复制 smoke,不能据此提出贡献限制。bounded refactor pass 已落实在移除第二份列表,无需再加 helper、缓存或追踪任务。没有新的兼容层或 persisted format。APPROVE 只适用于这个 unchanged head;审批不授予 merge 或 admin bypass 权限。
English verdict: APPROVE — 17aa7c92be9fb25ebc7caea5df9d71b14556435d removes the stale duplicate executor list while preserving exact editor/owner parity and the independent shipped-Antigravity guard. The base failure, head passes, projection/owner mutation probes, Python 3.11 cases and native premerge support this bounded test repair; full CI and live-host qualification are not claimed.
Importance: The required Python
test-shardand downstreammerge-gatecannot pass for Python-changing work while this stale assertion rejects the already-shippedantigravitySteward executor.Goal And Delivered Outcome
steward_executor_endpoints(), but its test still hard-codes["codex", "dsh"]. The owner now returnsantigravity,codex, anddsh, so the required configuration test fails despite correct product behavior.a0130633, the focused test fails with['antigravity', 'codex', 'dsh'] == ['codex', 'dsh']; after this change the same test passes on Python 3.14 and on the CI-matching Python 3.11, as recorded below.loopx-project/loopx:main.Author Declaration
Implemented against
steward_executor_endpoints()and the linked issue are the basis. Relevant history: feat(chat): support Antigravity (Gemini 4 Argon) as Steward and Chat executor #7832 and perf(kernel): read the steward endpoint vocabulary without the chat layer #7746 ata0130633723210a5406dca61ee27aa33fe48b3f3.steward_executor_endpoints,tests/capabilities/test_capability_configuration_ui.py::test_steward_executor_editor_is_machine_only_and_typeduv run --extra test python -m pytest -q tests/capabilities/test_capability_configuration_ui.py::test_steward_executor_editor_is_machine_only_and_typedtests/test_antigravity_steward_adapter.py::test_antigravity_is_registered_in_steward_executor_vocabularyuv run --extra test python -m pytest -q tests/test_antigravity_steward_adapter.py::test_antigravity_is_registered_in_steward_executor_vocabulary tests/capabilities/test_steward_executor_machine_defaults.pyloopx canary premerge. No product code was changed.Scope And Continuation
Validation
17aa7c92be9fb25ebc7caea5df9d71b14556435dunitpassedtests/capabilities/test_capability_configuration_ui.py: 29 passed on Python 3.14.unitpassedunitpassedstaticpassedruff check tests/capabilities/test_capability_configuration_ui.py: All checks passed.staticpasseduv run --extra test loopx canary premerge --from-git-diff --git-diff-base upstream/main: passed, 1 changed file, 0 failures, 0 manual holds.trusted_ownerhistory-delivery failures; this test-only diff cannot affect those product paths. The full six-shard CI suite is left to hosted qualification.Frontend / Visual Evidence
Type of Change
LoopX Area
Technical Direction
Shared-authority RFC fixture impact
Boundary Checklist
.loopx/,.codex/goals/, and liveACTIVE_GOAL_STATE.md).none.Signed-off-bytrailer (git commit -s).