Repository navigation
cmux-next guards: a stale settings export fails only the change that made it stale (defaults-snapshot base red) - #23056
Merged
Conversation
…it changed Red: defaults-snapshot fails every pull request and base push while the base autofix catches up (base 6143f81: stale for Localizable.xcstrings, NotificationModes.swift, NotificationPreferences.swift and SettingsSchema+Appearance.swift, none of them changed by those PRs), and the message points at a REPAIR.md row this repository does not have. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15c6d-a1d2-7fc2-9458-92c6bdcb7b4d&host=huge-blue
…hanged its source defaults-snapshot ran check-stamp on the whole tree, so once a merge landed a settings source without its exports (d986b17, #22678, #23028; none changed a default), every pull request and every base push was red until the base autofix caught up, which merges minutes apart kept from happening for hours. check-stamp --base now fails only for sources changed since the base (the merge commit's base tip, or a push's parent) and prints the inherited ones as a warning. The stale message names the PR autofix and regenerate-settings-exports.sh instead of a REPAIR.md row this repository does not have. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15c6d-a1d2-7fc2-9458-92c6bdcb7b4d&host=huge-blue
Collaborator
Author
|
Owned by land-and-ci-a8 on huge-blue · session |
Contributor
|
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)
|
… too; #22275 follow-ups The generated-files job's check-stamp failed every pull request on the base's stale exports the same way; it now passes --base HEAD^1 as defaults-snapshot does. #22275's review follow-ups: autofix-areas.sh, regenerate-settings- exports.sh and the generated-files comments still described check-fresh and the snapshot, and the fork hint's `git commit -am` left files the patch adds unstaged (now `git apply --index`). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15c6d-a1d2-7fc2-9458-92c6bdcb7b4d&host=huge-blue
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
…t 20 inherited sources Red (review of #23056): a head that takes an old stamp passes as stale on the base, and with over 20 stale sources the "and N more" line fails every head. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15c6d-a1d2-7fc2-9458-92c6bdcb7b4d&host=huge-blue
…e list is cut The inherited split ran on the printed lines: a head whose own stamp entry differs from the base's passed as stale on the base, and past 20 sources the "and N more" line failed every head. stamp_freshness now splits the full list and needs both the source bytes and the stamp entry to be the base's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15c6d-a1d2-7fc2-9458-92c6bdcb7b4d&host=huge-blue
Collaborator
Author
|
Bead |
Contributor
|
Shipped in:
|
This was referenced Oct 21, 2026
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
cmux-next guards / defaults-snapshotis red on base and on every pull request into feat-cmux-next. #22877 (merged 04:02Z) did not fix it.What drifted. On base 6143f81,
check-stampreports four settings sources as stale:Localizable.xcstringsNotificationModes.swiftNotificationPreferences.swiftSettingsSchema+Appearance.swiftThree merges landed those source changes without their exports:
No default changed.
defaults_guard.py check --base C^ --head Clists nothing for any of the three commits. They changed help text and translations only, so nothing needs a call.Why it stays red. The exports are meant to come from the base autofix after each merge. With merges minutes apart, those runs get cancelled or lag. Meanwhile
check-stampjudges the whole tree, so every pull request inherits the base's stale stamp. Its message also pointed at a "REPAIR.md row" that this repository doesn't have.What this changes.
check-stamp --base REFfails only for sources whose bytes changed since REF. Sources that were already stale on the base print as a::warningsaying the base autofix regenerates them.The defaults-snapshot job checks out with depth 2 and passes
HEAD^1. That is the base tip for a pull request's merge commit, or the parent commit for a push. A push that lands a settings source without its exports is still red on that one commit, so the drift points at the commit that caused it.The stale message now says how to regenerate:
cmux-next-pr-autofix.yml) for a pull request;scripts/cmux-next/regenerate-settings-exports.shon a fleet Mac to do it yourself.The generated-files job in
cmux-next.ymlruns the samecheck-stamp --base HEAD^1, so it also only warns about exports that were already stale on the base.A source counts as the base's only when both its bytes and its stamp entry match the base's. That split happens before the list is cut to 20 lines, so a head that edits the stamp itself still fails, and a base with more than 20 stale sources still passes.
cmux-next: the defaults snapshot is bot-only #22275 follow-ups:
autofix-areas.shandregenerate-settings-exports.shnow namecheck-stampinstead of the oldcheck-fresh;git apply --indexso it stages new files too.This complements #22004, which makes the base autofix itself keep up.
Separate base red. This job's next step,
check-menu-actions.py, also fails on base:ChiefPaneTools.swifthas an inline menu row from #22852. It is hidden behind the stamp failure today. I'm reporting it separately rather than fixing it here.Changelog
none
Testing
python3 tests/test_defaults_guard.py:bash scripts/cmux-next/tests/pr-autofix.test.shpasses.On this PR's own CI at b61b216, the stamp step passes and warns about the four inherited sources. The only red is the next step,
check-menu-actions.py, which is the separate base red.python3 scripts/ci/defaults_guard.py check-stamp --base HEADon base 6143f81 exits 0 and warns about the four inherited sources. Without--baseit exits 1.Observed / Not run
HEAD^1is only the previous commit, so a stale source from earlier in the stack passes as inherited. Each PR's own pull_request run still judges it.Agent session: huge-blue
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes the defaults-snapshot guard so a stale settings export fails only the change that made it stale, and applies the same fix to the generated-files job.
check-stamp --base REFfails only for sources whose bytes changed since REF; sources already stale on the base print as a::warning.HEAD^1— the base tip for a PR's merge commit, or a push's parent.scripts/cmux-next/regenerate-settings-exports.shinstead of a REPAIR.md row this repository doesn't have.autofix-areas.shandregenerate-settings-exports.shnow namecheck-stampinstead ofcheck-fresh; the fork hint usesgit apply --indexso new files get staged.check-menu-actions.py(ChiefPaneTools.swiftfrom cmux NEXT: the Chief's status, subagents and actions in its pane's tab row #22852) remains hidden behind the stamp failure and is tracked separately.Written for commit b61b216. Summary will update on new commits.