John O'Keefe
54d7d6e7a1
feat(podcasts): edit segregation — feed metadata is fetcher-owned (task 1.8)
...
D9/D10: users never edit podcast episode metadata. Three gates:
- Generic edit endpoint (UpdateMediaItem) rejects source=
'podcast_episode' items with 400 — the next fetch refresh would
clobber any edit anyway, and the fetcher is the sole metadata writer.
- Write-to-file (MetadataWriter.WriteMetadataToFile) refuses podcast
episodes for the same reason (tag write-back for downloaded episodes
is a named Phase-4 item needing its own iTunes-tag mapping).
- The book-detail page hides the admin Edit affordance for
podcasts-type items (direct-URL visits), and the metadata-editor
modal's field list has no podcast fields by construction (fixed
templ field list) — episodes render read-only via /podcasts
surfaces.
2026-10-29 16:05:03 -04:00
..
2026-10-28 09:37:14 -04:00
2026-10-28 09:37:14 -04:00
2026-10-28 09:37:14 -04:00
2026-10-25 11:06:08 -04:00
2026-10-13 12:24:12 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 13:22:54 -04:00
2026-10-27 13:22:54 -04:00
2026-10-28 00:22:00 -04:00
2026-10-28 00:22:00 -04:00
2026-10-25 18:14:44 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 18:14:44 -04:00
2026-10-25 18:14:44 -04:00
2026-10-26 13:59:37 -04:00
2026-10-26 13:59:37 -04:00
2026-10-27 19:05:23 -04:00
2026-10-27 19:05:23 -04:00
2026-10-29 16:05:03 -04:00
2026-10-29 16:05:03 -04:00
2026-05-24 21:20:24 -04:00
2026-03-27 15:52:02 -04:00
2026-10-28 10:12:20 -04:00
2026-10-28 10:12:20 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-27 23:33:52 -04:00
2026-10-25 11:06:08 -04:00
2026-10-19 15:43:59 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-26 08:17:49 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-24 14:31:36 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-25 11:06:08 -04:00
2026-08-10 13:43:13 -04:00
2026-10-25 11:06:08 -04:00
2026-10-19 18:59:36 -04:00
2026-10-25 11:06:08 -04:00
2026-08-05 16:45:02 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:07 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 16:58:28 -04:00
2026-10-29 15:44:48 -04:00
2026-10-29 15:44:48 -04:00
2026-10-25 11:06:08 -04:00
2026-10-24 19:44:34 -04:00
2026-10-26 14:58:50 -04:00
2026-10-26 13:59:32 -04:00
2026-10-26 13:59:32 -04:00
2026-10-25 11:06:08 -04:00
2026-08-05 16:45:02 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-24 19:44:34 -04:00
2026-10-24 19:44:34 -04:00
2026-08-05 16:45:02 -04:00
2026-08-05 16:45:02 -04:00
2026-10-27 15:11:49 -04:00
2026-10-27 15:11:49 -04:00
2026-10-28 10:12:20 -04:00
2026-10-28 10:12:20 -04:00
2026-10-03 23:54:07 -04:00
2026-10-24 19:44:34 -04:00
2026-10-24 19:44:34 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-18 12:08:07 -04:00
2026-10-18 12:08:07 -04:00
2026-10-18 12:08:07 -04:00
2026-10-25 11:06:08 -04:00
2026-05-10 16:13:21 -04:00
2026-10-27 19:05:23 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-19 18:59:36 -04:00
2026-10-29 15:44:48 -04:00