From 4cc442f5ee3b231b004e77ae1627e74b97a69303 Mon Sep 17 00:00:00 2001 From: moe-berri Date: Mon, 5 Oct 2026 18:23:50 -0700 Subject: [PATCH] feat(lens): show investigation names in findings table (#44753) --- .../investigations/FindingsView.integration.test.tsx | 7 +++++++ .../components/lens/investigations/FindingsView.tsx | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/ui/litellm-dashboard/src/components/lens/investigations/FindingsView.integration.test.tsx b/ui/litellm-dashboard/src/components/lens/investigations/FindingsView.integration.test.tsx index 4577a139531..2e3a6440a19 100644 --- a/ui/litellm-dashboard/src/components/lens/investigations/FindingsView.integration.test.tsx +++ b/ui/litellm-dashboard/src/components/lens/investigations/FindingsView.integration.test.tsx @@ -29,6 +29,12 @@ it("deduplicates findings across investigations and applies feedback to every so renderWithLens(, { searchParams: "?tab=findings", onUrlUpdate }); const rows = await screen.findAllByRole("row", { name: issue.title }); expect(rows).toHaveLength(1); + expect(screen.getByRole("columnheader", { name: "Investigation", exact: true })).toBeVisible(); + const investigations = `${support.settings.name}, ${twin.settings.name}`; + expect(within(rows[0]).getByRole("cell", { name: investigations, exact: true })).toHaveAttribute( + "title", + investigations, + ); expect(within(rows[0]).getByRole("cell", { name: "2", exact: true })).toBeVisible(); await user.click(rows[0]); const panel = await screen.findByRole("complementary", { name: "Finding details" }); @@ -101,6 +107,7 @@ it("reviews only the selected check when two findings have the same title", asyn renderWithLens(, { searchParams: "?tab=findings" }); const rows = await screen.findAllByRole("row", { name: issue.title }); expect(rows).toHaveLength(2); + expect(within(rows[0]).getByRole("cell", { name: support.settings.name, exact: true })).toBeVisible(); await user.click(rows[0]); await user.click(await screen.findByRole("button", { name: "Mark resolved" })); await waitFor(() => expect(proxy.patch).toHaveBeenCalledTimes(1)); diff --git a/ui/litellm-dashboard/src/components/lens/investigations/FindingsView.tsx b/ui/litellm-dashboard/src/components/lens/investigations/FindingsView.tsx index 2f261da73e5..bf417042264 100644 --- a/ui/litellm-dashboard/src/components/lens/investigations/FindingsView.tsx +++ b/ui/litellm-dashboard/src/components/lens/investigations/FindingsView.tsx @@ -37,6 +37,15 @@ const PRIORITIES: { value: Priority | "all"; label: string }[] = [ { value: "low", label: "Low" }, ]; +function InvestigationCell({ sources }: Pick) { + const names = [...new Set(sources.map(({ lens }) => lens.settings.name))].join(", "); + return ( + + {names} + + ); +} + function FilterSelect({ label, value, @@ -167,6 +176,7 @@ export function FindingsView({ readOnly = false }: { readOnly?: boolean }) { Priority Finding + Investigation Agent Runs Last seen @@ -200,6 +210,7 @@ export function FindingsView({ readOnly = false }: { readOnly?: boolean }) { {row.agents.join(", ")} ยท {row.runs} {row.runs === 1 ? "run" : "runs"} +