chore(mesh): upgrade MeshLLM to 0.76.1 - #7559
Conversation
Pin the desktop and relay smoke dependencies to the stable release and regenerate both lockfiles. Match its Ed25519 and SQLite dependencies, retaining unsigned SQL conversions in non-mesh desktop builds. Use the merged SQLx SQLite compatibility fix until a crates.io release includes transact-rs/sqlx#4402. The PostgreSQL driver remains on crates.io SQLx 0.9.0. Signed-off-by: Thinker <75d8a808fa21bb8d1812e080cf471db601c6e8e6a62dcd516d37531e83a7bb77@meshllm.communities.buzz.xyz>
🔐 Codex Security Review
|
CI follow-up: not readyMarking this PR draft until the GitHub CI failures are resolved. Local validation and PR creation were not sufficient completion evidence. At head
One same-head rerun is in progress. A retry passing will not alone establish that the original failures were unrelated. No tests, dependency pins, or CI limits have been changed to make this pass during follow-up. |
Two follow-ups to the MeshLLM 0.76.0 upgrade, both consequences of the same thing: Buzz was relying on Cargo feature/dependency unification with mesh-llm rather than declaring what it needs. 1. Linux Secret Service sessions dropped to plaintext. Until 0.76, mesh-llm enabled `crypto-rust` on the *same* keyring 3 the desktop uses, so Buzz inherited it through feature unification. 0.76 moves mesh-llm to keyring 4, and desktop's own declaration only asked for `sync-secret-service,vendored`. `keyring-3.6.3/src/secret_service.rs:140-143,333-336` selects `EncryptionType::Dh` only under a crypto feature and `Plain` otherwise, so Linux mesh-enabled builds lost Diffie-Hellman transit encryption for nsec reads/writes over the D-Bus session bus. Visible in the lockfile: `dbus-secret-service 4.1.0` lost aes/block-padding/cbc/hkdf/sha2/num/ fastrand/once_cell. Fixed by requesting `crypto-rust` explicitly. It restores exactly the packages the pre-upgrade lock already had, so it costs nothing. 2. Desktop E2E Relay exceeded its 30 minute timeout. The mesh-llm SDK and native runtime were dev-dependencies of `buzz-relay`. A dev-dependency feeds *every* target of its package, so `cargo nextest archive -p buzz-relay` had to compile the whole mesh-llm + skippy + rmcp + hf-xet tree before a single relay unit test could build — and the mesh pin bump invalidated that cache wholesale. The six harnesses that need it are examples that drive the relay as an external process; none reference `buzz_relay::`. Moved them to a new examples-only crate `buzz-mesh-smoke` so the cost lands only on the Mesh Lifecycle workflow that actually runs them. buzz-relay's dev graph: 692 -> 453 packages, with zero mesh-llm, skippy, rmcp, hf-xet or keyring entries remaining. Verified: `cargo clippy -p buzz-mesh-smoke -p buzz-relay --all-targets -- -D warnings` clean; all six harnesses compile in the new crate; `cargo test -p buzz-relay --lib` 1034 passed, with 6 pre-existing `Sqlx(PoolTimedOut)` media tests that require Postgres (not run locally). Not verified locally: Linux keyring runtime behaviour and the Mesh Lifecycle smoke, both of which need CI. Co-authored-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Michael Neale <michael.neale@gmail.com>
Co-authored-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Michael Neale <michael.neale@gmail.com>
Preserve the explicit Linux keyring crypto feature and dedicated smoke crate. Refresh only Mesh source packages in both lockfiles; all non-Mesh package records remain unchanged from the main merge. Co-authored-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Michael Neale <michael.neale@gmail.com>
Summary
Upgrade Buzz from MeshLLM
v0.76.0-rc9to the latest stable v0.76.1 release. Mergedorigin/mainat4cd82f513without rewriting shared PR history.Update all eight Mesh git dependencies across desktop and relay smoke examples; both lockfiles resolve all 47 Mesh packages to
ff18c0b5a74c0317d943bb6611a1ce4836b35d61.Match Mesh's
ed25519-dalek = 3.0.0andrusqlite = 0.40dependencies.Explicitly enable rusqlite's
fallible_uintfeature, preserving Buzz's existingu64SQL conversions when mesh is disabled. Mesh-enabled builds previously supplied this transitively, so testing both configurations matters.Temporarily pin only the optional
sqlx-sqlitepackage to the merged upstream compatibility fix transact-rs/sqlx#4402, revision94aafe3a68884d923b0798a767c8d7f6cfda89d2. SQLx 0.9.0 capslibsqlite3-sysbelow 0.38, while Mesh 0.76 requires 0.38. Cargo resolves the conflict even with SQLite disabled. The fix raises that upper bound; remove the patch once released. Buzz's active PostgreSQL driver stays on crates.io SQLx 0.9.0.cargo tree --locked --workspace --target all -i sqlx-sqlitereports no active consumers.Preserve the explicit Linux keyring 3
crypto-rustfeature so Secret Service sessions retain DH encryption independently of Mesh keyring 4.Preserve the dedicated examples-only
buzz-mesh-smokecrate and lifecycle workflow wiring, keeping Mesh/native-runtime dev dependencies out of relay CI builds.The v0.76.0 → v0.76.1 follow-up changes only Mesh package records in both lockfiles; all non-Mesh package records remain identical to the main-merge commit.
No application installation/launch, live inference, or lab modification was performed.
Related issue
No open stable-0.76 upgrade issue/PR found in the title search. Follows the earlier RC integration in #6189.
Originating Buzz conversation: buzz://message?channel=dffbc117-845a-4c02-bc3f-eaeeefc4deaa&id=670f9c262e1ec0a4df5600b3173a0c5de2abe17e08ba9ccfdd8eff109fadf1a8
Validation at
5bccac392d49e1e25b6c2ca5c0fc48099c45a564Local macOS ARM64, Hermit toolchain, task-specific Cargo target:
just ci, including formatting/static checks, workspace Clippy and both desktop feature graphs with-D warnings, Rust/desktop/mobile tests, and desktop/web builds.cargo test --locked -p buzz-mesh-smoke --all-targets(all six example harnesses compile; no live harness execution).--features mesh-llm: 3,190 and 3,296 desktop tests respectively, plus terminal/integration/doc suites.just desktop-tauri-clippy, locked metadata resolution, non-Mesh lock-record comparison, andgit diff --check.cargo test --locked -p buzz-relay -- --test-threads=1: 1,034 passed / 6 failed / 97 ignored. All six failures are media-test PostgreSQL fixture setup (Sqlx(PoolTimedOut)atcrates/buzz-relay/src/api/media.rs:1145). The earlier parallel run additionally failedtelemetry::tests::trace_context_lookup_does_not_enable_callsites; it passed in the full serial rerun. No tests were suppressed or changed.just ciattempts exposed three ACP default-value tests inheriting managed-agent settings, then a 2-second ACP adapter timeout. The successful complete rerun unsets onlyBUZZ_ACP_SESSION_POLICY,BUZZ_ACP_LAZY_POOL, andBUZZ_ACP_IDLE_POOL_SLEEPin the validation subprocess.GitHub CI is running for the updated head; do not treat local gates as final CI approval.