From d15210cd3da79f9a1a495a6309d912d76362a046 Mon Sep 17 00:00:00 2001 From: Tristan Knight Date: Mon, 28 Sep 2026 00:23:29 +0100 Subject: [PATCH] fix(web): prevent usage summary shift for unpriced records (#13991) --- apps/web/src/components/usage/UsagePage.tsx | 34 ++++++++++++++++----- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/apps/web/src/components/usage/UsagePage.tsx b/apps/web/src/components/usage/UsagePage.tsx index 3ced333c963329c803c422bb88b9cbb0bcf04b88..f77963ebac773ac2e99f0edd64788d3e634d04e3 100644 --- a/apps/web/src/components/usage/UsagePage.tsx +++ b/apps/web/src/components/usage/UsagePage.tsx @@ -10,6 +10,7 @@ import { CircleAlertIcon, ChevronDownIcon, CircleDashedIcon, + InfoIcon, SlidersHorizontalIcon, } from "lucide-react"; import { useEffect, useEffectEvent, useMemo, useRef, useState } from "react"; @@ -64,6 +65,7 @@ import { SidebarInset } from "../ui/sidebar"; import { Skeleton } from "../ui/skeleton"; import { Toggle, ToggleGroup } from "../ui/toggle-group"; import { Tooltip, TooltipPopup, TooltipTrigger } from "../ui/tooltip"; +import { Popover, PopoverPopup, PopoverTrigger } from "../ui/popover"; import { WorkspaceBreadcrumb, WorkspaceBreadcrumbItem, @@ -486,13 +488,31 @@ export function UsagePage() { : formatTokens(merged.totalTokens)} - {metric !== "cost" - ? `${formatCount(merged.sessions)} sessions` - : merged.costQuality.unpricedShare > 0 - ? `${formatCount(merged.sessions)} sessions · API estimate excludes ${formatPercent( - merged.costQuality.unpricedShare, - )} unpriced records` - : `${formatCount(merged.sessions)} sessions · API estimate`} + {formatCount(merged.sessions)} sessions + {metric === "cost" && ( + <> + {" · API estimate"} + {merged.costQuality.unpricedShare > 0 && ( + <> + {" "} + + } + aria-label="Unpriced usage details" + > + + + + API estimate excludes{" "} + {formatPercent(merged.costQuality.unpricedShare)} unpriced + records. + + + + )} + + )} -- 2.54.0