Files
specs/openspec/changes/stabilize-frontend-query-and-strict-contracts/proposal.md
T

1.8 KiB

Why

Frontend declares custom React Query keys before generated API options, so the generated key silently wins. Mutations and consumers then update a different cache entry, while the documented strict TypeScript invariant is not enforced by the project configuration.

What Changes

  • Establish one exported, generated cache identity for each frontend query whose cache is consumed or invalidated outside its hook.
  • Make successful T-Bank connection replacement and deletion update the same status cache and invalidate the same brokerage-account cache that the UI reads.
  • Remove duplicate query-key declarations from the remaining generated query hooks while preserving their request parameters and caching policies.
  • Enable TypeScript strict mode for application and Vite tooling compilation, resolve the current strict diagnostics with explicit state narrowing, and keep the existing typecheck command as the executable gate.
  • Add regression tests for the T-Bank connection cache lifecycle and the affected query behavior.

Capabilities

New Capabilities

  • frontend-query-coherence: Ensures frontend query consumers and mutations use the generated cache identity of the data they read.

Modified Capabilities

  • project-foundation: Makes strict TypeScript compilation a required local frontend quality invariant.

Impact

Affected frontend modules are the generated-query hooks for brokerage accounts, operations, events, portfolio and T-Bank connection; the T-Bank connection mutation UI; the account view model; account/events/operations page type narrowing; colocated frontend tests; and frontend TypeScript configuration. docs/development/audit-remediation.md tracks the change as active and will receive completion evidence. The backend API, persisted data, OpenAPI schema and dependency set do not change.