mirror of
https://github.com/block/buzz.git
synced 2026-11-04 08:21:48 +00:00
The mesh-llm feature previously statically linked the whole mesh node (~52 MB binary weight, +17.5 MB compressed) which kept it off by default behind 'just mesh=1' builds. Replace the in-process embedding with the pattern Buzz already uses for every other capability binary: - mesh_llm/node_install.rs: first use downloads the official pinned mesh-llm release (~30 MB), verifies the published sha256, extracts to a versioned cache dir, and emits progress app events for the UI. - mesh_llm/node_process.rs: spawns 'mesh-llm serve/client --headless' as a supervised child process (own process group, SIGTERM-then-kill teardown) and drives it over its local management API — the same HTTP surface the SDK's embedded handle used internally. - DesktopMeshRuntime keeps its exact API; dial_endpoint_addr respawns with the extra --join token (the standalone node has no join-at- runtime endpoint yet; upstream candidate: POST /api/join). - mesh_node_install_status command so the UI can say 'first start will download the mesh runtime' up front. - mesh-llm-sdk/host-runtime git deps removed entirely; the mesh-llm cargo feature is now a few KB of client code (57.9 MB binary with the feature on vs 57.3 without — was 109.7 MB). Admission/coordination is unchanged and mesh-native: nostr discovery, invite-token admission, iroh transport — private by default (no --publish), same flags as the embedded config used. Ignored e2e test covers the full first-use flow (download, checksum, cache hit, spawn, status + attestation verification, /v1/models, stop): cargo test --features mesh-llm -- --ignored mesh_node_e2e
Buzz
Desktop chat shell with:
- Tauri + React + TypeScript + Vite
- Tailwind CSS
- shadcn/ui-ready shared components
- Biome (lint/format/check)
- Feature-driven frontend structure
Scripts
pnpm dev- run the web frontendpnpm tauri dev- run the desktop apppnpm build- typecheck and build frontendpnpm typecheck- TypeScript checkspnpm lint- Biome lintpnpm format- Biome format (write)pnpm check- Biome check
Structure
src/shared- reusable app-wide code (ui,lib,styles)src/features- feature modules (vertical slices)src/app- top-level app composition