fleet labels: an xl nightly slot also carries the std nightly label

Merged
TE
3d ago
+35-2

Leo-ask: ask-e9c646101f

Leo: "but can you help out with the ultras tho? that's most of what i was wanting"

What changes. An xl (M5 Ultra Studio) nightly slot now carries glaeda-nightly-std-xcode-<v> as well as glaeda-nightly-xl-xcode-<v>. Today a nightly slot carries only its own class's label, and no cmux job asks for the xl one: the nightly-next build picker (vars.CI_NIGHTLY_NEXT_BUILD_RUNNER) and every nightly retry queue on the std label. So the Ultras' nightly slot, added in the companion cmuxterm-hq PR, would sit idle while nightly jobs waited on the M4 Pro slots.

nightly_classes() widens the slot the way side_classes() already widens a side runner (a 96 GB Ultra builds what a 48 GB M4 Pro builds), down to std and never to light: a 16 GB M4 cannot build the nightly app. A std or light slot's labels are unchanged, so no existing runner is relabelled; only the Ultras' slot gains a label.

The dedicated NEXT nightly M4 Pros (glaeda-nightly-only-m4pro*) are untouched: they stay first on attempt 1. The Ultras are added overflow capacity behind them.

Tests. FleetLabelsModuleTest (new test_an_xl_nightly_slot_also_answers_the_std_nightly_label_and_never_light) and RunnerTest.test_the_nightly_slot_takes_the_side_instance_after_the_freshness_slot pass locally. Checked against the companion mini-fleet.json: the two xl members resolve to 10 runners, nightly instance 2, nightlyPools [glaeda-nightly-xl-xcode-26.6, glaeda-nightly-std-xcode-26.6]; a std member keeps [glaeda-nightly-std-xcode-26.6].

Performance

metricbeforeafterdeltaharness or run link
runners that answer a glaeda-nightly-std jobstd M4 Pro nightly slots onlythe same plus 1 slot per Ultra (2)+2 slotsmember_labels over cmuxterm-hq mini-fleet.json
cmux NEXT DEV Release compile, p5016.4 min (M4 Pro, n=27)9.0 min (xl member, n=1)-45%runner Worker logs, same job, 2026-11-01..03
cmux-next Release compile (Xcode 26), p5011.0 min (M4 Pro, n=4)7.8 min (xl member, n=1)-29%runner Worker logs, same job
build-nightly-app on the dedicated M4 Pros, p5014.5 min (n=6)an Ultra slot run is measured once one landsn/athe dedicated nightly members' Worker logs

Companion: manaflow-ai/cmuxterm-hq (ultras-xl-capacity), which sizes the two xl members and turns their nightly slot on.

Agent session: agent session

šŸ¤– Generated with Claude Code