peter
4869d6c108
fix(player): the resume position reaches the playlist page and live search, not just the feed
...
Deep-review R4. 1630a3df wrote the YT player's stored position into the react-query cache so a
reopen could not rewind it — but only the feed actually read it back:
- Playlists renders from its own undoable copy of the list, re-seeded only when the SET of ids
changes, so the patched position never reached it: close a video at 830 s, reopen it from the
playlist, and it resumed at the old spot and the next checkpoint wrote that over the 830. A detail
with the same membership now rebases its fresh rows into every snapshot, keeping order and undo
history. (The ids-only guard is older than this round; the write that depended on it was new.)
- Live YouTube search results carry the same per-user position and open the same player, but their
cache was never patched. It is now — patched only, never invalidated, since refetching an
API-sourced search page spends 100 quota units.
Tests for what had none: a Playlists harness (PlayerModal stubbed to record its launch props) and a
PlayerModal harness with a fake IFrame API that records where each item is started — the latter pins
that stepping back to an item watched earlier in the same session resumes at THIS session's position.
3 mutations, each red on its assertion.
2026-09-11 01:19:14 +02:00
..
2026-07-21 02:26:40 +02:00
2026-09-09 01:02:22 +02:00
2026-09-05 18:41:41 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 04:41:21 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 22:22:14 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 18:41:41 +02:00
2026-09-08 00:06:34 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 18:31:00 +02:00
2026-09-05 01:35:09 +02:00
2026-08-08 00:50:05 +02:00
2026-08-25 01:44:34 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-09-06 05:07:06 +02:00
2026-09-05 16:58:29 +02:00
2026-09-10 22:34:12 +02:00
2026-09-10 22:34:12 +02:00
2026-09-10 20:56:16 +02:00
2026-09-05 16:58:29 +02:00
2026-09-06 05:07:06 +02:00
2026-08-27 23:54:44 +02:00
2026-09-05 16:58:29 +02:00
2026-08-15 04:45:32 +02:00
2026-09-05 16:58:29 +02:00
2026-08-26 02:39:00 +02:00
2026-09-05 22:22:14 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 18:39:22 +02:00
2026-09-06 05:07:06 +02:00
2026-09-09 00:12:53 +02:00
2026-09-06 05:07:06 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-07-27 22:10:03 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-08-29 18:38:21 +02:00
2026-08-29 18:38:21 +02:00
2026-07-21 02:26:40 +02:00
2026-09-05 16:58:29 +02:00
2026-08-14 00:49:09 +02:00
2026-09-10 22:34:12 +02:00
2026-08-23 23:05:24 +02:00
2026-08-25 01:44:34 +02:00
2026-09-05 16:58:29 +02:00
2026-08-19 03:07:25 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-08-22 18:02:55 +02:00
2026-09-09 01:02:22 +02:00
2026-09-08 03:23:59 +02:00
2026-09-09 00:39:37 +02:00
2026-09-05 18:41:41 +02:00
2026-09-05 16:58:29 +02:00
2026-08-29 21:52:13 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 23:52:29 +02:00
2026-09-06 04:14:14 +02:00
2026-09-08 00:06:34 +02:00
2026-09-08 00:06:34 +02:00
2026-09-09 01:02:22 +02:00
2026-09-09 00:12:53 +02:00
2026-09-05 18:39:22 +02:00
2026-09-05 18:39:22 +02:00
2026-09-05 18:41:41 +02:00
2026-08-27 23:54:44 +02:00
2026-09-05 16:58:29 +02:00
2026-09-11 01:19:14 +02:00
2026-09-10 22:34:12 +02:00
2026-08-19 05:41:52 +02:00
2026-09-05 16:58:29 +02:00
2026-09-11 01:19:14 +02:00
2026-09-11 01:19:14 +02:00
2026-08-20 05:40:59 +02:00
2026-08-20 05:40:59 +02:00
2026-08-20 05:24:11 +02:00
2026-09-06 05:07:06 +02:00
2026-09-06 05:38:28 +02:00
2026-09-05 16:58:29 +02:00
2026-08-20 20:30:30 +02:00
2026-09-06 05:07:06 +02:00
2026-09-05 18:39:22 +02:00
2026-09-11 01:12:51 +02:00
2026-09-11 01:12:51 +02:00
2026-08-23 04:08:28 +02:00
2026-09-06 05:07:06 +02:00
2026-08-21 08:11:18 +02:00
2026-09-05 16:58:29 +02:00
2026-08-23 18:39:22 +02:00
2026-09-05 16:58:29 +02:00
2026-08-21 00:08:19 +02:00
2026-09-11 01:08:27 +02:00
2026-08-30 00:09:36 +02:00
2026-08-30 00:28:50 +02:00
2026-09-05 18:39:22 +02:00
2026-09-05 18:39:22 +02:00
2026-09-06 05:38:28 +02:00
2026-08-22 18:19:08 +02:00
2026-09-05 16:58:29 +02:00
2026-08-17 22:18:07 +02:00
2026-09-05 16:58:29 +02:00
2026-09-10 22:05:39 +02:00
2026-09-10 19:31:05 +02:00
2026-08-23 04:40:09 +02:00
2026-08-23 04:40:09 +02:00
2026-08-22 18:19:08 +02:00
2026-09-06 05:07:06 +02:00
2026-08-23 02:23:09 +02:00
2026-09-05 16:58:29 +02:00
2026-08-23 03:52:21 +02:00
2026-07-27 22:10:03 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-08-24 23:41:49 +02:00
2026-08-27 04:22:07 +02:00
2026-09-05 18:41:41 +02:00
2026-08-17 22:18:07 +02:00
2026-08-17 21:31:22 +02:00
2026-08-22 04:03:58 +02:00
2026-08-29 03:52:13 +02:00
2026-09-08 00:06:34 +02:00
2026-09-05 18:41:41 +02:00
2026-09-06 01:57:32 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 22:22:14 +02:00
2026-09-05 18:31:00 +02:00
2026-08-29 18:53:53 +02:00
2026-09-05 16:58:29 +02:00
2026-08-30 02:04:17 +02:00
2026-08-30 02:04:17 +02:00
2026-09-05 19:59:56 +02:00
2026-09-10 22:05:39 +02:00
2026-09-10 22:05:39 +02:00
2026-08-26 05:25:47 +02:00
2026-08-26 05:25:47 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-09-10 22:34:12 +02:00
2026-09-05 16:58:29 +02:00
2026-08-26 00:44:27 +02:00
2026-09-05 16:58:29 +02:00
2026-09-05 16:58:29 +02:00
2026-09-06 05:07:06 +02:00
2026-08-29 19:51:58 +02:00
2026-08-29 19:51:58 +02:00
2026-09-05 18:39:22 +02:00
2026-09-01 23:09:25 +02:00
2026-09-05 01:35:09 +02:00
2026-07-27 22:10:03 +02:00
2026-09-05 16:58:29 +02:00