Repository navigation
ci(nightly-next): the Ghostty helper takes an idle owned Mac while the app build holds the dedicated builder - #27894
Conversation
…e app build holds the dedicated builder pick-nightly-build-runner now prints a helper route: owned when that is not the dedicated builder, else a fresh owned_route() read. Until now build-nightly-ghostty-cli-helper took blacksmith whenever the app build took the dedicated builder; in run 40990112293 (373ec0c, the first green tip after the JoinConsent Release compile red) the helper queued 39 minutes on blacksmith-6vcpu-macos-26 while owned side Macs were idle, and the run was cancelled unpublished. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Owned by an agent session · took over from an earlier session · session |
|
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)
red: cmux-next checks (god files, concurrency, crash safety, l10n); NEW: Shipped in:
|
|
Found 21 test failures on Blacksmith runners: Failures
...and 11 more test failures. View all on Blacksmith
|
|
Review (codex gpt-6-astra high, router-review): SHIP at fafe629 SHIP No blocking findings. |
…/nightly-helper-owned-route
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review (codex gpt-6-astra high, next-review): SHIP at ae374c8 No blocking findings. |
A newer verdict blocks 5e5b42c (no independent SHIP at the head).
|
Review (codex gpt-6-astra high, next-review): SHIP at 5e5b42c No blocking findings. |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
NEXT nightly fell 3h25m behind feat-cmux-next on 2026-10-30 (the rule is at most 30 minutes). Two causes, the second fixed here:
JoinConsent+App.swift:222:29: error: 'async' call in a function that does not support concurrencyfailedbuild-nightly-appfor every promoted tip from 43303f7 to 00c873b. cmux NEXT: await FolderChanges.events() in MachineConsentChanges (build fix) #27758 (cec0a36) fixed it.blacksmith-6vcpu-macos-26, and the run was cancelled unpublished at 02:51Z. The helper reuse lookup had missed (the repoGITHUB_TOKENgot a 403 from the contents API), and the helper never takes the dedicated builder, whose hook admits onlybuild-nightly-app. So the helper'sruns-onfell toblacksmith, even though owned side Macs were idle.The change:
pick-nightly-build-runnernow also outputshelper.helperisownedwhenownedis not the dedicated builder.helpercomes from a freshowned_route()read: an idle side or nightly-slot Mac. The verify jobs already pick their Mac this way.helperis empty and the helper takes the moving Blacksmith label, as before.build-nightly-ghostty-cli-helpernow readshelperinstead ofowned, on the same rule: the pick must be for this attempt, and it is never the dedicated builder. The job output stands on the same terms asowned(marker uploaded outside attempt 1 of a push).Risk: low. The change only affects routing of the helper job on nightly-next. The fallback is still Blacksmith macOS 26, and the dedicated builder is still excluded.
Tests (run on a Linux lane VM):
tests/test_nightly_build_runner.py: 33 tests OK, including a new test, the helper takes an idle owned Mac while the app build holds the builder.tests/test_nightly_trusted_routing.py: 22 tests OK.tests/test_ci_nightly_off_blacksmith.py: 15 tests OK.tests/test_nightly_next_train.py: 38 tests OK.tests/test_nightly_sign_runner.py: OK.tests/test_nightly_universal_build.sh: PASS.test_nightly_next_guard: PASS.test_nightly_workflow_size: PASS.test_ci_workflow_guards_are_wired: PASS.tests/test_ci_signing_owned_mac.pyfails one test (test_every_listed_hook_is_one_glaeda_released_with_the_check) on base too.Agent session: agent session
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes a nightly-next CI routing gap where the Ghostty CLI helper queued on Blacksmith while idle owned Macs were available, leaving nightly-next 3h25m behind
feat-cmux-nextafter a Release compile red.Because the dedicated builder admits only
build-nightly-app, the helper previously fell back to the Blacksmith label whenever the app build held the builder, even with idle side Macs.pick-nightly-build-runnernow also outputshelper:ownedwhen that isn't the dedicated builder, otherwise a fresh owned-route read for an idle side or nightly-slot Mac, or empty so the helper keeps taking Blacksmith when no Mac is idle.build-nightly-ghostty-cli-helperreads the new output on the same marker terms asowned.Written for commit 5e5b42c. Summary will update on new commits.