Skip to content

base red: owned pool sources accepts feat-cmux-next's own unrescued list - #30867

Merged
teamleaderleo merged 1 commit into
feat-cmux-nextfrom
ci/owned-pool-sources-feat-list
Nov 1, 2026
Merged

teamleaderleo merged 1 commit into
feat-cmux-nextfrom
ci/owned-pool-sources-feat-list

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

Base red fix. Since cmux#30685, tests/test_ci_owned_pool_sources.py has failed on feat-cmux-next with .github/workflows/backend.yml: job migrations-push-guard reads vars.RUNNER_POOLS. #30761 kept that read on purpose. The test only accepts the acknowledgement from main's copy of scripts/ci/owned_pool_rescue.py, and main takes no merges right now, so #30840 can't land.

Change:

  • feat-cmux-next's rescue copy gets UNRESCUED_WORKFLOW_PATHS with backend.yml and the reason: no secret, a live pool member, and a stuck run is cleared by its timeout or a cancel.
  • On feat-cmux-next, the test accepts an unrescued entry from either copy.
  • Watched paths still come only from main's copy, the one the workflow_run runs. An unrescued entry changes no behaviour, since the rescue acts only on watched paths, so the test's intent holds.

Tests: with CMUX_OWNED_POOL_BRANCH=feat-cmux-next, test_ci_owned_pool_sources fails on base ae2f00e and passes here (7 tests, none skipped). test_ci_owned_pool_rescue passes.

Agent session: agent session

🤖 Generated with Claude Code


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


Summary by cubic

Fixes the test_ci_owned_pool_sources failure on feat-cmux-next, red since cmux#30685 made backend.yml's migrations-push-guard read vars.RUNNER_POOLS while main takes no merges to carry the acknowledgement.

  • Adds UNRESCUED_WORKFLOW_PATHS with backend.yml to the branch's rescue copy: no secret, a live pool member, and a stuck run is cleared by its timeout or a cancel.
  • On feat-cmux-next, the test accepts an unrescued entry from either the branch's or main's rescue copy.
  • Watched paths still come from main's copy, so the unrescued entry changes no rescue behavior.

Written for commit 350107e. Summary will update on new commits.

View guided diff Turn on auto-fix

test_ci_owned_pool_sources has failed on feat-cmux-next since cmux#30685:
backend.yml's migrations-push-guard reads vars.RUNNER_POOLS, and only main's
rescue copy could acknowledge it, while main takes no merges. feat-cmux-next's
rescue copy now carries UNRESCUED_WORKFLOW_PATHS with backend.yml, and on
feat-cmux-next the test accepts an unrescued entry from either copy. An
unrescued entry changes no behaviour (the rescue acts only on watched paths),
and watched paths still come from main's copy, the one that runs.

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

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

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

Review 350107e: 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=pr30867 -f ref=ci/owned-pool-sources-feat-list -f platform=macos -f backend_mode=local

Shipped in:

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

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

Follow-ups: (1) the feat-copy guard should parse the constant or catch ValueError, not substring-match; (2) move backend.yml to main's UNRESCUED_WORKFLOW_PATHS when main reopens (#30840), then drop feat's copy.

@teamleaderleo
teamleaderleo merged commit 1b95d04 into feat-cmux-next Nov 1, 2026
82 of 100 checks passed
@teamleaderleo
teamleaderleo deleted the ci/owned-pool-sources-feat-list branch November 1, 2026 12:01
@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 1, 2026
@blacksmith-sh

blacksmith-sh Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Found 10 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmpfydkzb0m/summary-missing.json (live):/summary-missing.json (live): View Logs
/tmp/tmprqbm843r/summary-fail.json (live):/summary-fail.json (live): View Logs
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows/
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows
View Logs
[new_workspaces] the window draws no frames/[new_workspaces] the window draws no frames View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames 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 added a commit that referenced this pull request Nov 1, 2026
…_POOLS.linux

