Repository navigation
ci: default the seed adoption kill switch to on - #14150
Merged
Merged
Conversation
An unset repository variable evaluates to null, and Actions compares null with '0' as the numbers 0 and 0. The adoption step's `vars.CI_ADMISSION_SEED_DERIVED_DATA != '0'` is therefore false while the variable is unset, so no pull request has ever adopted the seed since #14081. A probe run on 2026-09-24 printed the variable as null and the term as false. The test asserted the buggy expression; it now requires a non-zero default, and a new test rejects any workflow that compares a bare variable with '0'. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EduXdN9PKnGsMQztJK7WeE
`(vars.CI_ADMISSION_SEED_DERIVED_DATA || '1') != '0'` is true while the variable is unset and false only when it is set to 0, which is what #14081 meant. The bare comparison was false while unset, so pull request compile admission skipped the seed on every run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EduXdN9PKnGsMQztJK7WeE
Contributor
|
All contributors have signed the CLA ✍️ ✅ |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
teamleaderleo
enabled auto-merge (squash)
September 24, 2026 05:18
rustybret
pushed a commit
to rustybret/bmux
that referenced
this pull request
Sep 24, 2026
82543c5 ci: stop restoring the test compilation cache in compile admission (manaflow-ai#14161) 5da27d6 ci: route the persistent compile fleet command as control plane only (manaflow-ai#14157) b2ec91b ci: bring a Mac mini onto the compile fleet with one command (manaflow-ai#14148) 1f39b14 ci: cancel orphaned runs from the queue janitor (manaflow-ai#14156) 455179c ci: register new Python tests automatically at commit time (manaflow-ai#14153) e6ca0a2 fix(ios): mirror the signed-in account so pushes decrypt after launch (manaflow-ai#14110) fd028fe ci: run forks' own macOS CI on GitHub-hosted macos-26 (manaflow-ai#14151) f70a62b ci: cancel stale pull request runs on every janitor sweep (manaflow-ai#14144) e2fd37e ci: default the seed adoption kill switch to on (manaflow-ai#14150) 4926f0f fix: split the SSH session-list merge so it type-checks on slow runners (manaflow-ai#14142) 34d33d2 ci: run R2 cache writers in a main-only ci-cache-writer environment (manaflow-ai#14147) 4b7f66a ci: skip the Mac wrapper and remote-daemon lanes for ci.yml routing edits (manaflow-ai#14145) 4ca24a2 ci: give the DerivedData seeder the R2 public URL (manaflow-ai#14146) # Conflicts: # .github/workflows/app-host-test-rerun.yml # .github/workflows/auth-refresh-tests.yml # .github/workflows/ci-guards.yml # .github/workflows/ci-macos.yml # .github/workflows/ci-queue-janitor.yml # .github/workflows/ci.yml # .github/workflows/cli-pipe-regressions.yml # .github/workflows/cloud-command-deadlines.yml # .github/workflows/cloud-machine-tests.yml # .github/workflows/cloud-task-local-tests.yml # .github/workflows/iroh-v2.yml # .github/workflows/nightly.yml # .github/workflows/relay-tls.yml # .github/workflows/remote-daemon.yml # .github/workflows/seed-derived-data.yml # .github/workflows/terminal-hang-diagnostics.yml # .github/workflows/test-ios.yml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
No pull request has adopted the DerivedData seed since #14081. The
Adopt the nightly DerivedData seedstep in compile admission was skipped on every run. That includes #14081's own three PR runs on Blacksmith 15, Blacksmith 26 and hosted 26, and PR runs from 2026-09-24 such as jobs 107499745573 and 107500740029. So every PR compile has been a full cold build.The cause is the kill switch
vars.CI_ADMISSION_SEED_DERIVED_DATA != '0'. An unset repository variable evaluates tonull, not'', and Actions comparesnullwith'0'as the numbers 0 and 0. That makes the term false while the variable is unset, which inverts the intended "unset means on".A throwaway probe workflow, run on
exp/seed-if-probe(job 107503109056), printed:It also showed that a step gated on that term alone is skipped, while one gated on the backend term runs.
The step now uses
(vars.CI_ADMISSION_SEED_DERIVED_DATA || '1') != '0'. That is on while the variable is unset and off only when it is0. This is the only variable compared with'0'in.github/workflows.Adoption still needs a seed to exist. #14146 fixes the seeder's save step, and #14142 fixes the compile failure that broke the seed builds on Blacksmith macOS 15.
Testing
test_adoption_is_optional_and_limited_to_pull_requestsasserted the buggy expression and now requires the default.test_no_workflow_compares_a_bare_variable_with_zerorejects anyvars.X ==/!= '0'in a workflow.tests/test_seed_derived_data.pypasses (10 tests).actionlintis clean,tests/test_ci_self_hosted_guard.shpasses, and every Python test that readsci-macos.ymlpasses, excepttest_check_ghostty_zig_workflows.py, which can't importbashlexin this environment.Checklist
🤖 Generated with Claude Code
https://claude.ai/code/session_01EduXdN9PKnGsMQztJK7WeE
Generated by Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Defaults the seed adoption kill switch to on so pull request compiles no longer skip the nightly DerivedData seed.
An unset repository variable is null, and Actions compares null with
'0'as the numbers 0 and 0, so the oldvars.CI_ADMISSION_SEED_DERIVED_DATA != '0'was false while unset — every PR compile was a full cold build. The step now uses(vars.CI_ADMISSION_SEED_DERIVED_DATA || '1') != '0', which is on while unset and off only when the variable is0.vars.Xwith'0'.Written for commit f026e8c. Summary will update on new commits.