Repository navigation
ci: bound full Python shards across concurrent runs - #6274
Draft
loopx-agent wants to merge 2 commits into
Draft
loopx-agent wants to merge 2 commits into
loopx-agent wants to merge 2 commits into
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>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Goal And Delivered Outcome
Concurrent full Python matrices can occupy the shared GitHub-hosted pool and delay release work. This candidate adds four repository-wide job concurrency groups, one for each existing
matrix.shard, withqueue: maxand no cross-candidate cancellation. A current candidate waits behind the same shard of another run rather than replacing it. Workflow-level cancellation still retires an obsolete head of the same PR.Scope: S10 reliability/capacity and S12 developer/release operations in the overall roadmap. Base:
main. GitHub's concurrency contract permits one running job and up to 100 pending jobs per group; excess jobs are cancelled.Author Declaration
Written by: model_agent — OpenAI Codex, GPT-6 family.
Implemented against: this accepted capacity mitigation request and GitHub's job-concurrency contract; existing CI gate at base
fb5273002fae9d652a0c21c579bb65ee07755f18.test-shard.concurrency; exact group/context and nonreplacement fixturesScope And Continuation
This is a reversible mitigation for long Python shards, independent of closed-PR cleanup #6269 and the desktop download resolver #6271. All three changed files serve this outcome: workflow admission, regression checks, and bilingual operating/rollback guidance. Existing GitHub Actions owns admission; no LoopX scheduler, capability, permission, or release publisher is introduced.
Valid contributors can wait longer when full runs overlap. Only runs carrying this workflow participate, and other jobs still use the organization's shared pool. Rollback removes the job-level concurrency block while preserving workflow-level cancellation and the mandatory gate. The same draft owns live qualification; it is not ready for merge until that evidence and exact-head review exist. No merge authorization is assumed.
Future-facing pass: retained the existing four-value matrix and gate file, using small test-local extraction helpers to execute the real Bash guards. No scheduler simulation or rehearsal-only workflow was added.
Validation
Tested revision:
4d3536ca0259965b1a6374bb8ee9c8e95481f538(unchanged committed source after local validation).Run state: running; live cross-run qualification and three failed non-shard checks remain open.
Input classes: synthetic, public_fixture.
uv run --python 3.11 --extra test python -m unittest discover -s scripts/ci -p 'test_*.py': 12 contracts; actual workflow Bash exercised over 25 result combinations and all missing/empty coverage partitionsexamples/semantic-vocabulary-drift-smoke.py; advisory does not analyze YAML. Initial missing npm dependencies recovered withnpm ci --ignore-scriptsCoverage: no collection, timeout, worker, artifact, permission, or gate changes. Fork test jobs receive no new secret or publishing authority. Queue overflow maps to cancellation under the provider contract; local tests reject cancellation without claiming a 101-job overflow drill. Source equality is not a waiver for the failed checks. The dashboard refresh owner has an existing candidate #6273, which is unmerged and not adopted by this PR.
Same-index cross-run serialization, the four-running bound and added lane-wait cost remain open. The new manual's first
changesjob waited for the shared runner pool until cancellation, before per-shard concurrency admission; that prerequisite wait cannot be charged to the new lane. The deadline supervisor requested ordinary cancel 4.65s after the 16-minute target, then freshly requalified the same owned run before force-cancel. Acceptance was followed by a complete terminal job readback; merge-gate, pytest and test-shard are cancelled and cannot be treated as green. This trial does not rewrite the earlier 647-second failure. Another same-head overlap trial requires evidence that its prerequisites can obtain runners within the unchanged terminal window; additional PR shard starts alone are insufficient.Frontend / Visual Evidence
UI impact: none. Developer-facing results remain in existing GitHub Actions/Checks; no LoopX frontend/Lark/CLI capability or first screen changed. Shared-authority RFC fixture impact: N/A.
Type / Boundary
Build/CI behavior, public documentation, durable regression tests. Default change: full Python jobs now wait across runs by shard. Neither this diff nor its evidence publishes private state, local paths, credentials, raw traces, or internal links. Both commits carry DCO sign-offs. No benchmark jobs or release publication is launched by this change.