Files
buzz/desktop
Matt Toohey 554a7a5103 fix(desktop): close agent-access dialog on membership revocation
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>
2026-09-24 11:40:04 +10:00
..
…

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 frontend
  • pnpm tauri dev - run the desktop app
  • pnpm build - typecheck and build frontend
  • pnpm typecheck - TypeScript checks
  • pnpm lint - Biome lint
  • pnpm 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