test_ci_owned_pool_sources counts a RUNNER_POOLS read as a possible owned route. The 63 workflows this
PR moves to the Linux pool go into feat-cmux-next's UNRESCUED_WORKFLOW_PATHS, the acknowledgement copy
from #30867, which changes no behaviour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-d9093a0f1b2d0cbb0b2c
teamleaderleo added a commit that referenced this pull request Nov 1, 2026
…lacksmith size (#30878)

* ci: secretless Linux jobs read RUNNER_POOLS.linux, not a hard-coded Blacksmith size

119 runs-on lines in 81 workflows ended in `vars.LINUX_RUNNER || 'blacksmith-4vcpu-ubuntu-2404'`
or a hard-coded overflow pick whose own size is 4 vCPU
(`vars.CI_CLOUD_OVERFLOW_SAVED && 'blacksmith-8vcpu-...' || 'blacksmith-4vcpu-...'`). They now read
fromJSON(vars.RUNNER_POOLS).linux after the fork branches, as #30385 and #30685 do.

Left as they are: jobs with secrets, an environment or a write token (RUNNER_POOLS.linux may be the
secretless fleet route), ephemeral-required jobs, compile jobs with a measured size, measured 2/8/16 vCPU
picks, portable-placement tails, nightly and notarization workflows, and files open PRs change.

tests/test_ci_overflow_pick_reads_pool.py refuses a new one-size pick (growth-only per-workflow counts);
test_ci_linux_single_size counts drop to what remains.

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

* ci: chromium-currency reads the Linux pool; overflow-pick test accepts the bounded ephemeral mirror

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

* ci(owned-pool rescue): acknowledge the workflows that now read RUNNER_POOLS.linux

test_ci_owned_pool_sources counts a RUNNER_POOLS read as a possible owned route. The 63 workflows this
PR moves to the Linux pool go into feat-cmux-next's UNRESCUED_WORKFLOW_PATHS, the acknowledgement copy
from #30867, which changes no behaviour.

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

* ci: leave release and publish workflows on their current runs-on

Their build and verify jobs produce or check artifacts that get published, so moving them onto a pool
that may become the GCP fleet route is a supply-chain trust change, not a routing one. The same name set
as test_ci_blacksmith_linux_failover (release, publish, testflight, app-store, homebrew, bootstrap), plus
the reusable workflows they call (cmux-next-source-archive, ios-screenshots, resolve-dispatch-ref), keep
their base text. Counts and the rescue acknowledgement follow.

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

* ci: keep jobs that feed a credentialed job on the ephemeral mirror

A secretless job whose outputs or success a secrets, environment or write-token job consumes (through
needs, directly or not) stays on its base runs-on. Examples: stable-next plan (the DMG url Developer ID
signs), cloud-vm-migrate preflight (the ref run with DATABASE_URL), pr-autofix repair (the diff push
pushes). 22 jobs reverted; counts and the rescue acknowledgement follow.

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
lawrencecchen added a commit that referenced this pull request Nov 2, 2026
…nd (#31997)

"CI fast guards" was red on main d9a5828 and every main PR, then hit its
5 minute timeout. Five causes:

- Hang: tests/test_gh_merge_green.py never ended since 626b052 (#30219).
  main_fix_evidence.GitHub.json pages until an empty page; the tests'
  recorded GitHub answers every ?page= with the same page, so
  base_red_excuse.py asked for pages forever. The walk now stops on a page
  shorter than 100 (GitHub's own rule, one request for a short list) or an
  empty one, and refuses past 50 pages. The recorded GitHub answers ?page=N
  with the Nth recorded page. tests/test_evidence_paginate_without_slurp.py
  covers the short page, the one-page list and a repeating reader.
- test_glaeda_route_app_budget: nightly.yml promote-nightly-next's read
  token (d813217, #30206) skipped the revoke with checks:read, outside the
  narrow read set; it is revoked again.
- test_ci_pr_runner_pool: the iOS seed job's bounded LINUX_RUNNER pick gained
  the 8 vCPU label in 679c44e (#31031); the expectation follows.
- test_ci_fork_runner_routing: fast-checks.yml's checks job (c5fd30b,
  #30529) is behind `if: github.repository == 'manaflow-ai/cmux'`, which is
  stricter than the owner gate; the check accepts it (with a case that another
  repository's check is not a gate).
- test_ci_owned_pool_sources: feat-cmux-next's rescue copy lists its
  RUNNER_POOLS readers as unrescued (feat #30878); main's test accepts either
  copy's unrescued list, as feat's does since #30867. Watched paths still come
  from main's copy.

This branch was previously deployed

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

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant