fix(dashboard): tell a steady score only when its band held, and say at least at the read's edge

The steady line compared the newest stored score with the number on
screen but not with its band, version or composition, so a score whose
band moved overnight at the same number was still called steady. A run
that reached back past the 120 days read was also told as if it started
there.

The newest stored day now has to match the ring in value, band and,
where the digest carries them, algorithm version and composition. A run
the read cannot see the start of is marked as open (steadyAtLeast on the
digest score) and the hero says "at least" in seven locales.
This commit is contained in:
Marc-André Bombeck committed 2026-10-05 08:34:27 +02:00
1 parent 13ac27c22d
commit 9e647051d5
16 files changed
+215 -37

No files matched your search

+6 -1
View File
@@ -72483,12 +72483,17 @@ components:
steadyWeeks:
description: Whole weeks the score has held where it is (same band, within two points, computed the same way), read off
the stored daily scores. Null when it has not held for two weeks, when the stored record does not
reach today, or when the score moved. Shown in place of a delta, never beside one.
reach today, or when the score on screen differs from the newest stored day in value, band,
algorithm version or composition. Shown in place of a delta, never beside one.
anyOf:
- type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
- type: "null"
steadyAtLeast:
description: "True when the run reaches back past everything the read covered (120 days): `steadyWeeks` is then a lower
bound, said as \"at least\", and the run's start is unknown. Absent on older cached digests."
type: boolean
required:
- value
- band