mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
Rebased from tho/agent-working-signal (#1494) onto post-#1380 main. One signal module becomes the single source of truth for 'agent is working': observer-derived turns primary (channel scope + start anchor), bot typing fallback when no observer data exists for the scope. - agentWorkingSignal.ts: typing registry, observer-primary merge, cached snapshot selectors, useAgentWorking / useWorkingChannels / useChannelWorkingAgentPubkeys hooks (15 tests) - Sidebar badges, composer activity bar, profile badges/popover, and the activity panel's stop-turn state all migrate onto it - resetAgentWorkingSignal() wired into workspace reset Conflict notes vs #1380 (its behavior preserved): - AgentSessionThreadPanel keeps #1380's channelId prop; the unified isWorking now scopes to sessionChannelId (channelId ?? channel.id) so the explicit channel scope also drives the working state - ChannelPane keeps passing channelId; the typing-only isWorking prop is replaced by the panel's internal unified signal - Profile sections/popover keep #1380's layout; activeTurns now reads useAgentWorking(...).channels (superset: observer + typing-only) Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@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