refactor(desktop): feature-gate mesh-llm-sdk behind optional Cargo feature#823
Merged
Conversation
…ature The skippy-ffi build.rs panics in fresh worktrees and CI when pre-built llama.cpp archives are missing and SKIPPY_LLAMA_AUTO_BUILD=0. Rather than requiring archives to exist, make mesh-llm-sdk an optional dep (default OFF) so skippy-ffi never compiles unless explicitly opted in. Stub Tauri commands return errors when the feature is off so the frontend IPC contract is preserved. The dev, staging, and release-build Justfile recipes pass --features=mesh-llm via TAURI_CLI_EXTRA_CARGO_ARGS. Removes the broken SKIPPY_LLAMA_AUTO_BUILD=0 workaround from #819.
wesbillman
approved these changes
Jun 2, 2026
Wrap the mesh_preflight_failures set, preflight loop, and filtered agents_to_start rebind in a single #[cfg(feature = "mesh-llm")] block expression instead of three separate annotations on consecutive statements.
wpfleger96
added a commit
that referenced
this pull request
Jun 2, 2026
The mesh_llm module in commands/mod.rs is private — its contents are accessible only through the pub use re-export. Fixes compilation with --features=mesh-llm introduced in #823.
tlongwell-block
pushed a commit
that referenced
this pull request
Jun 2, 2026
Rebased onto main, which feature-gated mesh-llm-sdk (optional dep + "mesh-llm" feature, #823) and changed the ensure_client_node_for_model re-export (#824). Resolved by carrying both: fork pin tlongwell-block/mesh-llm@bc2f1106 stays, now also `optional = true`; restore.rs mesh preflight keeps the #[cfg(feature="mesh-llm")] wrapper with our 3-arg ensure_client_node_for_model(..., None) signature. Add no-op stubs for mesh_dial_endpoint_addr + mesh_status_report_payload to the cfg(not(feature="mesh-llm")) stub module — the generate_handler! list references them in all builds, so the default (feature-off) build needs the stubs (they were present for the other mesh commands but not these two new ones). Lockfiles regenerated. Verified: default build + with-feature build + desktop clippy (-D warnings) + mesh-compute e2e (3/3) + relay suite (271/0) all green. Signed-off-by: Eva <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co> Co-authored-by: Max <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co>
tlongwell-block
pushed a commit
that referenced
this pull request
Jun 2, 2026
The two no-op stubs added for the #823 feature-gate (mesh_dial_endpoint_addr, mesh_status_report_payload — required so the default no-feature build's generate_handler! list resolves) pushed lib.rs from 828 to 846 lines, over its 835 override. Bump to 850 with the justification extended; the additions are the minimal feature-gate completeness the default build needs, not bloat. Signed-off-by: Eva <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co>
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.
Make
mesh-llm-sdkan optional dependency behind amesh-llmCargo feature (default OFF) so thatskippy-ffi— and itsbuild.rsthat requires pre-built llama.cpp archives — never compiles unless explicitly opted in. This fixes fresh worktrees and CI where the archives don't exist andSKIPPY_LLAMA_AUTO_BUILD=0(from #819) caused the build script to panic.When the feature is off, stub Tauri commands return
"mesh-llm feature not enabled"errors so the frontend IPC contract is preserved without any TypeScript changes. Thedev,staging, anddesktop-release-buildJustfile recipes pass--features=mesh-llmviaTAURI_CLI_EXTRA_CARGO_ARGSso developers who actually run the desktop app get mesh-llm compiled in. CI lint/check/test targets intentionally omit the feature — they don't need llama.cpp and now compile cleanly without it.mesh-llm-sdkasoptional = truewithmesh-llm = ["dep:mesh-llm-sdk"]feature#[cfg(feature = "mesh-llm")]onmod mesh_llm,AppState::mesh_llm_runtime,relay_mesh_model_id, restore preflight, and related testsmesh_llm_stubsmodule with 7 no-op Tauri command stubs for the disabled casedesktop/src-tauri/.cargo/config.toml(SKIPPY_LLAMA_AUTO_BUILD=0workaround from fix(desktop): disable mesh-llm auto-build to prevent git config corruption #819), superseded by the feature gateUpstream fix for the
git -Cdirectory-escape bug inprepare-llama.sh: Mesh-LLM/mesh-llm#780