BillTracker/routes
null d8365d0e22 chore(deps)!: vite 8 (rolldown) + @vitejs/plugin-react 6 (4h)
Build drops 6.5s -> 0.65s. Three breakages found by the prod-smoke gate,
all fixed:

- rolldown removed object-form manualChunks -> function form in
  vite.config.mjs (same vendor split, all @radix/@tanstack grouped)
- the 4a 'send' bump rejects bare absolute paths: SPA fallback sendFile
  and both download routes (admin backup, user-db export) now use the
  root-option form
- rolldown minifies inline HTML scripts, breaking any CSP hash approach:
  the pre-paint theme script moved to client/public/theme-init.js so
  script-src 'self' holds with no inline hash to maintain

@testing-library/dom added (peer no longer auto-installed). Server 252,
client 52, probe 18/18, PROD SMOKE: PASS.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 17:53:27 -05:00
..
about.cts style: apply Prettier across client + server (no behavior change) 2026-07-06 14:23:53 -05:00
aboutAdmin.cts refactor(routes): throw-pattern for profile, transactions, admin, aboutAdmin 2026-07-10 17:18:28 -05:00
admin.cts chore(deps)!: vite 8 (rolldown) + @vitejs/plugin-react 6 (4h) 2026-07-10 17:53:27 -05:00
analytics.cts refactor(routes): analytics + tracker → throw pattern (batch 1) 2026-07-06 14:59:29 -05:00
auth.cts feat(auth): passkey / security-key UI — WebAuthn ships end to end 2026-07-10 17:30:14 -05:00
authOidc.cts feat(logging): redacted, level-gated logger; migrate all server console.* (Pillar D) 2026-07-06 16:05:18 -05:00
bills.cts refactor(routes): throw-pattern for bills.cts (largest route, 43+ sites) 2026-07-10 17:00:01 -05:00
calendar.cts refactor(routes/calendar): replace errorFormatter with ValidationError throws 2026-07-10 17:52:47 -05:00
calendarFeed.cts style: apply Prettier across client + server (no behavior change) 2026-07-06 14:23:53 -05:00
categories.cts refactor(categories): adopt Kysely for the /groups query (real production use) 2026-07-06 16:25:30 -05:00
dataSources.cts refactor(routes): throw-pattern for summary, matches, snowball, dataSources 2026-07-10 16:44:19 -05:00
export.cts fix(standards): make the error-shape ratchet see require(); convert the 4 files it exposed 2026-07-10 17:53:24 -05:00
import.cts fix(routes): stop leaking raw err.message on 5xx responses 2026-07-10 16:36:27 -05:00
matches.cts refactor(routes): throw-pattern for summary, matches, snowball, dataSources 2026-07-10 16:44:19 -05:00
monthly-starting-amounts.cts refactor(routes): monthly-starting-amounts → throw pattern; doc exemplar 2026-07-06 15:03:52 -05:00
notifications.cts fix(routes): stop leaking raw err.message on 5xx responses 2026-07-10 16:36:27 -05:00
payments.cts fix(standards): make the error-shape ratchet see require(); convert the 4 files it exposed 2026-07-10 17:53:24 -05:00
privacy.cts style: apply Prettier across client + server (no behavior change) 2026-07-06 14:23:53 -05:00
profile.cts refactor(routes): throw-pattern for profile, transactions, admin, aboutAdmin 2026-07-10 17:18:28 -05:00
settings.cts style: apply Prettier across client + server (no behavior change) 2026-07-06 14:23:53 -05:00
snowball.cts refactor(routes): throw-pattern for summary, matches, snowball, dataSources 2026-07-10 16:44:19 -05:00
spending.cts fix(routes): stop leaking raw err.message on 5xx responses 2026-07-10 16:36:27 -05:00
status.cts style: apply Prettier across client + server (no behavior change) 2026-07-06 14:23:53 -05:00
subscriptions.cts refactor(routes): throw-pattern for payments + subscriptions 2026-07-10 16:53:20 -05:00
summary.cts refactor(routes): throw-pattern for summary, matches, snowball, dataSources 2026-07-10 16:44:19 -05:00
tracker.cts refactor(routes): analytics + tracker → throw pattern (batch 1) 2026-07-06 14:59:29 -05:00
transactions.cts refactor(routes): throw-pattern for profile, transactions, admin, aboutAdmin 2026-07-10 17:18:28 -05:00
user.cts refactor(routes/user): replace errorFormatter with ApiError/ValidationError throws 2026-07-10 17:52:32 -05:00
version.cts chore(deps): eslint 10 stack — @eslint/js 10, react-hooks 7, react-refresh 0.5 (4f) 2026-07-10 17:36:50 -05:00