diff --git a/src/app/insights/page.tsx b/src/app/insights/page.tsx index b59cf7ee8..66ef264ed 100644 --- a/src/app/insights/page.tsx +++ b/src/app/insights/page.tsx @@ -303,19 +303,18 @@ export default function InsightsPage() { const analyticsQuery = useAnalyticsQuery(); const analytics = analyticsQuery.data as AnalyticsData | undefined; - // v1.21.2 (A4 / A5 / A6) — the dashboard snapshot is the single server source - // for the ambient narrative the hero + briefing surface: the Tension Verdict - // and return-to-baseline ride its `healthScore`, the briefing recall + - // forward-look rides `briefingMemory`. The hero score number itself stays on - // the analytics payload (unchanged); only these three additive, server- - // resolved DTO fields are lifted from the snapshot. Reads the same shared + // v1.21.2 (A5 / A6) — the dashboard snapshot is the single server source + // for the ambient narrative the hero surfaces: the Tension Verdict and + // return-to-baseline ride its `healthScore`. The hero score number itself + // stays on the analytics payload (unchanged). Reads the same shared // `queryKeys.dashboardSnapshot()` cell the dashboard warms, so the insights // visit pays at most one extra round-trip and usually a warm cache hit. + // (The A4 recall/forward-look block left the briefing card — the card now + // opens straight on the day's signals.) const snapshotQuery = useDashboardSnapshot(isAuthenticated); const snapshotHealthScore = snapshotQuery.data?.healthScore ?? null; const heroTension = snapshotHealthScore?.tension ?? null; const heroReturnToBand = snapshotHealthScore?.returnToBand ?? null; - const briefingMemory = snapshotQuery.data?.briefingMemory ?? null; // v1.12.6 — the page owns the ONE overview derived batch. The wellness // strip (above the briefing) and the vitals grid (below it) both read this @@ -483,10 +482,6 @@ export default function InsightsPage() { // v1.25.3 — failure class points the empty-state hint at the right // lever (raise the response timeout vs re-check the provider). generationFailureClass={advisor.generationFailureClass} - // v1.21.2 (A4) — server-resolved recall + forward-look off the dashboard - // snapshot. Both strings are already localised; null leaves the card's - // memory block unrendered. - memory={briefingMemory} /> ) : null, vitals: , diff --git a/src/components/insights/daily-briefing.tsx b/src/components/insights/daily-briefing.tsx index 309da0fc7..d7fbbdd46 100644 --- a/src/components/insights/daily-briefing.tsx +++ b/src/components/insights/daily-briefing.tsx @@ -25,7 +25,6 @@ import { EmptyState } from "@/components/ui/empty-state"; import { ListRow } from "@/components/ui/list-row"; import { Skeleton } from "@/components/ui/skeleton"; import { SectionHeading } from "@/components/insights/section-heading"; -import { AskCoachAction } from "@/components/insights/ask-coach-action"; import { useTranslations, useFormatters } from "@/lib/i18n/context"; import { formatUpdatedLabel } from "@/lib/i18n/relative-time"; import { stripChartTokens } from "@/lib/insights/chart-tokens"; @@ -140,20 +139,6 @@ interface DailyBriefingProps { * comparison toggle migrates here from the hero in commit 5. */ metaSlot?: React.ReactNode; - /** - * v1.21.2 (A4) — server-resolved callback + forward-look. The briefing - * recalls the prior period and points ahead ("as I noted Monday, your sleep - * was short; it's recovered since — worth watching tonight"). Both strings - * are already localised and figure-anchored by the resolver; the card only - * renders them. One callback per surface — absent (the common case) when no - * prior narrative recall is on file. - */ - memory?: { - /** The recall of the prior-period read, anchored to a figure. */ - recall: string; - /** The forward-look pointing ahead. */ - forward: string; - } | null; } const METRIC_ICON: Record< @@ -368,7 +353,6 @@ export function DailyBriefing({ generationFailed = false, generationFailureClass = null, metaSlot, - memory = null, }: DailyBriefingProps) { const { t } = useTranslations(); const fmt = useFormatters(); @@ -424,33 +408,11 @@ export function DailyBriefing({ // looser `space-y-4`, which read as taller than its neighbours on // the overview. One token, no new spacing scale.
- {/* v1.21.2 (A4) — callback + forward-look. Recalls the prior - period and points ahead, both server-resolved and - figure-anchored. Leads the card so the briefing opens by - closing the loop on what it noted last, then looks forward. */} - {memory && ( -
-

- {t("insights.briefing.memory.recall", { - text: memory.recall, - })} -

-

- {t("insights.briefing.memory.forward", { - text: memory.forward, - })} -

-
- )} + {/* The v1.21.2 recall/forward-look block is gone: the card + opens straight on "signals of the day". The narrative + memory read as a second briefing paragraph above the + structured list and pulled the card down; the server + still resolves `briefingMemory` for other consumers. */} {/* v1.4.27 B1 — the leading narrative paragraph dropped. The hero strip subtitle on `/insights` already renders the same `briefing.paragraph` text directly above this @@ -465,7 +427,7 @@ export function DailyBriefing({

{t("insights.dailyBriefing.signalsTitle")}

@@ -483,7 +445,7 @@ export function DailyBriefing({

{t("insights.dailyBriefing.keyFindingsTitle")}

@@ -565,12 +527,6 @@ export function DailyBriefing({ )}
)} - {/* v1.21.0 (C4 H2) — hand off to the Coach for the whole - picture. The briefing spans every metric, so no scope: the - default all-source snapshot reads best here. */} -
- -
) : noProvider ? ( // v1.15.20 — no provider configured anywhere: a regenerate CTA