peter
df4a79a1f1
fix(sync): an empty answer the remote's own count contradicts is not believed, one level down
...
E32 review round 1 (B1, B2, B3, B8).
- Plex watch reconcile: a section the server SAYS is empty (totalSize 0, nothing listed) is a
complete listing. It read as "cut short" forever, so one empty library stopped un-watches from
ever syncing. A listing with no total at all stays incomplete (the client now returns None for
it instead of 0), and a whole scan that listed nothing still clears nothing. Tests now cover
completeness across two sections, both orders.
- Plex collections: no members from a collection whose listing counts some (childCount) keeps
the membership we hold, in the full sync and in the targeted resync after a write.
- YouTube playlists: no items for a playlist whose listing counts some (itemCount) keeps the
mirror in the bulk pull, and is refused as retryable in "reset to YouTube" and in the push
plan/merge, where it read as "YouTube deleted them all". The rule sits beside vanished().
- A playlist deleted on YouTube answered "reconnect your account"; it now says it is gone
(errors.youtube.gone, HU+EN).
- The pure 3-way merge moved to sync/playlist_merge.py; playlists.py is back under 800 lines and
off the size list.
2026-10-04 02:13:53 +02:00
..
2026-09-17 01:44:29 +02:00
2026-10-03 16:04:06 +02:00
2026-10-03 19:06:47 +02:00
2026-09-16 04:29:13 +02:00
2026-09-19 19:19:29 +02:00
2026-09-19 03:42:26 +02:00
2026-09-04 22:42:15 +02:00
2026-10-01 08:31:03 +02:00
2026-09-19 18:21:06 +02:00
2026-10-03 19:37:24 +02:00
2026-09-29 21:21:19 +02:00
2026-10-03 16:04:06 +02:00
2026-09-19 19:19:30 +02:00
2026-09-27 13:58:23 +02:00
2026-10-02 03:16:37 +02:00
2026-09-18 03:16:15 +02:00
2026-09-19 19:19:30 +02:00
2026-09-30 03:26:57 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-10-03 19:06:47 +02:00
2026-09-17 02:42:12 +02:00
2026-10-03 19:06:47 +02:00
2026-09-29 02:12:32 +02:00
2026-09-16 04:29:13 +02:00
2026-08-28 02:37:56 +02:00
2026-09-16 03:43:29 +02:00
2026-09-18 23:44:42 +02:00
2026-09-14 01:42:57 +02:00
2026-09-05 04:18:33 +02:00
2026-08-30 03:32:14 +02:00
2026-08-23 07:43:06 +02:00
2026-09-29 21:21:19 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-04 20:29:33 +02:00
2026-10-03 19:06:47 +02:00
2026-09-04 20:29:33 +02:00
2026-10-04 02:13:53 +02:00
2026-09-14 00:50:05 +02:00
2026-09-18 23:44:42 +02:00
2026-09-19 19:19:30 +02:00
2026-09-19 05:54:19 +02:00
2026-08-23 07:43:06 +02:00
2026-10-03 02:25:14 +02:00
2026-10-02 21:17:41 +02:00
2026-10-03 21:53:05 +02:00
2026-08-23 07:43:06 +02:00
2026-09-19 04:51:31 +02:00
2026-09-15 00:53:15 +02:00
2026-08-28 02:37:56 +02:00
2026-09-19 19:19:30 +02:00
2026-09-19 07:34:17 +02:00
2026-10-03 19:06:47 +02:00
2026-09-19 01:33:32 +02:00
2026-08-29 08:02:11 +02:00
2026-09-19 06:55:40 +02:00
2026-09-18 03:16:15 +02:00
2026-09-04 01:56:55 +02:00
2026-10-03 19:06:47 +02:00
2026-10-03 16:04:06 +02:00
2026-10-03 19:06:47 +02:00
2026-10-03 19:33:38 +02:00
2026-09-01 23:31:49 +02:00
2026-10-01 21:17:09 +02:00
2026-10-02 23:42:32 +02:00
2026-08-23 07:43:06 +02:00
2026-09-29 22:46:04 +02:00
2026-08-23 07:43:06 +02:00
2026-09-12 05:50:31 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-19 22:48:20 +02:00
2026-10-03 19:06:47 +02:00
2026-10-04 02:13:53 +02:00
2026-09-27 21:56:23 +02:00
2026-09-27 21:56:23 +02:00
2026-09-27 22:34:14 +02:00
2026-09-27 22:34:14 +02:00
2026-10-03 21:53:06 +02:00
2026-09-29 02:12:32 +02:00
2026-09-19 19:19:30 +02:00
2026-10-04 02:13:53 +02:00
2026-09-19 19:19:30 +02:00
2026-09-19 19:19:30 +02:00
2026-09-29 21:21:19 +02:00
2026-09-19 19:19:30 +02:00
2026-10-02 21:32:49 +02:00
2026-09-19 19:19:30 +02:00
2026-09-19 19:19:30 +02:00
2026-09-19 18:21:06 +02:00
2026-09-19 17:26:07 +02:00
2026-10-03 19:06:47 +02:00
2026-08-23 07:43:06 +02:00
2026-09-19 19:19:30 +02:00
2026-09-30 03:26:57 +02:00
2026-09-19 19:19:30 +02:00
2026-10-03 19:33:30 +02:00
2026-10-03 19:33:30 +02:00
2026-10-01 10:43:59 +02:00
2026-09-30 02:19:54 +02:00
2026-09-30 02:19:54 +02:00
2026-09-19 19:19:30 +02:00
2026-09-19 19:19:30 +02:00
2026-10-03 19:06:47 +02:00
2026-09-19 19:19:30 +02:00
2026-10-03 16:04:06 +02:00
2026-09-19 19:19:30 +02:00
2026-09-27 13:58:23 +02:00
2026-10-03 19:06:47 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-29 21:21:19 +02:00
2026-10-04 02:13:53 +02:00
2026-08-28 01:34:02 +02:00
2026-09-11 18:05:30 +02:00
2026-09-22 01:59:03 +02:00
2026-09-20 23:02:11 +02:00
2026-08-23 07:43:06 +02:00
2026-09-15 02:25:00 +02:00
2026-08-23 07:43:06 +02:00
2026-10-03 19:06:47 +02:00
2026-10-03 19:06:47 +02:00
2026-10-03 19:06:47 +02:00
2026-09-20 00:51:12 +02:00
2026-08-23 07:43:06 +02:00
2026-10-03 19:06:47 +02:00
2026-10-01 22:51:37 +02:00
2026-09-19 19:19:30 +02:00
2026-10-03 21:53:05 +02:00
2026-08-23 07:43:06 +02:00
2026-10-03 19:06:47 +02:00
2026-10-03 21:53:05 +02:00
2026-08-23 07:43:06 +02:00
2026-10-04 02:13:53 +02:00
2026-08-23 07:43:06 +02:00
2026-09-18 01:20:42 +02:00
2026-10-01 22:51:37 +02:00
2026-10-02 03:16:37 +02:00
2026-10-02 03:16:37 +02:00
2026-08-26 05:25:47 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-23 01:20:22 +02:00
2026-09-05 04:02:57 +02:00
2026-08-23 07:43:06 +02:00
2026-10-02 21:52:47 +02:00
2026-10-03 19:06:47 +02:00
2026-09-18 22:50:37 +02:00
2026-09-19 04:51:31 +02:00
2026-10-04 02:13:53 +02:00
2026-09-18 23:44:42 +02:00