Repository navigation
merge-compile-guard: its gh reads skip the gh guard's repeat throttle; a slow GitHub says so; a missing compile names the fleet compile-check - #23824
Conversation
…rottle, a slow GitHub says so, a missing compile names the fleet compile-check (red) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…; a slow GitHub says so; a missing compile names the fleet compile-check first The hook shares the session's CLAUDE_SESSION_ID, so after a lane's own gh pr view N the PATH guard (cmux-local-build-guards/gh) held the hook's identical read up to 30 s and merges of #23611 were refused as unreadable (measured by palette-audit). The guard reads once per merge and never polls: its gh calls set CMUX_GH_GUARD_DISABLE=1. Each call stays bounded (15 s, under a 100 s budget); a refusal now names the read that timed out or failed instead of blaming a rate limit. With no compile result on the head the refusal leads with cmux-ci compile-check on the fleet dev-build workers (COMMON.md), not with waiting on the Mac Release compile. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
|
|
Found 1 test failure on Blacksmith runners: Failure
|
|
|
…e with several Swift files; a refusal names its own read's cause (red) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…arts; each read clears the last cause Review of #23824: splitting the refusal on ' and ' cut inside '(A.swift and more)' for any PR with two Swift files. A cause left by an earlier read (a fleet read for the previous target) no longer names a later unreadable PR. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Bead |
|
|
|
Owned by lane-host on cosmic-gray · session |
|
Review (independent subagent reviewer): SHIP at 5ee321e |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/39694348750 at 7f75f49 failed: cmux-next fast tier. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/39694828930 at 5a17c63 failed: cmux-next fast tier. |
|
base-red-watch: |
|
Shipped in:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
What
scripts/ci/merge_compile_guard.py(the merge-compile-guard PreToolUse hook):ghcall the guard makes setsCMUX_GH_GUARD_DISABLE=1. The cmux-ci client calls are unchanged.could not read #N from GitHub (\gh api repos/...` did not answer within 15 s). Before, it blamed a rate limit every time.CMUX_MERGE_GUARD_GH_TIMEOUT` can only lower the timeout; tests use it.cmux-ci compile-check --ref <full head sha> --appon the fleet dev-build workers, as COMMON.md says. The Release compile state follows in parentheses.Why
Lanes were refused merges of #23611 (head f397fb8) three times with "could not read #23611 from GitHub", while the REST quota was fine. palette-audit measured the cause:
CLAUDE_SESSION_ID.ghon cosmic-gray's PATH is~/.local/lib/cmux-local-build-guards/gh, which sleeps up to 30 s when the same caller repeats an identical read within 30 s.gh pr view Nfollowed by the merge made the hook repeat that read, the wrapper slept 11-30 s, and the 15 s timeout ran out.The guard reads once per merge and never polls, so the anti-polling throttle doesn't apply to it (deputy-2's decision). The wrapper stays as it is for agents. HQ's
require-cmux-guardsgot the same bypass in hq#2830.Tests
tests/test_merge_compile_guard.py, written first (a187dba, red on the old guard: 2 failures, 1 error):ghsleeps 30 s unlessCMUX_GH_GUARD_DISABLE=1. A merge after a green compile must go ahead in under 10 s. On the old guard this reproduced the exact refusal the lanes saw.ghthat is really slow, with the timeout lowered to 1 s: the refusal says it "did not answer within 1 s" and doesn't mention a rate limit.cmux-ci compile-check --ref <full head> --appand "fleet dev-build workers" before the Release compile.On cmux16 at 68a0d52, 47 tests pass under Python 3.13 and under the system /usr/bin/python3 3.9.
Agent session: cosmic-gray
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes the merge-compile-guard hook so slow GitHub reads no longer block merges with a misleading rate-limit error, and a missing compile result points to the fleet compile-check.
Changes
ghreads setCMUX_GH_GUARD_DISABLE=1to skip the PATH guard's 30 s repeat throttle; a lane's owngh pr view Npreviously made that wrapper sleep and timeout, refusing merges of Files: free space read through a seam; a 0 reading is unknown, not a full disk #23611 despite a fine REST quota.`gh api repos/...` did not answer within 15 s— instead of always blaming a rate limit.cmux-ci compile-check --ref <full sha> --appon the fleet dev-build workers, built from its parts so it reads correctly with multiple Swift files or paths containing " and ".CMUX_MERGE_GUARD_GH_TIMEOUTlowers the per-call timeout; the 100 s budget stays.Written for commit 5ee321e. Summary will update on new commits.