Repository navigation
fix(ci): isolate compact planner inventory growth fixture - #140549
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. Reviewed September 6, 2026, 8:51 PM ET / September 7, 2026, 00:51 UTC. ClawSweeper reviewWhat this changesThe PR gives the CI planner regression separate baseline and growth inventories so a newly tracked test filename cannot be counted twice. Merge readiness✅ Ready for maintainer review Keep open: current main still contains the fixture collision, and this focused repair preserves the existing planner checks. No introduced correctness or security defects were found. Priority: P2 Review scores
Verification
How this fits togetherOpenClaw’s CI planner groups tracked test files into jobs with runner, build, and capacity limits. This regression checks that adding a tooling test preserves coverage and stays within those limits. flowchart TD
A[Tracked test files] --> B[Controlled test inventory]
B --> C[Baseline without growth file]
B --> D[Growth file included once]
C --> E[Fresh CI planner]
D --> E
E --> F[Coverage and job limit assertions]
Before mergeNone. Agent review detailsSecurityNone. PR surfaceTests +8. Total +8 across 1 file. View PR surface stats
Review metricsNone. Technical reviewBest possible solution: Keep the controlled one-file inventory transition and fresh planner initialization while retaining all existing policy assertions. Do we have a high-confidence way to reproduce the issue? Yes, source establishes the conditional trigger: track the chosen growth filename and the original test appends a duplicate. The reported 81-job failure was not independently executed during this read-only review. Is this the best way to solve the issue? Yes. Repairing the test inventory producer is narrower than changing production packing or relaxing capacity and coverage checks. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 2413c5e3dcde. LabelsLabel changes:
Label justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
|
|
Merged via squash.
|
Related: #140512
Related: #137893
What Problem This Solves
Fixes an issue where the compact planner inventory-growth regression duplicated its fixture filename when another PR added that file for real, causing a false
81 plannedfailure even though the real merged inventory remained within the 80-job cap.Why This Change Was Made
The test now constructs its baseline and one-file growth inventories explicitly. Each inventory uses a separate dynamic import because the planner initializes
SPLIT_NODE_SHARDSat module load: the baseline removes the growth path, and the growth case adds exactly one copy.All existing planner policy assertions remain unchanged, including the 80-job and 150-second limits, exact-once coverage, family separation, runner rank, build/dist policy, non-tooling placement, and deterministic mixed-runner ordering.
This test-only PR is policy-compliant:
mainis green for this case, while #137893 turns the fixture's formerly synthetic filename into a real tracked path and exposes the duplicate-fixture bug.User Impact
Maintainers can validate legitimate tooling inventory growth without a false compact-plan cap failure. Production behavior and the planner algorithm are unchanged.
Evidence
compact github node test plan exceeds 80 jobs (81 planned).oxfmt, targetedoxlint, andgit diff --check: passed.check:changed: all reachable guards passed; local test-roottsgostopped only because linked-worktree declaration inputs resolve through the shared install outside the checkout. Exact-head CI covers that lane.5f49aba876922d6f2f55caa153bbb0ed1b46febawas inspected atcodex-rs/core/src/tools/registry.rs,codex-rs/core/src/session/mcp.rs, andcodex-rs/core/src/tools/context.rs; no planner or runtime coupling exists.