Files
buzz/desktop
Michael Neale ce4e1503f7 feat(mesh): membership-gated admission via mesh's ownership trust layer
Buzz decides membership; mesh enforces it — the idiomatic split:

- Every Buzz-managed node gets an auto-initialized mesh owner identity
  (mesh-llm auth init, cached at mesh-node/owner.key) and runs with
  --owner-key --owner-required --trust-policy allowlist.
- The relay's kind:30621 sanitizer now carries the reporter's VERIFIED
  owner id (unverified claims are dropped), so the membership-gated
  status pipeline doubles as the trust-allowlist distribution channel.
- Desktops build --trust-owner lists from those events at node start
  (trusted_owner_ids_from_events); own owner id always included.
- Invite tokens remain dial metadata only. Proven by an ignored 3-node
  e2e (mesh_trust_allowlist_admits_member_rejects_stranger): a peer
  with an allowlisted owner is admitted; a stranger holding the SAME
  valid invite token never enters the peer table.
- mesh-llm added to KNOWN_AGENT_BINARIES and the node stamped with
  BUZZ_MANAGED_AGENT, so the orphan sweep reclaims crash leftovers
  without touching user-run standalone mesh-llm processes.
- Public iroh relays stay disabled (v1 posture): reachability continues
  to flow through the relay's membership-validated call-me-now pairing.
2026-07-07 08:39:10 -07:00
..
2026-06-11 15:06:24 +00: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