Skip to content
79%
Epic complete 1 pts since last snapshot
47 shipped23 done, unverified2 staged2 in review
M4 · BOUN-11468Tonyno repo mapped

F4.4 — Staleness badging & data-status UX

DoneLow confidence

Make data trustworthiness visible: users should always know how fresh the numbers are, when they're degraded, and which panels aren't real yet. This is the UI half of the pipeline's staleness contract (markStale in MetricsSnapshotS3Store).

Signed off as Done, but zero PRs are attached to this ticket — no GitHub evidence confirms any of the seven staleness/degraded-data UX behaviours (last-sync timestamp, stale badging, silent-staleness detection, hidden v2 panels, demo-QC labelling, fetch-failure indicator, per-state component tests) landed under this ticket. This UI is closely coupled to F4.1's dashboard app, which is a plausible place the work actually shipped, but nothing here confirms that.

100%
Unchanged since last snapshot
Since last activity
11d
Oldest staged work
Acceptance criteria covered
0/7
PRs open
0
Spec gap:No PR evidence exists for this feature despite sign-off; all seven AC bullets describe dashboard UI behaviour that would naturally live inside the F4.1 dashboard app's codebase, but no PR here confirms it.

Stories

1 tracked · 1 done, unverified

Acceptance criteria

  • computedAt renders as a visible last-sync timestamp (relative + absolute) on every viewno signal
  • A stale:true snapshot shows a degraded-data banner with lastSuccessfulAt, without blanking or erroringno signal
  • A computedAt older than 3 cycles without a stale flag shows the same degraded banner client-sideno signal
  • Date-derived v2 panels are hidden, not zero-filled, until WPP supplies field datesno signal
  • Demo-QC panels carry a clear marker while QC_DATA_MODE=demono signal
  • A failed poll keeps the last rendered data with a connection-lost indicator, recovering on the next successful pollno signal
  • Component tests cover each state: fresh, stale-flagged, silently-stale, demo-QC, fetch-failedno signal

Gaps

  • computedAt renders as a visible last-sync timestamp (relative + absolute) on every viewno ticket or code
  • A stale:true snapshot shows a degraded-data banner with lastSuccessfulAt, without blanking or erroringno ticket or code
  • A computedAt older than 3 cycles without a stale flag shows the same degraded banner client-sideno ticket or code
  • Date-derived v2 panels are hidden, not zero-filled, until WPP supplies field datesno ticket or code
  • Demo-QC panels carry a clear marker while QC_DATA_MODE=demono ticket or code
  • A failed poll keeps the last rendered data with a connection-lost indicator, recovering on the next successful pollno ticket or code
  • Component tests cover each state: fresh, stale-flagged, silently-stale, demo-QC, fetch-failedno ticket or code

Criteria are read from the ticket description on every run. A gap closes on its own once a story or PR matching it appears — nothing here is closed by hand.