Marc-André Bombeck
b7cb92d951
fix(insights): compute the sleep midpoint in the user's timezone
...
The sleep midpoint was minutes-of-day in UTC, so a non-UTC sleeper's
consistency and timing sub-scores drifted with the offset (a 03:00-local
midpoint read as a different clock time than a UTC user's). Resolve the user's
stored zone in computeSleepScore and express the midpoint against it via the
existing tz helpers; reconstructNights takes an explicit tz (UTC default) so
the pure path stays test-pinnable.
2026-06-03 19:48:48 +02:00
..
2026-06-03 08:56:19 +02:00
2026-06-03 08:56:19 +02:00
2026-06-02 17:41:33 +02:00
2026-05-14 23:49:32 +02:00
2026-06-01 23:24:10 +02:00
2026-06-01 19:54:26 +02:00
2026-05-21 19:33:07 +02:00
2026-05-21 12:48:02 +02:00
2026-05-31 20:00:16 +02:00
2026-05-11 08:27:51 +02:00
2026-06-02 17:01:14 +02:00
2026-05-28 22:32:11 +02:00
2026-06-03 08:56:19 +02:00
2026-05-10 11:05:40 +02:00
2026-05-16 21:25:26 +02:00
2026-05-21 22:07:32 +02:00
2026-05-27 00:08:45 +02:00
2026-06-03 19:48:48 +02:00
2026-05-23 12:51:41 +02:00
2026-06-03 19:31:16 +02:00
2026-05-31 14:36:17 +02:00
2026-06-03 09:17:13 +02:00
2026-06-02 17:34:52 +02:00
2026-05-29 22:07:10 +02:00
2026-06-01 21:17:02 +02:00
2026-05-28 22:32:11 +02:00
2026-05-16 21:25:26 +02:00
2026-05-31 14:36:17 +02:00
2026-05-31 14:36:17 +02:00
2026-05-23 12:51:41 +02:00
2026-06-03 19:48:48 +02:00
2026-06-02 22:31:21 +02:00
2026-05-31 14:36:17 +02:00
2026-05-31 14:36:17 +02:00
2026-05-14 23:49:32 +02:00
2026-05-10 22:12:22 +02:00
2026-05-31 14:36:17 +02:00
2026-06-02 17:01:14 +02:00
2026-05-21 19:33:07 +02:00
2026-06-03 01:00:04 +02:00
2026-05-31 22:05:31 +02:00
2026-05-21 22:07:32 +02:00
2026-05-16 19:46:43 +02:00
2026-06-03 09:10:46 +02:00
2026-05-09 02:27:17 +02:00
2026-05-21 23:13:21 +02:00
2026-05-28 22:39:20 +02:00
2026-05-08 14:33:39 +02:00
2026-06-02 22:02:50 +02:00
2026-05-17 09:55:33 +02:00
2026-05-21 12:48:02 +02:00
2026-06-03 01:00:04 +02:00
2026-06-02 23:13:26 +02:00
2026-05-09 21:36:47 +02:00
2026-05-14 23:49:32 +02:00
2026-05-21 18:36:17 +02:00
2026-05-23 13:53:04 +02:00
2026-05-28 22:32:11 +02:00
2026-06-02 17:01:14 +02:00
2026-05-09 02:22:12 +02:00
2026-06-02 14:15:31 +02:00
2026-05-08 17:46:31 +02:00
2026-05-21 18:36:17 +02:00
2026-05-21 11:20:24 +02:00
2026-03-10 20:14:33 +01:00
2026-05-27 00:08:56 +02:00
2026-05-21 22:07:32 +02:00
2026-04-18 17:15:43 +02:00
2026-05-08 14:33:39 +02:00
2026-06-03 00:04:56 +02:00
2026-05-21 23:13:21 +02:00
2026-05-16 19:46:43 +02:00
2026-05-28 22:32:11 +02:00
2026-05-28 22:32:11 +02:00
2026-05-28 22:32:11 +02:00
2026-05-14 23:49:32 +02:00
2026-05-17 23:46:09 +02:00
2026-03-10 20:14:33 +01:00
2026-04-18 22:20:12 +02:00