Skip to content

ci(cmux-next): the DEV Release product receipt records the resolved Swift mode - #27679

Merged
teamleaderleo merged 1 commit into
feat-cmux-nextfrom
dep-fleet/dev-reuse-swift-mode
Oct 29, 2026
Merged

teamleaderleo merged 1 commit into
feat-cmux-nextfrom
dep-fleet/dev-reuse-swift-mode

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Why

From the DEV whole-module lane (#26999): "The DEV compile reuse key prints swift_mode=auto, so auto-singlefile and auto-wholemodule share one key. Reuse stays correct, but reporting can't tell the two apart. Have the key or receipt record the resolved mode (singlefile or wholemodule) alongside auto."

What changes

Reporting only. The reuse key, the lookup and the product don't change: either resolved mode is a correct product of the same inputs, and splitting the key would only cost reuse hits.

  • dev_release_product_reuse.py record accepts --swift-mode (what compile-dev-release.sh resolved) and --swift-mode-requested (the key's value, usually auto). It writes both into the record's manifest.json as swift_mode and swift_mode_requested. An unknown value is left out with a warning; it never fails the record.
  • lookup outputs swift_mode and swift_mode_requested from the source record (empty for records written before this change). On a hit, the step summary names them, for example "swift_mode auto -> wholemodule".
  • Both record steps in cmux-next.yml (the DEV daily and push compile, and the landing compile) pass the reused source's resolved mode on a hit and the compile step's swift_mode output otherwise. A reuse therefore keeps reporting the mode the bytes were actually compiled with.

The nightly lane shares the module but its workflow doesn't record a Swift mode, so it's unchanged; its tests pass.

Risk

Low. These are optional manifest fields and summary text. The record steps are continue-on-error already, and the new flags can't fail them.

Tests

  • tests/test_dev_release_product_reuse.py: 15 passed, including new tests. The record keeps the resolved and requested modes and leaves the key alone. An unknown value is dropped without failing. A hit carries its source's mode into outputs and the summary, and an old record reads as empty. Both record steps pass the resolved mode.
  • tests/test_nightly_release_product_reuse.py (18) and tests/test_ci_release_product_reuse.py pass.
  • Every test file that reads cmux-next.yml was run (40). The only failures (test_ci_fork_runner_routing, 1 test; test_cmux_next_base_autofix_finishes, 9 tests) fail with the same tests on base.

Changelog

none

🤖 Generated with Claude Code

Agent session: agent session


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


Summary by cubic

DEV Release product receipts now record the resolved Swift mode (singlefile or wholemodule) alongside the requested one (usually auto), so reports can tell auto-singlefile and auto-wholemodule compiles apart even though they share a reuse key.

  • Reporting only: the reuse key, lookup, and product are unchanged, so reuse hits are unaffected.
  • record accepts --swift-mode and --swift-mode-requested and writes both to manifest.json; unknown values are dropped with a warning and never fail the record.
  • lookup outputs both fields (empty for records written before this change), and the step summary names them on a hit, e.g. "swift_mode auto -> wholemodule".
  • On a reuse, the source's resolved mode is carried forward instead of the compile step's.

Written for commit 70409ad. Summary will update on new commits.

View guided diff Turn on auto-fix

…wift mode

The reuse key keeps swift_mode=auto (either resolved mode is a correct product of the same
inputs, so splitting the key would only cost hits), but a report could not tell an
auto-singlefile compile from an auto-wholemodule one. The record's manifest.json now keeps
swift_mode (singlefile or wholemodule, what compile-dev-release.sh resolved) beside
swift_mode_requested (the key's value). A reuse carries its source's resolved mode forward, the
lookup prints it, and the step summary names it on a hit ("swift_mode auto -> wholemodule").
Reporting only: no key, lookup or product change; an unknown value is left out, never fatal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Oct 29, 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.

@github-actions

Copy link
Copy Markdown
Contributor

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

Review 70409ad: 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=pr27679 -f ref=dep-fleet/dev-reuse-swift-mode -f platform=macos -f backend_mode=local

@github-actions github-actions Bot added the risk:high Risk tier (docs/ci/risk-tiers.md) label Oct 29, 2026
@blacksmith-sh

blacksmith-sh Bot commented Oct 29, 2026

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

Failure

Test View Logs
test_the_repository_highlights_validate (main.DigestTests.test_the_repository_highl
ights_validate)/
test_the_repository_highlights_validate (main.DigestTests.test_the_repository_highl
ights_validate)
View Logs

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

@teamleaderleo
teamleaderleo merged commit 562b18c into feat-cmux-next Oct 29, 2026
152 of 165 checks passed
@teamleaderleo
teamleaderleo deleted the dep-fleet/dev-reuse-swift-mode branch October 29, 2026 23:43
@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40975388675 at 43303f7 failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next fleet Release compile.
Those jobs last passed at 94e3fa5. This pull request is one of 3 merged since: #26517, #27679, #26082.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40975576275 at 60a6a31 failed: cmux-next checks (god files, concurrency, crash safety, l10n), cmux-next fleet Release compile.
Those jobs last passed at 94e3fa5. This pull request is one of 4 merged since: #26517, #27679, #26082, #27682.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

@github-actions

Copy link
Copy Markdown
Contributor

Shipped in:

@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

This branch was previously deployed

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

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant