fix(desktop): gate Share Compute when mesh-llm is not packaged (#3841) - #3914
Open
Chessing234 wants to merge 6 commits into
Open
fix(desktop): gate Share Compute when mesh-llm is not packaged (#3841)#3914Chessing234 wants to merge 6 commits into
Chessing234 wants to merge 6 commits into
Conversation
Official Linux/Windows packages build without --features mesh-llm, so Share Compute always hit opaque stub errors. Add a synchronous capability probe and clearer stub copy pointing at the packaging gap (block#3841). Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Taksh <takshkothari09@gmail.com>
Add meshFeatureEnabled() and a small error classifier so the UI can tell a missing Cargo feature apart from a real mesh runtime failure (block#3841). Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Taksh <takshkothari09@gmail.com>
When mesh-llm was not compiled in, Settings → Compute used to render a toggle that always failed with a stub error. Gate the card on the build probe instead (block#3841). Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Taksh <takshkothari09@gmail.com>
Keep Playwright mesh-compute flows on the enabled path while the new probe is wired through invoke. Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Taksh <takshkothari09@gmail.com>
Document that official Linux/Windows installs omit --features mesh-llm and that Settings → Compute explains the gap via mesh_feature_enabled (block#3841). Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Taksh <takshkothari09@gmail.com>
Leave packaging unchanged (Metal-oriented CI) but point release/canary Linux jobs at the Settings empty-state contract for block#3841. Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Taksh <takshkothari09@gmail.com>
Chessing234
force-pushed
the
fix/mesh-llm-unavailable-linux-3841
branch
from
July 31, 2026 12:24
efb898b to
32888d3
Compare
Contributor
Author
|
added Signed-off-by on all commits so the DCO check should go green. |
Contributor
Author
|
@tlongwell-block @wesbillman @wpfleger96 mind taking a look when you get a chance? |
3 tasks
tlongwell-block
added a commit
that referenced
this pull request
Aug 3, 2026
…#4524) ## Summary Official Linux desktop packages (`.deb` / AppImage) are built without `--features mesh-llm`, so they ship the `mesh_llm_stubs` backend and Settings → Compute always fails with `mesh-llm feature not enabled`. This PR adds the feature flag to the two Linux build commands: - `release.yml` → `release-linux` job - `linux-canary.yml` → canary build That's the whole diff — 2 lines. Fixes #3788 (Linux); see also #3841 (dup with UI-gating PR #3914) and the Windows twin #2836/#3223. ## Why no native prebuild step (unlike the macOS job) The macOS job carries Metal llama prebuild/cache steps from #798. Linux doesn't need an equivalent: - `mesh-llm-host-runtime` is compiled with `dynamic-native-runtime` and installs the recommended runtime on first use (verified by sha256 checksum over HTTPS; upstream's signature verification path is not yet implemented — default policy is `RequireChecksum`, per `mesh-llm-runtime-install/src/lib.rs`) (`desktop/src-tauri/src/mesh_llm/mod.rs` — `initialize_mesh_native_runtime`), so release builds work on clean machines without bundling llama.cpp. - Upstream publishes Linux x86_64/aarch64 runtime bundles for the pinned `v0.74.0` line, and `scripts/ensure-mesh-native-runtime.sh` already maps `meshllm-native-runtime-linux-x86_64-cpu` / `linux-aarch64-cpu` for local/e2e use. - The unmerged branch `micn/mesh-node-download` (`96f29417a`) treats even the macOS prebuild steps as removable dead weight for the same reason. ## Background The omission is historical drift, not a decision: Linux packaging predates the mesh feature flag (#693), mesh became opt-in for build-cost/reliability reasons (#823, #1183), and #1221 re-enabled it for releases by editing only the macOS build line. `release-linux` and the later `linux-canary` copy were never revisited. The mesh shutdown hard-exit/relaunch path is gated `all(mesh-llm, target_os = "macos")` because ggml/Metal destructors abort on macOS; ordinary mesh shutdown (`shutdown_mesh_runtime`) is cross-platform, so Linux falls through to the generic path. ## Validation - [x] `./bin/cargo check --manifest-path desktop/src-tauri/Cargo.toml --features mesh-llm` green at base `2c0ac2467` (feature graph compiles at the pinned v0.74.0 line) - [ ] Linux canary run with this change: AppImage/.deb build succeeds and binary contains real `mesh_llm` symbols (not `mesh_llm_stubs`) - [ ] Installed package: cold-start → Settings → Compute → runtime download → serve → clean shutdown The last two need a Linux run/host. **Note (from review):** `linux-canary.yml` is `workflow_dispatch`-only and its `Require main` step rejects non-main refs, so the canary cannot run on this branch pre-merge — and `.github/workflows/**` matches no ci.yml paths-filter, so this PR's own CI does not exercise the changed lines. Validation sequencing is therefore merge → dispatch linux-canary on main → live-package pass, with a trivial 2-line revert as the escape hatch. Signed-off-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@buzz.block.builderlab.xyz> Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@buzz.block.builderlab.xyz>
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
--features mesh-llm, so Share Compute always failed with an opaque stub error (#3841).mesh_feature_enabledTauri probe, clearer stub copy, and a Settings → Compute empty state that explains the packaging gap instead of offering a dead-end toggle.Test plan
node --test desktop/src/features/mesh-compute/isMeshFeatureDisabledError.test.mjsdata-testid=settings-mesh-share-unavailable), no togglejust mesh=1 dev/ macOS release-style build: Share Compute card behaves as beforemesh_feature_enabled: true)Closes #3841
Made with Cursor