Skip to content

[Auto-QA] Stale data and freshness indicator issues #3803

@clubanderson

Description

@clubanderson

Auto-QA [Data Freshness]: Stale Data

Detected: 2026-03-28T19:33:06.241Z | Focus: Data Freshness | Commit: e46d5ec | Run: View

Findings

### Components with caching but no freshness indicator
Users should know when data was last updated:
  - `ClusterGrid.tsx`
  - `ClusterDetailModal.tsx`
  - `RewardsPanel.tsx`
  - `Settings.tsx`
  - `NodeDrillDown.tsx`
  - `MultiClusterSummaryDrillDown.tsx`
  - `FlightPlanBlueprint.tsx`
  - `ChunkErrorBoundary.tsx`
  - `Logs.test.tsx`
  - `ProactiveGPUNodeHealthMonitor.tsx`
  - `SecurityIssues.tsx`
  - `LatencyBreakdown.tsx`
  - `ParetoFrontier.tsx`
  - `EPPRouting.tsx`


### localStorage reads without staleness check (15)
Consider adding TTL or timestamp validation:

src/components/settings/sections/ProfileSection.tsx:37: const token = localStorage.getItem(STORAGE_KEY_TOKEN)
src/components/settings/sections/NotificationSettingsSection.tsx:17: const stored = localStorage.getItem(STORAGE_KEY)
src/components/settings/sections/GitHubTokenSection.tsx:27: const token = localStorage.getItem(STORAGE_KEY_TOKEN)
src/components/settings/sections/GitHubTokenSection.tsx:46: if (localStorage.getItem(STORAGE_KEY_FEEDBACK_GITHUB_TOKEN_DISMISSED) === 'true') {
src/components/mission-control/useMissionControl.ts:30: const raw = localStorage.getItem(STORAGE_KEY)
src/components/mission-control/FlightPlanBlueprint.tsx:557: const stored = localStorage.getItem(INFO_PANEL_LS_KEY)
src/components/agent/AgentApprovalDialog.tsx:11: return localStorage.getItem(APPROVED_KEY) === 'true'
src/components/cards/SudokuGame.tsx:240: const saved = localStorage.getItem(STORAGE_KEY)

Suggested Improvements

  • Add "Last updated X ago" timestamps to cached data displays
  • Use useDemoMode/useCardDemoState to respond to demo mode toggle
  • Replace "Loading..." text with Skeleton components
  • Add TTL validation to localStorage reads
  • Show visual indicators when data may be stale

PR Guidance: Keep changes under 50 lines (size S) for best acceptance rate. Split larger fixes into multiple PRs.


This issue was automatically created by the Auto-QA workflow during Data Freshness focus day.
Labels ai-fix-requested and help wanted enable Copilot to fix this after triage.

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions