Miguel Palhas and Claude Fable 5
bce3d3823d
feat(api): move title files on root change
...
Changing a movie's or series' root previously rewrote root_id and left
the files behind, so the §7.4 layout stopped describing the disk and
the root's policy applied to a library the files were not in. Series
had no root control at all.
All roots share one ZFS dataset, so the move is a rename of the title
folder into the new root, never a copy — hardlinks and the seeding
torrent survive it (§7.3). Disk first, row second: a destination that
already holds the folder is a 409, a failed rename leaves the row
unchanged, and a title with nothing on disk moves with no filesystem
work. media_files rows are rewritten in the same transaction as the
root_id, and a successful move triggers the §7.5 Jellyfin refresh.
Issue #228
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-25 09:55:18 +01:00
..
2026-08-22 22:38:31 +01:00
2026-08-23 14:56:51 +01:00
2026-08-23 14:56:51 +01:00
2026-08-22 21:00:35 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 20:14:48 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:21:30 +01:00
2026-08-24 18:12:10 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 21:43:03 +01:00
2026-08-22 21:43:03 +01:00
2026-08-24 22:15:14 +01:00
2026-08-24 22:45:55 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-25 09:55:18 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 22:45:55 +01:00
2026-08-23 01:40:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 09:13:37 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 22:45:55 +01:00
2026-08-22 21:43:03 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:02:34 +01:00
2026-08-22 20:40:31 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:02:34 +01:00
2026-08-23 14:56:51 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 01:40:53 +01:00
2026-08-22 21:00:35 +01:00
2026-08-25 09:55:18 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 16:43:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 01:40:53 +01:00
2026-08-22 23:42:36 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 22:15:14 +01:00
2026-08-23 09:08:52 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 09:13:37 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:02:34 +01:00
2026-08-24 20:10:23 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 14:56:51 +01:00
2026-08-24 20:14:48 +01:00
2026-08-25 09:55:18 +01:00
2026-08-23 19:34:55 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 16:43:53 +01:00
2026-08-23 14:56:51 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:02:34 +01:00
2026-08-22 21:43:03 +01:00
2026-08-25 09:55:18 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 17:59:45 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 22:15:14 +01:00
2026-08-24 18:12:10 +01:00
2026-08-24 20:10:23 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 20:14:48 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 16:43:53 +01:00
2026-08-23 18:23:41 +01:00
2026-08-23 17:59:45 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 18:24:50 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:42:36 +01:00
2026-08-23 09:13:37 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 09:08:52 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:02:34 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 02:31:50 +01:00
2026-08-22 23:02:34 +01:00
2026-08-23 01:40:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 18:24:50 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 22:45:55 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 19:51:28 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 20:10:23 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 01:40:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 22:15:14 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 19:34:55 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 22:45:55 +01:00
2026-08-22 23:02:34 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 01:40:53 +01:00
2026-08-22 23:23:56 +01:00
2026-08-22 23:21:30 +01:00
2026-08-22 23:21:30 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 17:59:45 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 01:40:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 21:43:03 +01:00
2026-08-23 17:45:09 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:02:34 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:02:34 +01:00
2026-08-23 17:45:09 +01:00
2026-08-23 01:40:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 16:43:53 +01:00
2026-08-23 19:34:55 +01:00
2026-08-23 22:12:05 +01:00
2026-08-23 18:24:50 +01:00
2026-08-24 22:15:14 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 17:45:09 +01:00
2026-08-22 22:38:31 +01:00
2026-08-23 09:02:42 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 20:40:31 +01:00
2026-08-24 19:51:28 +01:00
2026-08-23 14:56:51 +01:00
2026-08-24 22:45:55 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 22:45:55 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 22:12:05 +01:00
2026-08-24 20:14:48 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 22:38:31 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:21:30 +01:00
2026-08-23 17:45:09 +01:00
2026-08-24 22:45:55 +01:00