A backend outage during deploy cleared the session and sent the user
to login although the refresh cookie was still valid. Only a definitive
401 ends the session now; network errors and 5xx keep it and show a
retry screen.
AuthForm disables the switch-auth Link while submit is pending so pointer
click and Enter can no longer leave the auth route and lose the draft/error
context. The form restores a true Link after the request settles.
CardsPage/CardPage distinguish cold vs cached banking failures:
- cold card/section errors expose accessible alert + retry
- cached failures keep the previous data and offer a section GET retry
- summary-only/history-only outages do not hide successful sections
- notFound still skips the retry CTA
Tests cover the pending link guard, cold/cached cards error with retry,
summary failure with retry, and the prerequisite card list recovery.
Closes#56, #57
Use Query cancellation and native mutation results instead of HTTP
registries, access epochs and copied scope state.
Keep local auth ordering and mutation identity fences.
Allow staged generated files to remain excluded from ESLint.
Backend contract: WealthLedger/backend@d698ed9
BREAKING CHANGE: drop investment stateVersion/progress/resources
from the client contract and use data/metadata readiness instead of
rewritten query status. Cross-tab auth may require re-login.
Enable every plugin recommended preset and replace Biome with ESLint formatting.
Preserve API contracts and JSX whitespace; verify source, tests, builds and tooling.
Consume the provided resource-envelope API snapshot. Preserve financial snapshots during
refresh, observe synchronization without importing, and fence late responses across
account and connection changes.
Add cards, operations, refunds, categories and monthly summaries with Mantine date controls.
Derive banking types from runtime OpenAPI. Cover recovery and session isolation.