- health.tsx: Add Account button + AddAccountDialog, Refresh button with
tooltip and spinner calling refreshAccounts mutation, inline account
error state instead of full-page error, updated empty state text, and
active-agent warning on delete confirm
- AccountCard.tsx: Show KeyRound button when credentials/token invalid,
opens UpdateCredentialsDialog pre-populated with account identity
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Instrument Serif is inherently condensed and illegible at heading sizes.
Playfair Display is wider, has proper variable weight support (400-900),
and reads well at all sizes.
Instrument Serif only ships weight 400, so font-bold/font-semibold
caused ugly browser-synthesized faux-bold. Tracking-tight compressed
it further. Removed both and bumped sizes slightly to let the display
font breathe.
Apply font-display to headings across settings layout and health page.
Replace text-destructive with text-status-error-fg for consistency with
the design system status tokens. Increase projects page section spacing
from space-y-4 to space-y-6.
Move src/ → apps/server/ and packages/web/ → apps/web/ to adopt
standard monorepo conventions (apps/ for runnable apps, packages/
for reusable libraries). Update all config files, shared package
imports, test fixtures, and documentation to reflect new paths.
Key fixes:
- Update workspace config to ["apps/*", "packages/*"]
- Update tsconfig.json rootDir/include for apps/server/
- Add apps/web/** to vitest exclude list
- Update drizzle.config.ts schema path
- Fix ensure-schema.ts migration path detection (3 levels up in dev,
2 levels up in dist)
- Fix tests/integration/cli-server.test.ts import paths
- Update packages/shared imports to apps/server/ paths
- Update all docs/ files with new paths