feat(mesh): upgrade to mesh-llm 0.76.0-rc3 and recommend Qwen3.8 27B

Bump every mesh-llm git dependency in buzz-relay and buzz-desktop from
v0.75.1 to v0.76.0-rc3, and make Qwen3.8 27B Q4_K_M the curated pick for
64GB-class machines.

The rc carries the two changes that make Qwen3.8 safe to recommend:
Mesh-LLM/mesh-llm#1283 routes Qwen3.8 identities to the qwen35 recurrent
family (without it the identity compacts to a string matching neither
qwen35 nor qwen36, so a hybrid recurrent model is classified as dense
attention-KV), and #1342 restores recurrent shared prefixes. #1343 adds
Qwen3.8-27B-Q4_K_M to the compiled MODEL_CATALOG.

Because the large pick now exists in MODEL_CATALOG, the synthesized
catalog entry Buzz carried for the gemma-4-26B pick is removed along with
its size/file/description constants; the entry is canonicalized from the
upstream catalog instead. The retired gemma-4-26B alias is kept in
canonical_curated_model_id so machines that already selected it keep
resolving to a model id Mesh's OpenAI ingress accepts.

Dependency resolution notes: iroh moves 1.0.2 -> 1.0.3 to match the rc's
requirement, and libsqlite3-sys moves 0.30.1 -> 0.35.0 because the rc's
mesh-llm-log-store requires rusqlite 0.37 (only one package may link
sqlite3).

Verification: cargo check passes for buzz-relay and for buzz-desktop with
--features mesh-llm; 2611 buzz-desktop tests pass; cargo fmt --check is
clean. Two failures predate this change and reproduce on unmodified
origin/main: the global_config
inherited_shared_compute_translates_to_supported_agent_transport
assertion (expects "auto", gets "mesh") and an items-after-test-module
clippy lint in managed_agents/restore.rs. Not runtime-verified against a
live Qwen3.8 mesh node from this branch.

Co-authored-by: Michael Neale <michael.neale@gmail.com>
Signed-off-by: Michael Neale <michael.neale@gmail.com>
This commit is contained in:
Michael Neale
2026-08-18 12:25:25 +10:00
parent 9c2f05346f
commit 96e0c7f1ea
4 changed files with 206 additions and 215 deletions

View File

@@ -86,8 +86,8 @@ async-compression = { version = "0.4.42", features = ["tokio", "gzip"] }
dev = ["buzz-auth/dev"]
[dev-dependencies]
mesh-llm-sdk = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.75.1", package = "mesh-llm-sdk", default-features = false, features = ["client", "serving"] }
mesh-llm-host-runtime = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.75.1", package = "mesh-llm-host-runtime", default-features = false, features = ["dynamic-native-runtime"] }
mesh-llm-sdk = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.76.0-rc3", package = "mesh-llm-sdk", default-features = false, features = ["client", "serving"] }
mesh-llm-host-runtime = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.76.0-rc3", package = "mesh-llm-host-runtime", default-features = false, features = ["dynamic-native-runtime"] }
# Relay-driven mesh lifecycle smoke (examples/mesh_relay_lifecycle_smoke.rs):
# the relay client for discovery notes and the exact ed25519 the mesh owner
# keys use for binding verification.

View File

