mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
Backend (Rust): - file_watcher.rs: notify crate watches per-channel project dirs - Debounced 500ms, ignores .git/node_modules/binaries/large files - similar crate computes unified diffs against snapshots - Tauri event emission (file-diff) to frontend - Per-channel project dir config persisted to project-dirs.json - Commands: get/set_project_dir, start/stop_file_watcher, resnapshot Frontend (React): - useLocalFileDiffs hook listens for Tauri file-diff events - Synthetic TimelineMessage (kind:40008) merges into timeline - Renders through existing DiffMessage -> DiffViewer pipeline - Project directory UI in channel management sheet - Auto-starts watcher when opening channel with configured dir Local-only for v1 — no relay events emitted.
Sprout
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