From 10260da169814e9448f3bbbc1a1c7242ea5dc524 Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Sat, 3 Oct 2026 17:41:20 -0700 Subject: [PATCH] fix(lens): split live conclusions into issues and patterns A check could show up twice with the same label, once as an issue and once as a pattern. --- .../investigations/live/ConclusionsPanel.tsx | 45 +++++++++++++++++-- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/ui/litellm-dashboard/src/components/lens/investigations/live/ConclusionsPanel.tsx b/ui/litellm-dashboard/src/components/lens/investigations/live/ConclusionsPanel.tsx index 4c00863141b..1b620f2eb6b 100644 --- a/ui/litellm-dashboard/src/components/lens/investigations/live/ConclusionsPanel.tsx +++ b/ui/litellm-dashboard/src/components/lens/investigations/live/ConclusionsPanel.tsx @@ -39,7 +39,47 @@ export function ConclusionsPanel({ if (!groups.length) return

Nothing concluded yet.

; return (
-
    + {SECTIONS.map(({ issue, title }) => ( + group.issue === issue)} + total={total} + selected={selected} + flashing={flashing} + onSelect={onSelect} + /> + ))} + {scope &&

    {scope}

    } +
+ ); +} + +const SECTIONS = [ + { issue: true, title: "Issues" }, + { issue: false, title: "Patterns" }, +] as const; + +function GroupList({ + title, + groups, + total, + selected, + flashing, + onSelect, +}: { + title: string; + groups: readonly Conclusion[]; + total: number; + selected: string | null; + flashing: ReadonlySet; + onSelect: (key: string | null) => void; +}) { + if (!groups.length) return null; + return ( + <> +

{title}

+
    {groups.map((group) => { const active = selected === group.key; return ( @@ -84,7 +124,6 @@ export function ConclusionsPanel({ ); })}
- {scope &&

{scope}

} - + ); }