ci(cmux-next): the compile status read names its pull request, so a missed head gets a check
Leo (2026-10-30): "but why is our shit for ui related things so slow still? ... like in the future how is somebody gonna contribute if shit takes 20+ minutes? we need 5 minutes no?"
Problem
On the last 50 landed feat-cmux-next PRs, 20 had a cmux-next/compile status: 14 were FAILURE, every one "No compile result for this head in 40 minutes". The fleet compile check is only queued when the controller sees the head's workflow run; a head whose run it missed had no check, so cmux-next fleet Release compile sat for 40 minutes and then went red (e.g. #28059, #28811, #28893, #28866, #28233). The same heads compiled in 4-8 minutes elsewhere on the same pool.
Change
The compile-status read adds pr=N (the PR number; empty on a push, anything that is not a number is dropped). The controller side, manaflow-ai/cmuxterm-hq#5571, queues the missing head's check once GitHub confirms it is that PR's open head, and the next read (the step already retries 404s every 30 s) blocks on it. An older controller ignores the parameter, so this lands in either order.
Performance
| metric | before | after | delta | harness |
|---|---|---|---|---|
| compile statuses that time out with no check (last 50 landed PRs) | 14 / 20 | expected 0 | -14 | GraphQL statusCheckRollup of the 50 PRs; controller /v1/jobs |
| time to a compile verdict for such a head | 40 min, red | queue p50 0.1 min + pool compile p50 4.3 / p90 5.5 min + one 30 s retry | about -35 min | controller /v1/jobs, 1,307 tip checks, 2026-10-30 21:00Z to 10-31 06:20Z |
Plan and the rest of the numbers: manaflow-ai/cmuxterm-hq#5572 ("PR signal in 5 minutes").
Tests
tests/test_ci_cmux_next_compile_status.py: a PR read names the PR; a non-numeric PR is dropped; push reads are unchanged. 7 tests pass. No Swift change, no Mac compile.
Agent session: agent session
š¤ Generated with Claude Code
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Fixes cmux-next compile checks timing out when the controller never saw a pull request head's workflow run. The compile-status read now names its pull request, so the controller can queue the missing head's check instead of waiting 40 minutes to report "No compile result for this head". Heads that previously took 40 minutes and failed now get a compile verdict in about 5 minutes.
- The read adds
pr=Nonly when the event is a pull request with a numeric PR number; push reads and non-numeric PR values are unchanged. - Older controllers ignore the new parameter, so this ships regardless of controller deploy order.
- Adds tests covering PR reads, non-numeric PR values, and unchanged push reads.