## [LOW] No request deduplication on frontend **Where found** - `frontend/src/hooks/useFetchData.ts` — each call launches new request - User clicks "Refresh" twice → two identical requests **Why this is needed** Duplicates waste bandwidth, cause race conditions (response 2 arrives first, then response 1 overwrites with stale data). **Goal** Deduplicate identical in-flight requests. **What to do** 1. Implement request cache 2. Clear cache entry when response received 3. Use in `useFetchData` **Possible traps and issues** - Cache must be cleared on data mutation - Stale data in cache possible if not careful **Docs changes needed** - No documentation changes **Doc references** - `frontend/src/hooks/useFetchData.ts`