feat(web): redesign usage insights - #7147
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
There was a problem hiding this comment.
Two consistency findings in the Usage refresh: a hand-rolled glass surface that bypasses the shared glass contract, and a call-site override of the shared workspace topbar height.
Posted via Macroscope — UI Consistency
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This PR redesigns the usage insights page with new UI components, a segmented toggle variant, and changes to how session counts are aggregated per provider. As a feature introducing new components and data structure changes, it warrants human review. No code changes detected at You can add or adjust custom eligibility rules. Learn more. |
e093685 to
acf6876
Compare
There was a problem hiding this comment.
UI Consistency
One finding: the new compact header menu duplicates an existing header control instead of routing through a shared primitive. The two items flagged on the previous run (header height override on WorkspacePageHeader, hand-rolled glass on the chart tooltip) are resolved on this head — the header now uses the primitive's geometry unchanged and the tooltip composes surface-glass.
Posted via Macroscope — UI Consistency
5e96339 to
2ec34dc
Compare
There was a problem hiding this comment.
One finding: the usage chart is now the only place provider colors appear, and this PR removes every static key for them.
Posted via Macroscope — UI Consistency
There was a problem hiding this comment.
UI consistency review: the earlier glass-surface and topbar-geometry issues are resolved (the tooltip now uses surface-glass, and the header goes through WorkspacePageHeader without overriding its height). Two remaining findings, both about new shared API surface introduced here.
Posted via Macroscope — UI Consistency
4e4d9b3 to
8f2efda
Compare
There was a problem hiding this comment.
One consistency finding on the new SegmentedTabList primitive. Earlier findings from previous runs (glass tooltip, header geometry, provider color encoding, unused density size) look addressed; the HeaderFilterMenu / CompactFilterMenu duplication flagged previously is still open but not re-reported here.
Posted via Macroscope — UI Consistency
There was a problem hiding this comment.
One consistency finding on the new SegmentedTabList primitive. Earlier findings from previous runs (glass tooltip, header geometry, provider color encoding, unused density size) look addressed; the HeaderFilterMenu / CompactFilterMenu duplication flagged previously is still open but not re-reported here.
Posted via Macroscope — UI Consistency
8f2efda to
e8d00a2
Compare
4421251 to
144e585
Compare
There was a problem hiding this comment.
One finding: the usage skeleton's left column no longer matches the geometry of the loaded content it stands in for, so the page still shifts when the last device answers (visible below lg, where the summary column stacks above the chart and everything under it moves). Everything else in this revision looks consistent with the shared system — the segmented size now defaults from the variant, the chart tooltip uses the shared surface-glass composition, and the provider swatches restore the chart's color mapping outside the hover tooltip.
Posted via Macroscope — UI Consistency
There was a problem hiding this comment.
One finding: the new segmented defaulting logic in the shared ToggleGroup primitive has no focused test. Everything else in this revision (shared page frame, breadcrumb separator, segmented track/size ownership, glass tooltip, skeleton geometry) now lines up with the existing shared-component and Tailwind ownership conventions.
Posted via Macroscope — UI Consistency
02506a9 to
7f7ca9a
Compare
7f7ca9a to
3bd11ec
Compare
There was a problem hiding this comment.
One finding on the breakdown tables: the new row treatment drops the separators and replaces them with a hover tint that resolves to an imperceptible color in both themes. Everything else in this revision looks consistent with the shared system — the segmented variant now owns its item geometry (with a focused test), the tooltip composes surface-glass, the skeleton mirrors the loaded geometry, and WorkspacePageContainer / WorkspacePageHeader are shared by Settings and Usage alike.
Posted via Macroscope — UI Consistency
5147b58 to
8d10d46
Compare
There was a problem hiding this comment.
One finding: the two new topbar Select popups keep Base UI's item-aligned positioning, unlike every other align="end" popup in apps/web. Details inline.
Posted via Macroscope — UI Consistency
There was a problem hiding this comment.
One finding: the two new topbar Select popups keep Base UI's item-aligned positioning, unlike every other align="end" popup in apps/web. Details inline.
Posted via Macroscope — UI Consistency
77e09a2 to
146c56f
Compare
There was a problem hiding this comment.
One finding on the new segmented toggle treatment: in the default dark theme the hover fill lands on top of the pressed fill, so the selected segment is not identifiable while the pointer is inside the group. Everything else in this revision (segmented size defaulting plus its test, alignItemWithTrigger={false} on the new header popups, shared WorkspacePageContainer/WorkspacePageHeader composition, surface-glass chart tooltip, skeleton geometry) lines up with the existing primitives.
Posted via Macroscope — UI Consistency
146c56f to
8156179
Compare
8156179 to
3fa0aed
Compare
(cherry picked from commit 8c85b49)
## What's Changed * fix(desktop): stop automatic passkey prompts by @t3dotgg in pingdotgg/t3code#7522 * fix(web): align version text with its label by @RakshithBhat03 in pingdotgg/t3code#7521 * fix(web): refresh open file with the file tree by @StiensWout in pingdotgg/t3code#7490 * Add OpenCode skill discovery by @dbalders in pingdotgg/t3code#3154 * feat(web): unify workspace navigation by @maria-rcks in pingdotgg/t3code#7153 * fix(web): hide opencode's plan agent when legacy plan mode is off by @UtkarshUsername in pingdotgg/t3code#6420 * feat: refine thread action menus by @maria-rcks in pingdotgg/t3code#7476 * feat(web): redesign usage insights by @maria-rcks in pingdotgg/t3code#7147 * fix(server): outdated gh no longer reads as "not authenticated" by @t3dotgg in pingdotgg/t3code#7588 * fix(desktop): refresh queued updates before install by @SunkenInTime in pingdotgg/t3code#6269 * feat(web): confirm before closing a terminal by @maria-rcks in pingdotgg/t3code#7592 * feat(web): refresh pull request details by @maria-rcks in pingdotgg/t3code#7148 * fix(web): usage hourly breakdown lists every hour chronologically by @lgwacker in pingdotgg/t3code#7595 * fix(web): remove the terminal pane's app-canvas gutter by @jakeleventhal in pingdotgg/t3code#6222 * feat(web): attach composer state drawers by @maria-rcks in pingdotgg/t3code#7150 * fix(server): preserve tool lifecycle identity by @maria-rcks in pingdotgg/t3code#7151 * chore(desktop): use stable Clerk Electron release by @t3dotgg in pingdotgg/t3code#7602 **Full Changelog**: pingdotgg/t3code@v0.0.34-nightly.20260819.1133...v0.0.34-nightly.20260820.1139 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.34-nightly.20260820.1139
What changed
Screenshots
Direct parent on the left; this PR on the right. Same viewport and copied application state.
Usage was mixed with unrelated workspace, Pull Requests, terminal, and tool-call work. This layer keeps the presentation and its small shared aggregation change together for one review.
Validation
UsageProviderCharttestsusageMergetests, including duplicate-source ownership and empty-provider handlingStack order
Built with GPT-5.6-sol in the Codex harness.
Note
Medium Risk
Changes usage aggregation (
ProviderTotals.sessions, provider list shape) and a large Usage UI refactor; merge logic is tested but displayed totals/session labels depend on correct per-provider session attribution across environments.Overview
Usage moves metric, time window, and breakdown controls into the shared workspace header—segmented
ToggleGroups on large screens and compactSelects on small ones—with the active date range shown in the breadcrumb.The page layout uses
WorkspacePageHeaderandWorkspacePageContainer(wide), simplifies the headline and provider sidebar (stablePROVIDER_ORDER, session counts, chart color dots; no metric-based reordering or share bars), trims the totals strip, and swaps custom bordered buttons for segmented toggles in the breakdown section.Shared UI: new
WorkspacePageContainerwithreadable/wide/expandedmax-widths; Settings adopts it instead of local width classes.Toggle/ToggleGroupgain a segmented variant (default size when variant is segmented).WorkspaceBreadcrumbSeparatoraccepts an optionalclassName.Data / chart:
usageMergeaddssessionsper provider (from owned sourcedistinctSessions, still deduped by fingerprint) and tests for empty-provider omission.UsageProviderChartrepositions the hover tooltip from cursor-local coordinates (clamped,ResizeObserver);UsageChartLegendis removed.Reviewed by Cursor Bugbot for commit 3fa0aed. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Redesign the Usage Insights page with responsive controls, provider session counts, and unified header components
mergeUsageoutput via a newsessionsfield onProviderTotals; providers with no sessions and no usage are omitted from resultsPROVIDER_ORDERWorkspacePageHeader(standardizes electron drag-region and native-control insets) andWorkspacePageContainer(standardized width presets), replacing bespoke header elements across chat, settings, and onboarding routesSidebarUtilityMenucomponent shared with the main sidebar footer; the back action now preferswindow.history.back()before falling back to navigating to/segmentedsize and variant toToggle/ToggleGroupfor the new control stylingMetriccomponent no longer renders a detail line;UsageSkeletonno longer accepts aresolutionpropMacroscope summarized 8156179.