Adopt TanStack Query: provider, timeouts, useBudget, Budget page

QueryClientProvider (30s staleTime, 1 retry) + Sonner Toaster at the
root. api.ts gains AbortSignal support and a default 30s timeout
(FE-24); query cancellation kills the stale-response races (FE-01,
FE-03). useBudget is now queries + mutations with targeted ['budget']
invalidation and success/error toasts on every mutation (ARCH-13,
UX-01); month navigation keeps the previous month visible while
fetching. Budget's transaction list is a cancellable query with
placeholder data; deferred-toggle gets feedback (UX-05); both panels
render a shared ErrorState with retry instead of failing silently.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Carlos Escalante
2026-06-10 16:24:48 -06:00
parent 396c492f27
commit 65dffdac06
8 changed files with 234 additions and 117 deletions

View File

@@ -98,6 +98,20 @@ Completed 2026-06-10.
Tests: 55 → **69** (new: model serialization, agent tools, upload validation).
**Production verification (2026-06-10, deploy after CI test gate):** boot logs show
both migrations applied in order; `alembic_version = 7884505b16b3`;
`transaction.amount` is `numeric(15,2)`; FK rules live (`SET NULL`×2, `CASCADE`);
data intact through the type change (238 transactions, sum unchanged); live API
emits amounts as JSON numbers.
---
## Phase 3 — Frontend Data Layer & Feedback 🔄 IN PROGRESS
Started 2026-06-10. Scope per plan: TanStack Query adoption (3.1), toast +
error-state standard (3.2), auth-flow fixes (3.3), type alignment (3.4 — scope
assessed at the end), small-fix batch (3.5).
## Phase 3 — Frontend Data Layer & Feedback ⏳ NOT STARTED
## Phase 4 — UX, Trust & Features ⏳ NOT STARTED