Files
buzz/desktop
Blake McAnally 22a12bf079 feat(cli): manage sidebar sections with buzz sidebar sections
Sidebar sections were desktop-only: they live in the encrypted
kind:30078 `channel-sections` preference, and the CLI had no way to
read or write it. Agents that mirror a team's channels could create the
channels but not group them.

Add `buzz sidebar sections list|create|update|delete|reorder|move|unassign`.
The commands port desktop's per-field LWW register document
(channelSectionsSync.ts / sidebarLwwMap.ts) so CLI writes merge with
desktop edits field by field, and they import the flat format mobile
writes. Each command is one head read and one publish, so a
multi-channel `move` lands atomically. A head the CLI cannot decrypt,
verify, or decode is never overwritten, and a dominated write exits 5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Blake McAnally <bmcanally@squareup.com>
2026-11-06 11:02:10 -06:00
..
…

Buzz

Important

This is the deprecated Buzz 0.X desktop app. Buzz 1.0 lives in block/buzz-app. Build new desktop features there. Change this directory only to fix a 0.X bug, or to keep it compiling after a shared crate change.

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

Required-community guidance in the legacy app

The legacy desktop reads public NIP-11 metadata before each WebSocket connection. Only requires_nip_fi: true shows the upgrade card. Missing/false requirements keep the existing connection flow. Discovery failures retain an unknown-policy state and continue the existing socket/authentication path; the relay enforces admission. Query/fragment URLs keep their existing socket behavior; the native discovery reader rejects them before making an HTTP request. Credentials never reach a fallback dial. Only explicit required policy opens the upgrade modal. Switching communities invalidates pending checks. The card does not reset keys or remove saved communities.

The upgrade card directs public users to the fixed https://buzz.xyz URL to download an up-to-date Buzz client on every supported desktop platform and for every required community. If the browser cannot open, the card shows the public URL for manual navigation. Discovery never supplies a trusted download or sign-in origin.