mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
Both openAgentSession and selectAgentSession were calling setOpenAgentSessionChannelId(channelId ?? null). When the activity-list opener supplies no explicit channelId, the null propagated into sessionChannelId, which caused scopeByChannel to skip filtering entirely (its null fast-path returns all items). Combined with the shared per-pubkey store, this let every channel's live frames appear in any channel's feed. Fix: fall back to activeChannelId in both callbacks so opening from within a channel always resolves a non-null scope key. activeChannelId is already in the useChannelAgentSessions parameter list; add it to both callbacks' dependency arrays. Also fix the archive-load enabled gate: useLoadArchivedObserverEvents was gated on isLive, so an idle agent's channel showed no archived observer history. Change the enable condition to Boolean(sessionChannelId) so archive history loads whenever a channel scope is resolved, regardless of whether the agent is currently running. 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