Files
buzz/desktop
Taylor Ho 05d09373d1 feat(onboarding): gate Next on backup test with select-button dropzone
- BackupTestFlow.tsx: replace the always-on dashed dropzone with an
  oversized onboarding-style primary pill ("Select your backup file",
  h-14, rounded-full, bg-primary with the onboarding CTA label color)
  that opens the file browser; window-level dragenter/dragleave
  listeners (depth-counted, filtered to file drags) morph it back into
  the dashed drop target only while a file is dragged over the window
- BackupTestFlow.tsx: restyle "Re-download backup" as the flow's ghost
  pill secondary (h-12, rounded-full, bg-foreground/10) and move the
  "Saved to <path>" label below the button in a centered column
- EncryptedBackupCreator.tsx: add onVerified prop and forward it to
  BackupTestFlow so parents can observe a passed backup test
- DownloadKeyStep.tsx: track hasVerified; after the backup is created,
  Next renders disabled until the test passes while a ghost "Skip for
  now" button hangs off its right edge as the escape hatch; retitle the
  post-download page to "Now, test your backup"
- onboarding-backup.spec.ts: assert the new heading, the disabled
  Next + visible Skip state after download, and that a passed test
  enables Next and removes Skip (all 8 tests passing)

Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: Taylor Ho <taylorkmho@gmail.com>
2026-07-29 00:12:53 -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