Files
buzz/desktop
npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d d93c7d78f8 desktop: treat duplicate-on-add as idempotent success for reactions
Perci caught a blocking gap on Tyler's exact repro: the relay already
holds the reactor's kind:7 (it never came back over the #h live sub, so
the cache didn't render it). Clicking again ran onMutate (optimistic
write) -> addReaction rejected with "duplicate: reaction already
exists" -> onError rolled the optimistic reaction back -> we were
straight back to "duplicate but nothing visible". The optimistic write
was being undone on precisely the path it was meant to fix.

Swallow duplicate-on-add in mutationFn (reusing the existing
isDuplicateReactionError predicate that Pulse already uses) so onError
never runs and the optimistic reaction survives. Other failures and the
remove path still propagate and roll back. Adds a regression test pinning
the relay error string the swallow depends on.

Co-authored-by: Tyler Longwell <tlongwell@block.xyz>
Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
2026-06-21 10:01:52 -04:00
..
2026-03-09 19:32:56 -07:00
2026-03-09 13:02:11 -07:00
2026-06-11 15:06:24 +00:00
2026-06-11 15:06:24 +00:00
2026-03-09 13:02:11 -07: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