feature(version): normalize version markers for different build types - #831
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThis PR adds a new dependency-free crate, mesh-llm-build-info, that exposes BUILD_VERSION, RELEASE_VERSION, and is_sha_build(); it stamps builds via scripts, switches consumers to the stamped build version for display/agent/update checks, makes autoupdate and manifest resolution SHA-build aware, and refactors native runtime startup into plan resolution followed by library loading. ChangesBuild-time Versioning Infrastructure
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@crates/mesh-llm-host-runtime/src/system/native_runtime.rs`:
- Around line 210-217: The code currently treats a missing cache entry from
cache.find_installed(...) as a hard error via with_context(...)? which turns a
TOCTOU cache disappearance into an Err; instead return Ok(None) so the caller
(resolve_startup_native_runtime_plan_with / select_native_runtime) follows the
cache-miss one-shot install path. Modify the handling around
cache.find_installed(&cache_mesh_version, artifact.native_runtime_id()) so that
if the entry is not found (or the find returns a "missing" result), you convert
that case into Ok(None) rather than propagating an error; leave other unexpected
errors unchanged and still propagate them.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 32aed380-e6d8-4bae-a434-60b97035c43d
⛔ Files ignored due to path filters (1)
Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (29)
Cargo.tomlcrates/mesh-llm-build-info/Cargo.tomlcrates/mesh-llm-build-info/README.mdcrates/mesh-llm-build-info/build.rscrates/mesh-llm-build-info/src/lib.rscrates/mesh-llm-cli/Cargo.tomlcrates/mesh-llm-cli/src/parser.rscrates/mesh-llm-commands/Cargo.tomlcrates/mesh-llm-commands/src/benchmark.rscrates/mesh-llm-commands/src/update.rscrates/mesh-llm-host-runtime/Cargo.tomlcrates/mesh-llm-host-runtime/src/api/mod.rscrates/mesh-llm-host-runtime/src/api/tests.rscrates/mesh-llm-host-runtime/src/lib.rscrates/mesh-llm-host-runtime/src/plugin/mcp.rscrates/mesh-llm-host-runtime/src/runtime/mod.rscrates/mesh-llm-host-runtime/src/system/native_runtime.rscrates/mesh-llm-runtime-install/Cargo.tomlcrates/mesh-llm-runtime-install/src/lib.rscrates/mesh-llm-system/Cargo.tomlcrates/mesh-llm-system/src/autoupdate.rsscripts/affected-crates.shscripts/build-linux.shscripts/build-mac.shscripts/build-release.shscripts/build-windows.ps1scripts/plan-clippy-batches.shscripts/publish-crates.shtools/xtask/src/main.rs
* origin/main: Add transport-aware Skippy stage ordering (#814) Share Skippy stage wire byte accounting (#818) Report Skippy artifact cold-start costs (#815) fix: debug output capturing for TUI / panics (#827) fix(hero): visual corrections for iPhone SE size devices (#838) Add Skippy stage role metadata (#816) Add Skippy request cache epoch telemetry (#817) Consolidate agent skills and fix stale docs (Windows deploy, repo map, design docs) (#836) feature(version): normalize version markers for different build types (#831) fix(website): fix visual regressions (#835) fix(gh): change micn to michaelneale in auto_assign.yml Revert "fix(gh): replace micn with IvGolovach in auto_assign.yml (not a collaborator)" fix(gh): replace micn with IvGolovach in auto_assign.yml (not a collaborator)
* origin/main: (29 commits) MoA: don't let small-model consensus pre-empt a still-running large model (#837) fix(console): render thinking traces as markdown Add bounded direct path repair (#846) Fix skippy smoke PR gate (#850) Stabilize skippy smoke chain startup (#849) fix(ci): switch back to auto-assign workflow fix(website): polish longform visual explainer (#843) fix: gemma thinking Carry GLM llama MTP patches (#840) Refresh llama.cpp canary patch queue (#839) Add transport-aware Skippy stage ordering (#814) Share Skippy stage wire byte accounting (#818) Report Skippy artifact cold-start costs (#815) fix: debug output capturing for TUI / panics (#827) fix(hero): visual corrections for iPhone SE size devices (#838) Add Skippy stage role metadata (#816) Add Skippy request cache epoch telemetry (#817) Consolidate agent skills and fix stale docs (Windows deploy, repo map, design docs) (#836) feature(version): normalize version markers for different build types (#831) fix(website): fix visual regressions (#835) ... # Conflicts: # AGENTS.md
Summary
This PR separates mesh-llm's release identity from its build/display identity.
Local/source builds now stamp and report SHA-bearing versions like
0.68.0+gABCDEF.dirtyacross user-visible surfaces, while release/compatibility paths continue to use the plain Cargo package version. This lets source builds accurately identify what code is running without breaking update checks, mesh/runtime compatibility, native-runtime cache layout, or release packaging.Net effect for release builds
Release builds continue to behave as plain release versions:
RELEASE_VERSIONremains the Cargo package version.crate::VERSIONremains mapped to release identity for compatibility-sensitive paths.mesh_version, not SHA-bearing build versions.releases/download/v<release>/native-runtimes.jsonmesh-llm-build-infocrate.Net effect for local/source builds
Local builds now get a derived build version when
MESH_LLM_BUILD_VERSIONis not preset:That build version is now used by:
mesh-llm --version/api/status.versionA local SHA build will no longer be treated as older just because the latest public release is the same base version. SHA builds also default native-runtime manifest discovery to the latest release manifest, while still installing/loading runtimes under release/manifest cache keys.
On startup, mesh-llm now:
CI and release impact
No GitHub workflow YAML changes were needed, but repo scripts were updated so CI/release automation understands the new crate:
scripts/affected-crates.shincludesmesh-llm-build-info.scripts/plan-clippy-batches.shincludes and weights the new crate.scripts/publish-crates.shpublishesmesh-llm-build-infobefore dependent crates.tools/xtaskrelease-target checks now acceptVERSION = RELEASE_VERSION.Validation
Passed validation included:
cargo test -p mesh-llm-build-info --libcargo test -p mesh-llm-system --libcargo test -p mesh-llm-runtime-install --libcargo test -p mesh-llm-native-runtime --libcargo test -p mesh-llm-host-runtime --libcargo check -p mesh-llmjust buildjust release-build/api/status.versioncargo run -p xtask -- repo-consistency release-targetscargo run -p xtask -- repo-consistency ci-crate-listsSummary by CodeRabbit
New Features
Improvements
Documentation