Files
buzz/desktop
Taylor Ho 0d704d9904 feat(onboarding): promote encrypted key download to a "Backup your key" step
Split the backup step's in-place download view into its own page in the
machine onboarding flow, with its own progress dot, slide transition, and
footer. The chooser keeps the masked-key card; "Backup your key" (primary
CTA) now navigates forward instead of swapping views, with a delayed
fade-in ghost "Skip for now" beside it and a Settings hint below.

- DownloadKeyStep.tsx (new): "Backup your key" page — title + encryption
  explainer, shell box + closing brackets animating in on mount (replaces
  the card→box layoutId morph, which can't span two pages), textured card
  hosting EncryptedBackupCreator, and a footer whose primary slot holds
  the portaled "Encrypt and download" button until the payload exists,
  then a primary "Next" that continues to setup
- BackupStep.tsx: reduced to the chooser; removed view state, ShellBracket,
  BackToOptions, and the morph; new onDownload prop; footer reworked to a
  centered primary CTA with an absolutely-positioned "Skip for now" that
  fades in after 1s (animation-delay/duration arbitrary properties so the
  hover transition isn't delayed) and a Settings → Profile → Identity hint
- EncryptedBackupCreator.tsx: new opt-in createButtonPortal /
  createButtonClassName / onCreated props so onboarding can relocate the
  create button into its footer (undefined = inline for Settings; null =
  slot not mounted yet, render nothing to avoid an inline flash)
- MachineOnboardingFlow.tsx: new "download" page between backup and setup
  (Back → backup, Next → setup); progress indices shifted (download=3,
  setup=4, config=5)
- OnboardingChrome.tsx: TOTAL_ONBOARDING_PAGES 7 → 8; WelcomeSetup 5→6 and
  CommunityOnboardingFlow 6→7/7→8 dot positions bumped to match
- SetupStep.tsx: same footer treatment — centered Next with a no-background
  "Skip for now" hanging off its right edge, fading in after 1s
- tests: passThroughBackupStep helper now skips from the chooser;
  onboarding-backup.spec.ts covers the new page (create button absent from
  footer until encryption, Back returns to the chooser); 47 e2e + 3778
  unit tests pass

Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: Taylor Ho <taylorkmho@gmail.com>
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
2026-07-28 22:38:18 -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