Skip to content

feat(dashboard): layout v2 — Hero+Trend row, Provider→Context stack, multi-provider context - #29

Merged
pitimon merged 2 commits into
mainfrom
feat/dashboard-layout-v2
Jul 5, 2026
Merged

feat(dashboard): layout v2 — Hero+Trend row, Provider→Context stack, multi-provider context#29
pitimon merged 2 commits into
mainfrom
feat/dashboard-layout-v2

Conversation

@pitimon

@pitimon pitimon commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Summary

Reorganize the main dashboard bento (non-screenshot view) for a clearer top-down read, per an interactive mockup review.

  • Top row 3:3 — Hero + Trend Monitor share the first row. Trend is promoted up from the bottom so the summary and its time series read together.
  • Provider → Context vertical stack — Identity (StatsPanel) is a left rail that spans two rows when a context source exists, so Provider Breakdown stacks directly above Context Breakdown (cols 3–6). "Which providers → their context" reads top-down without a caption.
  • Multi-provider contextContextCard now renders one panel per context-capable provider (only claude and codex have a context breakdown), largest usage first, side by side — instead of only the single top provider. Deduped by source, immutably. Providers without context data (gemini, copilot, …) still appear only in the provider breakdown. Falls back to a single full-width panel when one qualifies.
  • Activity Heatmap → onboarding → Data Details span full width below; FadeIn delays resequenced to the new order.
  • screenshotMode (share-to-X card) intentionally unchanged.

Builds on #28 (plain hero readout). Mockup used for sign-off before coding.

Test plan

  • npm run ci:local — green (build + node --test + all validators)
  • ui-hardcode baseline refreshed for a ContextCard regex false-positive (> operator read as JSX text); rawText count unchanged (168)
  • Playwright on local preview (mock, claude+codex present): grid children verified — Hero col-span-3, Trend col-span-3, Identity col-span-2 row-span-2 rail, Provider col-span-4, Context col-span-4 with 2 panels (Codex, Claude), Heatmap col-span-6, onboarding col-span-6
  • Post-merge: publish + repin :17680 LaunchAgent to verify live

itarun.p added 2 commits July 5, 2026 07:55
…multi-provider context

Reorganize the main dashboard bento (non-screenshot view) for a clearer
top-down read:

- Hero and Trend Monitor now share the top row at 3:3 (Trend promoted up
  from the bottom) so the summary and its time series read together.
- Identity (StatsPanel) becomes a left rail that spans two rows when a
  context source exists, so Provider Breakdown stacks directly above the
  Context Breakdown (cols 3-6) — "which providers → their context" reads
  vertically without a caption.
- Activity Heatmap, onboarding, then Data Details span full width below.
- FadeIn delays resequenced to the new visual order.

ContextCard now renders one panel per context-capable provider (claude and
codex are the only sources with a context breakdown), largest usage first,
side by side — instead of only the single top provider. Deduped by source,
immutably. Providers without context data still appear only in the provider
breakdown. Falls back to a single full-width panel when one qualifies.

screenshotMode (share card) is intentionally unchanged. ui-hardcode baseline
refreshed for ContextCard's regex false-positive (a `>` operator read as JSX
text); count unchanged.
…Codex QA)

Codex QA gate (PR #29) surfaced two items:

- Accuracy (Fix): with the standalone ContextCard now showing every
  context-capable provider, the ProviderBreakdownCard drill-down still
  rendered its own inline ContextBreakdownPanel on expand — duplicating the
  panel (and refetching getUsageCategoryBreakdown) for the same source. Add a
  `showInlineContext` prop (default true, so screenshotMode and other callers
  are unchanged) and pass `false` from the main view. The drill-down keeps its
  per-model detail; context now lives only in ContextCard. Verified via
  Playwright: expanding a provider adds 0 context panels (total stays 2).

- Handoff (Risk): no coverage for the new behavior. Add ContextCard.test.jsx
  (per-source dedup, usage-desc order, non-context exclusion, single vs
  multi-column, null render) and layout-v2 assertions to
  dashboard-layout-adjustments.test.js (col-span-3 top row, row-span-2 rail,
  showInlineContext suppression).
@pitimon
pitimon merged commit 9839852 into main Jul 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant