fix(workouts): count a session synced twice once in strain, briefing and day view

The training impulse summed every stored workout row of the day, and the
briefing's workout tally and the day view's workout section listed every
row, while the workout list collapses a session recorded by the watch and
synced again through a second service. All three now run the same
cross-source picker. The strain engine keeps the heart-rate series of a
dropped twin when the picked row has none, so the collapse never turns a
scored session into an unscored one.
This commit is contained in:
Marc-André Bombeck committed 2026-10-21 21:12:23 +02:00
1 parent e1b70537cc
commit 30248efaf1
7 files changed
+277 -35

No files matched your search

@@ -52,6 +52,12 @@ const IDENTITY_OWNER: Record<string, string> = {
// about to insert, so a duplicate inside one batch is dropped by the rule
// the list later applies.
"app/api/workouts/batch/route.ts": "app/api/workouts/batch/route.ts",
// The day-total training impulse, the briefing's workout tally and the day
// view's workout section: each counted a session synced by two services
// twice while the list showed it once.
"lib/insights/strain-score.ts": "lib/insights/strain-score.ts",
"lib/insights/feature-blocks.ts": "lib/insights/feature-blocks.ts",
"lib/day/records.ts": "lib/day/records.ts",
};
/**