mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
Resolve the three review findings on the retention Phase-1 branch. M4 now validates the COMPLETE expected shape of its objects inside the BEGIN IMMEDIATE transaction — every column's name, type, nullability and primary-key position via PRAGMA table_info, and the scope-age index's key order via pragma_index_info — instead of counting object names. CREATE ... IF NOT EXISTS preserves a wrong-shaped object that already carries the expected name, so name presence alone could mark a wrong-shaped named table valid and hand Phase 2 an unusable table or missing access path. A wrong-shaped named index is dropped and rebuilt (an index carries no data); an incompatible named table is rejected and the whole transaction rolls back with no marker. The init-barrier and guard-lifetime contracts are now pinned directly against the ArchiveDb OnceCell/RwLock orchestration through a cfg(test) path/hook seam, rather than via raw SQLite contention: production-shaped with_conn callers race a held init and prove none opens a connection until initialization completes and exactly one initialization runs; a separate test proves a write-lock contender cannot enter until a with_conn closure returns and its connection drops. Adds the full policy lifecycle on one evolving state (active -> kind disabled -> subscription deleted -> orphan edited -> orphan deleted) and a deterministic concurrent merge/remove/set interleaving asserting the subscription stays valid, the explicit choice survives, and no policy row is deleted by a kinds mutation. 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