fix(daily): decide the line under the Today lead on the server

The muted line under the lead repeated what the lead had just said: a lead
about blood pressure sat above "Your latest blood pressure is sitting in
the optimal band · ↓ ~10 mmHg…". The web client only dropped the headline
when the lead quoted it word for word, and other clients had no rule at
all. The digest now carries `signalLine`, built next to the lead: when the
lead already talks about the top signal's metric (matched in every shipped
language) or says its headline, only the delta remains, and with no delta
there is no line. The hero renders the field verbatim.
This commit is contained in:
Marc-André Bombeck committed 2026-10-05 12:19:41 +02:00
1 parent 20085d5759
commit 524975d5f3
13 files changed
+265 -27

No files matched your search

+23
View File
@@ -72562,6 +72562,28 @@ components:
are available, otherwise a deterministic sentence about the day's strongest signal (a vital outside its
personal range, an unusual night, vitals in range, last night). Null when there is nothing to say. When the
deterministic sentence is built from a fact, that fact is left out of `today`. Additive since v1.40."
signalLine:
anyOf:
- type: object
properties:
headline:
anyOf:
- type: string
- type: "null"
description: The top signal's headline, or null when the lead already talks about its metric.
delta:
anyOf:
- type: string
- type: "null"
description: The top signal's delta, when it has one.
required:
- headline
- delta
additionalProperties: false
- type: "null"
description: "The muted line under an AI lead, decided on the server so every client shows the same one: the top signal
minus what the lead already says. Null under a deterministic lead, without a top signal, or when the lead
already says everything the signal would. Additive since v1.40.3."
today:
maxItems: 5
type: array
@@ -72652,6 +72674,7 @@ components:
- topSignal
- briefingLead
- lead
- signalLine
- today
- restMode
- line