mirror of
https://github.com/block/buzz.git
synced 2026-10-30 22:11:36 +00:00
The migration wrote the scoped key before deleting the legacy key. If the legacy delete threw and the rollback delete also threw, the scoped copy survived and the next read gave it precedence, exposing legacy prefs to seed-publish while the legacy key was still importable by another relay. Move the ownership check into the reader: a scoped copy is exposed only while no importable legacy key remains, so a half-migrated copy can never be read as owned. The claim completes inline once storage recovers. Co-authored-by: Will Pfleger <pfleger.will@gmail.com> Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
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