Episode descriptions in the feed #4

Merged
w33ble merged 4 commits from feat/episode-description into main 2026-09-06 19:50:02 -06:00
Collaborator

What

Feed items now carry the Source's description so podcatchers show episode notes, not just the title.

  • Runner: Result.Description populated from yt-dlp info-json description (best-effort — missing → empty, never fails the Job). Fake runner carries a sample description plus a NoDesc flag for the fallback path.
  • Persistence: migration v5 adds nullable episodes.description; old rows stay NULL and keep serving unchanged (backcompat test asserts the omission path).
  • Feed: item renders <description> + <itunes:summary> with the same entity-escaped plain text; both omitted when empty.

Verification

  • mise run check + mise run test green
  • Real smoke: YouTube mN0zPOpADL4 → 544-char platform description in both elements; SoundCloud lofi mix → 2215-char description

Closes MCAST-16.

## What Feed items now carry the Source's description so podcatchers show episode notes, not just the title. - **Runner**: `Result.Description` populated from yt-dlp info-json `description` (best-effort — missing → empty, never fails the Job). Fake runner carries a sample description plus a `NoDesc` flag for the fallback path. - **Persistence**: migration v5 adds nullable `episodes.description`; old rows stay NULL and keep serving unchanged (backcompat test asserts the omission path). - **Feed**: item renders `<description>` + `<itunes:summary>` with the same entity-escaped plain text; both omitted when empty. ## Verification - `mise run check` + `mise run test` green - Real smoke: YouTube mN0zPOpADL4 → 544-char platform description in both elements; SoundCloud lofi mix → 2215-char description Closes MCAST-16.
w33ble approved these changes 2026-09-06 19:49:54 -06:00
w33ble merged commit 2657ab19cc into main 2026-09-06 19:50:02 -06:00
w33ble deleted branch feat/episode-description 2026-09-06 19:50:03 -06:00
w33ble referenced this pull request from a commit 2026-09-06 19:50:04 -06:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
w33ble/mediacast!4
No description provided.