Skip to content

refactor(ui): primitives pass 6, page shells, CursorPlot, controls, type scale - #1278

Merged
Makisuo merged 8 commits into
mainfrom
refactor/ui-primitives-pass-6
Oct 6, 2026
Merged

Makisuo merged 8 commits into
mainfrom
refactor/ui-primitives-pass-6

Conversation

@Makisuo

@Makisuo Makisuo commented Oct 6, 2026 •

Copy link
Copy Markdown
Collaborator

Sixth UI unification pass. An audit of apps/web and @maple/ui found that most remaining drift was not missing primitives but pages bypassing ones that already exist (Panel in 21 files vs ~120 hand-built cards, toastExit at 8 sites vs ~150 hand-built error toasts, FormDialog with 1 user). This PR adds the handful of primitives that were genuinely missing and moves the app onto them.

Fixes

  • Deletes now confirm: alert destinations, chat conversations, revoking an invitation, removing a tax ID. The destination delete keeps its 409 "still referenced by rules" message and stays open on failure.
  • Timezone setting respected: dates in billing, invoices, API keys, members, passkeys, audit log, scrape targets, alerts, investigations and releases were formatted with the browser zone. They now go through timezone-format.ts.
  • One set of thresholds: utilisation (utilizationLevel, 90% / 60%), error rate on the service map (errorRateLevel, 5% / 1%, >=), latency colouring via latency-tone.
  • Severity colours: the issue occurrence chart coloured severities with raw palette colours that disagreed with the severity badge; both use the severity tokens now.

New primitives

  • Type scale: text-2xs (11px), text-3xs (10px), text-4xs (9px) theme tokens replace ~840 text-[9-11.5px] values; rounded-[2px] becomes rounded-xs. No line-height on the tokens, so rendering is unchanged.
  • Controls (@maple/ui): FilterChip, IconButton (required label, tooltip built in), RowActionsMenu, RefreshButton, ListRow + rowSelectedClass, Badge tag. FacetSelect, keyed mutation hooks (useKeyedMutationAction) in web. SectionHeader folded into SectionHeading. Table header rows no longer hover.
  • Page shells: DashboardPage (time-scoped shell; KubernetesShell rebuilt on it), ResultPage (one shell for loading / error / not-found), DetailHeader sharing its API with SheetDetailHeader, a DashboardLayout.Tabs slot, Scroll width / gap, SettingsSection (fixed width), AuthLayout.Title/Description, Panel padded / tone.
  • Charts: CursorPlot owns the focus store, cursor tooltip and colour resolution that 12 charts each wired by hand. makeBucketAxis moves into plot and replaces the 5 label axes, so the same range ticks the same everywhere. One OTHER_COLOR; ChartCard moves to common/; SeriesLegend gets swatch shapes and "+N" overflow.
  • Stats / data: StatRail sizes, hint and StatFigure replace alert-stat-card and the FleetBand cells; MiniBars, inline KeyValueList, BackdropBar, VirtualTableBody.
  • Lib: EMPTY_VALUE, formatPercent floor, TOKEN_FALLBACK (no more per-chart ["--token", "#hex"] pairs), AGENT_ACCENT, CONCEPT_ICON.

Migrations

  • ~45 routes on DashboardPage / ResultPage; the local Investigation / Issue / Session / Anomalies / Page shells are deleted, logs/$logId goes from 5 shells to 1, traces/$traceId from 4.
  • Every settings and account tab on SettingsSection, form dialogs on FormDialog, inline errors on FieldError, kebabs on RowActionsMenu, icon buttons on IconButton.
  • Panel for the card wrappers (one radius), shared formatters (formatPercent, countLabel, RelativeTime, EMPTY_VALUE), Tone instead of destructive for status colour.

Visible changes worth a look

  • Settings and billing are capped at max-w-3xl; billing's two-column grid stacks.
  • Service page: Create Alert now sits before the time picker (the shell's fixed order). Service tabs moved to the shared tab bar.
  • PlanetScale storage turns critical at 90% instead of 80%.
  • "Agent" chips use the agent chart colour (amber) instead of violet.
  • ChartCard headings are smaller on the spend and agent-tool charts.
  • Some counts that used bare toLocaleString() are now compact (1.2K), e.g. the home Total and span counts. Places that deliberately showed exact counts are left exact.
  • Error toasts carry a fixed title with the error as description.
  • The PlanetScale org picker uses OptionCard, so its rows are larger.
  • ResultPage shows "Loading…" / "Error" / "Not found" as the last breadcrumb.

Left on purpose

  • The tool breakdown tables stay div-based because their rows are links in a capped scroll body; only the name collision with @maple/ui Table and the duplicate row styles are gone.
  • create-api-key / roll-api-key dialogs stay on Dialog (form then secret reveal).
  • The anomaly live toggle is not merged into RefreshControls, which would change its URL schema.
  • formatCount in billing and code review keeps exact numbers below 10K on purpose.

Verification

  • tsc --noEmit clean for apps/web and packages/ui; oxlint clean and oxfmt applied on all changed files.
  • Ran every test co-located with a changed file plus every test importing a changed module (~117 files, ~1,100 tests), all passing. Fixed along the way: two router-mock imports, two exact-count tooltips that had been compacted, and legend / tone assertions.
  • /lab/* fixture pages (agent tools, agent session, errors, infra, widgets, replays, verdict) render without errors in the browser.
  • Not run locally: repo-wide typecheck and the full test suite (left to CI), and signed-in pages against a live API.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

…sizes

Adds three dense sizes below text-xs to the shared theme and sweeps the
~840 text-[9-11.5px] values in web and @maple/ui onto them. rounded-[2px]
becomes rounded-xs. No line-height on the tokens, so rendering is unchanged.
…ts, shared thresholds

Controls: FilterChip, IconButton, RowActionsMenu, RefreshButton, ListRow +
rowSelectedClass, Badge tag variant, FacetSelect, keyed mutation hooks;
SectionHeader folded into SectionHeading; header rows drop hover in Table.

Layout: DashboardPage (time-scoped shell, KubernetesShell rebuilt on it),
ResultPage (one shell for loading/error/not-found), DetailHeader shared with
SheetDetailHeader, DashboardLayout.Tabs + Scroll width/gap, SettingsSection,
AuthLayout.Title/Description, Panel padded/tone variants.

Charts: CursorPlot owns focus store, tooltip and colour resolution for 12
charts; makeBucketAxis moves into plot and replaces the label axes; one
OTHER_COLOR; ChartCard moves to common; SeriesLegend swatches + overflow.

Stats: StatRail sizes/hint/StatFigure replace alert-stat-card and FleetBand
cells; MiniBars, inline KeyValueList, BackdropBar, VirtualTableBody.

Lib: EMPTY_VALUE, formatPercent floor, utilizationLevel, errorRateLevel on
the service map, TOKEN_FALLBACK instead of per-chart hex pairs, AGENT_ACCENT,
CONCEPT_ICON. Fixes the issue chart colouring severities differently from
the severity badge.
Page shells: ~45 routes move onto DashboardPage (time-scoped shell) and
ResultPage (one shell for loading/error/not-found), deleting the local
Investigation/Issue/Session/Anomalies/Page shells; page tabs move to the
shared tabs slot; detail headers on DetailHeader.

Settings and account sit on SettingsSection at one width. ~150 hand-built
error toasts and Exit branches move to toastExit and the mutation hooks,
per-row pending ids to the keyed hooks, form dialogs to FormDialog, inline
errors to FieldError, kebabs to RowActionsMenu, icon buttons to IconButton.

Fixes: alert destination and chat deletes, revoking an invitation and
removing a tax ID now confirm; dates in billing, api keys, audit log,
alerts and investigations follow the user's timezone setting; PlanetScale
storage uses the shared 90%/60% utilisation levels.

Also: Panel replaces the hand-built card wrappers (one radius), formatting
goes through the shared helpers (EMPTY_VALUE, formatPercent, countLabel,
RelativeTime), status colour uses Tone instead of destructive.
…s-pass-6

# Conflicts:
#	apps/web/src/routes/analytics/index.tsx
@maple-review-bot

maple-review-bot Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Note

A newer push replaced d7925cc before its review finished. The latest commit is reviewed in a new comment.

@coderabbitai

coderabbitai Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 577 files, which is 427 over the limit of 150.

To get a review, reduce the PR to 150 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 19c061fa-a33b-47d1-85d2-a526d2b335b2
📥 Commits

Reviewing files that changed from the base of the PR and between a091200 and 0084d92.

📒 Files selected for processing (577)
  • apps/local-ui/src/components/service-map-panel.tsx
  • apps/web/perf/check-bundle-budget.ts
  • apps/web/src/components/account/account-errors.ts
  • apps/web/src/components/account/account-section-skeleton.tsx
  • apps/web/src/components/account/active-sessions-section.tsx
  • apps/web/src/components/account/connected-accounts-section.tsx
  • apps/web/src/components/account/email-addresses-section.browser.test.tsx
  • apps/web/src/components/account/email-addresses-section.tsx
  • apps/web/src/components/account/passkeys-section.tsx
  • apps/web/src/components/account/password-section.tsx
  • apps/web/src/components/account/profile-section.tsx
  • apps/web/src/components/account/two-factor-section.browser.test.tsx
  • apps/web/src/components/account/two-factor-section.tsx
  • apps/web/src/components/agent-sessions/agent-sessions-list.tsx
  • apps/web/src/components/agent-sessions/agent-sessions-toolbar.tsx
  • apps/web/src/components/agent-sessions/session-detail/payload-view.tsx
  • apps/web/src/components/agent-sessions/session-detail/session-checks.tsx
  • apps/web/src/components/agent-sessions/session-detail/session-flow.tsx
  • apps/web/src/components/agent-sessions/session-detail/session-header.tsx
  • apps/web/src/components/agent-sessions/session-detail/session-load-indicator.tsx
  • apps/web/src/components/agent-sessions/session-detail/session-overview.tsx
  • apps/web/src/components/agent-sessions/session-detail/session-transcript.tsx
  • apps/web/src/components/agent-sessions/session-detail/session-waterfall.tsx
  • apps/web/src/components/agent-sessions/session-detail/span-expansion.tsx
  • apps/web/src/components/agent-sessions/session-detail/span-popover.tsx
  • apps/web/src/components/agent-sessions/session-detail/tool-io.tsx
  • apps/web/src/components/agent-sessions/tools/agent-sessions-tabs.tsx
  • apps/web/src/components/agent-sessions/tools/agent-tools-view.browser.test.tsx
  • apps/web/src/components/agent-sessions/tools/agent-tools-view.tsx
  • apps/web/src/components/agent-sessions/tools/tool-breakdown-tables.tsx
  • apps/web/src/components/agent-sessions/tools/tool-detail-charts.tsx
  • apps/web/src/components/agent-sessions/tools/tool-detail-sessions.tsx
  • apps/web/src/components/agent-sessions/tools/tool-detail-view.tsx
  • apps/web/src/components/agent-sessions/tools/tool-error-modal.tsx
  • apps/web/src/components/agent-sessions/tools/tool-error-parts.tsx
  • apps/web/src/components/agent-sessions/tools/tool-errors-table.tsx
  • apps/web/src/components/agent-sessions/tools/tool-filter-toolbar.tsx
  • apps/web/src/components/agent-sessions/tools/tool-metric-strip.tsx
  • apps/web/src/components/agent-sessions/tools/tool-scope-row.tsx
  • apps/web/src/components/agent-sessions/tools/tool-series-chart.tsx
  • apps/web/src/components/ai-elements/entity-ref.tsx
  • apps/web/src/components/ai-elements/inline/inline-card.tsx
  • apps/web/src/components/ai-elements/inline/inline-log.tsx
  • apps/web/src/components/ai-elements/inline/inline-trace.tsx
  • apps/web/src/components/ai-elements/markdown-chart.tsx
  • apps/web/src/components/ai-elements/markdown-table.tsx
  • apps/web/src/components/ai-elements/renderers/components/data-table.tsx
  • apps/web/src/components/ai-elements/renderers/components/error-list.tsx
  • apps/web/src/components/ai-elements/renderers/components/log-list.tsx
  • apps/web/src/components/ai-elements/renderers/components/metrics-list.tsx
  • apps/web/src/components/ai-elements/renderers/components/query-chart.tsx
  • apps/web/src/components/ai-elements/renderers/components/span-tree.tsx
  • apps/web/src/components/ai-elements/renderers/components/stat-cards.tsx
  • apps/web/src/components/ai-elements/renderers/components/trace-list.tsx
  • apps/web/src/components/ai-elements/renderers/tool-renderer.tsx
  • apps/web/src/components/ai-elements/tool.tsx
  • apps/web/src/components/ai-triage/breach.ts
  • apps/web/src/components/alerts/alert-create-form-surface.tsx
  • apps/web/src/components/alerts/alert-firing-hero.tsx
  • apps/web/src/components/alerts/alert-rule-chart.browser.test.tsx
  • apps/web/src/components/alerts/alert-rule-chart.tsx
  • apps/web/src/components/alerts/destination-card.tsx
  • apps/web/src/components/alerts/destination-dialog.tsx
  • apps/web/src/components/alerts/details-section.tsx
  • apps/web/src/components/alerts/incident-timeline-strip.tsx
  • apps/web/src/components/alerts/notifications-section.tsx
  • apps/web/src/components/alerts/overview/active-incidents-table.tsx
  • apps/web/src/components/alerts/overview/alerts-empty-state.tsx
  • apps/web/src/components/alerts/overview/alerts-health-summary.tsx
  • apps/web/src/components/alerts/overview/alerts-overview-tab.tsx
  • apps/web/src/components/alerts/overview/rules-overview-table.tsx
  • apps/web/src/components/alerts/overview/settings-tab.tsx
  • apps/web/src/components/alerts/overview/shared.tsx
  • apps/web/src/components/alerts/rule-detail/rule-diagnosis-panel.tsx
  • apps/web/src/components/alerts/rule-live-chart-hero.tsx
  • apps/web/src/components/alerts/rule-templates-overlay.tsx
  • apps/web/src/components/alerts/scope-section.tsx
  • apps/web/src/components/alerts/signal-and-threshold-section.tsx
  • apps/web/src/components/analytics/ai/ai-sections.tsx
  • apps/web/src/components/analytics/ai/analytics-ai-tab.tsx
  • apps/web/src/components/analytics/analytics-bot-notice.tsx
  • apps/web/src/components/analytics/analytics-breakdown-panel.tsx
  • apps/web/src/components/analytics/analytics-filter-sidebar.tsx
  • apps/web/src/components/analytics/analytics-live-badge.tsx
  • apps/web/src/components/analytics/analytics-metric-strip.tsx
  • apps/web/src/components/analytics/analytics-traffic-chart.tsx
  • apps/web/src/components/analytics/metrics.ts
  • apps/web/src/components/analytics/product-event-trace-samples.tsx
  • apps/web/src/components/anomalies/anomaly-format.test.ts
  • apps/web/src/components/anomalies/anomaly-format.ts
  • apps/web/src/components/anomalies/anomaly-group.tsx
  • apps/web/src/components/anomalies/anomaly-linked-issue-card.tsx
  • apps/web/src/components/anomalies/anomaly-live-indicator.tsx
  • apps/web/src/components/anomalies/anomaly-row.tsx
  • apps/web/src/components/anomalies/anomaly-sidebar.tsx
  • apps/web/src/components/anomalies/anomaly-timeseries-chart.tsx
  • apps/web/src/components/anomalies/use-anomaly-mutations.ts
  • apps/web/src/components/app-error-boundary.tsx
  • apps/web/src/components/billing/quota-banner.tsx
  • apps/web/src/components/chat/approval-card.tsx
  • apps/web/src/components/chat/approval-renderers/dashboard.tsx
  • apps/web/src/components/chat/approval-renderers/index.tsx
  • apps/web/src/components/chat/chat-conversation.tsx
  • apps/web/src/components/chat/chat-empty-state.tsx
  • apps/web/src/components/chat/chat-page.tsx
  • apps/web/src/components/chat/chat-sidebar.tsx
  • apps/web/src/components/chat/diagnosis-report-card.tsx
  • apps/web/src/components/chat/investigation-attachment-card.tsx
  • apps/web/src/components/chat/message-actions.tsx
  • apps/web/src/components/chat/page-context-chips.tsx
  • apps/web/src/components/chat/task-card.tsx
  • apps/web/src/components/chat/turn-failure-notice.tsx
  • apps/web/src/components/chat/turn-minimap.tsx
  • apps/web/src/components/chat/widget-fix-attachment-card.tsx
  • apps/web/src/components/code-review/author-avatar.tsx
  • apps/web/src/components/code-review/code-review-analytics.tsx
  • apps/web/src/components/code-review/code-review-format.ts
  • apps/web/src/components/code-review/code-review-settings.tsx
  • apps/web/src/components/code-review/review-detail-sheet.tsx
  • apps/web/src/components/common/chart-card.tsx
  • apps/web/src/components/common/data-table.tsx
  • apps/web/src/components/common/detail-header.tsx
  • apps/web/src/components/common/facet-select.tsx
  • apps/web/src/components/common/image-dropzone.tsx
  • apps/web/src/components/common/resource-not-found.tsx
  • apps/web/src/components/common/search-toolbar.tsx
  • apps/web/src/components/common/section-heading.tsx
  • apps/web/src/components/common/series-legend.tsx
  • apps/web/src/components/common/service-pills.tsx
  • apps/web/src/components/common/sheet-detail-header.tsx
  • apps/web/src/components/common/stat-rail.tsx
  • apps/web/src/components/common/virtual-table-body.tsx
  • apps/web/src/components/dashboard-builder/blank-dashboard-empty.tsx
  • apps/web/src/components/dashboard-builder/config/chart-picker.tsx
  • apps/web/src/components/dashboard-builder/config/funnel-query-panel.tsx
  • apps/web/src/components/dashboard-builder/config/list-config-panel.tsx
  • apps/web/src/components/dashboard-builder/config/markdown-editor-panel.tsx
  • apps/web/src/components/dashboard-builder/config/paths-query-panel.tsx
  • apps/web/src/components/dashboard-builder/config/query-panel-shell.tsx
  • apps/web/src/components/dashboard-builder/config/query-panel.tsx
  • apps/web/src/components/dashboard-builder/config/raw-sql-editor-panel.tsx
  • apps/web/src/components/dashboard-builder/config/settings-fields.tsx
  • apps/web/src/components/dashboard-builder/config/variables-manager-dialog.tsx
  • apps/web/src/components/dashboard-builder/config/widget-query-builder-page.tsx
  • apps/web/src/components/dashboard-builder/history/dashboard-history-panel.tsx
  • apps/web/src/components/dashboard-builder/history/preview-banner.tsx
  • apps/web/src/components/dashboard-builder/history/version-list-item.tsx
  • apps/web/src/components/dashboard-builder/list-section-header.tsx
  • apps/web/src/components/dashboard-builder/list/dashboard-list.tsx
  • apps/web/src/components/dashboard-builder/sections/dashboard-section.tsx
  • apps/web/src/components/dashboard-builder/sections/section-tab-bar.tsx
  • apps/web/src/components/dashboard-builder/tag-editor.tsx
  • apps/web/src/components/dashboard-builder/templates/template-detail-panel.tsx
  • apps/web/src/components/dashboard-builder/templates/template-list.tsx
  • apps/web/src/components/dashboard-builder/toolbar/dashboard-toolbar.tsx
  • apps/web/src/components/dashboard-builder/toolbar/embed-widget-dialog.tsx
  • apps/web/src/components/dashboard-builder/toolbar/share-dashboard-dialog.tsx
  • apps/web/src/components/dashboard-builder/toolbar/variable-selects.tsx
  • apps/web/src/components/dashboard-builder/widgets/chart-preview.tsx
  • apps/web/src/components/dashboard-builder/widgets/stat-widget.tsx
  • apps/web/src/components/dashboard-builder/widgets/table-widget.test.ts
  • apps/web/src/components/dashboard-builder/widgets/table-widget.tsx
  • apps/web/src/components/dashboard-builder/widgets/types/markdown.tsx
  • apps/web/src/components/dashboard-builder/widgets/types/preset-preview.tsx
  • apps/web/src/components/dashboard-builder/widgets/widget-shell.tsx
  • apps/web/src/components/dashboard/app-sidebar.tsx
  • apps/web/src/components/dashboard/create-organization-dialog.tsx
  • apps/web/src/components/dashboard/org-switcher-menu.tsx
  • apps/web/src/components/dashboard/service-health-section.tsx
  • apps/web/src/components/dashboard/setup-checklist.tsx
  • apps/web/src/components/dashboard/user-avatar.tsx
  • apps/web/src/components/errors/actor-chip.tsx
  • apps/web/src/components/errors/alert-source-card.tsx
  • apps/web/src/components/errors/attach-pull-request-dialog.tsx
  • apps/web/src/components/errors/error-signal-row.tsx
  • apps/web/src/components/errors/errors-stat-strip.tsx
  • apps/web/src/components/errors/issue-detail-skeleton.tsx
  • apps/web/src/components/errors/issue-header.tsx
  • apps/web/src/components/errors/issue-incidents-table.tsx
  • apps/web/src/components/errors/issue-occurrence-chart.tsx
  • apps/web/src/components/errors/issue-occurrence-panel.tsx
  • apps/web/src/components/errors/issue-occurrences-table.tsx
  • apps/web/src/components/errors/issue-pickers.tsx
  • apps/web/src/components/errors/issue-pull-requests-panel.tsx
  • apps/web/src/components/errors/issue-sidebar.tsx
  • apps/web/src/components/errors/issue-source.tsx
  • apps/web/src/components/errors/issue-timeline.tsx
  • apps/web/src/components/errors/issue-verification-card.tsx
  • apps/web/src/components/errors/issues-bulk-bar.tsx
  • apps/web/src/components/errors/lease-hud.tsx
  • apps/web/src/components/errors/linked-investigation-panel.tsx
  • apps/web/src/components/errors/quick-pick-menu.tsx
  • apps/web/src/components/errors/severity-badge.tsx
  • apps/web/src/components/errors/signal-spark.tsx
  • apps/web/src/components/errors/signal-state-chip.tsx
  • apps/web/src/components/errors/use-issue-mutations.ts
  • apps/web/src/components/errors/workflow-badge.tsx
  • apps/web/src/components/filters/pinned-namespace-notice.tsx
  • apps/web/src/components/funnels/funnel-step-builder.tsx
  • apps/web/src/components/header/connect-button.tsx
  • apps/web/src/components/header/onboarding-checklist-button.tsx
  • apps/web/src/components/icons/concept.ts
  • apps/web/src/components/infra/chart-utils.test.ts
  • apps/web/src/components/infra/chart-utils.ts
  • apps/web/src/components/infra/cloudflare/cloudflare-breakdown-panel.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-edge-share-band.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-platform-table.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-worker-table.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-zone-chart.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-zone-detail-charts.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-zone-dns.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-zone-security.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-zone-table.tsx
  • apps/web/src/components/infra/cloudflare/compact-filter-input.tsx
  • apps/web/src/components/infra/cloudflare/constants.ts
  • apps/web/src/components/infra/container-table.tsx
  • apps/web/src/components/infra/format.ts
  • apps/web/src/components/infra/host-detail-chart.tsx
  • apps/web/src/components/infra/host-detail-header.tsx
  • apps/web/src/components/infra/host-metadata-panel.tsx
  • apps/web/src/components/infra/host-table.tsx
  • apps/web/src/components/infra/infra-correlation-panel.tsx
  • apps/web/src/components/infra/k8s-detail-chart.tsx
  • apps/web/src/components/infra/kubernetes/kubernetes-shell.tsx
  • apps/web/src/components/infra/kubernetes/pod-peek-sheet.tsx
  • apps/web/src/components/infra/node-table.tsx
  • apps/web/src/components/infra/overview/infra-overview.tsx
  • apps/web/src/components/infra/overview/summaries.test.ts
  • apps/web/src/components/infra/overview/summaries.ts
  • apps/web/src/components/infra/planetscale/metrics.ts
  • apps/web/src/components/infra/planetscale/planetscale-absence.tsx
  • apps/web/src/components/infra/planetscale/planetscale-activity-feed.tsx
  • apps/web/src/components/infra/planetscale/planetscale-alert-menu.tsx
  • apps/web/src/components/infra/planetscale/planetscale-branch-breakdown-panel.tsx
  • apps/web/src/components/infra/planetscale/planetscale-chart.tsx
  • apps/web/src/components/infra/planetscale/planetscale-database-table.tsx
  • apps/web/src/components/infra/planetscale/planetscale-top-queries.tsx
  • apps/web/src/components/infra/pod-table.tsx
  • apps/web/src/components/infra/primitives/avg-peak.tsx
  • apps/web/src/components/infra/primitives/chart-card.tsx
  • apps/web/src/components/infra/primitives/chart-event-markers.tsx
  • apps/web/src/components/infra/primitives/filter-chips.tsx
  • apps/web/src/components/infra/primitives/fleet-band.tsx
  • apps/web/src/components/infra/primitives/infra-metric-chart.tsx
  • apps/web/src/components/infra/primitives/meta-line.tsx
  • apps/web/src/components/infra/primitives/meter-rows.tsx
  • apps/web/src/components/infra/primitives/mono-link-button.tsx
  • apps/web/src/components/infra/primitives/segment-pivot.tsx
  • apps/web/src/components/infra/railway/railway-service-table.tsx
  • apps/web/src/components/infra/service-lens/correlation-strips.tsx
  • apps/web/src/components/infra/service-lens/service-lens-rail.tsx
  • apps/web/src/components/infra/status-badge.tsx
  • apps/web/src/components/infra/workload-table.tsx
  • apps/web/src/components/ingest/connection-status.tsx
  • apps/web/src/components/ingest/guided-setup.tsx
  • apps/web/src/components/integrations/chat-integration-card.tsx
  • apps/web/src/components/integrations/cloudflare-account-card.tsx
  • apps/web/src/components/integrations/cloudflare-stat-cards.tsx
  • apps/web/src/components/integrations/cloudflare-zone-board.tsx
  • apps/web/src/components/integrations/github-integration-card.tsx
  • apps/web/src/components/integrations/hazel-integration-card.tsx
  • apps/web/src/components/integrations/integration-catalog.tsx
  • apps/web/src/components/integrations/integration-empty-state.tsx
  • apps/web/src/components/integrations/planetscale-integration-card.tsx
  • apps/web/src/components/integrations/planetscale-metrics-token-form.tsx
  • apps/web/src/components/integrations/planetscale-setup-checklist.tsx
  • apps/web/src/components/integrations/railway-integration-card.tsx
  • apps/web/src/components/investigations/action-detail-sheet.tsx
  • apps/web/src/components/investigations/confidence-meter.tsx
  • apps/web/src/components/investigations/evidence-tab.tsx
  • apps/web/src/components/investigations/flow/flow-edge.tsx
  • apps/web/src/components/investigations/flow/flow-nodes.tsx
  • apps/web/src/components/investigations/flow/provenance-canvas.browser.test.tsx
  • apps/web/src/components/investigations/flow/provenance-canvas.tsx
  • apps/web/src/components/investigations/flow/provenance-graph.ts
  • apps/web/src/components/investigations/flow/provenance-loading.tsx
  • apps/web/src/components/investigations/impact-strip.tsx
  • apps/web/src/components/investigations/investigation-header.tsx
  • apps/web/src/components/investigations/investigation-meta.tsx
  • apps/web/src/components/investigations/investigation-table.tsx
  • apps/web/src/components/investigations/run-progress.tsx
  • apps/web/src/components/investigations/signals-card.tsx
  • apps/web/src/components/investigations/verdict-card.tsx
  • apps/web/src/components/layout/auth-layout.tsx
  • apps/web/src/components/layout/dashboard-layout.tsx
  • apps/web/src/components/layout/dashboard-page.tsx
  • apps/web/src/components/layout/result-page.tsx
  • apps/web/src/components/layout/section-header.tsx
  • apps/web/src/components/logs/highlighted-text.tsx
  • apps/web/src/components/logs/log-hero-header.tsx
  • apps/web/src/components/logs/log-meta-strip.tsx
  • apps/web/src/components/logs/log-raw-panel.tsx
  • apps/web/src/components/logs/log-row-expanded.tsx
  • apps/web/src/components/logs/log-search-help.tsx
  • apps/web/src/components/logs/log-search-input.tsx
  • apps/web/src/components/logs/log-search-mode-badge.tsx
  • apps/web/src/components/logs/log-text-button.tsx
  • apps/web/src/components/logs/log-trace-timeline.tsx
  • apps/web/src/components/logs/logs-table-toolbar.tsx
  • apps/web/src/components/logs/logs-table.tsx
  • apps/web/src/components/logs/logs-volume-chart.tsx
  • apps/web/src/components/mcp/mcp-tools-list.tsx
  • apps/web/src/components/metrics/metric-breakdown.tsx
  • apps/web/src/components/metrics/metric-detail.tsx
  • apps/web/src/components/metrics/metric-graduation-actions.tsx
  • apps/web/src/components/metrics/metric-preview-card.tsx
  • apps/web/src/components/metrics/metric-query-controls.tsx
  • apps/web/src/components/metrics/metrics-table.tsx
  • apps/web/src/components/onboarding/onboarding-header-actions.tsx
  • apps/web/src/components/onboarding/step-plan.tsx
  • apps/web/src/components/onboarding/step-region.tsx
  • apps/web/src/components/onboarding/step-team.tsx
  • apps/web/src/components/query-builder/where-clause-editor.tsx
  • apps/web/src/components/region/wrong-region-screen.tsx
  • apps/web/src/components/releases/release-changeset.tsx
  • apps/web/src/components/releases/release-deploy-overview.tsx
  • apps/web/src/components/releases/release-detail-panels.tsx
  • apps/web/src/components/releases/release-health.tsx
  • apps/web/src/components/releases/release-issues-panel.tsx
  • apps/web/src/components/releases/releases-live-now.tsx
  • apps/web/src/components/releases/releases-table.tsx
  • apps/web/src/components/releases/releases-timeline.tsx
  • apps/web/src/components/replays/active-user-filter.tsx
  • apps/web/src/components/replays/marker-legend.tsx
  • apps/web/src/components/replays/replay-editor-timeline.tsx
  • apps/web/src/components/replays/replay-player.tsx
  • apps/web/src/components/replays/replays-filter-sidebar.tsx
  • apps/web/src/components/replays/replays-toolbar.tsx
  • apps/web/src/components/replays/session-detail-parts.tsx
  • apps/web/src/components/replays/session-events-panel.tsx
  • apps/web/src/components/replays/session-pills.tsx
  • apps/web/src/components/replays/sessions-list.tsx
  • apps/web/src/components/route-error.tsx
  • apps/web/src/components/service-map/service-map-view.tsx
  • apps/web/src/components/service-map/three/appearance.ts
  • apps/web/src/components/service-map/three/factory-routing.ts
  • apps/web/src/components/service-map/three/spatial-layout.ts
  • apps/web/src/components/service-map/three/viewport.tsx
  • apps/web/src/components/services/dependency-table.tsx
  • apps/web/src/components/services/issue-line.tsx
  • apps/web/src/components/services/service-api-tab.tsx
  • apps/web/src/components/services/service-dependencies-tab.tsx
  • apps/web/src/components/services/service-dependency-strip.tsx
  • apps/web/src/components/services/service-errors-panel.tsx
  • apps/web/src/components/services/service-operations-tab.tsx
  • apps/web/src/components/services/service-recent-deploys.tsx
  • apps/web/src/components/services/service-table-cells.tsx
  • apps/web/src/components/services/service-top-operations-panel.tsx
  • apps/web/src/components/services/service-usage-panel.tsx
  • apps/web/src/components/services/service-workloads-panel.tsx
  • apps/web/src/components/services/services-table.tsx
  • apps/web/src/components/settings/ai-triage-settings-section.tsx
  • apps/web/src/components/settings/api-keys-section.tsx
  • apps/web/src/components/settings/attribute-key-autocomplete.tsx
  • apps/web/src/components/settings/attribute-mappings-section.tsx
  • apps/web/src/components/settings/audit-log-section.tsx
  • apps/web/src/components/settings/automation-section.tsx
  • apps/web/src/components/settings/billing-controls-card.tsx
  • apps/web/src/components/settings/billing-controls-dialog.tsx
  • apps/web/src/components/settings/billing-details-dialog.tsx
  • apps/web/src/components/settings/billing-details-section.tsx
  • apps/web/src/components/settings/billing-kpis.tsx
  • apps/web/src/components/settings/billing-section.tsx
  • apps/web/src/components/settings/checkout-return-panel.tsx
  • apps/web/src/components/settings/cost-breakdown.tsx
  • apps/web/src/components/settings/create-api-key-dialog.tsx
  • apps/web/src/components/settings/data-platform-usage-section.tsx
  • apps/web/src/components/settings/escalation-policy-section.tsx
  • apps/web/src/components/settings/feature-usage-cards.tsx
  • apps/web/src/components/settings/ingestion-section.tsx
  • apps/web/src/components/settings/invoices-section.tsx
  • apps/web/src/components/settings/mcp-section.tsx
  • apps/web/src/components/settings/members-section.tsx
  • apps/web/src/components/settings/notifications-section.tsx
  • apps/web/src/components/settings/org-clickhouse-settings-section.tsx
  • apps/web/src/components/settings/organization-section.tsx
  • apps/web/src/components/settings/plan-offer.tsx
  • apps/web/src/components/settings/pricing-cards.tsx
  • apps/web/src/components/settings/recommended-mappings-section.tsx
  • apps/web/src/components/settings/roll-api-key-dialog.tsx
  • apps/web/src/components/settings/scrape-targets-section.tsx
  • apps/web/src/components/settings/settings-section.tsx
  • apps/web/src/components/settings/setup-audit-section.tsx
  • apps/web/src/components/settings/spend-chart.tsx
  • apps/web/src/components/support/support-channel-body.tsx
  • apps/web/src/components/time-range-picker/custom-range-picker.tsx
  • apps/web/src/components/time-range-picker/quick-select-grid.tsx
  • apps/web/src/components/time-range-picker/refresh-controls.tsx
  • apps/web/src/components/time-range-picker/reload-controls.tsx
  • apps/web/src/components/time-range-picker/shorthand-input.tsx
  • apps/web/src/components/time-range-picker/time-range-header-controls.tsx
  • apps/web/src/components/time-range-picker/timezone-select.tsx
  • apps/web/src/components/traces/span-detail-panel.tsx
  • apps/web/src/components/traces/trace-anatomy-strip.tsx
  • apps/web/src/components/traces/trace-peek-sheet.tsx
  • apps/web/src/components/traces/trace-product-events.tsx
  • apps/web/src/components/traces/traces-table.tsx
  • apps/web/src/components/vcs/commit-markers/commit-markers-layer.tsx
  • apps/web/src/components/vcs/commit-sha-hover-card.tsx
  • apps/web/src/hooks/use-mutation-action.browser.test.tsx
  • apps/web/src/hooks/use-mutation-action.ts
  • apps/web/src/lab/agent-tools-lab.tsx
  • apps/web/src/lab/bench/tanstack/error-rate-area.tsx
  • apps/web/src/lab/bench/tanstack/latency-line.tsx
  • apps/web/src/lab/bench/tanstack/throughput-area.tsx
  • apps/web/src/lab/charts/area-spike.tsx
  • apps/web/src/lab/charts/box-plot-spike.tsx
  • apps/web/src/lab/charts/heatmap-spike.tsx
  • apps/web/src/lab/charts/histogram-spike.tsx
  • apps/web/src/lab/charts/line-spike.tsx
  • apps/web/src/lab/charts/pie-spike.tsx
  • apps/web/src/lab/charts/sankey-spike.tsx
  • apps/web/src/lab/charts/stacked-bar-spike.tsx
  • apps/web/src/lab/charts/trace-scatter-spike.tsx
  • apps/web/src/lab/charts/treemap-spike.tsx
  • apps/web/src/lab/lab-index.tsx
  • apps/web/src/lab/query-builder-lab.tsx
  • apps/web/src/lab/service-map-3d/index.tsx
  • apps/web/src/lab/widget-lab/widget-lab.tsx
  • apps/web/src/lib/agent-sessions/tool-analytics.test.ts
  • apps/web/src/lib/agent-sessions/tool-analytics.ts
  • apps/web/src/lib/alerts/breach-stats.ts
  • apps/web/src/lib/alerts/diagnosis.ts
  • apps/web/src/lib/alerts/form-utils.ts
  • apps/web/src/lib/alerts/rule-status.ts
  • apps/web/src/lib/billing/cost-estimate.ts
  • apps/web/src/lib/billing/spend.ts
  • apps/web/src/lib/billing/usage.ts
  • apps/web/src/lib/timezone-format.browser.test.ts
  • apps/web/src/lib/timezone-format.ts
  • apps/web/src/routes/account.tsx
  • apps/web/src/routes/agent-sessions/$sessionId.tsx
  • apps/web/src/routes/agent-sessions/-index.browser.test.tsx
  • apps/web/src/routes/agent-sessions/index.tsx
  • apps/web/src/routes/agent-sessions/tools/$toolName.tsx
  • apps/web/src/routes/agent-sessions/tools/index.tsx
  • apps/web/src/routes/alerts/$ruleId.tsx
  • apps/web/src/routes/alerts/incidents/$incidentId.tsx
  • apps/web/src/routes/alerts/index.tsx
  • apps/web/src/routes/analytics/index.tsx
  • apps/web/src/routes/anomalies/$incidentId.tsx
  • apps/web/src/routes/anomalies/index.tsx
  • apps/web/src/routes/cli-login.tsx
  • apps/web/src/routes/code-review/issues.tsx
  • apps/web/src/routes/code-review/pull-requests.tsx
  • apps/web/src/routes/dashboards/$dashboardId.tsx
  • apps/web/src/routes/dashboards/$dashboardId_.widgets.$widgetId.tsx
  • apps/web/src/routes/dashboards/index.tsx
  • apps/web/src/routes/dashboards/templates.tsx
  • apps/web/src/routes/developer.tsx
  • apps/web/src/routes/errors/index.tsx
  • apps/web/src/routes/errors/issues/$issueId.tsx
  • apps/web/src/routes/index.tsx
  • apps/web/src/routes/infra/cloudflare/$zoneName.tsx
  • apps/web/src/routes/infra/cloudflare/index.tsx
  • apps/web/src/routes/infra/containers/$containerName.tsx
  • apps/web/src/routes/infra/containers/index.tsx
  • apps/web/src/routes/infra/hosts/$hostName.tsx
  • apps/web/src/routes/infra/hosts/index.tsx
  • apps/web/src/routes/infra/index.tsx
  • apps/web/src/routes/infra/kubernetes/nodes/$nodeName.tsx
  • apps/web/src/routes/infra/kubernetes/pods/$podName.tsx
  • apps/web/src/routes/infra/kubernetes/pods/index.tsx
  • apps/web/src/routes/infra/kubernetes/services/$serviceName.tsx
  • apps/web/src/routes/infra/kubernetes/workloads/$kind/$workloadName.tsx
  • apps/web/src/routes/infra/planetscale/$dbName.tsx
  • apps/web/src/routes/infra/planetscale/index.tsx
  • apps/web/src/routes/infra/railway/$serviceId.tsx
  • apps/web/src/routes/infra/railway/index.tsx
  • apps/web/src/routes/integrations.tsx
  • apps/web/src/routes/investigations/$id.tsx
  • apps/web/src/routes/investigations/index.tsx
  • apps/web/src/routes/lab/bench/service-map.tsx
  • apps/web/src/routes/logs/$logId.tsx
  • apps/web/src/routes/logs/index.tsx
  • apps/web/src/routes/mcp-authorize.tsx
  • apps/web/src/routes/mcp.tsx
  • apps/web/src/routes/metrics/$metricName.tsx
  • apps/web/src/routes/metrics/index.tsx
  • apps/web/src/routes/org-required.tsx
  • apps/web/src/routes/recommendations/$recommendationKey.tsx
  • apps/web/src/routes/releases/$commitSha.tsx
  • apps/web/src/routes/releases/index.tsx
  • apps/web/src/routes/replays/$sessionId.tsx
  • apps/web/src/routes/replays/index.tsx
  • apps/web/src/routes/select-plan.tsx
  • apps/web/src/routes/service-map.tsx
  • apps/web/src/routes/services/$serviceName.tsx
  • apps/web/src/routes/services/index.tsx
  • apps/web/src/routes/settings.tsx
  • apps/web/src/routes/share/$token.tsx
  • apps/web/src/routes/sign-in.tsx
  • apps/web/src/routes/traces/$traceId.tsx
  • apps/web/src/routes/traces/index.tsx
  • apps/web/src/routes/unsubscribe.tsx
  • packages/ui/src/components/attributes/attributes-table.tsx
  • packages/ui/src/components/attributes/gen-ai-section.tsx
  • packages/ui/src/components/charts/_shared/__tests__/chart-state.browser.test.tsx
  • packages/ui/src/components/charts/_shared/chart-skeleton.tsx
  • packages/ui/src/components/charts/_shared/chart-state.tsx
  • packages/ui/src/components/charts/_shared/query-builder-legend.tsx
  • packages/ui/src/components/charts/area/apdex-area-chart.tsx
  • packages/ui/src/components/charts/area/error-rate-area-chart.tsx
  • packages/ui/src/components/charts/area/throughput-area-chart.tsx
  • packages/ui/src/components/charts/bar/query-builder-bar-chart.tsx
  • packages/ui/src/components/charts/funnel/funnel-dropoff-chart.tsx
  • packages/ui/src/components/charts/funnel/query-builder-funnel-chart.tsx
  • packages/ui/src/components/charts/hbar/query-builder-hbar-chart.tsx
  • packages/ui/src/components/charts/heatmap/query-builder-heatmap-chart.tsx
  • packages/ui/src/components/charts/histogram/query-builder-histogram-chart.tsx
  • packages/ui/src/components/charts/index.ts
  • packages/ui/src/components/charts/line/latency-line-chart.tsx
  • packages/ui/src/components/charts/paths/paths-chart.tsx
  • packages/ui/src/components/charts/pie/query-builder-pie-chart.tsx
  • packages/ui/src/components/detail-rail.tsx
  • packages/ui/src/components/error-section.tsx
  • packages/ui/src/components/filters/filter-section.tsx
  • packages/ui/src/components/filters/filter-sidebar.tsx
  • packages/ui/src/components/filters/filter-styles.ts
  • packages/ui/src/components/filters/range-filter-section.tsx
  • packages/ui/src/components/http-status-code.tsx
  • packages/ui/src/components/icons/dots-vertical.tsx
  • packages/ui/src/components/icons/index.ts
  • packages/ui/src/components/logs/log-attribute-chip.tsx
  • packages/ui/src/components/logs/severity-badge.tsx
  • packages/ui/src/components/plot/bucket-axis.ts
  • packages/ui/src/components/plot/cursor-plot.tsx
  • packages/ui/src/components/plot/fixed-metrics.tsx
  • packages/ui/src/components/plot/index.ts
  • packages/ui/src/components/plot/plot-legend.tsx
  • packages/ui/src/components/plot/plot-tooltip.tsx
  • packages/ui/src/components/plot/sparkline.tsx
  • packages/ui/src/components/plot/theme.ts
  • packages/ui/src/components/plot/threshold-rules.ts
  • packages/ui/src/components/plot/timeseries.tsx
  • packages/ui/src/components/service-map/service-map-canvas.tsx
  • packages/ui/src/components/service-map/service-map-db.tsx
  • packages/ui/src/components/service-map/service-map-edge.tsx
  • packages/ui/src/components/service-map/service-map-namespace-group.tsx
  • packages/ui/src/components/service-map/service-map-node.tsx
  • packages/ui/src/components/service-map/service-map-utils.ts
  • packages/ui/src/components/toolbar.tsx
  • packages/ui/src/components/traces/color-by-picker.tsx
  • packages/ui/src/components/traces/flamegraph-minimap.tsx
  • packages/ui/src/components/traces/flamegraph.tsx
  • packages/ui/src/components/traces/flow-edge.tsx
  • packages/ui/src/components/traces/flow-node.tsx
  • packages/ui/src/components/traces/flow-view.tsx
  • packages/ui/src/components/traces/http-span-label.tsx
  • packages/ui/src/components/traces/span-hierarchy.tsx
  • packages/ui/src/components/traces/span-row.tsx
  • packages/ui/src/components/traces/span-tooltip.tsx
  • packages/ui/src/components/traces/trace-timeline-minimap.tsx
  • packages/ui/src/components/traces/trace-timeline-row.tsx
  • packages/ui/src/components/traces/trace-timeline-search.tsx
  • packages/ui/src/components/traces/trace-timeline-time-axis.tsx
  • packages/ui/src/components/traces/trace-timeline.tsx
  • packages/ui/src/components/ui/badge.tsx
  • packages/ui/src/components/ui/delta.tsx
  • packages/ui/src/components/ui/eyebrow.tsx
  • packages/ui/src/components/ui/filter-chip.tsx
  • packages/ui/src/components/ui/icon-button.tsx
  • packages/ui/src/components/ui/key-value.tsx
  • packages/ui/src/components/ui/list-row.tsx
  • packages/ui/src/components/ui/meter.tsx
  • packages/ui/src/components/ui/mini-bars.tsx
  • packages/ui/src/components/ui/panel.tsx
  • packages/ui/src/components/ui/refresh-button.tsx
  • packages/ui/src/components/ui/row-actions-menu.tsx
  • packages/ui/src/components/ui/sidebar.tsx
  • packages/ui/src/components/ui/table.tsx
  • packages/ui/src/lib/__tests__/format.test.ts
  • packages/ui/src/lib/colors.ts
  • packages/ui/src/lib/format.ts
  • packages/ui/src/lib/tone.ts
  • packages/ui/src/lib/utilization.ts
  • packages/ui/src/styles/tokens.css

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

service-map-node no longer exports its local copy. Also: the startup bundle
check lists every chunk with its source key when it is over budget.
@maple-review-bot

maple-review-bot Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Note

A newer push replaced 51cf6f7 before its review finished. The latest commit is reviewed in a new comment.

…s-pass-6

# Conflicts:
#	apps/web/src/components/integrations/github-integration-card.tsx
@maple-review-bot

maple-review-bot Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Note

A newer push replaced b2a56f7 before its review finished. The latest commit is reviewed in a new comment.

…s-pass-6

# Conflicts:
#	apps/web/src/components/code-review/code-review-analytics.tsx
#	apps/web/src/components/code-review/review-detail-sheet.tsx
@maple-review-bot

maple-review-bot Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Note

A newer push replaced 318c5ee before its review finished. The latest commit is reviewed in a new comment.

The org switcher sits in the persistent sidebar, so the dialog it opens was
startup code. Moving it to FieldError pulled Base UI's field validation in
and pushed initial JS to 695.4 KB against the 695 KB budget. It now loads
on first open, which also takes its form, radio group and dialog chunks
out of startup.
@maple-review-bot

maple-review-bot Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Maple review

🟡 Confidence 6/10 · needs attention
Only the shared primitives, layout shells, lib helpers and a few hooks were read; most of the ~500 migrated component files were not, and two reviewer groups ran out of budget.
quality 100/100 · no findings · tests partial · risk medium

Warning

This review ended early; what follows is what it established.

A large UI refactor: new shared primitives (ChartCard, DetailHeader, ResultPage, DashboardPage, FacetSelect, VirtualTableBody, SettingsSection), consolidated EMPTY_VALUE/token-fallback/utilization helpers, and the migration of several hundred web components onto them. No defect found in the diffs I read, but most of the 577 files went unread, so this is not a vouch for the whole change.

  • New app primitives: ChartCard, DetailHeader, ResultPage, DashboardPage, FacetSelect, VirtualTableBody
  • Scroll gains width/gap centring, and DashboardLayout.Tabs is added
  • formatPercent gains a floor option; EMPTY_VALUE replaces ad-hoc placeholders
  • useKeyedAsyncAction/useKeyedMutationAction add per-row pending state
What was checked
  • formatPercent's new floor branch and tokenFallback's --color- prefix stripping (packages/ui/src/lib/format.ts:97, colors.ts:258)
  • useKeyedAsyncAction rejection propagation via promise adoption and keyed cleanup (apps/web/src/hooks/use-mutation-action.ts:45)
  • Timezone date helpers return EMPTY_VALUE on unparseable input and cache formatters per tz (apps/web/src/lib/timezone-format.ts:151)
Files not reviewed (214)

The review ended before it read these diffs, so nothing above vouches for them.

  • apps/local-ui/src/components/service-map-panel.tsx
  • apps/web/perf/check-bundle-budget.ts
  • apps/web/src/components/account/account-section-skeleton.tsx
  • apps/web/src/components/account/email-addresses-section.browser.test.tsx
  • apps/web/src/components/account/two-factor-section.browser.test.tsx
  • apps/web/src/components/agent-sessions/agent-sessions-list.tsx
  • apps/web/src/components/agent-sessions/agent-sessions-toolbar.tsx
  • apps/web/src/components/agent-sessions/session-detail/payload-view.tsx
  • apps/web/src/components/agent-sessions/session-detail/session-checks.tsx
  • apps/web/src/components/agent-sessions/session-detail/session-flow.tsx
  • apps/web/src/components/agent-sessions/session-detail/session-header.tsx
  • apps/web/src/components/agent-sessions/session-detail/session-load-indicator.tsx
  • apps/web/src/components/agent-sessions/session-detail/session-overview.tsx
  • apps/web/src/components/agent-sessions/session-detail/session-transcript.tsx
  • apps/web/src/components/agent-sessions/session-detail/session-waterfall.tsx
  • apps/web/src/components/agent-sessions/session-detail/span-expansion.tsx
  • apps/web/src/components/agent-sessions/session-detail/span-popover.tsx
  • apps/web/src/components/agent-sessions/session-detail/tool-io.tsx
  • apps/web/src/components/agent-sessions/tools/agent-tools-view.browser.test.tsx
  • apps/web/src/components/ai-elements/entity-ref.tsx
  • apps/web/src/components/ai-elements/inline/inline-card.tsx
  • apps/web/src/components/ai-elements/inline/inline-log.tsx
  • apps/web/src/components/ai-elements/inline/inline-trace.tsx
  • apps/web/src/components/ai-elements/markdown-chart.tsx
  • apps/web/src/components/ai-elements/markdown-table.tsx
  • apps/web/src/components/ai-elements/renderers/components/data-table.tsx
  • apps/web/src/components/ai-elements/renderers/components/error-list.tsx
  • apps/web/src/components/ai-elements/renderers/components/log-list.tsx
  • apps/web/src/components/ai-elements/renderers/components/metrics-list.tsx
  • apps/web/src/components/ai-elements/renderers/components/query-chart.tsx
  • and 184 more

0084d92 · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.

@Makisuo
Makisuo merged commit 0796570 into main Oct 6, 2026
42 checks passed
@Makisuo
Makisuo deleted the refactor/ui-primitives-pass-6 branch October 6, 2026 23:35
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