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("