Files
Will Pfleger a614fea929 fix: address review findings on E2E DM encryption
Stale decrypted-target state could leak from DM-A into DM-B on a
channel switch because the cleanup effect never cleared the state
when targets became empty. The FE isDmContentKind was also narrower
than the relay's enforced set, missing KIND_STREAM_MESSAGE_V2.

On the relay side, the 15c ingest gate and command-path enforcement
called get_channel directly instead of the cached latch lookup,
adding an unnecessary DB round-trip on every content event. DB errors
in those paths were also mis-classified as client rejections (400)
rather than server errors (500). The get_accessible_channels query
omitted encryption_activated_at from its SELECT list.
2026-06-25 18:06:07 -04:00
..
2026-06-11 15:06:24 +00:00
2026-06-11 15:06:24 +00: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