Skip to content

ci(nightly): the sign picker and the visual gate router take the all-nightly reservation first - #31642

Merged
teamleaderleo merged 1 commit into
feat-cmux-nextfrom
lane/nightly-pickers-reservation
Nov 2, 2026
Merged

teamleaderleo merged 1 commit into
feat-cmux-nextfrom
lane/nightly-pickers-reservation

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

Blacksmith's 16-vCPU Linux label is queueing nightly-next's light controls 5-14 min tonight:

  • run 41374257749: pick-nightly-sign-runner queued from 01:59:15Z;
  • runs 41373656988 and 41372372224: route-visual-gate-nightly and the jobs after it.

pick-nightly-sign-runner is on the path to the feed: signing waits for it.

Change: on attempt 1 of a nightly-next run with vars.CI_NIGHTLY_ONLY_RUNNER == 'glaeda-nightly-only-m4pro', both jobs take the all-nightly reservation first. That is the same guarded first route decide, resolve-nightly-cmux-tui-client and find-nightly-next-recovery already use. Otherwise their old route runs.

  • Both jobs only check out tooling, run Python and bash pickers, and mint the routing App token (GLAEDA_ROUTE_APP_KEY), which pick-nightly-build-runner already mints on these runners (same ci-routing-agent environment). No new secret goes to a new runner class.
  • Both get portable-checks entries in .github/runners.json macos_jobs and leave BLACKSMITH_LINUX_ONLY_DEBT.
  • The sign picker's last route is now the literal 'blacksmith-4vcpu-ubuntu-2404', which is what its fromJSON('[...]')[0] evaluated to. The routing-table guard requires a literal Blacksmith Linux fallback.

Performance

metric before after delta harness
pick-nightly-sign-runner queue 5-14 min on blacksmith-16vcpu-ubuntu-2404 (run 41374257749) seconds on an idle reservation runner; measured on the first run after merge up to -14 min job timings

Tests: test_nightly_trusted_routing, test_ci_nightly_off_blacksmith, test_runner_routing_table, test_runner_label_policy and test_ci_linux_single_size pass.

Agent session: agent session

🤖 Generated with Claude Code

…nightly reservation first

On attempt 1 of a nightly-next run with vars.CI_NIGHTLY_ONLY_RUNNER set, both jobs
now start on glaeda-nightly-only-m4pro, as decide and the resolvers already do.
Both only run Python and bash pickers and mint the routing App token, which decide
already mints there. Blacksmith's 16-vCPU Linux label was queueing them 5-14 min
(runs 41373656988, 41374257749), and the sign picker sits on the path to the feed.
Both leave BLACKSMITH_LINUX_ONLY_DEBT. The sign picker's last route is now the
literal blacksmith-4vcpu-ubuntu-2404 its fromJSON(...)[0] evaluated to.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-f724bb1ff9295c18fee7
@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 5e75d95: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr31642 -f ref=lane/nightly-pickers-reservation -f platform=macos -f backend_mode=local

Shipped in:

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/41376579738 at 765d3c4 failed: cmux-next fast tier (cargo), cmux-next fleet Release compile.
Those jobs last passed at 11cb039. This pull request is one of 2 merged since: #31642, #31462.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

@github-actions github-actions Bot added the risk:high Risk tier (docs/ci/risk-tiers.md) label Nov 2, 2026
@blacksmith-sh

blacksmith-sh Bot commented Nov 2, 2026

Copy link
Copy Markdown

Found 4 test failures on Blacksmith runners:

Failures

Test View Logs
main.DeveloperIdAppTests.test_download_prints_the_active_profile_only/
test_download_prints_the_active_profile_only
View Logs
stubs: /System/Library/Frameworks/Security.framework/Versions/A/Security has no stub/
Security has no stub
View Logs
stubs: CoreFoundation.tbd: install-name /System/Library/Frameworks/
CoreFoundation.framework/Versions/A/CoreFoundation, missing 1: ['_CFRetain']/
CoreFoundation, missing 1: ['_CFRetain']
View Logs
stubs: CoreFoundation.tbd: install-name /System/Library/Frameworks/
CoreFoundation.framework/Versions/A/CoreFoundation, missing 1: ['_log2']/
CoreFoundation, missing 1: ['_log2']
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (subagent claude-opus-5-5 medium): SHIP at 5e75d95

The runs-on guard matches decide and falls through unchanged when it is false. Both jobs' steps are POSIX shell and standard-library Python, so they work on macOS. GLAEDA_ROUTE_APP_KEY already reaches this reservation through pick-nightly-build-runner, in the same environment. The routing tests and the tests around them pass.

Follow-ups (tracked in #31420):

  • Three comments in pick-nightly-sign-runner and route-visual-gate-nightly still say Blacksmith-only. They should say the nightly-only reservation is tried first.
  • When the sign picker runs on the reservation, it holds one of the idle runners the verify pick counts. That only makes the verify pick more conservative.

@teamleaderleo
teamleaderleo merged commit 34446e1 into feat-cmux-next Nov 2, 2026
139 of 160 checks passed
@teamleaderleo
teamleaderleo deleted the lane/nightly-pickers-reservation branch November 2, 2026 02:13
lawrencecchen added a commit that referenced this pull request Nov 2, 2026
…two nightly.yml routing jobs in warm-sources.json) (#31909)

- release-notes/next/highlights/attachment-drag-follows-pointer.md (added by
  720c301, #31582) had no tryIt and no docs line, so
  scripts/whats-new/test_digest.py test_the_repository_highlights_validate
  failed with "needs a tryIt action/deeplink or a docs link". It now links
  https://cmux.com/docs/agents, as the other composer highlights do.
- 34446e1 (#31642) let pick-nightly-sign-runner and
  route-visual-gate-nightly take glaeda-nightly-only-m4pro, so
  tests/test_ci_warm_sources.py counts them as mac-runner jobs that are not in
  .github/warm-sources.json. They are routing controls that compile nothing;
  they get the same exempt entry as pick-nightly-build-runner.

Before: test_digest.py 1 failure, test_ci_warm_sources.py 1 failure (at fc013e8).
After: both OK.

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 5e75d95c Deployed Nov 2, 2026 by teamleaderleo via wait for same-key tree publisher #98528
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:high Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant