From 0537cc935b86824db40ca0c117894b67638e2d95 Mon Sep 17 00:00:00 2001 From: BigSimmo <87357024+BigSimmo@users.noreply.github.com> Date: Sat, 17 Oct 2026 23:06:56 +0800 Subject: [PATCH 01/18] fix(rag,worker): apply surgical RAG telemetry, attribution, comparator, and worker scope fixes --- src/components/DocumentViewer.tsx | 18 ++-- .../document-overview-landing.tsx | 4 +- src/lib/answer-verification.ts | 7 +- src/lib/rag/rag-answer-shape-checks.ts | 4 +- src/lib/rag/rag-answer-telemetry-metadata.ts | 5 ++ src/lib/rag/rag-extractive-builder.ts | 84 +++++++++++++------ src/lib/rag/rag-generation-degradation.ts | 45 ++++++++-- src/lib/rag/rag-original-section-delivery.ts | 16 ++-- .../rag/rag-source-bound-alcohol-summary.ts | 13 ++- src/lib/rag/rag.ts | 7 +- tests/answer-stream-preview-order.test.ts | 75 +++++++++++++++++ tests/answer-verification.test.ts | 80 ++++++++++++++++++ tests/rag-adversarial-harness.test.ts | 8 -- tests/rag-generation-degradation.test.ts | 69 +++++++++++++++ tests/rag-telemetry-canary-absence.test.ts | 31 +++++++ worker/behavior.ts | 75 +++++++++++++++++ worker/main.ts | 35 ++++++++ 17 files changed, 509 insertions(+), 67 deletions(-) diff --git a/src/components/DocumentViewer.tsx b/src/components/DocumentViewer.tsx index ce170038d7..9b1a44da7c 100644 --- a/src/components/DocumentViewer.tsx +++ b/src/components/DocumentViewer.tsx @@ -15,6 +15,7 @@ import { import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { documentDisplayTitle } from "@/components/DocumentOrganizationBadges"; import { ContextualBackLink } from "@/components/contextual-back-link"; +import { documentFileKind } from "@/components/clinical-dashboard/document-ui"; import { useActiveScrollOwner } from "@/components/clinical-dashboard/use-active-scroll-owner"; import { PhoneHeaderCollapsePortal } from "@/components/clinical-dashboard/phone-header-collapse-portal"; import { useDocumentViewerChromeScroll } from "@/components/clinical-dashboard/use-document-viewer-chrome-scroll"; @@ -1010,6 +1011,9 @@ export function DocumentViewer({ const generatedAnswerIsSummary = summaryQuery === documentSummaryQuestion; const storedSummaryText = document?.summary?.summary ?? null; const documentLabels = document?.labels; + const viewerFileKind = document?.file_type?.trim().toLowerCase().startsWith("text/plain") + ? "TXT" + : documentFileKind(document?.file_name, "PDF"); const formattedStoredSummary = useMemo(() => formatDocumentSummary(storedSummaryText), [storedSummaryText]); const summaryBadges = useMemo( () => buildDocumentSummaryBadges({ labels: documentLabels, summaryText: storedSummaryText }), @@ -1329,7 +1333,7 @@ export function DocumentViewer({ - Open original PDF + {`Open original ${viewerFileKind}`} ) : ( )} {canUseAdministrativeApis ? ( @@ -1473,7 +1477,7 @@ export function DocumentViewer({ src={previewFrameSource} controls={pdfFrameControls} {...(effectiveLoadingDocument - ? { state: "loading" as const, loadingLabel: "Preparing PDF preview" } + ? { state: "loading" as const, loadingLabel: `Preparing ${viewerFileKind} preview` } : effectiveViewerError || previewError ? { state: "error" as const, @@ -1485,7 +1489,7 @@ export function DocumentViewer({ effectiveLoadingDocument ? ( ) : undefined @@ -1495,7 +1499,7 @@ export function DocumentViewer({ {signedUrl ? ( ) : null} {downloadSignedUrl ? ( @@ -1510,7 +1514,7 @@ export function DocumentViewer({ ) : (