Telegram (ask questions / claim the issue here first): https://t.me/+DOylgFv1jyJlNzM0
Why this matters
The file ships a Centralised query key factory (useApi.ts:38) whose stated purpose is targeted invalidation, yet useCreditScore (useApi.ts:1044), useCreditScoreHistory (989), useYieldHistory (1153), useRemittanceNft (1013), useNotificationPreferences (1343), useLoanAmortizationSchedule (711) and useLoanAmortizationPreview (738) hardcode string-array keys outside the factory. These keys can drift from invalidators and there is no compile-time guarantee read/write keys agree.
Acceptance criteria
Files to touch
frontend/src/app/hooks/useApi.ts
Out of scope
- Renaming existing cache keys that would invalidate persisted caches
Why this matters
The file ships a Centralised query key factory (useApi.ts:38) whose stated purpose is targeted invalidation, yet useCreditScore (useApi.ts:1044), useCreditScoreHistory (989), useYieldHistory (1153), useRemittanceNft (1013), useNotificationPreferences (1343), useLoanAmortizationSchedule (711) and useLoanAmortizationPreview (738) hardcode string-array keys outside the factory. These keys can drift from invalidators and there is no compile-time guarantee read/write keys agree.
Acceptance criteria
Files to touch
frontend/src/app/hooks/useApi.tsOut of scope