Use live fleet or declared hosted Linux for light nightly controls

Merged
TE
5d ago
+321-94

NEXT nightly controls can wait indefinitely on an unregistered fleet label when admission is unavailable. Require verified fleet reservations or freshly observed mini capacity, then route declared lightweight jobs to hosted Ubuntu on their first attempt and the existing measured Blacksmith set on retries. Keep the 180-second admission window and record elapsed client observations without fabricating a controller receipt.

Leo, 2026-11-01: “you can run it. you can also run it on linux github if these are light jobs or we can just run it on our fleet” and “just do whatevre it takes to fix these odd-ass situations i thought github hosted had more linux things”.

The central .github/runners.json declaration governs hosted-light eligibility. This PR wires the TUI resolver, Ghostty resolver, recovery discovery and build picker. decide bootstraps on hosted Ubuntu because no earlier job can supply a live runner receipt; its retries use the measured Blacksmith set. Its environment, credentials and permissions stay unchanged. The build picker preserves its three-minute wait and now requires observed live mini capacity. Build-input compilation remains outside the lightweight declaration and uses measured Blacksmith overflow after fleet admission. The eligible tail controls are declared here for the separate tail-routing change.

The central exception refuses undeclared same-organization hosted routes, release/signing eligibility and hosted macOS; existing separate exceptions remain unchanged. Existing fork routing remains scoped to forks. Every nightly job is checked against reintroducing the unregistered generic fleet label. The admission artifact distinguishes local elapsed observation from an authoritative controller receipt.

Validation: admission (25 tests), nightly routing (19), portable placement (29), trusted routing (33), and fork routing (23) pass. Central routing policy (27 tests), its live-tree check, shell syntax, and the exact check_no_github_hosted_runners check also pass. git diff --check is clean. Regression coverage includes missing/quota-failed admission, missing/stale placement outputs, reruns, live fleet/mini priority, the bounded wait, central eligibility, and excluded release/signing routes.

Existing base warning: check_no_self_hosted_fleet_runners fails on eight unchanged runner expressions. The same check executed against base 4510f25e2ef4559db7e17743c29a32af9409b799 reports the identical eight expressions; the guard continues through all other checks.

Risk and limits: hosted Ubuntu can still queue; this PR does not add automatic hosted-queue cancellation or claim a three-minute hosted rescue. A later retry uses measured paid overflow. It changes no started run and adds no timer or cancellation path. The admission wait and capacity-read deadline remain bounded and cleared. No compile job is added; existing warm caches and job sizes remain unchanged.

PerformanceBeforeAfterDeltaEvidence
Routing without live fleet evidenceUnregistered generic fleet labelDeclared light jobs: hosted Ubuntu; measured paid retriesRemoves phantom fleet selectionAdmission and workflow routing regression tests
Fleet admission window180 seconds180 seconds with elapsed client observation on transport failurePreservedBounded-wait regression test
Blacksmith minutes/dayNot measured for this failure modeNot measured for this failure modeInitial light overflow moves to hosted UbuntuExisting paid size selection retained; no new capacity assumption

Agent session: agent session