From 39d26b010744746a48d07102820e72cad8013f1e Mon Sep 17 00:00:00 2001 From: BigSimmo <87357024+BigSimmo@users.noreply.github.com> Date: Thu, 9 Jul 2026 18:46:31 +0800 Subject: [PATCH] fix(rag): preserve registry route metadata during normalization Keep registry_record_kind, registry_record_slug, registry_record_subkind, and registry_record_id when normalizing search result metadata so registry citations resolve to native detail pages instead of falling back to /documents/. Co-authored-by: Cursor --- src/lib/source-metadata.ts | 4 ++++ tests/source-metadata.test.ts | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/lib/source-metadata.ts b/src/lib/source-metadata.ts index 6ddcc1265f..79359f8d02 100644 --- a/src/lib/source-metadata.ts +++ b/src/lib/source-metadata.ts @@ -17,6 +17,10 @@ export function normalizeSourceMetadata(input: unknown): ClinicalSourceMetadata return { source_kind: stringOrNull(value.source_kind), + registry_record_kind: stringOrNull(value.registry_record_kind), + registry_record_subkind: stringOrNull(value.registry_record_subkind), + registry_record_id: stringOrNull(value.registry_record_id), + registry_record_slug: stringOrNull(value.registry_record_slug), source_title: stringOrNull(value.source_title), publisher: stringOrNull(value.publisher), jurisdiction: stringOrNull(value.jurisdiction), diff --git a/tests/source-metadata.test.ts b/tests/source-metadata.test.ts index 1c5a72f7b8..3c72e48759 100644 --- a/tests/source-metadata.test.ts +++ b/tests/source-metadata.test.ts @@ -39,6 +39,24 @@ describe("source metadata helpers", () => { expect(line).toContain("Jurisdiction: Australia/WA"); }); + it("preserves registry route metadata during normalization", () => { + const metadata = normalizeSourceMetadata({ + source_kind: "registry_record", + registry_record_kind: "service", + registry_record_subkind: null, + registry_record_id: "svc-123", + registry_record_slug: "perth-adult-mental-health", + source_title: "Perth Adult Mental Health", + document_status: "current", + clinical_validation_status: "approved", + }); + + expect(metadata.registry_record_kind).toBe("service"); + expect(metadata.registry_record_subkind).toBeNull(); + expect(metadata.registry_record_id).toBe("svc-123"); + expect(metadata.registry_record_slug).toBe("perth-adult-mental-health"); + }); + it("preserves stale status labels for registry summaries", () => { const metadata = normalizeSourceMetadata({ source_kind: "registry_record",