From 32b921ccf8d1aaee4dbcd4d8a447d35860ad5897 Mon Sep 17 00:00:00 2001 From: iza <59828082+izadoesdev@users.noreply.github.com> Date: Tue, 8 Sep 2026 23:55:54 +0300 Subject: [PATCH 1/3] feat(insights): retain supplied business context on investigations --- .../app/(main)/insights/[id]/page.tsx | 3 + .../_components/context-used.test.tsx | 107 +++++++++++++ .../insights/_components/context-used.tsx | 121 ++++++++++++++ apps/insights/src/agent.ts | 25 +-- .../src/business-context-generation.test.ts | 38 +++++ .../src/business-context.integration.test.ts | 151 ++++++++++++++++-- apps/insights/src/business-context.test.ts | 83 +++++++--- apps/insights/src/business-context.ts | 24 +++ apps/insights/src/generation-sources.test.ts | 60 +++++++ apps/insights/src/generation.ts | 6 +- apps/insights/src/investigation-flow.test.ts | 44 +++++ apps/insights/src/resume.ts | 10 +- packages/ai/src/lib/business-context.ts | 42 ++--- packages/shared/src/insights.test.ts | 56 +++++++ packages/shared/src/insights.ts | 43 ++++- 15 files changed, 733 insertions(+), 80 deletions(-) create mode 100644 apps/dashboard/app/(main)/insights/_components/context-used.test.tsx create mode 100644 apps/dashboard/app/(main)/insights/_components/context-used.tsx diff --git a/apps/dashboard/app/(main)/insights/[id]/page.tsx b/apps/dashboard/app/(main)/insights/[id]/page.tsx index bd70ae4fe7..5ee5b393bd 100644 --- a/apps/dashboard/app/(main)/insights/[id]/page.tsx +++ b/apps/dashboard/app/(main)/insights/[id]/page.tsx @@ -30,6 +30,7 @@ import { StatusDot, Textarea, } from "@databuddy/ui"; +import { ContextUsed } from "../_components/context-used"; import { ExecuteDefinitionAction } from "../_components/investigation-row"; type TimelineItem = InsightByIdResponse["timeline"][number]; @@ -471,6 +472,8 @@ function InvestigationActivity({ } /> + + unsafe()", + observedAt: "2026-09-08T11:00:00Z", + profileVersion: { revision: 3, updatedAt: "2026-09-08T11:00:00Z" }, + references: [ + { title: "Report guide", url: "https://example.com/reports" }, + ], + }, + ], +}; + +describe("Context used disclosure", () => { + it("shows supplied text and revision without claiming fact-to-claim attribution", () => { + const html = renderToStaticMarkup(); + expect(html).toContain("Context used"); + expect(html).toContain('aria-expanded="false"'); + expect(html).toContain("Business context supplied to the model"); + expect(html).toContain( + "does not identify which facts influenced individual claims" + ); + expect(html).toContain("Revision 3"); + expect(html).toContain('dateTime="2026-09-08T11:00:00Z"'); + expect(html).toContain('href="https://example.com/reports"'); + expect(html).toContain("Report guide"); + expect(html).toContain("Preparation starts a draft."); + expect(html).not.toContain("