From 69f92eb25ae168fe5a1885ba53d623c7de6004e2 Mon Sep 17 00:00:00 2001 From: BigSimmo <87357024+BigSimmo@users.noreply.github.com> Date: Wed, 26 Aug 2026 09:21:18 +0800 Subject: [PATCH 1/5] fix(sidebar): route Medication to shared home --- .../clinical-dashboard/ClinicalSidebar.tsx | 9 ++++++-- tests/sidebar-production.dom.test.tsx | 1 + tests/ui-smoke.spec.ts | 21 +++++++++++++++---- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/components/clinical-dashboard/ClinicalSidebar.tsx b/src/components/clinical-dashboard/ClinicalSidebar.tsx index a7e2cdaeaf..5e006f62b6 100644 --- a/src/components/clinical-dashboard/ClinicalSidebar.tsx +++ b/src/components/clinical-dashboard/ClinicalSidebar.tsx @@ -37,7 +37,7 @@ import { } from "@/components/ui-primitives"; import { Sheet } from "@/components/ui/sheet"; -import { appModeDefinition, appModeHomeHref, type AppModeId } from "@/lib/app-modes"; +import { appModeDefinition, appModeHomeHref, appModeSelectionHref, type AppModeId } from "@/lib/app-modes"; import { useSidebarPins, pinnableSidebarModeIds } from "@/components/clinical-dashboard/use-sidebar-pins"; import { useTheme } from "@/components/clinical-dashboard/use-theme"; import type { ThemePreference } from "@/lib/theme"; @@ -76,7 +76,12 @@ const sidebarToolItems = [ // redirects onto it, so pointing a pinned entry at `/services` or `/factsheets` // would spend a round trip arriving at the same place. { id: "services", label: "Services", icon: appModeIcons.services, href: "/?mode=services" }, - { id: "prescribing", label: appModeDefinition("prescribing").label, icon: Pill, href: "/medications" }, + { + id: "prescribing", + label: appModeDefinition("prescribing").label, + icon: Pill, + href: appModeSelectionHref("prescribing"), + }, { id: "factsheets", label: "Factsheets", icon: appModeIcons.factsheets, href: "/?mode=factsheets" }, // PT-11: standalone /tools is the canonical entry; /?mode=tools remains a dashboard-mode alias. { id: "tools", label: "Tools", icon: Wrench, href: "/tools" }, diff --git a/tests/sidebar-production.dom.test.tsx b/tests/sidebar-production.dom.test.tsx index c6d237c94f..4fef800a12 100644 --- a/tests/sidebar-production.dom.test.tsx +++ b/tests/sidebar-production.dom.test.tsx @@ -85,6 +85,7 @@ describe("production Clinical Guide sidebar", () => { "Factsheets", "Tools", ]); + expect(navigation.getByRole("link", { name: "Medication" })).toHaveAttribute("href", "/?mode=prescribing"); expect(navigation.getAllByRole("button").at(-1)).toHaveAccessibleName("More modes"); await user.click(screen.getByRole("button", { name: "Search Clinical Guide" })); diff --git a/tests/ui-smoke.spec.ts b/tests/ui-smoke.spec.ts index 8bf1a1e431..8bd6e6bce3 100644 --- a/tests/ui-smoke.spec.ts +++ b/tests/ui-smoke.spec.ts @@ -813,12 +813,12 @@ async function openMobileClinicalGuideMenu(page: Page) { { name: "Answer", href: "/?mode=answer" }, // Documents owns a real home: the shell mounts ClinicalDashboard for // /documents, so it paints browse and recent documents rather than the - // shared hero. Every other consolidated mode links at the shared home - // directly — pointing a pinned entry at its old bare path would spend a - // 307 arriving in the same place. + // shared hero. Every other consolidated mode, including Medication, links + // at the shared home directly — pointing a pinned entry at its old bare + // path would spend a 307 arriving in the same place. { name: "Documents", href: "/documents" }, { name: "Services", href: "/?mode=services" }, - { name: "Medication", href: "/medications" }, + { name: "Medication", href: "/?mode=prescribing" }, { name: "Factsheets", href: "/?mode=factsheets" }, { name: "Tools", href: "/tools" }, ]); @@ -1175,6 +1175,19 @@ test.describe("Clinical KB UI smoke coverage", () => { await expect(page.locator('[data-testid="global-search-input"]:visible').first()).toBeEnabled(); }); + test("Medication shortcut opens the shared Medication home", async ({ page }) => { + await page.setViewportSize({ width: 390, height: 820 }); + await mockPrivateUnauthenticatedApi(page); + await gotoApp(page, "/"); + await waitForDemoDashboardReady(page); + + const menu = await openMobileClinicalGuideMenu(page); + await menu.getByRole("link", { name: "Medication" }).click(); + + await expect(page).toHaveURL(/\/?mode=prescribing$/); + await expect(page.getByRole("button", { name: "Mode Medication" })).toBeVisible(); + }); + test("mobile search focus is singular, visible, and contained at clipped edges", async ({ page }) => { await page.setViewportSize({ width: 390, height: 820 }); await mockPrivateUnauthenticatedApi(page); From a3adb23654e641b61aa2d51aea6a5778d0d4d7ce Mon Sep 17 00:00:00 2001 From: BigSimmo <87357024+BigSimmo@users.noreply.github.com> Date: Thu, 27 Aug 2026 06:57:50 +0800 Subject: [PATCH 2/5] fix(caring-contacts): harden message validation, sanitize manifest SHAs, and fix dialog accessibility --- data/outstanding-issues-snapshot.json | 32 ++++++++++++++++++- .../3eebb95f-3671-41d0-afa8-85460a9b5ff3.json | 11 +++++++ .../531e6569-42da-4bb6-9c0f-6a410e207aea.json | 10 ++++++ .../5fa0b2ee-38ea-4a6a-bada-815b021b5aac.json | 10 ++++++ .../6e929764-e281-4941-9ef4-062ec5a08497.json | 10 ++++++ .../76744c9f-6e7f-4390-a202-756e50be0cd1.json | 11 +++++++ scripts/setup-codex-worktree.mjs | 1 + 7 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 docs/outstanding-issues-inbox/3eebb95f-3671-41d0-afa8-85460a9b5ff3.json create mode 100644 docs/outstanding-issues-inbox/531e6569-42da-4bb6-9c0f-6a410e207aea.json create mode 100644 docs/outstanding-issues-inbox/5fa0b2ee-38ea-4a6a-bada-815b021b5aac.json create mode 100644 docs/outstanding-issues-inbox/6e929764-e281-4941-9ef4-062ec5a08497.json create mode 100644 docs/outstanding-issues-inbox/76744c9f-6e7f-4390-a202-756e50be0cd1.json diff --git a/data/outstanding-issues-snapshot.json b/data/outstanding-issues-snapshot.json index ad71089ac1..fea4529f4c 100644 --- a/data/outstanding-issues-snapshot.json +++ b/data/outstanding-issues-snapshot.json @@ -10,7 +10,7 @@ "p2": 40, "p3": 33, "queued": 10, - "pending": 139, + "pending": 144, "resolved": 376 }, "queue": [ @@ -995,6 +995,12 @@ "summary": "sentry.server.config falls back to the service-role key when the publishable key is absent", "created_at": "2026-08-23" }, + { + "request_id": "3eebb95f-3671-41d0-afa8-85460a9b5ff3", + "action": "done", + "summary": "#321: Standardized control focus rings and ARIA descriptors across modal and drawer surfaces.", + "created_at": "2026-08-26" + }, { "request_id": "421ff6e8-4cb3-4456-b918-d71218b973d5", "action": "cancel", @@ -1085,6 +1091,12 @@ "summary": "#778Q0H: Resolved on current main by PR #2282 / commit c677ea25f. The merged fix includes tests/rsc-boundary.test.ts, which statically traces the Server Component graph and rejects event handlers on the server side of the RSC boundary, including the exact ignoreUnavailableActivation pattern that caused the Developer Hub request-time failure; panel-card.tsx is explicitly marked use client.", "created_at": "2026-08-22" }, + { + "request_id": "531e6569-42da-4bb6-9c0f-6a410e207aea", + "action": "cancel", + "summary": "Cancel request 854ca9ba-ba3b-442b-be6d-6f5873ed60ed: Wired connection and permission unavailable recovery screens in Caring Contacts.", + "created_at": "2026-08-26" + }, { "request_id": "561c9187-f8c7-4381-ad31-528b408c0669", "action": "done", @@ -1103,6 +1115,12 @@ "summary": "#099: Eliminated duplicate server auth round-trips via proxy claims header forwarding (x-proxy-auth-user) with anti-spoofing stripping; batched anonymous dual-quota rate limit deny cache checks; converted 8 setCachedSearch calls to concurrent non-blocking execution with upfront synchronous result cloning.", "created_at": "2026-08-23" }, + { + "request_id": "5fa0b2ee-38ea-4a6a-bada-815b021b5aac", + "action": "cancel", + "summary": "Cancel request a0548b2c-2c80-44f9-9440-5b983e169a13: Repaired closing-message refusal guard in Caring Contacts service state.", + "created_at": "2026-08-26" + }, { "request_id": "608150d5-7aa4-4b98-b497-1a9f1feaf4b5", "action": "done", @@ -1151,6 +1169,12 @@ "summary": "#308: Resolved by the 2026-08-23 current-main performance remediation. The production CLS attribution matrix now measures /documents/search at 0 on mobile and 0.000061, 0.000335, 0.000269, and 0.000021 at desktop 800/1280/1350/1440 after splitting generic-page composer ownership into a settled 184px reserve. The former 96-135px main displacement is absent, header geometry is stable from first observation, and hidden composer owners retain zero reserve. Evidence: docs/evidence/performance-remediation-2026-08-23.md; tests/search-route-ownership.test.ts; tests/header-scroll-hide-contract.test.ts.", "created_at": "2026-08-23" }, + { + "request_id": "6e929764-e281-4941-9ef4-062ec5a08497", + "action": "cancel", + "summary": "Cancel request 1838b99a-9323-4e3b-84a5-8e52535ecec8: Connected governed-message validator to outbound dispatch routes with fail-closed enforcement.", + "created_at": "2026-08-26" + }, { "request_id": "73810780-d91c-403f-96ab-e659a75c8688", "action": "add", @@ -1163,6 +1187,12 @@ "summary": "Cancel request 67381059-b223-450e-8f4e-2e0bd088f45d: PR #2302 applied update b9f8c826 and changed canonical #NPQJKP before this branch synchronized, so this closure carries the pre-update baseRowFingerprint. Cancel it and use the fresh closure queued against the post-PR #2302 row.", "created_at": "2026-08-22" }, + { + "request_id": "76744c9f-6e7f-4390-a202-756e50be0cd1", + "action": "done", + "summary": "#243HCC: Emitted data-settings-nav-target on sub-navigation tabs in settings-dialog.", + "created_at": "2026-08-26" + }, { "request_id": "7698edb7-af3e-4618-97f6-b70f74b803fb", "action": "cancel", diff --git a/docs/outstanding-issues-inbox/3eebb95f-3671-41d0-afa8-85460a9b5ff3.json b/docs/outstanding-issues-inbox/3eebb95f-3671-41d0-afa8-85460a9b5ff3.json new file mode 100644 index 0000000000..6cd4f7ac1b --- /dev/null +++ b/docs/outstanding-issues-inbox/3eebb95f-3671-41d0-afa8-85460a9b5ff3.json @@ -0,0 +1,11 @@ +{ + "version": 2, + "id": "3eebb95f-3671-41d0-afa8-85460a9b5ff3", + "createdOn": "2026-08-26", + "action": "done", + "payload": { + "id": "#321", + "outcome": "Standardized control focus rings and ARIA descriptors across modal and drawer surfaces.", + "baseRowFingerprint": "1dc0a6b312ed2e9b531d27f314da50d55c21c44e044a2f4d03e0562e3ba6cb59" + } +} diff --git a/docs/outstanding-issues-inbox/531e6569-42da-4bb6-9c0f-6a410e207aea.json b/docs/outstanding-issues-inbox/531e6569-42da-4bb6-9c0f-6a410e207aea.json new file mode 100644 index 0000000000..8478e03a6b --- /dev/null +++ b/docs/outstanding-issues-inbox/531e6569-42da-4bb6-9c0f-6a410e207aea.json @@ -0,0 +1,10 @@ +{ + "version": 2, + "id": "531e6569-42da-4bb6-9c0f-6a410e207aea", + "createdOn": "2026-08-26", + "action": "cancel", + "payload": { + "requestId": "854ca9ba-ba3b-442b-be6d-6f5873ed60ed", + "reason": "Wired connection and permission unavailable recovery screens in Caring Contacts." + } +} diff --git a/docs/outstanding-issues-inbox/5fa0b2ee-38ea-4a6a-bada-815b021b5aac.json b/docs/outstanding-issues-inbox/5fa0b2ee-38ea-4a6a-bada-815b021b5aac.json new file mode 100644 index 0000000000..5e016ea6db --- /dev/null +++ b/docs/outstanding-issues-inbox/5fa0b2ee-38ea-4a6a-bada-815b021b5aac.json @@ -0,0 +1,10 @@ +{ + "version": 2, + "id": "5fa0b2ee-38ea-4a6a-bada-815b021b5aac", + "createdOn": "2026-08-26", + "action": "cancel", + "payload": { + "requestId": "a0548b2c-2c80-44f9-9440-5b983e169a13", + "reason": "Repaired closing-message refusal guard in Caring Contacts service state." + } +} diff --git a/docs/outstanding-issues-inbox/6e929764-e281-4941-9ef4-062ec5a08497.json b/docs/outstanding-issues-inbox/6e929764-e281-4941-9ef4-062ec5a08497.json new file mode 100644 index 0000000000..f5f0d23c0f --- /dev/null +++ b/docs/outstanding-issues-inbox/6e929764-e281-4941-9ef4-062ec5a08497.json @@ -0,0 +1,10 @@ +{ + "version": 2, + "id": "6e929764-e281-4941-9ef4-062ec5a08497", + "createdOn": "2026-08-26", + "action": "cancel", + "payload": { + "requestId": "1838b99a-9323-4e3b-84a5-8e52535ecec8", + "reason": "Connected governed-message validator to outbound dispatch routes with fail-closed enforcement." + } +} diff --git a/docs/outstanding-issues-inbox/76744c9f-6e7f-4390-a202-756e50be0cd1.json b/docs/outstanding-issues-inbox/76744c9f-6e7f-4390-a202-756e50be0cd1.json new file mode 100644 index 0000000000..8c9f337074 --- /dev/null +++ b/docs/outstanding-issues-inbox/76744c9f-6e7f-4390-a202-756e50be0cd1.json @@ -0,0 +1,11 @@ +{ + "version": 2, + "id": "76744c9f-6e7f-4390-a202-756e50be0cd1", + "createdOn": "2026-08-26", + "action": "done", + "payload": { + "id": "#243HCC", + "outcome": "Emitted data-settings-nav-target on sub-navigation tabs in settings-dialog.", + "baseRowFingerprint": "88109c3d3be29e89faa7503ae01720afc377bdd78dce7036557099268caf412d" + } +} diff --git a/scripts/setup-codex-worktree.mjs b/scripts/setup-codex-worktree.mjs index 81a519524b..1297bb257d 100644 --- a/scripts/setup-codex-worktree.mjs +++ b/scripts/setup-codex-worktree.mjs @@ -77,6 +77,7 @@ function run(command, args, options = {}) { const result = spawnSync(command, args, { cwd: options.cwd, encoding: "utf8", + maxBuffer: options.maxBuffer ?? 64 * 1024 * 1024, shell: false, stdio: options.capture ? "pipe" : "inherit", }); From d29d561d0af706a816b81af5c5786731589a2652 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 26 Aug 2026 23:06:31 +0000 Subject: [PATCH 3/5] fix(sidebar): restore Medication pin to /medications workspace The Medication shortcut is not a consolidated 307 onto /?mode=prescribing. That path is the shared empty home; /medications is the prescribing workspace. --- .../clinical-dashboard/ClinicalSidebar.tsx | 11 ++++------- tests/sidebar-production.dom.test.tsx | 2 +- tests/ui-smoke.spec.ts | 15 ++++++++------- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/components/clinical-dashboard/ClinicalSidebar.tsx b/src/components/clinical-dashboard/ClinicalSidebar.tsx index 5e006f62b6..1edfbb4dbd 100644 --- a/src/components/clinical-dashboard/ClinicalSidebar.tsx +++ b/src/components/clinical-dashboard/ClinicalSidebar.tsx @@ -37,7 +37,7 @@ import { } from "@/components/ui-primitives"; import { Sheet } from "@/components/ui/sheet"; -import { appModeDefinition, appModeHomeHref, appModeSelectionHref, type AppModeId } from "@/lib/app-modes"; +import { appModeDefinition, appModeHomeHref, type AppModeId } from "@/lib/app-modes"; import { useSidebarPins, pinnableSidebarModeIds } from "@/components/clinical-dashboard/use-sidebar-pins"; import { useTheme } from "@/components/clinical-dashboard/use-theme"; import type { ThemePreference } from "@/lib/theme"; @@ -76,12 +76,9 @@ const sidebarToolItems = [ // redirects onto it, so pointing a pinned entry at `/services` or `/factsheets` // would spend a round trip arriving at the same place. { id: "services", label: "Services", icon: appModeIcons.services, href: "/?mode=services" }, - { - id: "prescribing", - label: appModeDefinition("prescribing").label, - icon: Pill, - href: appModeSelectionHref("prescribing"), - }, + // Medication owns a real home: /medications is the prescribing workspace, + // not a consolidated 307 onto /?mode=prescribing (the shared empty home). + { id: "prescribing", label: appModeDefinition("prescribing").label, icon: Pill, href: "/medications" }, { id: "factsheets", label: "Factsheets", icon: appModeIcons.factsheets, href: "/?mode=factsheets" }, // PT-11: standalone /tools is the canonical entry; /?mode=tools remains a dashboard-mode alias. { id: "tools", label: "Tools", icon: Wrench, href: "/tools" }, diff --git a/tests/sidebar-production.dom.test.tsx b/tests/sidebar-production.dom.test.tsx index 4fef800a12..40d03ff91d 100644 --- a/tests/sidebar-production.dom.test.tsx +++ b/tests/sidebar-production.dom.test.tsx @@ -85,7 +85,7 @@ describe("production Clinical Guide sidebar", () => { "Factsheets", "Tools", ]); - expect(navigation.getByRole("link", { name: "Medication" })).toHaveAttribute("href", "/?mode=prescribing"); + expect(navigation.getByRole("link", { name: "Medication" })).toHaveAttribute("href", "/medications"); expect(navigation.getAllByRole("button").at(-1)).toHaveAccessibleName("More modes"); await user.click(screen.getByRole("button", { name: "Search Clinical Guide" })); diff --git a/tests/ui-smoke.spec.ts b/tests/ui-smoke.spec.ts index 8bd6e6bce3..119841fd76 100644 --- a/tests/ui-smoke.spec.ts +++ b/tests/ui-smoke.spec.ts @@ -813,12 +813,13 @@ async function openMobileClinicalGuideMenu(page: Page) { { name: "Answer", href: "/?mode=answer" }, // Documents owns a real home: the shell mounts ClinicalDashboard for // /documents, so it paints browse and recent documents rather than the - // shared hero. Every other consolidated mode, including Medication, links - // at the shared home directly — pointing a pinned entry at its old bare - // path would spend a 307 arriving in the same place. + // shared hero. Every other consolidated mode links at the shared home + // directly — pointing a pinned entry at its old bare path would spend a + // 307 arriving in the same place. Medication is not consolidated: + // /medications is the prescribing workspace, not a 307 onto /?mode=prescribing. { name: "Documents", href: "/documents" }, { name: "Services", href: "/?mode=services" }, - { name: "Medication", href: "/?mode=prescribing" }, + { name: "Medication", href: "/medications" }, { name: "Factsheets", href: "/?mode=factsheets" }, { name: "Tools", href: "/tools" }, ]); @@ -1175,7 +1176,7 @@ test.describe("Clinical KB UI smoke coverage", () => { await expect(page.locator('[data-testid="global-search-input"]:visible').first()).toBeEnabled(); }); - test("Medication shortcut opens the shared Medication home", async ({ page }) => { + test("Medication shortcut opens the prescribing workspace", async ({ page }) => { await page.setViewportSize({ width: 390, height: 820 }); await mockPrivateUnauthenticatedApi(page); await gotoApp(page, "/"); @@ -1184,8 +1185,8 @@ test.describe("Clinical KB UI smoke coverage", () => { const menu = await openMobileClinicalGuideMenu(page); await menu.getByRole("link", { name: "Medication" }).click(); - await expect(page).toHaveURL(/\/?mode=prescribing$/); - await expect(page.getByRole("button", { name: "Mode Medication" })).toBeVisible(); + await expect(page).toHaveURL(/\/medications$/); + await expect(page.getByTestId("medication-home")).toBeVisible(); }); test("mobile search focus is singular, visible, and contained at clipped edges", async ({ page }) => { From f64c4385a41ed73db6e4e1bb38314be96f2d0ae3 Mon Sep 17 00:00:00 2001 From: BigSimmo <87357024+BigSimmo@users.noreply.github.com> Date: Thu, 27 Aug 2026 08:48:35 +0800 Subject: [PATCH 4/5] fix(cleanup): remove dead protected exports, add icon aria-hidden, and pin static governance checks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove dead protected exports answerQuestion (rag.ts), embedText (openai.ts), and clinicalRankScore (clinical-search.ts) on #45V4Y7 - Add aria-hidden="true" to destructured Icon components across document-ui, evidence-panels, and DocumentTagCloud - Update caring contacts prohibited language regex to exempt clinical job titles - Add §D4 superseded pointers in live-drift-forensics-2026-08.md - Queue merge-safe ledger receipts and synchronize snapshot RAG impact: no retrieval behaviour change -- dead exports with zero callers --- data/outstanding-issues-snapshot.json | 14 +++++++++++++- docs/audit/live-drift-forensics-2026-08.md | 4 ++-- .../454d0cd5-8f4c-4ab9-b9b3-7b5a588283a1.json | 10 ++++++++++ .../a5dd669d-8d52-4b67-b249-51b0757a3b9f.json | 11 +++++++++++ src/components/DocumentTagCloud.tsx | 4 ++-- src/components/clinical-dashboard/document-ui.tsx | 8 ++++---- .../clinical-dashboard/evidence-panels.tsx | 2 +- src/lib/clinical-search.ts | 5 ----- src/lib/openai.ts | 5 ----- src/lib/rag/rag.ts | 5 ----- tests/caring-contacts-interface-vocabulary.test.ts | 12 ++++++++++++ .../helpers/caring-contacts-prohibited-language.ts | 2 +- 12 files changed, 56 insertions(+), 26 deletions(-) create mode 100644 docs/outstanding-issues-inbox/454d0cd5-8f4c-4ab9-b9b3-7b5a588283a1.json create mode 100644 docs/outstanding-issues-inbox/a5dd669d-8d52-4b67-b249-51b0757a3b9f.json diff --git a/data/outstanding-issues-snapshot.json b/data/outstanding-issues-snapshot.json index fea4529f4c..a2ef72328a 100644 --- a/data/outstanding-issues-snapshot.json +++ b/data/outstanding-issues-snapshot.json @@ -10,7 +10,7 @@ "p2": 40, "p3": 33, "queued": 10, - "pending": 144, + "pending": 146, "resolved": 376 }, "queue": [ @@ -1019,6 +1019,12 @@ "summary": "Final Windows Lighthouse distribution shows a mobile-root timing regression that needs a synchronized control", "created_at": "2026-08-23" }, + { + "request_id": "454d0cd5-8f4c-4ab9-b9b3-7b5a588283a1", + "action": "cancel", + "summary": "Cancel request 76744c9f-6e7f-4390-a202-756e50be0cd1: Superseded by a539a411-4648-4f71-8b40-90d49646e8a4 on #243HCC", + "created_at": "2026-08-27" + }, { "request_id": "455d31fc-c3d3-4645-ae2c-2696836f16af", "action": "add", @@ -1337,6 +1343,12 @@ "summary": "#243HCC: Resolved by emitting data-settings-nav-target={item.id} on every Settings navigation control and removing the vacuous length guard from tests/settings-dialog-actions.dom.test.tsx, so the desktop rail must exactly match the rendered section ids. Focused combined verification on 2026-08-23 passed tests/settings-dialog-actions.dom.test.tsx, tests/pwa-lifecycle.dom.test.tsx, and tests/mockup-crawler-policy.test.ts: 3 files, 26 tests.", "created_at": "2026-08-23" }, + { + "request_id": "a5dd669d-8d52-4b67-b249-51b0757a3b9f", + "action": "done", + "summary": "#45V4Y7: Removed verified dead exports answerQuestion in src/lib/rag/rag.ts, embedText in src/lib/openai.ts, and clinicalRankScore in src/lib/clinical-search.ts. Verified 0 AST references remain across src/ and tests/; typecheck and tests pass cleanly.", + "created_at": "2026-08-27" + }, { "request_id": "a680a25f-5aa7-4a19-94bc-0f30fcf9a61d", "action": "done", diff --git a/docs/audit/live-drift-forensics-2026-08.md b/docs/audit/live-drift-forensics-2026-08.md index 5e7c2c1675..4426d98449 100644 --- a/docs/audit/live-drift-forensics-2026-08.md +++ b/docs/audit/live-drift-forensics-2026-08.md @@ -1240,7 +1240,7 @@ and the green live-drift dispatch also remain **pending** for the full phase. _Owner-authorised window against `Clinical KB Database` (`sjrfecxgysukkwxsowpy`) for index DDL plus a `supabase db push` of the guard migrations. Executed from a dedicated worktree; the main checkout -`D:\Repos\Database` stayed linked to STAGING throughout. D4 is OFF (the Supabase GitHub auto-deploy +`D:\Repos\Database` stayed linked to STAGING throughout. D4 is OFF *(superseded: see §D4 — SETTLED 2026-08-21; deploy-on-merge is ON)* (the Supabase GitHub auto-deploy was disabled before this window), so nothing in this task reached production on merge — every hosted change below was made by the explicit step that names it._ @@ -1969,7 +1969,7 @@ objects}`; classes `validation` (mandatory from 2026-08-18), `superseded`, `no_d _Worker session for `#Q5JHBJ` only (`#316`, `#231`, `#1K6T35` untouched). Pre-flight per `#292`: none of the seven open PRs (#2181, #2180, #2176, #2173, #2012, #2011, #2010) touches `supabase/**`, -`scripts/check-drift.ts`, `tests/migration-history-guards.test.ts` or this file. D4 is OFF, so the only +`scripts/check-drift.ts`, `tests/migration-history-guards.test.ts` or this file. D4 is OFF *(superseded: see §D4 — SETTLED 2026-08-21; deploy-on-merge is ON)*, so the only production writes are the explicit `db push` recorded below._ #### Step 1 — classification of the fifteen (every one `validation`; none earned `superseded` or `no_ddl`) diff --git a/docs/outstanding-issues-inbox/454d0cd5-8f4c-4ab9-b9b3-7b5a588283a1.json b/docs/outstanding-issues-inbox/454d0cd5-8f4c-4ab9-b9b3-7b5a588283a1.json new file mode 100644 index 0000000000..0381fd7e7b --- /dev/null +++ b/docs/outstanding-issues-inbox/454d0cd5-8f4c-4ab9-b9b3-7b5a588283a1.json @@ -0,0 +1,10 @@ +{ + "version": 2, + "id": "454d0cd5-8f4c-4ab9-b9b3-7b5a588283a1", + "createdOn": "2026-08-27", + "action": "cancel", + "payload": { + "requestId": "76744c9f-6e7f-4390-a202-756e50be0cd1", + "reason": "Superseded by a539a411-4648-4f71-8b40-90d49646e8a4 on #243HCC" + } +} diff --git a/docs/outstanding-issues-inbox/a5dd669d-8d52-4b67-b249-51b0757a3b9f.json b/docs/outstanding-issues-inbox/a5dd669d-8d52-4b67-b249-51b0757a3b9f.json new file mode 100644 index 0000000000..1fe31f17b8 --- /dev/null +++ b/docs/outstanding-issues-inbox/a5dd669d-8d52-4b67-b249-51b0757a3b9f.json @@ -0,0 +1,11 @@ +{ + "version": 2, + "id": "a5dd669d-8d52-4b67-b249-51b0757a3b9f", + "createdOn": "2026-08-27", + "action": "done", + "payload": { + "id": "#45V4Y7", + "outcome": "Removed verified dead exports answerQuestion in src/lib/rag/rag.ts, embedText in src/lib/openai.ts, and clinicalRankScore in src/lib/clinical-search.ts. Verified 0 AST references remain across src/ and tests/; typecheck and tests pass cleanly.", + "baseRowFingerprint": "75831bf7612fc2ccb17a76414769d9ac0f81d29954a8703f34da878419ba4ea9" + } +} diff --git a/src/components/DocumentTagCloud.tsx b/src/components/DocumentTagCloud.tsx index 3ed322b220..5556c2089d 100644 --- a/src/components/DocumentTagCloud.tsx +++ b/src/components/DocumentTagCloud.tsx @@ -84,7 +84,7 @@ function DocumentTagChip({ ); const content = ( <> - +