fix(workouts): hold training load through unscored days

A day without a stored training impulse was read as a rest day, so a
watch left off or a nightly run that had not happened yet pulled
fitness and fatigue toward zero. Such a day is now not rated: the
averages hold through it, the series marks it, and the card says how
many of the last 42 days were rated. A scored day of 0 stays rest. The
figures describe the last stored day rather than always yesterday.
This commit is contained in:
Marc-André Bombeck committed 2026-10-21 23:09:09 +02:00
1 parent 2723ac5b98
commit 99dfd68aad
15 files changed
+145 -38

No files matched your search

@@ -461,6 +461,8 @@ describe("GET /api/workouts — training load (v1.44)", () => {
asOf: yesterday,
daysCovered: 50,
trainingDays: 50,
recentRatedDays: 42,
recentDays: 42,
warmingUp: false,
});
const later = await (await GET(makeRequest("?offset=100"))).json();