Files
Matt TooheyandClaude Fable 5 5646d47358 fix(desktop): stop onboarding fallback from rewriting saved model config
Resolve both review findings on the config-page fallback added in
0d64ab15:

The installed-only fallback could silently rewrite the user's saved
model settings. With no stored harness selection, a persisted
preferred runtime that is no longer installed (e.g. Claude logged out
since onboarding) was excluded from the fallback list, so the page
resolved a different harness and the reconcile effect persisted a
reset config on open, with no user interaction. The fallback now also
includes the persisted preferred runtime, matching the Settings
defaults editor which lists harnesses regardless of install state, so
the reconcile effect resolves it as selected and stays a no-op.

The fallback also only triggered when the stored selection was empty,
so a stored selection whose ids had all dropped out of the runtime
catalog landed on the error surface instead. The fallback now triggers
whenever the catalog intersection is empty, reserving the error state
for query failures or zero usable harnesses.

Both cases are covered by new Playwright specs (verified to fail
against the previous component): one asserts a logged-out preferred
harness stays listed and selected with the saved config untouched, the
other asserts a stale stored selection falls back to installed
harnesses instead of erroring.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
2026-07-21 11:40:34 -07: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