Skip to content

fix(web): harden the UI against worst-case data - #1381

Merged
Makisuo merged 5 commits into
mainfrom
fix/break-ui-worst-case
Oct 10, 2026
Merged

Makisuo merged 5 commits into
mainfrom
fix/break-ui-worst-case

Conversation

@Makisuo

@Makisuo Makisuo commented Oct 10, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

A worst-case data pass over the whole web app: realistic long names, unbreakable emails and URLs, emoji and diacritic names, counts of 0, 1 and millions, NaN and Infinity, future timestamps, 60-deep traces, 390px widths and touch. Every surface was audited, then fixed area by area.

Wrong numbers

  • Host CPU% averaged every non-idle CPU state, so a fully busy host read about a seventh of its real load. It is now 1 - idle.
  • Workloads with the same name in different namespaces merged into one row. They now group by name, namespace and cluster.
  • The service map node and its detail panel disagreed under "All environments". Both now read one per-service aggregate, and the "Avg Latency" tile (which showed p50) is labelled P50.
  • Release comparisons printed "Infinity×", alert thresholds round-tripped as 7.000000000000001, AI tool tables comma-formatted UInt64 ids (losing precision), all-null chart series showed 0 stats, tiny conversion and error rates printed "0%".

Content you could not reach

  • Member and org lists stopped at the first page of 10; they now load more.
  • Pods and containers stopped at 50 with no pager; nodes, workloads and investigations were capped silently. They now page or say what was capped.
  • The log drawer could not scroll after expanding a large body; deep spans lost their names to unbounded indentation (now clamped, with an L{depth} marker).
  • Hover-only actions (filter include/exclude, copy, row menus, attribute mapping edit/delete) are now visible on touch.
  • Settings tables, the occurrences table and others used truncate inside nowrap cells where it does nothing, so the table widened and pushed actions off screen.

Shared primitives

  • MiddleTruncate (keeps the distinguishing tail of pod hashes, routes, paths, URLs), TruncatedCell, grapheme-safe initialsFrom.
  • formatDuration gains ns and day tiers, keeps the sign, rounds before choosing a unit and returns an em dash for NaN; formatNumber no longer prints "InfinityT"; byte formatters reach PB; uptime has <1m and year tiers; the replay clock rolls into hours; usage switches to TB.
  • ListFooter pluralizes ("1 log"), Badge caps at its container, Item actions wrap on narrow cards, the topbar breadcrumb stays on one line and truncates.

Dev-only lab

  • /lab/worst-case renders the affected components over worst-case fixtures behind a Demo data / Worst case toggle (?data=worst). It 404s in production like every other lab.

Not changed (needs a decision)

  • No length limits were added to stored schemas (API key, dashboard, widget names); existing rows would fail to decode. Input maxLength only on org rename.
  • system.filesystem.utilization may not carry a state attribute in real data, which would make host disk % always 0. Worth checking against live data; the query filter is unchanged apart from excluding pseudo filesystems.
  • The unused v1 session transcript endpoint still stops at 100 events (the web app uses the paged v2 endpoint).
  • Investigation verdict text still renders as plain text; rendering it as markdown is a product call.

Test plan

  • tsc for apps/web, packages/ui, packages/query-engine
  • oxlint and oxfmt on every changed file
  • Unit tests next to every changed file: packages/ui 40 files, query-engine 28, apps/web 99 (2,200 tests)
  • Browser component tests next to changed files: apps/web 78 files, packages/ui 26 (two tests updated: legend cell structure; the sessions-list title change was reverted to keep the tested behaviour)
  • Before/after screenshots of /lab/worst-case at 1280px and 390px
  • Full monorepo test suite and repo-wide typecheck (not run locally)
  • Spot-check members paging, infra pods paging and the service map against real data

🤖 Generated with Claude Code


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

…emitter

buildProject is an Effect in 0.4.0, so the Tinybird manifest is one too; the
generator scripts run it at their top. The generated manifest, ClickHouse
schema, insert mappings and local schema are byte-identical (6c40bbce).

A parity test renders the schema through effect-orm from the same definitions
and compares it with the emitter's snapshot. The one difference is real:
the emitter drops ENGINE_VER, so self-managed and local session_replays have
no version column on their ReplacingMergeTree.
A worst-case pass over every surface: long unbreakable names, emoji and
diacritic initials, 0/1/huge counts, NaN and Infinity, future timestamps,
deep traces, narrow widths and touch.

- Wrong numbers: host CPU% averaged non-idle states (read ~1/7 of real
  usage), workloads with one name merged across namespaces, the service map
  node and panel disagreed across environments, "Infinity×" release ratios,
  7.000000000000001% alert thresholds, UInt64 ids comma-formatted in AI
  tables, all-null series showing 0 stats.
- Unreachable content: Clerk member/org lists stopped at 10, pod and
  container lists at 50, nodes/workloads/investigations capped silently,
  log drawer unscrollable after expanding a big body, deep spans losing
  their names to the indent, hover-only actions invisible on touch.
- Shared primitives: MiddleTruncate, TruncatedCell, grapheme-safe
  initialsFrom; formatDuration gains ns/d tiers, sign and NaN handling;
  bytes reach PB; ListFooter pluralizes; Badge caps at its container; Item
  actions wrap on narrow cards; the topbar breadcrumb stays on one line.
- Dev-only /lab/worst-case renders the affected components over
  worst-case fixtures behind a Demo / Worst case toggle.
@coderabbitai

coderabbitai Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 188 files, which is 38 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.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 8a86514f-190f-41e6-864c-9df63046c4f2

📥 Commits

Reviewing files that changed from the base of the PR and between cce3e33 and 3097e5e.


📒 Files selected for processing (188)
  • apps/web/src/components/account/active-sessions-section.tsx
  • apps/web/src/components/account/email-addresses-section.tsx
  • apps/web/src/components/account/passkeys-section.tsx
  • apps/web/src/components/ai-elements/renderers/components/data-table-format.test.ts
  • apps/web/src/components/ai-elements/renderers/components/data-table-format.ts
  • apps/web/src/components/ai-elements/renderers/components/data-table.tsx
  • apps/web/src/components/ai-elements/renderers/components/log-list.tsx
  • apps/web/src/components/ai-elements/tool.tsx
  • apps/web/src/components/alerts/destination-dialog.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/rules-overview-table.tsx
  • apps/web/src/components/anomalies/anomaly-format.ts
  • apps/web/src/components/anomalies/anomaly-linked-issue-card.tsx
  • apps/web/src/components/anomalies/anomaly-row.tsx
  • apps/web/src/components/attributes/index.ts
  • apps/web/src/components/chat/chat-conversation.tsx
  • apps/web/src/components/chat/message-actions.tsx
  • apps/web/src/components/chat/turn-failure-notice.tsx
  • apps/web/src/components/code-review/author-avatar.tsx
  • apps/web/src/components/code-review/review-detail-sheet.tsx
  • apps/web/src/components/common/page-hero.tsx
  • apps/web/src/components/dashboard-builder/config/settings-fields.tsx
  • apps/web/src/components/dashboard-builder/inline-editable-title.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/inline-editable-text.tsx
  • apps/web/src/components/dashboard-builder/sections/section-tab-bar.tsx
  • apps/web/src/components/dashboard-builder/widgets/list-widget.tsx
  • apps/web/src/components/dashboard-builder/widgets/stat-widget.tsx
  • apps/web/src/components/dashboard-builder/widgets/types/breakdown.tsx
  • apps/web/src/components/dashboard-builder/widgets/types/table.tsx
  • apps/web/src/components/dashboard-builder/widgets/widget-shell.tsx
  • apps/web/src/components/dashboard/app-sidebar.tsx
  • apps/web/src/components/dashboard/org-switcher-menu.tsx
  • apps/web/src/components/dashboard/org-switcher.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/error-signal-row.tsx
  • apps/web/src/components/errors/issue-comment-composer.tsx
  • apps/web/src/components/errors/issue-culprit-panel.tsx
  • apps/web/src/components/errors/issue-occurrences-table.tsx
  • apps/web/src/components/errors/issue-sidebar.tsx
  • apps/web/src/components/errors/issue-timeline.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-breakdown-panel.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-kpi-cards.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-worker-table.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-zone-table.tsx
  • apps/web/src/components/infra/container-table.tsx
  • apps/web/src/components/infra/host-detail-chart.tsx
  • apps/web/src/components/infra/host-table.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.ts
  • apps/web/src/components/infra/planetscale/planetscale-activity-feed.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/infra-metric-chart.tsx
  • apps/web/src/components/infra/primitives/meta-line.tsx
  • apps/web/src/components/infra/primitives/offset-pager.tsx
  • apps/web/src/components/infra/railway/railway-service-table.tsx
  • apps/web/src/components/infra/workload-table.tsx
  • apps/web/src/components/ingest/connect-credentials.tsx
  • apps/web/src/components/ingest/guided-setup.tsx
  • apps/web/src/components/ingest/use-ingest-connection.ts
  • apps/web/src/components/integrations/chat-integration-card.tsx
  • apps/web/src/components/integrations/cloudflare-account-card.tsx
  • apps/web/src/components/integrations/github-integration-card.tsx
  • apps/web/src/components/integrations/hazel-integration-card.tsx
  • apps/web/src/components/integrations/planetscale-integration-card.tsx
  • apps/web/src/components/integrations/railway-integration-card.tsx
  • apps/web/src/components/investigations/investigation-table.tsx
  • apps/web/src/components/investigations/signals-card.tsx
  • apps/web/src/components/investigations/verdict-card.tsx
  • apps/web/src/components/layout/dashboard-layout.tsx
  • apps/web/src/components/logs/log-detail-sheet.tsx
  • apps/web/src/components/logs/log-hero-header.tsx
  • apps/web/src/components/logs/log-row-expanded.tsx
  • apps/web/src/components/logs/log-trace-timeline.tsx
  • apps/web/src/components/logs/logs-table.tsx
  • apps/web/src/components/logs/logs-volume-chart.tsx
  • apps/web/src/components/metrics/metric-detail.tsx
  • apps/web/src/components/metrics/metric-metadata-panel.tsx
  • apps/web/src/components/metrics/metric-preview-card.tsx
  • apps/web/src/components/metrics/metric-preview-grid.tsx
  • apps/web/src/components/metrics/metrics-table.tsx
  • apps/web/src/components/onboarding/onboarding-header-actions.tsx
  • apps/web/src/components/query-builder/where-clause-editor.tsx
  • apps/web/src/components/releases/release-changeset.tsx
  • apps/web/src/components/releases/release-detail-panels.tsx
  • apps/web/src/components/releases/releases-table.tsx
  • apps/web/src/components/replays/active-user-filter.tsx
  • apps/web/src/components/replays/replay-editor-timeline.tsx
  • apps/web/src/components/replays/replay-player-context.tsx
  • apps/web/src/components/replays/replay-player.tsx
  • apps/web/src/components/replays/session-detail-parts.tsx
  • apps/web/src/components/replays/session-events-panel.tsx
  • apps/web/src/components/replays/sessions-list.tsx
  • apps/web/src/components/service-map/service-map-view.tsx
  • apps/web/src/components/service-map/three/viewport.tsx
  • apps/web/src/components/services/dependency-table.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-operations-tab.tsx
  • apps/web/src/components/services/service-recent-deploys.tsx
  • apps/web/src/components/services/services-table.tsx
  • apps/web/src/components/settings/api-keys-section.tsx
  • apps/web/src/components/settings/attribute-mappings-section.tsx
  • apps/web/src/components/settings/audit-log-section.tsx
  • apps/web/src/components/settings/ingestion-section.tsx
  • apps/web/src/components/settings/members-section.tsx
  • apps/web/src/components/settings/organization-section.tsx
  • apps/web/src/components/settings/scrape-targets-section.tsx
  • apps/web/src/components/settings/setup-audit-section.tsx
  • apps/web/src/components/time-range-picker/recently-used.tsx
  • apps/web/src/components/time-range-picker/time-range-picker.tsx
  • apps/web/src/components/traces/span-detail-panel.tsx
  • apps/web/src/hooks/use-share-dashboard.ts
  • apps/web/src/lab/registry.ts
  • apps/web/src/lab/worst-case-docs.ts
  • apps/web/src/lab/worst-case-fixture.ts
  • apps/web/src/lab/worst-case-lab.tsx
  • apps/web/src/lab/worst-case-sections.tsx
  • apps/web/src/lab/worst-case-trace.ts
  • apps/web/src/lib/alerts/form-utils.test.ts
  • apps/web/src/lib/alerts/form-utils.ts
  • apps/web/src/lib/billing/usage.ts
  • apps/web/src/routeTree.gen.ts
  • apps/web/src/routes/alerts/$ruleId.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/infra/containers/index.tsx
  • apps/web/src/routes/infra/hosts/index.tsx
  • apps/web/src/routes/infra/kubernetes/nodes/index.tsx
  • apps/web/src/routes/infra/kubernetes/pods/index.tsx
  • apps/web/src/routes/infra/kubernetes/workloads/index.tsx
  • apps/web/src/routes/integrations.tsx
  • apps/web/src/routes/investigations/index.tsx
  • apps/web/src/routes/lab/worst-case.tsx
  • apps/web/src/routes/logs/$logId.tsx
  • apps/web/src/routes/mcp-authorize.tsx
  • apps/web/src/routes/releases/$commitSha.tsx
  • apps/web/src/routes/share/$token.tsx
  • apps/web/src/routes/traces/$traceId.tsx
  • packages/domain/src/format.ts
  • packages/query-engine/src/ch/queries/infra.test.ts
  • packages/query-engine/src/ch/queries/infra.ts
  • packages/ui/src/components/attributes/attributes-table.tsx
  • packages/ui/src/components/attributes/index.ts
  • packages/ui/src/components/charts/_shared/__tests__/query-builder-legend.browser.test.tsx
  • packages/ui/src/components/charts/_shared/query-builder-legend.tsx
  • packages/ui/src/components/charts/funnel/query-builder-funnel-chart.tsx
  • packages/ui/src/components/filters/filter-section.tsx
  • packages/ui/src/components/logs/log-attribute-chip.tsx
  • packages/ui/src/components/logs/severity-badge.tsx
  • packages/ui/src/components/logs/severity-label.test.ts
  • packages/ui/src/components/logs/strip-ansi.test.ts
  • packages/ui/src/components/logs/strip-ansi.ts
  • packages/ui/src/components/plot/__tests__/plot-tooltip.test.ts
  • packages/ui/src/components/plot/__tests__/series-stats.test.ts
  • packages/ui/src/components/plot/__tests__/timeseries.test.ts
  • packages/ui/src/components/plot/index.ts
  • packages/ui/src/components/plot/plot-tooltip.tsx
  • packages/ui/src/components/plot/series-stats.ts
  • packages/ui/src/components/plot/timeseries.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/traces/flow-view.tsx
  • packages/ui/src/components/traces/http-span-label.tsx
  • packages/ui/src/components/traces/span-row.tsx
  • packages/ui/src/components/traces/span-tooltip.tsx
  • packages/ui/src/components/traces/trace-timeline-row.tsx
  • packages/ui/src/components/ui/badge.tsx
  • packages/ui/src/components/ui/combobox.tsx
  • packages/ui/src/components/ui/item.tsx
  • packages/ui/src/components/ui/list-footer.tsx
  • packages/ui/src/components/ui/middle-truncate.tsx
  • packages/ui/src/components/ui/table.tsx
  • packages/ui/src/lib/__tests__/format.test.ts
  • packages/ui/src/lib/__tests__/replay-format.test.ts
  • packages/ui/src/lib/format.ts
  • packages/ui/src/lib/initials.test.ts
  • packages/ui/src/lib/initials.ts
  • packages/ui/src/lib/replay-format.ts

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

  • Autofix · 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.

@maple-review-bot

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

Copy link
Copy Markdown

Note

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

# Conflicts:
#	apps/api/package.json
#	apps/web/src/components/alerts/overview/active-incidents-table.tsx
#	apps/web/src/components/alerts/overview/rules-overview-table.tsx
#	apps/web/src/components/code-review/review-detail-sheet.tsx
#	apps/web/src/components/dashboard-builder/inline-editable-title.tsx
#	apps/web/src/components/dashboard-builder/widgets/stat-widget.tsx
#	apps/web/src/components/errors/error-signal-row.tsx
#	apps/web/src/components/infra/cloudflare/cloudflare-zone-table.tsx
#	apps/web/src/components/integrations/cloudflare-account-card.tsx
#	apps/web/src/components/logs/log-row-expanded.tsx
#	apps/web/src/components/logs/logs-table.tsx
#	apps/web/src/components/metrics/metric-detail.tsx
#	apps/web/src/components/metrics/metrics-table.tsx
#	apps/web/src/components/onboarding/onboarding-header-actions.tsx
#	apps/web/src/components/replays/replay-editor-timeline.tsx
#	apps/web/src/components/service-map/service-map-view.tsx
#	apps/web/src/components/services/service-api-tab.tsx
#	apps/web/src/components/services/service-operations-tab.tsx
#	apps/web/src/routes/code-review/issues.tsx
#	apps/web/src/routes/infra/containers/index.tsx
#	apps/web/src/routes/infra/kubernetes/nodes/index.tsx
#	apps/web/src/routes/infra/kubernetes/pods/index.tsx
#	apps/web/src/routes/infra/kubernetes/workloads/index.tsx
#	bun.lock
#	packages/backend/package.json
#	packages/domain/package.json
#	packages/query-engine-integrations/package.json
#	packages/query-engine/package.json
@maple-review-bot

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

Copy link
Copy Markdown

Maple review

🟡 Confidence 6/10 · needs attention
Held at 6 because 47 reviewed files were not read.
quality 100/100 · no findings · tests covered · risk medium · 47 files not read

Hardens ~90 web surfaces against worst-case data: truncation, paging, number formatting, plus host CPU% now 1 - idle and workload grouping by namespace and cluster. The hunks I read are consistent; about a third of the changed files went unread, and none of the ten listed error issues is addressed here.

  • Host CPU% is 1 - idle, not the mean of every non-idle state
  • Workloads group and key by name, namespace and cluster
  • MiddleTruncate/TruncatedCell/paged lists replace silent row caps
  • isIdentifierHeader/formatCell stop grouping UInt64 ids and unsafe integers

Before merge

  • Manual · Confirm against real data that system.filesystem.utilization carries state=used, or host disk % stays 0 after the new pseudo-filesystem filter

Production impact

Open errors in the changed files
Issue Service Occurrences File
@maple/api/vcs/VcsSourceRepositoryNotFoundError maple-ai 68 apps/web/src/lab/registry.ts
@maple/mcp/errors/McpQueryError maple-chat 42 apps/web/src/lab/registry.ts
@maple/mcp/errors/McpQueryError maple-chat 36 apps/web/src/lab/registry.ts
@maple/mcp/errors/McpQueryError maple-ai 18 apps/web/src/lab/registry.ts
@maple/api/vcs/GithubAppError maple-chat 14 apps/web/src/lab/registry.ts
@maple/http/errors/IntegrationsUpstreamError maple-chat 14 apps/web/src/lab/registry.ts
@maple/http/errors/IntegrationsUpstreamError maple-chat 11 apps/web/src/lab/registry.ts
@maple/mcp/errors/McpQueryError maple-ai 9 apps/web/src/lab/registry.ts
@maple/mcp/errors/McpQueryError maple-ai 9 apps/web/src/lab/registry.ts
@maple/mcp/errors/McpQueryError maple-chat 8 apps/web/src/lab/registry.ts

After this merges, Maple checks whether they stop.

What was checked
  • Host CPU is greatest(1 - avgIf(state='idle'), 0) with an ifNotFinite fallback, matching the 0–1 system.cpu.utilization scale
  • listWorkloadsQuery and the workload row keys both add namespace and cluster, so same-named workloads stop merging
  • /lab/worst-case 404s outside DEV, so no lab route ships live
Files not reviewed (47)

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

  • apps/web/src/components/ai-elements/renderers/components/data-table-format.test.ts
  • apps/web/src/components/dashboard/user-avatar.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-breakdown-panel.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-kpi-cards.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-worker-table.tsx
  • apps/web/src/components/infra/cloudflare/cloudflare-zone-table.tsx
  • apps/web/src/components/infra/host-detail-chart.tsx
  • apps/web/src/components/infra/planetscale/planetscale-activity-feed.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/primitives/infra-metric-chart.tsx
  • apps/web/src/components/infra/railway/railway-service-table.tsx
  • apps/web/src/components/investigations/investigation-table.tsx
  • apps/web/src/components/investigations/signals-card.tsx
  • apps/web/src/components/releases/release-changeset.tsx
  • apps/web/src/components/releases/releases-table.tsx
  • apps/web/src/components/services/service-api-tab.tsx
  • apps/web/src/components/services/service-operations-tab.tsx
  • apps/web/src/components/services/service-recent-deploys.tsx
  • apps/web/src/components/services/services-table.tsx
  • apps/web/src/components/settings/audit-log-section.tsx
  • apps/web/src/components/settings/organization-section.tsx
  • apps/web/src/components/settings/setup-audit-section.tsx
  • apps/web/src/components/time-range-picker/recently-used.tsx
  • apps/web/src/components/time-range-picker/time-range-picker.tsx
  • apps/web/src/lab/worst-case-docs.ts
  • apps/web/src/lab/worst-case-trace.ts
  • apps/web/src/lib/alerts/form-utils.test.ts
  • apps/web/src/routes/alerts/$ruleId.tsx
  • apps/web/src/routes/cli-login.tsx
  • and 17 more

3097e5e · 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 73a3fc6 into main Oct 10, 2026
42 checks passed
@Makisuo
Makisuo deleted the fix/break-ui-worst-case branch October 10, 2026 23:21
@maple-review-bot

Copy link
Copy Markdown

Merged with 1 step from "Before merge" still open. If it is done, tick it on the review comment; if not, now is the time.

  • Manual · Confirm against real data that system.filesystem.utilization carries state=used, or host disk % stays 0 after the new pseudo-filesystem filter

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