feat(media): add start field to LibraryDetail for TV shows#45
Conversation
Clients need S1E1 info upfront to render a Play button without a second round-trip to the episodes endpoint. start is null for movies and always carries zeroed progress (position 0, played false). - Add start: ResumeInfo? to LibraryDetail in OpenAPI spec - Add GetFirstEpisode to Jellyfin client via shared fetchEpisodes helper - Fetch S1E1 in parallel with GetSeasons and GetNextUp in getSeriesDetail - Add Start field to media.Detail; map and emit it through mapper and handler - Add tests for GetFirstEpisode, toSeriesDetail Start, and handler response Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Claude finished @koinsaari's task in 2m 15s —— View job Review: feat(media): add start field to LibraryDetail for TV shows
No blocking issues. CI passes (tests + lint). Clean, well-structured change that follows existing patterns throughout. What I checked
Nits🟡 Nit — 🟡 Nit — no service-level test for non-nil |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Claude finished @koinsaari's task in 2m 10s —— View job Review: feat(media): add start field to LibraryDetail for TV shows
No blocking issues. Clean, well-structured change that follows existing patterns consistently across all layers. What I checked
Highlights
No nits to report. |
Summary
start: ResumeInfo?toLibraryDetailin OpenAPI spec — populated for TV shows pointing at S1E1 with zeroed progress, null for moviesGetFirstEpisodeto Jellyfin client using a sharedfetchEpisodeshelper (eliminates duplication withGetEpisodes)GetSeasonsandGetNextUpingetSeriesDetailStartfield tomedia.Detail; map and emit through mapper and handlerImplementation notes
start.progressis always zeroed in the mapper — the handler passes it through rather than hardcoding zeros, so the mapper owns the invariant.Closes #37
🤖 Generated with Claude Code