Commit graph

  • 78874313cc fix(video): move idx_movies_collection to _POST_INDEXES (broke DB init) BoulderBadgeDad 2026-06-22 23:34:51 -0700
  • a8ce359cb7 video discover phase 1e: 'what am I missing' gap rails on the discover page BoulderBadgeDad 2026-06-22 23:30:05 -0700
  • ba6065f1b3 video discover phase 1b-d: gap-engine queries, engine collection fetch, /discover/gaps API BoulderBadgeDad 2026-06-22 23:28:23 -0700
  • 88553a95d2 video discover phase 1a: pure gap-engine core (collection + filmography diffs) BoulderBadgeDad 2026-06-22 23:26:04 -0700
  • 1f1a239486 video discover phase 0: persist TMDB collection (franchise) id per movie BoulderBadgeDad 2026-06-22 23:24:42 -0700
  • dcd68e3631
    Merge pull request #906 from Nezreka/dev 2.7.6 BoulderBadgeDad 2026-06-22 22:56:53 -0700
  • cefddd73b7 Release 2.7.6: bump version + What's New / version modal + PR description + docker-publish default tag BoulderBadgeDad 2026-06-22 22:48:21 -0700
  • ab8f82af2e #903: re-export updates the same ListenBrainz playlist in place (no duplicates) BoulderBadgeDad 2026-06-22 22:36:29 -0700
  • 5f1ec9ed7e #903: fix mirrored-card layout break from export status div BoulderBadgeDad 2026-06-22 22:28:07 -0700
  • c06ef6bb34 #903: mirrored-playlist card export button + live status UI BoulderBadgeDad 2026-06-22 20:40:03 -0700
  • 5ca88d96c1 #903: backend endpoints for playlist export to ListenBrainz/JSPF BoulderBadgeDad 2026-06-22 20:37:18 -0700
  • d430dd8b71 #903: real source wiring for the export MBID waterfall BoulderBadgeDad 2026-06-22 20:35:20 -0700
  • 42ff13d517 #903: persistent recording-MBID cache + export orchestrator BoulderBadgeDad 2026-06-22 20:31:35 -0700
  • c6b5cd9763 #903: ListenBrainz client create_playlist (create + batched item/add) BoulderBadgeDad 2026-06-22 20:28:31 -0700
  • fb9d88ea6a #903: playlist export to ListenBrainz — pure cores (JSPF builder + MBID resolver) BoulderBadgeDad 2026-06-22 20:25:44 -0700
  • 01c51a3c0e #904: guard standalone Deep Scan against relocating a desynced library BoulderBadgeDad 2026-06-22 17:53:49 -0700
  • df6815c2cc perf(dashboard): remove invisible card blur + redundant shadow layers BoulderBadgeDad 2026-06-22 17:10:40 -0700
  • b73389adea perf(dashboard): cache particle glow sprites instead of per-frame gradients BoulderBadgeDad 2026-06-22 15:23:16 -0700
  • 4b58d8079e perf(dashboard): auto-enable performance mode on weak hardware (device-scoped) BoulderBadgeDad 2026-06-22 15:12:25 -0700
  • b5b71df3fa perf(dashboard): trim blur radii (orbs 40->28px, header backdrop 28->18px) BoulderBadgeDad 2026-06-22 15:02:19 -0700
  • 9454970a83 perf(dashboard): sidebar header sweep animates transform, not left BoulderBadgeDad 2026-06-22 15:01:49 -0700
  • 49592f898c #902: YouTube Liked Music sync — paste a cookies.txt (server/Docker auth) BoulderBadgeDad 2026-06-22 14:41:04 -0700
  • b95a8f539e Auto-download: resolve an album track's real position from its album (not 1/1) BoulderBadgeDad 2026-06-22 13:32:24 -0700
  • 89018bb6b3 CSS: .sidebar-header z-index 2 -> 1 BoulderBadgeDad 2026-06-22 12:06:57 -0700
  • 203142c4a9 Multi-disc: file the track in the disc folder that matches its tag (Sokhi) BoulderBadgeDad 2026-06-22 10:56:53 -0700
  • c11a742e58 Multi-disc albums: never write a disc-less track (floor disc to >=1) BoulderBadgeDad 2026-06-22 09:30:04 -0700
  • 1ad80d77a6 #901: one-time backfill — stable ids for EXISTING file-import mirrored tracks BoulderBadgeDad 2026-06-22 09:06:34 -0700
  • 6e622d30f1 #901: give file-import playlist tracks a stable id so manual matches stick BoulderBadgeDad 2026-06-22 08:53:24 -0700
  • 0df1d55ed6 Sync: re-resolve a manual match against live Plex when its stored key went stale BoulderBadgeDad 2026-06-22 08:47:24 -0700
  • d162966cee Video tools: add a Server Scan tool (trigger the media server to index new downloads) BoulderBadgeDad 2026-06-22 08:26:24 -0700
  • 70ad5af378 Video tools: fix Library Scan card layout — wrap the 3 controls BoulderBadgeDad 2026-06-22 08:20:47 -0700
  • 3937cb4cb8 Video automations: Auto-Backup Database (video DB) — custom twin (phase 5) BoulderBadgeDad 2026-06-21 23:41:19 -0700
  • 1b39e6aa3f Lint: silence S110 on two intentional best-effort swallows in video handlers (pre-existing) BoulderBadgeDad 2026-06-21 23:35:05 -0700
  • f111b5dda6 Video automations: Full Cleanup twin (phase 4) BoulderBadgeDad 2026-06-21 23:33:28 -0700
  • a6b2737a5c Video automations: Clean Completed Downloads twin (phase 3) BoulderBadgeDad 2026-06-21 23:32:28 -0700
  • 3ef0990ffc Video automations: Clean Search History twin (phase 2) BoulderBadgeDad 2026-06-21 23:31:10 -0700
  • b26f664326 Video tools: scan a Movies OR TV library (not just both) BoulderBadgeDad 2026-06-21 23:27:35 -0700
  • 41f5b29c27
    Merge pull request #900 from Nezreka/dev 2.7.5 BoulderBadgeDad 2026-06-21 23:00:45 -0700
  • ad0eda3575 Release 2.7.5: bump version + What's New / version modal + PR description + docker-publish default tag BoulderBadgeDad 2026-06-21 22:54:21 -0700
  • 2a7259b296 Lint: log instead of bare except-pass in two best-effort paths (ruff S110) BoulderBadgeDad 2026-06-21 22:47:11 -0700
  • 458658de86 Special-edition cover art: prefer the pinned release own cover over the release-group representative BoulderBadgeDad 2026-06-21 22:47:09 -0700
  • 9aaafaf341 Organize-by-playlist: optional custom file naming for the playlist folder BoulderBadgeDad 2026-06-21 21:57:20 -0700
  • 15ea87a154 #897: surface the ignore-list on the wishlist page + stop blocking manual re-adds BoulderBadgeDad 2026-06-21 20:21:44 -0700
  • 1c93a5640d #893: add the M3U/M3U8 hint row to the import-file dropzone BoulderBadgeDad 2026-06-21 19:57:48 -0700
  • 3aaf19a357 #893: support M3U/M3U8 in playlist import-from-file BoulderBadgeDad 2026-06-21 19:43:59 -0700
  • d58da7a3db #899: map /app/MusicVideos in the Unraid template BoulderBadgeDad 2026-06-21 19:36:34 -0700
  • 7159b3dc35 #899: point Unraid template TemplateURL/Icon at the official Nezreka/SoulSync repo BoulderBadgeDad 2026-06-21 19:29:41 -0700
  • 3496bb1800 Dedup: match artists across a leading "The" so "The X" and "X" don't download twice BoulderBadgeDad 2026-06-21 19:21:59 -0700
  • 1782e36c78 Test the REAL Plex/Jellyfin sync matcher's durable-match fallback (#895) BoulderBadgeDad 2026-06-21 18:18:58 -0700
  • cf2b4d7d38 Playlist sync: honor the DURABLE manual match, not just the volatile cache BoulderBadgeDad 2026-06-21 18:15:20 -0700
  • b6cb244cbd HiFi preview: abort the source, don't cascade to a lower-tier preview — #895 BoulderBadgeDad 2026-06-21 17:09:43 -0700
  • 4bce1932ba HiFi: catch faked-header previews (full length claimed, ~30s real audio) — #895 BoulderBadgeDad 2026-06-21 16:56:46 -0700
  • 1249160ff5 HiFi: reject preview manifests/files instead of landing a 30s fake BoulderBadgeDad 2026-06-21 16:19:01 -0700
  • 7bbd069147 Deezer playlists: tag the REAL album track number, not the playlist index BoulderBadgeDad 2026-06-21 15:47:13 -0700
  • 66bce2b83a Watchlist hygiene: auto-prune ended/canceled followed shows BoulderBadgeDad 2026-06-21 15:05:20 -0700
  • 7fac921afc Video show detail (TMDB source): show the Watchlist + Trailer actions BoulderBadgeDad 2026-06-21 14:57:32 -0700
  • 0cf8654f47 Smart scan: poll the probe over a grace window (server auto-scan needs ~1-2 min) BoulderBadgeDad 2026-06-21 14:32:06 -0700
  • 9e845e760e Smart post-download scan: skip the crawl when the server already has the grab (phase 3) BoulderBadgeDad 2026-06-21 14:20:49 -0700
  • ed2fbf2ae4 Video download history: API + beautiful timeline modal (phase 2) BoulderBadgeDad 2026-06-21 14:15:37 -0700
  • 6fe82b2a78 Video download history: permanent archive snapshotted at terminal status (phase 1) BoulderBadgeDad 2026-06-21 14:10:22 -0700
  • a16afd1f9e Post-download scan: wait until Plex's scan queue is actually idle, not a fixed 2min BoulderBadgeDad 2026-06-21 13:44:52 -0700
  • 5a53ffc8c2 Video deep scan: pure read/reconcile, not a Plex disk-scan trigger BoulderBadgeDad 2026-06-21 13:27:55 -0700
  • 14a32f6006 Video scan family: make every action movie/TV-aware + deep scans are real actions BoulderBadgeDad 2026-06-21 13:04:39 -0700
  • cf47032660 Video deep scans: fixed weekly times (TV Mon 2am, Movies Tue 2am) BoulderBadgeDad 2026-06-21 12:39:53 -0700
  • b6320d1a30 Video: two system deep-scan automations (Movie + TV), independently scoped BoulderBadgeDad 2026-06-21 12:14:46 -0700
  • 36f944be25 Video automations: make the builder sidebar scrollable like the music side BoulderBadgeDad 2026-06-21 11:55:42 -0700
  • 0514931140 Auto-wishlist airing: run at a fixed daily 1am, not a rolling 24h interval BoulderBadgeDad 2026-06-21 11:41:34 -0700
  • 8053bf339c Video wishlist + watchlist: restyle toolbar controls to the video-side standard BoulderBadgeDad 2026-06-21 11:05:28 -0700
  • c35f56bffa Video auto-wishlist: store the show poster too (last field the manual add had) BoulderBadgeDad 2026-06-21 10:27:01 -0700
  • 94e06f2d50 Video auto-wishlist: store the show library_id (fixes 'show not matched') BoulderBadgeDad 2026-06-21 10:11:13 -0700
  • d925c34ce5 Video auto-wishlist: schedule the automation so it actually fires BoulderBadgeDad 2026-06-21 09:53:28 -0700
  • ae68750d9e Video auto-wishlist: pull episode metadata from TMDB, like a manual add BoulderBadgeDad 2026-06-21 09:41:12 -0700
  • cc2fb2ff79 Video auto-wishlist: carry episode synopsis + still into the wishlist BoulderBadgeDad 2026-06-21 09:20:27 -0700
  • fd66390648 Video automations: reliably delete the obsolete 'Scan Video Library' seed BoulderBadgeDad 2026-06-21 08:59:32 -0700
  • 5711963a6f Video watchlist: strip dirty titles when sorting (leading-space fix) BoulderBadgeDad 2026-06-21 08:52:49 -0700
  • 49714a59ea Video watchlist: sort alphabetically by name by default BoulderBadgeDad 2026-06-21 08:47:59 -0700
  • 01c101d24a Video: live per-episode download tracking + auto-wishlist today's airings BoulderBadgeDad 2026-06-21 02:27:08 -0700
  • a52dda6a7f Video quality: recognize plain WEB + accept resolution-only releases BoulderBadgeDad 2026-06-21 02:11:40 -0700
  • efa64db04d Video downloads: best-in-class post-process pipeline BoulderBadgeDad 2026-06-21 01:44:35 -0700
  • 366b5a266d video download modal: cinematic redesign of sources + search results BoulderBadgeDad 2026-06-20 16:57:09 -0700
  • 9bb6c4ebd0 video wishlist: add a 'Clear all' button (movies / TV / YouTube) BoulderBadgeDad 2026-06-20 16:42:57 -0700
  • 21e1944784 video scan: only FULL resets enrichment; incremental/deep preserve it BoulderBadgeDad 2026-06-20 15:06:44 -0700
  • bdcd929558 video automations: remove the standalone 'Scan Video Library' system automation BoulderBadgeDad 2026-06-20 14:55:34 -0700
  • 91eae710b4 video automations: post-download scan chain (parity with music's batch→scan→update) BoulderBadgeDad 2026-06-20 14:47:00 -0700
  • 297709baa4 video scan automation: incremental + schedule-only (no startup-proximate full scan) BoulderBadgeDad 2026-06-20 14:34:14 -0700
  • bb1074cc60 video enrichment: add a GLOBAL 'Retry all failed' (all workers, all kinds) BoulderBadgeDad 2026-06-20 14:15:18 -0700
  • 49222dd0b8 video calendar: watchlist-driven by default + an 'All library' toggle BoulderBadgeDad 2026-06-20 14:07:40 -0700
  • 7061001f66 video: add 'Add to Watchlist' button to person detail pages BoulderBadgeDad 2026-06-20 13:50:34 -0700
  • b23a3e91d8 video scan: show a 'cleaning up' phase during the deep-scan prune BoulderBadgeDad 2026-06-20 13:44:35 -0700
  • 7cd289e7b5 video scan: harden library scope + pause ALL enrichers during any scan BoulderBadgeDad 2026-06-20 13:24:57 -0700
  • 75f3b0aa71 chore: drop internal planning docs/specs from the PR branch dev 2026-06-20 22:10:22 +0200
  • 8349fa78dd video enrichment: fix DeArrow retry (was a silent no-op) BoulderBadgeDad 2026-06-20 12:52:06 -0700
  • 0eac0ea46e video Manage Workers modal: decouple coverage click from global priority; Retry-all covers all kinds BoulderBadgeDad 2026-06-20 12:50:18 -0700
  • d6776f9f57 video enrichment: detail backfill is TMDB-only (fix TVDB 404 spam + double-processing) BoulderBadgeDad 2026-06-20 12:38:03 -0700
  • f9dfbd8fd5 Quality presets: remember per-preset edits + reset-to-defaults dev 2026-06-20 21:35:45 +0200
  • 57f254acaf video enrichment: background TMDB details backfill (fills 'status' on pre-matched items) BoulderBadgeDad 2026-06-20 12:33:45 -0700
  • 9a3ca6ba4e video downloads: header 'Auto' picks ONE best across all sources; fix YT playlist leak BoulderBadgeDad 2026-06-20 10:48:55 -0700
  • f6f5561d0b video downloads: resume tracking on modal reopen + entirely new result-list design BoulderBadgeDad 2026-06-20 09:51:43 -0700
  • 7e504e03c6 video downloads: live tracking on the grabbed result + movie detail, redesigned cards BoulderBadgeDad 2026-06-20 09:41:05 -0700
  • afe3d0d04d video download modal: redesign the Sources area + Manual/Auto buttons BoulderBadgeDad 2026-06-20 09:18:04 -0700