Repository navigation
cmux-tui-core: a new release stamp no longer recompiles cmux-tui-core - #28787
Conversation
release::DISTRIBUTION_VERSION read CMUX_TUI_DISTRIBUTION_VERSION with option_env!, and the Linux pool stamps it per build (0.0.0-r2.sha-<stamp>, macos-cross.sh, cmux-tui-build-package.yml), so every stamp recompiled cmux-tui-core and everything above it. #21980 moved core's other stamps to the binary (install_build_stamp); release.rs came a day later with its own. Core now reads release::distribution_version(): the value the binary installs at start (install_distribution_version, next to install_build_stamp), the same filter (a placeholder stamp is not a release), and the workspace crate version until then (core's tests, which saw the same value before). The binary keeps its own DISTRIBUTION_VERSION constant and DISTRIBUTION_STAMP, the one option_env! read. Test: cargo test -p cmux-tui-core --lib only_a_release_stamp_is_reported_as_the_release Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-2f016c499153c1bead46
|
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)
web and size checks: green Shipped in:
|
|
Review (Codex gpt-6-astra, high, fast; a different model from the author): SHIP at ee60807 No blockers. Every reader of the old constant is converted, and the value is installed before daemon startup and acpmux dispatch, including the Windows thin-exe path. The value is the same for release, placeholder, empty and absent stamps. No compile-time |
|
Reds at ee60807, classified before landing:
None is caused by this PR. Review: Codex gpt-6-astra (high, fast), SHIP at this head. |
|
Review (codex gpt-6.1-sol high fast, router-review): SHIP at e76ada2 No correctness findings. |
|
Found 3 test failures on Blacksmith runners: Failures
|
|
Owned by an agent session · took over from an earlier session · session |
|
Review (Codex gpt-6-astra, high, fast; a different model from the author): SHIP at 02c1d2b Two rounds at this head. The earlier SHIP at e76ada2 didn't carry over: since then the branch only merged Follow-up (P2): the |
|
Review (codex, router-review): SHIP at 6e511e8 Reviewer: codex gpt-6.1-sol xhigh, fast tier. SHIP at 6e511e8 Visual verdict: no images; Leo tries the build No findings. Startup initialization covers the normal and Windows DLL paths; version filtering remains unchanged. Rust tests were not run because the box lacks a Rust toolchain. Follow-ups: none |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Follow-up to #28776 (which takes over #22030) and to #21980. A new release stamp no longer recompiles
cmux-tui-core.Why
cmux-tui-core/src/release.rsreadsCMUX_TUI_DISTRIBUTION_VERSIONwithoption_env!. rustc records that variable in the crate's dep-info, so Cargo recompilescmux-tui-corewhenever its value changes, and then everything that depends on it. The Linux pool and the package workflows stamp that variable on every build (0.0.0-r2.sha-<stamp>inscripts/ci/macos-cross.sh, the release version incmux-tui-build-package.yml). #21980 already moved core's other stamps to the binary (install_build_stamp).release.rslanded a day later, on 2026-10-19, with a stamp read of its own, after #21980's and #22030's measurements were taken.What
release::distribution_version(). It returns the value the binary installs at start,install_distribution_version, called next toinstall_build_stamp. The filter is the same as before: a0.0.0-…placeholder is not a release. Until the value is installed (core's own tests), it is the workspace crate version, which is what those tests saw before.identify, the agent-session proxy, the too-old refusal and its test) call it.option_env!read (version_report::DISTRIBUTION_STAMP) and its ownDISTRIBUTION_VERSIONconstant with the same value. Its readers (--version, crash forwarding, the update notice, the skew refusals) are unchanged.Performance
CMUX_TUI_DISTRIBUTION_VERSION(cargo check -p cmux-tui --lib)cmux-tui-core,cmux-remote,cmux-tui)cmux-remote,cmux-tui)bbb,ccc)Harness: one 32-vCPU Linux job checks the PR head, then the same tree with this PR's diff reverted. Each pass runs
cargo check -p cmux-tui --libwith three placeholder stamps in a row. The first stamp of the head pass (46 s) is the cold first check of the tree and is left out.cmux-remotestill reads a stamp of its own, so it is still re-checked; that is outside this PR.Tests
cargo test -p cmux-tui-core --lib only_a_release_stamp_is_reported_as_the_release(new): a release stamp is reported as it is, and a placeholder or no stamp reports the workspace version.api_revision_wire_testscompareidentify's version withdistribution_version().tests/version_report.rscovers the binary's constant.Observed / Not run
prepush-gate.py(no new violations) and rustfmt.cargo test -p cmux-tui-core --lib only_a_release_stamppassed (1 passed) at this head, and the re-check counts in the table above.Review
Review (Codex gpt-6-astra, high, fast; a different model from the author): SHIP at ee60807
No blockers. Every reader of the old constant is converted, and the value is installed before daemon startup and acpmux dispatch, including the Windows thin-exe path. The value is the same for release, placeholder, empty and absent stamps. No compile-time
CMUX_TUI_*read remains in core.Changelog
none
Agent session: agent session
🤖 Generated with Claude Code