mirror of
https://github.com/block/buzz.git
synced 2026-10-29 05:21:31 +00:00
PR #6852 review found the pre-join read-only fence did not fail closed over mutation surfaces opened while the viewer was still a member: with the Manage agent access dialog open, a live membership revocation (member-removed notifications invalidate the channel queries) left the dialog mounted from its local agent state, and its Save path dispatches the global update_managed_agent mutation with no membership guard. Clamp the dialog's agent at render behind isReadOnlyRoster — an effect-only reset would leave Save dispatchable for a frame — and clear the stale selection so a later re-join cannot spontaneously reopen the dialog. Adds a mounted rerender regression (JSDOM, driving the real row menu): a control proving Save dispatches update_managed_agent while a member, then the revocation path asserting the dialog closes on the isMember=false rerender, that a click on the stale Save button cannot dispatch, and that re-joining does not resurrect the dialog. Mutation-checked: reverting the clamp hunk turns the regression red at "revocation must close the already-open Manage agent access dialog" while the control stays green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Matt Toohey <contact@matttoohey.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