Skip to content

Add DailyRollupFreshness to the design-sync scope #4872

Description

@JSONbored

Context

The design-system sync (apps/ui/.design-sync/, merged in #4870) covers 55 components from apps/ui/src/components/{ui,metagraphed,metagraphed/charts}/, uploaded to a live Claude Design project. The scope was pinned via cfg.componentSrcMap in .design-sync/config.json — an explicit enumeration, not an auto-discovered list (see .design-sync/NOTES.md for why: no library build exists for apps/ui yet, so the sync runs in a synth-entry fallback mode that needs a hand-scoped source directory to avoid bundling app-context-dependent components).

DailyRollupFreshness (apps/ui/src/components/metagraphed/freshness.tsx) landed in #4856 — merged after the sync scope was pinned, so it was never added. It's a small composite: FreshnessIndicator (dot-only mode) + InfoTooltip, used in three section headers (metagraph-panel.tsx, neuron-detail-card.tsx, validators-panel.tsx) to show a compact daily-rollup freshness signal without eating horizontal space on narrow viewports.

It was checked for sync-eligibility (2026-07-11): zero @tanstack/react-router/@tanstack/react-query imports — it only composes two components that are already in the sync scope (FreshnessIndicator, InfoTooltip), both under components/metagraphed/. No new risk, no new dependencies to vet.

Requirements

  • Add "DailyRollupFreshness": "src/components/metagraphed/freshness.tsx" to cfg.componentSrcMap in apps/ui/.design-sync/config.json.
  • Symlink it into the scoped staging directory the sync build reads from (apps/ui/.design-sync/.cache/scope-src/core/ — gitignored, regenerated per sync session; see .design-sync/NOTES.md's "Re-sync risks" section, which already flags that this staging mechanism isn't yet a committed script).
  • Author a .design-sync/previews/DailyRollupFreshness.tsx preview with realistic props (an at timestamp both fresh and stale, matching the pattern used for the other 15 authored previews in this sync) — don't ship it as an unauthored floor card if a 2-line realistic preview is this cheap.
  • Rebuild, validate (render check must show 0 bad), capture, and grade the new preview good.
  • Re-upload to the live Claude Design project via the existing incremental-upload plan (base files re-ride since a rebuild touches the stamped bundle header).
  • Update .design-sync/NOTES.md to note the addition and drop it from being an "unaccounted-for gap."

Deliverables

  • apps/ui/.design-sync/config.json updated with the new componentSrcMap entry.
  • apps/ui/.design-sync/previews/DailyRollupFreshness.tsx (new, committed).
  • The live Claude Design project shows DailyRollupFreshness as a 56th verified, graded component.
  • .design-sync/NOTES.md updated.

Expected outcome

The sync scope has zero known gaps against what's actually in apps/ui/src/components/{ui,metagraphed}/ as of the merge this issue is filed against. Future components added to the app won't auto-appear here either (no CI hook exists yet — a separate, larger concern) but at least this specific known gap is closed.

Metadata

Metadata

Assignees

Labels

frontendFrontend / metagraphed-ui workmaintainer-onlyOwner-only work — yields no Gittensor points.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions