mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
Stale decrypted-target state could leak from DM-A into DM-B on a channel switch because the cleanup effect never cleared the state when targets became empty. The FE isDmContentKind was also narrower than the relay's enforced set, missing KIND_STREAM_MESSAGE_V2. On the relay side, the 15c ingest gate and command-path enforcement called get_channel directly instead of the cached latch lookup, adding an unnecessary DB round-trip on every content event. DB errors in those paths were also mis-classified as client rejections (400) rather than server errors (500). The get_accessible_channels query omitted encryption_activated_at from its SELECT list.
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