Skip to content

fix(ci): an unset CI_NEXT_DEV_PRODUCT_REUSE leaves DEV product reuse on - #25075

Merged
teamleaderleo merged 1 commit into
feat-cmux-nextfrom
incremental-build-pr3c-reuse-switch
Oct 25, 2026
Merged

teamleaderleo merged 1 commit into
feat-cmux-nextfrom
incremental-build-pr3c-reuse-switch

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

Leo: "the incrementally, you know, tracking the latest commit or whatever, building it off the right way, building the right things, like reusing as much as you can"

What

This fixes a bug in #24964: the DEV Release product reuse never ran. Its off switch was vars.CI_NEXT_DEV_PRODUCT_REUSE == '0'. When that variable is unset, the expression sees null, and GitHub converts both null and '0' to the number 0 before comparing them. So the comparison was true on every run, and the lookup skipped itself.

Evidence: the first producer after landing, DEV run 40163060381 (3f08df3), logged the notice vars.CI_NEXT_DEV_PRODUCT_REUSE is 0, and the variable is not set (HTTP 404). That run still compiled and wrote its record (cmux-next-dev-release-product-13b521d3…), so nothing broke. Reuse just never fired.

The fix compares the variable's string form instead: format('{0}', vars.CI_NEXT_DEV_PRODUCT_REUSE) == '0'. An unset variable formats as '', which is not '0', so reuse stays on. Setting the variable to 0 still turns it off.

A new test in tests/test_dev_release_product_reuse.py fails if the lookup step has any bare vars.X == '<digit>' comparison. It fails on base and passes here.

Success / failure

  • Success: the next DEV run on a product-unchanged merge prints DEV Release product: hit, and its compile job takes ≤ ~60 s.
  • Failure: reuse stays off while the variable is unset, or setting it to 0 no longer turns reuse off.

Risk

Low. This is a one-expression change, and it turns on the reuse path that #24964 reviewed and landed. The trust checks and the digest check behind that path are unchanged.

Agent session: cosmic-gray

🤖 Generated with Claude Code


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

In an expression an unset variable is null, and null == '0' is true (both
coerce to the number 0), so #24964's off switch read as off on every run
(source run 40163060381: "vars.CI_NEXT_DEV_PRODUCT_REUSE is 0" with the
variable unset). Compare its string form, and test that the lookup step has
no bare `vars.X == '<digit>'` comparison.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16fa4-6017-7cf0-a801-d0761b36e005&host=cosmic-gray
@cursor

cursor Bot commented Oct 25, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot 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.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by claude-sr2/incremental-build on cosmic-gray · session

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 25, 2026
@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

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

Review 5f05849: 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=pr25075 -f ref=incremental-build-pr3c-reuse-switch -f platform=macos -f backend_mode=local

red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base 1a19cf5; does not block

@blacksmith-sh

blacksmith-sh Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Found 12 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmpsb7941c5/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmpse1woj1a/summary-missing.json (live):/summary-missing.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
convention violations found (ERROR lines above)./
convention violations found (ERROR lines above).
View Logs
nightly.yml prepare-nightly-variant: 'Package prepared app for signing' is not in list/
nightly.yml prepare-nightly-variant: 'Package prepared app for signing' is not in list
View Logs
test_secret_free_prepare_fallback_does_not_requeue_a_retry_on_the_side_pool (main.N
ightlyOffBlacksmithTests.test_secret_free_prepare_fallback_does_not_requeue_a_retry_on_
the_side_pool)/
test_secret_free_prepare_fallback_does_not_requeue_a_retry_on_the_side_pool (main.N
ightlyOffBlacksmithTests.test_secret_free_prepare_fallback_does_not_requeue_a_retry_on_
the_side_pool)
View Logs
test_targets_outside_the_app_go_to_the_mac_canary (main.SwiftCanaryFleetCoverage.te
st_targets_outside_the_app_go_to_the_mac_canary)/
test_targets_outside_the_app_go_to_the_mac_canary (main.SwiftCanaryFleetCoverage.te
st_targets_outside_the_app_go_to_the_mac_canary)
View Logs

...and 2 more test failures. View all on Blacksmith

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

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-c1dcr created for this PR by the cmux coordinator.

@teamleaderleo
teamleaderleo merged commit c6ebb07 into feat-cmux-next Oct 25, 2026
114 of 124 checks passed
@teamleaderleo
teamleaderleo deleted the incremental-build-pr3c-reuse-switch branch October 25, 2026 05:30
@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

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