diff --git a/src/components/dashboard/hero/briefing-spotlight.tsx b/src/components/dashboard/hero/briefing-spotlight.tsx
index ae222e0b8..dcdc6f95a 100644
--- a/src/components/dashboard/hero/briefing-spotlight.tsx
+++ b/src/components/dashboard/hero/briefing-spotlight.tsx
@@ -49,6 +49,7 @@ import {
Zap,
} from "lucide-react";
import { ListRow } from "@/components/ui/list-row";
+import { METRIC_HREF } from "@/components/insights/daily-briefing";
import { useTranslations } from "@/lib/i18n/context";
import { stripChartTokens } from "@/lib/insights/chart-tokens";
import { cn } from "@/lib/utils";
@@ -178,7 +179,10 @@ export function BriefingSpotlight({
"focus-visible:ring-ring/50 focus-visible:ring-2 focus-visible:outline-none",
)}
>
-
+ {/* Deep-link each signal to its metric sub-page (the same
+ mapping the briefing card's finding rows use); metrics
+ without a routed sub-page fall back to the overview. */}
+
> = {
doseOverdue: "dashboard.hero.action.takeDose",
doseUpcoming: "dashboard.hero.action.takeDose",
@@ -91,8 +95,6 @@ const CTA_LABEL_KEY: Partial> = {
weightDrift: "dashboard.hero.action.viewWeight",
shortNights: "dashboard.hero.action.viewSleep",
silence: "dashboard.hero.action.logMeasurement",
- scoreDrop: "dashboard.hero.action.viewInsights",
- briefing: "dashboard.hero.action.viewInsights",
};
/**
diff --git a/src/components/insights/daily-briefing.tsx b/src/components/insights/daily-briefing.tsx
index d7fbbdd46..d592ec7d5 100644
--- a/src/components/insights/daily-briefing.tsx
+++ b/src/components/insights/daily-briefing.tsx
@@ -44,7 +44,7 @@ import type { BriefingFailureClass } from "@/lib/insights/briefing-failure-marke
* dedicated routed sub-page yet (hrv, resting_hr, steps, …) fall
* through to `null` and render as a plain row (no link wrap).
*/
-const METRIC_HREF: Record<
+export const METRIC_HREF: Record<
DailyBriefingKeyFinding["sourceMetric"],
string | null
> = {