Repository navigation
ci: the backend secret-route guard covers the Cloud journey jobs; the production journey names its runner - #35717
Conversation
journey-preview, journey-staging and journey-production (#35103) read secrets and the cmux-next-cloud-journey environment, so they belong in BACKEND_SECRET_JOBS; without them the guard's credentialed-set check fails and their routes go unchecked. Their routes already have the bounded pool-read shape. cloud-journey-prod.yml's job holds the production account, so it names blacksmith-4vcpu-ubuntu-2404 literally, as on main (#35303). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-8b9c8964a6aea0b7e2bd
|
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)
Shipped in:
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/41888017760 at dba5f44 failed: cmux-next checks (god files, concurrency, crash safety, l10n). |
…size feat-cmux-next's runner guards refuse a literal single-size label (#32457) and one with no overflow failover (#26439), and the old linux_2 route was reachable outside manaflow-ai. The job now takes the owner fork branch, then the overflow pool linux_16 or linux_8, the same pools backend.yml's credentialed jobs end in. It no longer reads vars.LINUX_RUNNER, so that variable cannot move it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-8b9c8964a6aea0b7e2bd
|
Found 1 test failure on Blacksmith runners: Failure
|
teamleaderleo
left a comment
There was a problem hiding this comment.
Review (gpt-6.1-sol): SHIP at 33e2ad7
Review (codex, router-review): SHIP at 33e2ad7
Reviewer: codex gpt-6.1-sol xhigh, fast tier (router-review job 29fd0a25c3384124ff5775d1a41bfd5f; comment #35717 (comment)).
Visual verdict: unchanged by this diff
Targeted routing and failover tests pass.
Follow-ups: none
Each push that touches .github/, tests/ or scripts/ci/ judges the guard profile at its tip, and 14 steps were red there. This clears nine (fork routing and the Blacksmith failover also need #35717): - full clones: commandRules.ts runs no git; it lists `git clone`'s --depth as a flag to skip when it names a shown command (#35137). - send-path caps: the dependency-cache timing record bound (#35237) and the local replica's file size bound (larger files read from the machine) refuse nothing a person sends; listed as safe. - fleet rule lints: a sample machine name in a colour test fixture, and a plan table row naming SecItemCopyMatching in prose; listed as safe. - pinned Xcode: drop the exemption for nightly.yml's launch-smoke-nightly, which no longer exists. - macOS job class: nightly.yml's republish-nightly-next (#35588) only downloads and re-uploads a verified build: portable-checks. - label events: the production cmux-vm jobs are gated first on github.ref == refs/heads/feat-cmux-next, which a pull_request event never has (its ref is refs/pull/N/merge); the guard now reads that, for pull_request only and only when no top-level || follows. - fork routing: tail-production and sweep-orphans-production take the fork pull-request branch before vars.LINUX_RUNNER, like their siblings. - supply chain: the jobs that mint the cmux-bot token (swift-test, generated-files, push-attribution, #35123) run in ci-routing-agent off pull requests, as macos-placement and compile-status do; tail-production reads its Cloudflare secrets in cmux-vm-production. - upload retention: the production journey's step table keeps 3 days. Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Two jobs that hold the production Cloud journey's secrets now stay on routes no variable can move.
tests/test_ci_runner_pool_reconcile.py:BACKEND_SECRET_JOBSgainsjourney-preview,journey-stagingandjourney-production. cloud: a headless NEXT Cloud journey on previews, staging and production deploys #35103 added these jobs tobackend.yml. They readCMUX_DOGFOOD_STACK_*andCLAUDE_CODE_OAUTH_TOKEN, and the last two run in thecmux-next-cloud-journeyenvironment, but the list was never updated. Onfeat-cmux-nexttoday,test_backend_secret_jobs_use_only_the_ephemeral_linux_mirrorfails its credentialed-set check, and the three routes go unchecked. With them listed, the test passes: their routes already have ci: keep backend credentials on bounded ephemeral Linux routes #30761's bounded pool-read shape, sobackend.ymlis unchanged..github/workflows/cloud-journey-prod.yml:runs-onbecomes${{ github.repository_owner != 'manaflow-ai' && 'ubuntu-24.04' || vars.CI_CLOUD_OVERFLOW_SAVED && fromJSON(vars.RUNNER_POOLS).linux_16 || fromJSON(vars.RUNNER_POOLS).linux_8 }}. The job holds the production account and a Claude login. Its old route tookvars.LINUX_RUNNERand ended infromJSON(vars.RUNNER_POOLS).linux_2, which this branch's guards flag: a Blacksmith label was selectable outside manaflow-ai, and there was no overflow failover. It now ends in the same pools asbackend.yml's credentialed jobs and no longer readsvars.LINUX_RUNNER. On main, ci: register the production Cloud journey (stub model hourly, real login every six hours) #35303 names a literal label instead, but feat-cmux-next's guards refuse one (ci: every runner selection reads its size's declared pool (no single-size pins, 1/2) #32457, ci: hard-coded Blacksmith Linux runs-on fail over to another Blacksmith size #26439). Schedules register only from main, so this copy does not run.#30761 and #32457 stay as they are: the other credentialed backend jobs keep their pool reads.
Observed / Not run
python3 tests/test_ci_runner_pool_reconcile.py SecretRouteBoundary: fails on base (journey-preview, journey-staging and journey-production missing), passes at this head.cloud-journey-prod.yml:tests/test_ci_runner_set.py,test_ci_blacksmith_linux_failover.py,test_ci_no_single_size_pins.pyandtest_ci_fork_runner_routing.py. On base, the last three flag it, as doestest_ci_upload_artifact_retention.py(retention-days 14, unchanged here). The remaining fork-routing, failover-size and guard-wiring failures are in other files and also fail on base.Agent session: agent session
🤖 Generated with Claude Code