peter
6a92585098
fix(plex): the player restarts a reaped session, finishes a played-through item as watched, and starts each item once
...
Deep-review round 4, the Plex player.
- A 404 on an HLS session that WAS playing means the server reaped it (a long pause, a deploy);
hls.js never retries a 4xx, so playback ended with "couldn't play". A new session at the playhead
now takes its place (the frontend half of the paused-viewer reap fix). A session that 404s before
its manifest is still a plain failure, so it cannot restart itself in a loop.
- Leaving an item that ended, or that the credits auto-skip left, sent a final checkpoint at the
credits (racing the watched mark, and pushing a resume point to Plex after the scrobble) and
patched "new, at 49:55" into the cache — Prev reopened it at its last seconds. `finish` settles it
as watched at 0, said before the pause whose own checkpoint could land first.
- An audio switch, an A/V offset change and every seek control read `abs`, which is 0 until
playback ticks: a resume at 20:00 restarted from 0:00. They use the shared `playhead`.
- A seek while a restart is pending always restarts (the old media's `seekable` described the old
session, and the pending answer overrode the newer seek).
- A superseded direct-play session's loadedmetadata/canplay are generation-gated and detached (they
seeked the next item to the previous one's resume point).
- The session starts once per item: a reconnect refetch, the info panel's watched toggle or a
language switch no longer restarts the film at the last checkpoint.
- Tests for the session generation's failure paths and the item-change bump, which had none.
2026-09-11 23:18:33 +02:00
..
2026-07-21 02:26:40 +02:00
2026-09-11 18:04:54 +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-11 01:38:31 +02:00
2026-09-11 01:38:31 +02:00
2026-09-11 01:38:31 +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-11 01:38:31 +02:00
2026-09-11 01:38:31 +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-11 18:04:54 +02:00
2026-08-27 23:54:44 +02:00
2026-09-05 16:58:29 +02:00
2026-09-11 18:04:54 +02:00
2026-09-11 18:04:54 +02:00
2026-08-19 05:41:52 +02:00
2026-09-05 16:58:29 +02:00
2026-09-11 18:05:19 +02:00
2026-09-11 18:05:19 +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 03:19:17 +02:00
2026-09-11 03:19:17 +02:00
2026-09-11 18:05:30 +02:00
2026-09-11 18:05:30 +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 23:18:33 +02:00
2026-09-11 23:18:33 +02:00
2026-09-11 03:47:36 +02:00
2026-09-11 23:18:33 +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-09-11 18:04:54 +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-11 18:05:19 +02:00
2026-09-11 18:05:19 +02:00
2026-09-11 01:38:31 +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-11 01:38:31 +02:00
2026-09-11 01:38:31 +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