@@ -210,7 +210,7 @@ version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
dependencies = [
"windows-sys 0.60.2",
"windows-sys 0.61.2",
]
[[package]]
@@ -221,7 +221,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
dependencies = [
"anstyle",
"once_cell_polyfill",
"windows-sys 0.60.2",
"windows-sys 0.61.2",
]
[[package]]
@@ -1474,9 +1474,9 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
[[package]]
name = "cfg_aliases"
version = "0.2.1"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527"
[[package]]
name = "chacha20"
@@ -1639,7 +1639,7 @@ version = "3.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34"
dependencies = [
"windows-sys 0.48.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -2306,7 +2306,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccc2776f0c61eca1ca32528f85548abd1a4be8fb53d1b21c013e4f18da1e7090"
dependencies = [
"data-encoding",
"syn 1.0.109",
"syn 2.0.118",
]
[[package]]
@@ -2484,7 +2484,7 @@ dependencies = [
"libc",
"option-ext",
"redox_users",
"windows-sys 0.59.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -2765,7 +2765,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [
"libc",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -3283,7 +3283,7 @@ dependencies = [
"libc",
"log",
"rustversion",
"windows-link 0.1.3",
"windows-link 0.2.1",
"windows-result 0.4.1",
]
@@ -4357,14 +4357,14 @@ dependencies = [
[[package]]
name = "iroh"
version = "1.0.2"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5fca9b4b462c343ff88fc0af4096c186f939b602a0bc08723536ef2c31c93971"
checksum = "460de6bc52163b41b1646931f2897e5ab986f0966ade444467fec25024751a72"
dependencies = [
"backon",
"blake3",
"bytes",
"cfg_aliases 0.2.1",
"cfg_aliases 0.2.2",
"ctutils",
"data-encoding",
"derive_more",
@@ -4408,9 +4408,9 @@ dependencies = [
[[package]]
name = "iroh-base"
version = "1.0.2"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "830a582cd54410dc1aa71d4786a82c3297d7b0165accd8b6dbbb3b240b48140d"
checksum = "6be73e16ee21c923aca9b3121aaa0db936f7c7ecc156ff47b8dac944c68d59a8"
dependencies = [
"curve25519-dalek 5.0.0-rc.0",
"data-encoding",
@@ -4427,12 +4427,12 @@ dependencies = [
[[package]]
name = "iroh-dns"
version = "1.0.2"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "516e4eedc38e33ab69a6bd325520332dc3d67b25454e2d590ebb84a25240dd9a"
checksum = "46f6a9b39d18e6345f5c151afd299f2488e2cb5c520fe41b107b6bd3dc4c3349"
dependencies = [
"arc-swap",
"cfg_aliases 0.2.1",
"cfg_aliases 0.2.2",
"derive_more",
"hickory-resolver",
"iroh-base",
@@ -4478,13 +4478,13 @@ dependencies = [
[[package]]
name = "iroh-relay"
version = "1.0.2"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8149bb6a57126225a07d6928846d82dcedfd24ea0f863ef7b2eb475e1d726354"
checksum = "24bd586cf927f7b700f56ec3639b53cb5fa901ce284784051ff71092bfbf8193"
dependencies = [
"blake3",
"bytes",
"cfg_aliases 0.2.1",
"cfg_aliases 0.2.2",
"data-encoding",
"derive_more",
"getrandom 0.4.3",
@@ -4517,7 +4517,6 @@ dependencies = [
"tokio-websockets",
"tracing",
"url",
"vergen-gitcl",
"webpki-roots 1.0.8",
"ws_stream_wasm",
]
@@ -5158,6 +5157,15 @@ version = "2.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
[[package]]
name = "memmap2"
version = "0.9.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1219ed1b7f229ee7104d281dd01d6802fe28bb6e95d292942c4daacdeb798c0"
dependencies = [
"libc",
]
[[package]]
name = "memmem"
version = "0.1.1"
@@ -5175,8 +5183,8 @@ dependencies = [
[[package]]
name = "mesh-llm-api-client"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"hex",
"mesh-llm-client",
@@ -5185,8 +5193,8 @@ dependencies = [
[[package]]
name = "mesh-llm-api-server"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"mesh-llm-api-client",
@@ -5196,13 +5204,13 @@ dependencies = [
[[package]]
name = "mesh-llm-build-info"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
[[package]]
name = "mesh-llm-client"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"async-trait",
@@ -5233,8 +5241,8 @@ dependencies = [
[[package]]
name = "mesh-llm-config"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"dirs",
@@ -5249,8 +5257,8 @@ dependencies = [
[[package]]
name = "mesh-llm-embedded-runtime"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"mesh-llm-host-runtime",
@@ -5259,20 +5267,25 @@ dependencies = [
[[package]]
name = "mesh-llm-events"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"chrono",
"clap",
"crossterm 0.28.1",
"libc",
"ratatui",
"serde",
"serde_json",
"tracing",
"uuid",
]
[[package]]
name = "mesh-llm-gpu-bench"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"serde",
"serde_json",
@@ -5281,8 +5294,8 @@ dependencies = [
[[package]]
name = "mesh-llm-guardrails"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"serde",
"serde_json",
@@ -5290,8 +5303,8 @@ dependencies = [
[[package]]
name = "mesh-llm-hardware-profile"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"mesh-llm-native-runtime",
]
@@ -5327,8 +5340,8 @@ dependencies = [
[[package]]
name = "mesh-llm-host-runtime"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"argon2",
@@ -5362,6 +5375,7 @@ dependencies = [
"mesh-llm-guardrails",
"mesh-llm-hf-hub",
"mesh-llm-identity",
"mesh-llm-log-store",
"mesh-llm-native-runtime",
"mesh-llm-node",
"mesh-llm-plugin",
@@ -5415,14 +5429,16 @@ dependencies = [
"tracing-subscriber",
"url",
"urlencoding",
"uuid",
"windows-sys 0.61.2",
"zeroize",
"zip 2.4.2",
]
[[package]]
name = "mesh-llm-identity"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"argon2",
"base64 0.22.1",
@@ -5441,10 +5457,28 @@ dependencies = [
"zeroize",
]
[[package]]
name = "mesh-llm-log-store"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"chrono",
"data-encoding",
"hex",
"mesh-llm-events",
"rusqlite",
"serde",
"serde_json",
"sha2 0.10.9",
"thiserror 2.0.18",
"uuid",
"windows-sys 0.61.2",
]
[[package]]
name = "mesh-llm-native-runtime"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"serde",
@@ -5454,8 +5488,8 @@ dependencies = [
[[package]]
name = "mesh-llm-node"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"mesh-llm-types",
@@ -5468,8 +5502,8 @@ dependencies = [
[[package]]
name = "mesh-llm-plugin"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"async-trait",
@@ -5485,8 +5519,8 @@ dependencies = [
[[package]]
name = "mesh-llm-plugin-manager"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"dirs",
@@ -5504,8 +5538,8 @@ dependencies = [
[[package]]
name = "mesh-llm-protocol"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"hex",
@@ -5517,8 +5551,8 @@ dependencies = [
[[package]]
name = "mesh-llm-release-footer"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"hex",
"sha2 0.10.9",
@@ -5526,16 +5560,16 @@ dependencies = [
[[package]]
name = "mesh-llm-routing"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"iroh",
]
[[package]]
name = "mesh-llm-runtime-install"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"dirs",
@@ -5557,8 +5591,8 @@ dependencies = [
[[package]]
name = "mesh-llm-sdk"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"mesh-llm-api-client",
@@ -5572,8 +5606,8 @@ dependencies = [
[[package]]
name = "mesh-llm-skills"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"dirs",
@@ -5583,8 +5617,8 @@ dependencies = [
[[package]]
name = "mesh-llm-system"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"chrono",
@@ -5610,8 +5644,8 @@ dependencies = [
[[package]]
name = "mesh-llm-types"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"hex",
"serde",
@@ -5621,13 +5655,13 @@ dependencies = [
[[package]]
name = "mesh-llm-ui"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
[[package]]
name = "mesh-mixture-of-agents"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"async-trait",
"mesh-llm-guardrails",
@@ -5640,18 +5674,19 @@ dependencies = [
[[package]]
name = "mesh-native-serving-plugin-api"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
[[package]]
name = "mesh-native-serving-plugin-host"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"libloading 0.8.9",
"mesh-native-serving-plugin-api",
"skippy-server",
"skippy-tokenizer",
]
[[package]]
@@ -5741,13 +5776,13 @@ version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "536bfad37a309d62069485248eeaba1e8d9853aaf951caaeaed0585a95346f08"
dependencies = [
"windows-sys 0.60.2",
"windows-sys 0.61.2",
]
[[package]]
name = "model-artifact"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"async-trait",
@@ -5757,8 +5792,8 @@ dependencies = [
[[package]]
name = "model-hf"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"async-trait",
@@ -5775,8 +5810,8 @@ dependencies = [
[[package]]
name = "model-package"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"bytes",
@@ -5795,16 +5830,16 @@ dependencies = [
[[package]]
name = "model-ref"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"serde",
]
[[package]]
name = "model-resolver"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"model-artifact",
@@ -5900,7 +5935,7 @@ dependencies = [
"png 0.18.1",
"serde",
"thiserror 2.0.18",
"windows-sys 0.60.2",
"windows-sys 0.61.2",
]
[[package]]
@@ -5936,7 +5971,7 @@ version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2ab99dfb861450e68853d34ae665243a88b8c493d01ba957321a1e9b2312bbe"
dependencies = [
"cfg_aliases 0.2.1",
"cfg_aliases 0.2.2",
"derive_more",
"futures-buffered",
"futures-lite",
@@ -6126,7 +6161,7 @@ checksum = "4d9cbe01741347ef750d743d6690603f5eed8341e679fb51c8e629337aa11976"
dependencies = [
"atomic-waker",
"bytes",
"cfg_aliases 0.2.1",
"cfg_aliases 0.2.2",
"derive_more",
"ipnet",
"js-sys",
@@ -6181,7 +6216,7 @@ checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
dependencies = [
"bitflags 2.13.0",
"cfg-if 1.0.4",
"cfg_aliases 0.2.1",
"cfg_aliases 0.2.2",
"libc",
"memoffset",
]
@@ -6194,7 +6229,7 @@ checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
dependencies = [
"bitflags 2.13.0",
"cfg-if 1.0.4",
"cfg_aliases 0.2.1",
"cfg_aliases 0.2.2",
"libc",
]
@@ -6206,7 +6241,7 @@ checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d"
dependencies = [
"bitflags 2.13.0",
"cfg-if 1.0.4",
"cfg_aliases 0.2.1",
"cfg_aliases 0.2.2",
"libc",
]
@@ -6231,12 +6266,12 @@ dependencies = [
[[package]]
name = "noq"
version = "1.0.1"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4bf95190af1bd4a00a10e8255ca0c8ddd9e9a9f5e79151d7a7eb6d56aff5dc89"
checksum = "09e4bb6601fa543c110d8957813267d5a8d775a0f8fbaccf1f615d06ba9b10da"
dependencies = [
"bytes",
"cfg_aliases 0.2.1",
"cfg_aliases 0.2.2",
"derive_more",
"noq-proto",
"noq-udp",
@@ -6253,9 +6288,9 @@ dependencies = [
[[package]]
name = "noq-proto"
version = "1.0.1"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa6c890013591e709a3e45dd53501351b7e27e7ff3c7e9fc3dce43e300e7e9d3"
checksum = "baa7b5ccd819a9c68a0d955e67a881032d09b1a17219b1f90b0997a0888e1a15"
dependencies = [
"aes-gcm",
"aws-lc-rs",
@@ -6281,11 +6316,11 @@ dependencies = [
[[package]]
name = "noq-udp"
version = "1.0.1"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3137a52df66c20090a889828d1c655f21f52294cba64e5c4fbb04fc83eee7c8e"
checksum = "02bba20e097a5a16cd0ad14ec882fae1e80a092a124e9422fc4dddd92e96a647"
dependencies = [
"cfg_aliases 0.2.1",
"cfg_aliases 0.2.2",
"libc",
"socket2",
"tracing",
@@ -6413,7 +6448,7 @@ version = "0.50.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
dependencies = [
"windows-sys 0.59.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -6905,19 +6940,21 @@ dependencies = [
[[package]]
name = "openai-frontend"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"async-trait",
"axum",
"futures-core",
"futures-util",
"mesh-llm-events",
"mesh-llm-guardrails",
"serde",
"serde_json",
"tokio",
"tokio-stream",
"tracing",
"uuid",
]
[[package]]
@@ -7117,7 +7154,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967"
dependencies = [
"libc",
"windows-sys 0.45.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -8096,7 +8133,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8"
dependencies = [
"bytes",
"cfg_aliases 0.2.1",
"cfg_aliases 0.2.2",
"pin-project-lite",
"quinn-proto",
"quinn-udp",
@@ -8138,12 +8175,12 @@ version = "0.5.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694"
dependencies = [
"cfg_aliases 0.2.1",
"cfg_aliases 0.2.2",
"libc",
"once_cell",
"socket2",
"tracing",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -8874,7 +8911,7 @@ dependencies = [
"errno",
"libc",
"linux-raw-sys 0.12.1",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -8944,7 +8981,7 @@ dependencies = [
"security-framework 3.7.0",
"security-framework-sys",
"webpki-root-certs",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -9211,7 +9248,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b55fb86dfd3a2f5f76ea78310a88f96c4ea21a3031f8d212443d56123fd0521"
dependencies = [
"libc",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -9696,39 +9733,43 @@ checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649"
[[package]]
name = "skippy-cache"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"blake3",
"libc",
"memmap2",
"serde",
"serde_json",
"skippy-protocol",
]
[[package]]
name = "skippy-coordinator"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"thiserror 2.0.18",
]
[[package]]
name = "skippy-ffi"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"libloading 0.8.9",
]
[[package]]
name = "skippy-metrics"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
[[package]]
name = "skippy-protocol"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"prost 0.14.4",
"prost-build 0.14.4",
@@ -9739,8 +9780,8 @@ dependencies = [
[[package]]
name = "skippy-runtime"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"anyhow",
"libc",
@@ -9753,8 +9794,8 @@ dependencies = [
[[package]]
name = "skippy-server"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"ahash",
"anyhow",
@@ -9777,24 +9818,26 @@ dependencies = [
"skippy-protocol",
"skippy-runtime",
"skippy-tokenizer",
"skippy-topology",
"socket2",
"tokio",
"tokio-stream",
"tonic",
"uuid",
]
[[package]]
name = "skippy-tokenizer"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"serde",
]
[[package]]
name = "skippy-topology"
version = "0.75.1"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.75.1#3295c902d4c4f859aaadf9240042ffdaf06dd07e"
version = "0.76.0-rc3"
source = "git+https://github.com/Mesh-LLM/mesh-llm.git?tag=v0.76.0-rc3#d823a643243c84e81efc21e3a323c92195f8301a"
dependencies = [
"serde",
"serde_json",
@@ -9830,7 +9873,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51"
dependencies = [
"libc",
"windows-sys 0.60.2",
"windows-sys 0.61.2",
]
[[package]]
@@ -10844,10 +10887,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
dependencies = [
"fastrand",
"getrandom 0.3.4",
"getrandom 0.4.3",
"once_cell",
"rustix 1.1.4",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -10869,7 +10912,7 @@ dependencies = [
"parking_lot",
"rustix 1.1.4",
"signal-hook 0.3.18",
"windows-sys 0.60.2",
"windows-sys 0.61.2",
]
[[package]]
@@ -11611,7 +11654,7 @@ dependencies = [
"png 0.18.1",
"serde",
"thiserror 2.0.18",
"windows-sys 0.60.2",
"windows-sys 0.61.2",
]
[[package]]
@@ -11712,7 +11755,7 @@ checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e"
dependencies = [
"memoffset",
"tempfile",
"windows-sys 0.60.2",
"windows-sys 0.61.2",
]
[[package]]
@@ -11975,43 +12018,6 @@ version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
[[package]]
name = "vergen"
version = "9.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b849a1f6d8639e8de261e81ee0fc881e3e3620db1af9f2e0da015d4382ceaf75"
dependencies = [
"anyhow",
"derive_builder",
"rustversion",
"vergen-lib",
]
[[package]]
name = "vergen-gitcl"
version = "9.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77ff3b5300a085d6bcd8fc96a507f706a28ae3814693236c9b409db71a1d15b9"
dependencies = [
"anyhow",
"derive_builder",
"rustversion",
"time",
"vergen",
"vergen-lib",
]
[[package]]
name = "vergen-lib"
version = "9.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b34a29ba7e9c59e62f229ae1932fb1b8fb8a6fdcc99215a641913f5f5a59a569"
dependencies = [
"anyhow",
"derive_builder",
"rustversion",
]
[[package]]
name = "version-compare"
version = "0.2.1"
@@ -12563,7 +12569,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [
"windows-sys 0.48.0",
"windows-sys 0.61.2",
]
[[package]]

View File

@@ -110,15 +110,15 @@ buzz_voice_pkg = { package = "buzz-voice", path = "../../crates/buzz-voice" }
buzz_terminal = { package = "buzz-terminal", path = "crates/buzz-terminal" }
buzz_ws_client_pkg = { package = "buzz-ws-client", path = "../../crates/buzz-ws-client" }
portable-pty = "0.9"
iroh = { version = "1.0.2", optional = true }
mesh-llm-sdk = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.75.1", package = "mesh-llm-sdk", default-features = false, features = ["client", "serving"], optional = true }
mesh-llm-host-runtime = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.75.1", package = "mesh-llm-host-runtime", default-features = false, features = ["dynamic-native-runtime"], optional = true }
iroh = { version = "1.0.3", optional = true }
mesh-llm-sdk = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.76.0-rc3", package = "mesh-llm-sdk", default-features = false, features = ["client", "serving"], optional = true }
mesh-llm-host-runtime = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.76.0-rc3", package = "mesh-llm-host-runtime", default-features = false, features = ["dynamic-native-runtime"], optional = true }
# Model catalog + hardware survey for the Share-compute model picker (same
# diagnose pattern as mesh-console). Lib name of mesh-llm-client is mesh_client.
mesh-llm-client = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.75.1", package = "mesh-llm-client", optional = true }
mesh-llm-node = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.75.1", package = "mesh-llm-node", optional = true }
mesh-llm-system = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.75.1", package = "mesh-llm-system", optional = true }
mesh-llm-events = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.75.1", package = "mesh-llm-events", optional = true }
mesh-llm-client = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.76.0-rc3", package = "mesh-llm-client", optional = true }
mesh-llm-node = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.76.0-rc3", package = "mesh-llm-node", optional = true }
mesh-llm-system = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.76.0-rc3", package = "mesh-llm-system", optional = true }
mesh-llm-events = { git = "https://github.com/Mesh-LLM/mesh-llm.git", tag = "v0.76.0-rc3", package = "mesh-llm-events", optional = true }
base64 = "0.22"
sha2 = "0.11"
tar = "0.4"

View File

@@ -13,20 +13,20 @@ use mesh_llm_system::hardware;
use mesh_llm_system::vram::{format_rated_capacity, rated_capacity_gb};
/// Buzz-curated tier picks. These are the models we know survive the agent
/// harness on shared compute — deliberately non-reasoning instruction models,
/// so agents stay snappy instead of burning hidden reasoning tokens.
/// harness on shared compute.
///
/// The large pick is resolved through mesh-llm's remote catalog
/// (huggingface.co/datasets/meshllm/catalog), so it does not need to exist in
/// the compiled `MODEL_CATALOG`; the entry is synthesized below.
const CURATED_LARGE: &str = "unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q4_K_M";
const CURATED_LARGE_ALIAS: &str = "gemma-4-26B-A4B-it-UD-Q4_K_M";
const CURATED_LARGE_SIZE: &str = "17GB";
const CURATED_LARGE_FILE: &str = "gemma-4-26B-A4B-it-UD-Q4_K_M.gguf";
const CURATED_LARGE_DESCRIPTION: &str =
"Gemma 4 26B MoE (4B active) — Buzz default for 64GB+ machines";
/// The large pick is Qwen3.8 27B dense: mesh-llm 0.76 routes Qwen3.8
/// identities to the `qwen35` recurrent family (Mesh-LLM/mesh-llm#1283) and
/// ships it in the compiled `MODEL_CATALOG` (#1343), so the entry below is
/// canonicalized from that catalog rather than synthesized.
const CURATED_LARGE: &str = "unsloth/Qwen3.8-27B-GGUF:Q4_K_M";
const CURATED_LARGE_ALIAS: &str = "Qwen3.8-27B-Q4_K_M";
const CURATED_SMALL: &str = "unsloth/gemma-4-E4B-it-GGUF:Q4_K_M";
const CURATED_SMALL_ALIAS: &str = "Gemma-4-E4B-it-Q4_K_M";
/// Superseded large pick, still mapped so machines that already selected it
/// keep resolving to a model id Mesh's OpenAI ingress accepts.
const LEGACY_LARGE: &str = "unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q4_K_M";
const LEGACY_LARGE_ALIAS: &str = "gemma-4-26B-A4B-it-UD-Q4_K_M";
/// Rated-capacity boundary between the two curated tiers, in GB (marketing
/// capacity — a "64GB" Mac rates as 64 even though usable AI memory is less).
const CURATED_LARGE_MIN_RATED_GB: u64 = 64;
@@ -39,12 +39,13 @@ fn buzz_recommended_model(rated_gb: Option<u64>) -> &'static str {
}
}
/// Convert Buzz's pre-0.74 curated package aliases into the canonical model
/// Convert Buzz's historical curated package aliases into the canonical model
/// ids advertised and accepted by Mesh's OpenAI ingress.
pub(crate) fn canonical_curated_model_id(model_id: &str) -> &str {
match model_id.trim() {
CURATED_SMALL_ALIAS => CURATED_SMALL,
CURATED_LARGE_ALIAS => CURATED_LARGE,
LEGACY_LARGE_ALIAS => LEGACY_LARGE,
other => other,
}
}
@@ -172,24 +173,6 @@ fn build_catalog(
})
.collect();
// The compiled MODEL_CATALOG does not know the Buzz large pick; it
// resolves through mesh-llm's remote catalog at download time. Synthesize
// its entry so the picker can offer it.
if !entries.iter().any(|e| e.name == CURATED_LARGE) {
let size_gb = parse_size_gb(CURATED_LARGE_SIZE);
entries.push(MeshCatalogEntry {
fit: fit_code(size_gb, vram_gb),
installed: is_installed(CURATED_LARGE_FILE, CURATED_LARGE)
|| is_installed(CURATED_LARGE_FILE, CURATED_LARGE_ALIAS),
recommended: false,
curated: false,
name: CURATED_LARGE.to_string(),
size: CURATED_LARGE_SIZE.to_string(),
size_gb,
description: CURATED_LARGE_DESCRIPTION.to_string(),
});
}
let recommended = Some(buzz_recommended_model(rated_capacity_gb(vram_bytes)).to_string());
for entry in &mut entries {
entry.recommended = recommended.as_deref() == Some(entry.name.as_str());
@@ -271,7 +254,7 @@ mod tests {
#[test]
fn recommendation_follows_buzz_curated_tiers() {
assert_eq!(CURATED_SMALL, "unsloth/gemma-4-E4B-it-GGUF:Q4_K_M");
assert_eq!(CURATED_LARGE, "unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q4_K_M");
assert_eq!(CURATED_LARGE, "unsloth/Qwen3.8-27B-GGUF:Q4_K_M");
// 64GB+ rated machines get the large curated pick.
let large = build_catalog(None, 64_000_000_000, 64.0, &[]);
assert_eq!(large.recommended.as_deref(), Some(CURATED_LARGE));
@@ -295,6 +278,7 @@ mod tests {
canonical_curated_model_id(CURATED_LARGE_ALIAS),
CURATED_LARGE
);
assert_eq!(canonical_curated_model_id(LEGACY_LARGE_ALIAS), LEGACY_LARGE);
assert_eq!(
canonical_curated_model_id("other/model:Q4"),
"other/model:Q4"
@@ -311,7 +295,8 @@ mod tests {
assert_eq!(catalog.entries[1].name, CURATED_SMALL);
assert!(catalog.entries[1].curated && !catalog.entries[1].recommended);
assert!(catalog.entries[2..].iter().all(|e| !e.curated));
// The synthesized large pick carries a real size for fit ranking.
// The large pick comes from the compiled catalog with a real size, so
// fit ranking is meaningful rather than a placeholder.
assert!(catalog.entries[0].size_gb > 10.0);
}