ci: run Build & test on the self-hosted agentprism runners - #343
Closed
VikashLoomba wants to merge 5 commits into
Closed
ci: run Build & test on the self-hosted agentprism runners#343VikashLoomba wants to merge 5 commits into
VikashLoomba wants to merge 5 commits into
Conversation
VikashLoomba
enabled auto-merge
August 7, 2026 23:55
… them The move to self-hosted docker runners on a busy workstation surfaced load-noise flakes in three timing-tolerance tests. Recalibrate each to its own defect-signature discrimination model; no test loses power to detect the defect it documents, and no source changes. - repl-engine eval-break 'REMAINING wait budget': the defect is a FIXED ~51 ms poll overshoot on every sub-50 ms timeout (a deterministic floor); load noise (a 67 ms spike) overlaps it, so a single-sample threshold cannot separate them. Replace the elapsed<45 single sample with min-of-8 < 40 ms: the defect inflates every sample (min ~51 ms, caught) while a healthy wait's least-contended sample stays ~10 ms. - repl-engine eval-break 'chain acquisition is bounded': the defect queues the 30 ms wait behind the drain (~253 ms historically / ~2000 ms in-test); healthy ~30 ms. Wide, non-overlapping gap, so widen the ceiling 80 -> 150 ms (still far below the >=253 ms defect). - pi-acp mcp-contract 'M4 turn cancellation': the 20 ms fake mcpTimeoutMs raced turn.abort() and preempted it under load (rejecting 'timed out' not 'failed'). Pin the test's mcpTimeoutMs to the production default (60 000 ms) so the abort wins deterministically; suppression assertions unchanged. Not a real race — production already defaults to 60 s.
# Conflicts: # package.json
Collaborator
Author
|
Self-hosted runners are being retired (owner decision, 2026-08-12): the 4 org runners are unregistered and their containers removed; CI stays on GitHub-hosted runners (all workflows already run on ubuntu-latest). This runs-on switch is therefore moot. Historical context preserved on the PR: the ephemeral-lifecycle dispatch race (jobs dispatched into a runner's deregister→restart→re-register window dying with no steps/logs) and the codex-acp vitest EPIPE behavior in the docker runners were never resolved — if self-hosting is ever revisited, start from unique per-instance runner names or JIT runner tokens. |
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.
Switches the required Build & test job to the owner's 4 self-hosted docker runners (org runner group, labels
[self-hosted, agentprism], all verified online). The Default runner group'sallows_public_repositorieswas enabled (this repo is public) — without it, jobs queue forever. Job name deliberately untouched (the main ruleset's required check matches it exactly). Release/publish and the periodic workflows stay on GitHub-hosted runners: the OIDC publish leg keeps its isolated environment, and only the merge-blocking job needed the speed. Fork-PR runs still require approval before executing on these runners per repo/org policy.