Files
buzz/desktop
Michael Neale 21ed443e04 fix(desktop): Share toggle reflects serve mode, not slot occupancy
Consuming a peer's compute (selecting Buzz compute as an agent's
provider) spins up a client-mode node in the single mesh runtime slot,
which reports state:"running". The Share toggle keyed off state alone,
so it lit up during a consume session — and toggling it off ran the
generic mesh_stop_node, tearing down that session.

Toggle now reads mode: serve = sharing (on), client = consuming (off).
A serve node that also routes a peer's model stays on. mesh_stop_node
refuses to tear down a client node.

A failed serve node still occupies the single slot, so it reads as
sharing (switch stays on and turn-off-able to clear/retry) and blocks a
fresh start; slotOccupied gates the model inputs. Consume copy states
the fact rather than promising a stop action that doesn't exist.

- deriveMeshShareToggle predicate (+ slotOccupied) + unit table
- backend share_stop_should_teardown guard + serde contract test
- e2e regression: consuming does not light the Share toggle
2026-07-23 10:12:25 +10: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