Files
buzz/desktop
Michael Neale c391a9af18 feat(mesh): download mesh-llm node on demand instead of compiling it in
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
2026-07-07 08:39:10 -07:00
..
2026-03-09 19:32:56 -07:00
2026-03-09 13:02:11 -07:00
2026-06-11 15:06:24 +00:00
2026-03-09 13:02:11 -07:00

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 frontend
  • pnpm tauri dev - run the desktop app
  • pnpm build - typecheck and build frontend
  • pnpm typecheck - TypeScript checks
  • pnpm lint - Biome lint
  • pnpm 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