From be4f89fdd214c5a82618a761988e24c07f265f61 Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Fri, 24 Apr 2026 14:02:13 -0400 Subject: [PATCH] fix(reader): persist chapter metadata cache to database The DetectChapters function in reader.go was serializing chapter detection results to JSON but then discarding the bytes with `_ = metadataBytes` instead of writing them to the database. This meant chapter_metadata in media_items was never populated, forcing re-detection on every request. Replace the no-op discard with an actual UpdateMediaItemChapterMetadata() call using the existing sqlc-generated query. --- internal/services/reader.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/services/reader.go b/internal/services/reader.go index ad6dd62..efcbc16 100644 --- a/internal/services/reader.go +++ b/internal/services/reader.go @@ -105,9 +105,10 @@ func (s *ReaderService) DetectChapters(ctx context.Context, mediaItemID uuid.UUI metadataBytes, err := json.Marshal(result) if err == nil { - // Update media item with chapter metadata - // This would require a new query in database/queries.sql - _ = metadataBytes + _, _ = s.db.UpdateMediaItemChapterMetadata(ctx, database.UpdateMediaItemChapterMetadataParams{ + ID: pgtype.UUID{Bytes: mediaItemID, Valid: true}, + ChapterMetadata: metadataBytes, + }) } return chapters, nil