Commit graph

  • df898b5212 Import: atomic tag saves so an interrupted/OOM save can't destroy the file (#819) BoulderBadgeDad 2026-06-08 13:46:28 -0700
  • 72c62aec45 CSS: fix dashboard hover-flicker (#816), Automations tile clutter (#816), and onboarding badge overlap (#817) BoulderBadgeDad 2026-06-08 11:29:00 -0700
  • cdee7b3550 Cover Art Filler: always write the cover.jpg sidecar (Sokhi) BoulderBadgeDad 2026-06-08 11:07:00 -0700
  • 3c06bd03c0
    fix(tidal): honour version field in matching and back off on rate limits Jeff Theroux 2026-06-08 13:50:11 -0400
  • 7d481ae02f Cover Art Filler: a local album with file art isn't "missing" just because the DB thumb is empty (Boulder) BoulderBadgeDad 2026-06-08 10:03:43 -0700
  • 8277385051 Cover Art Filler: resolve the rep path before the disk-art check (flags-every-album) BoulderBadgeDad 2026-06-08 09:52:17 -0700
  • 442ced3dbf Jellyfin/Emby: populate album thumb_url during the library scan (root cause of "flags every album") BoulderBadgeDad 2026-06-08 09:40:27 -0700
  • c83d4862e8 Cover art: stop crying "(read-only?)" when files are simply already arted (Sokhi/Boulder) BoulderBadgeDad 2026-06-08 09:06:37 -0700
  • 41f4eeb91e Watchlist: log when the release-type filter skips an album/EP/single BoulderBadgeDad 2026-06-08 08:52:49 -0700
  • 1ca14d1c19 Cover art: surface read-only on the cover.jpg sidecar write too (Sokhi, #804 follow-up) BoulderBadgeDad 2026-06-08 08:34:36 -0700
  • 902eb38fb8 Downloads: fix collapsed-batch overflow (#814) + Retry Failed result feedback (#815) BoulderBadgeDad 2026-06-07 23:53:18 -0700
  • f4dbaea68b
    Merge pull request #812 from Nezreka/dev 2.6.8 BoulderBadgeDad 2026-06-07 23:38:26 -0700
  • 40e3dac881 Sync: append mode preserves the playlist image like reconcile (#811) BoulderBadgeDad 2026-06-07 23:25:42 -0700
  • 1fba950284 Release 2.6.8: version bump + docker-publish default + What's New changelog BoulderBadgeDad 2026-06-07 23:18:21 -0700
  • 20ca4bb981 Import: don't duration-quarantine manual imports against a re-resolved release (#804) BoulderBadgeDad 2026-06-07 23:02:34 -0700
  • 2742f1fa47 Import UI: show per-file rejection reasons in the processing window (#804) BoulderBadgeDad 2026-06-07 22:53:47 -0700
  • d9dcf57f43 Import: never wipe a clean/matched import's tags when enhancement fails (#804) BoulderBadgeDad 2026-06-07 22:44:43 -0700
  • 8f7ff472b2 Expired Cleaner: set auto_fix=True so the Dry Run badge shows (was mislabeled 'Scan Only') BoulderBadgeDad 2026-06-07 22:24:59 -0700
  • 46730d1661 Expired Cleaner: rename the safety toggle to dry_run (default ON), matching Re-tag BoulderBadgeDad 2026-06-07 22:13:30 -0700
  • 696119d5ac Expired Download Cleaner: retention-based cleanup of watchlist/playlist downloads (Boulder) BoulderBadgeDad 2026-06-07 22:06:56 -0700
  • 6c3e285a49 Cover art: detect read-only from the actual write, not statvfs (Sokhi false-positive) BoulderBadgeDad 2026-06-07 19:57:34 -0700
  • ed38d60b18 Lyrics Filler: convert track duration ms→s for LRClib (exact-match was silently defeated) BoulderBadgeDad 2026-06-07 19:45:10 -0700
  • e93357a385 Lyrics retag: fetch query from a read-only lyrics_meta, never db_data (no tag pollution) BoulderBadgeDad 2026-06-07 19:42:30 -0700
  • 1051ef2402 Lyrics: add a "Lyrics Filler" maintenance job + lyrics option in the Re-tag tool (Sokhi) BoulderBadgeDad 2026-06-07 17:27:52 -0700
  • 4e3241bfad Track rows: drop the pill behind track-match-status (rendered behind the library status) BoulderBadgeDad 2026-06-07 16:39:35 -0700
  • 4eae33270b Watchlist: put Blocklist + Download Origins buttons on the LIVE page header BoulderBadgeDad 2026-06-07 16:24:26 -0700
  • 8ee59c7453 Blocklist Phase 2b: gate manual downloads with a "download anyway?" confirm BoulderBadgeDad 2026-06-07 16:15:23 -0700
  • 45badf588c Blocklist Phase 2a: gate the download queue (playlist sync / album / discography) BoulderBadgeDad 2026-06-07 15:49:59 -0700
  • b6d78d015d Blocklist Phase 1 (backfill + API + modal): the Blocklist button on the watchlist page BoulderBadgeDad 2026-06-07 15:25:52 -0700
  • 43c798a76e Blocklist Phase 1 (backend): artist/album/track bans enforced at the wishlist chokepoint BoulderBadgeDad 2026-06-07 15:18:25 -0700
  • 8b7b9d8f3f #809 review follow-up: crossfade preload also streams un-mounted Navidrome tracks BoulderBadgeDad 2026-06-07 13:55:58 -0700
  • df929dc022 #809 Navidrome playback: stream via the server's API when the library isn't mounted on disk BoulderBadgeDad 2026-06-07 13:52:14 -0700
  • 7207ec61fb Cover Art Filler: fix album art or artist art independently (Pache711) BoulderBadgeDad 2026-06-07 13:24:46 -0700
  • 8b7609cdb2 Manual match: paste a MusicBrainz ID/URL to match directly (Ashh) BoulderBadgeDad 2026-06-07 13:04:17 -0700
  • 46f03827a2 Torrents: surface the stall settings as UI controls (noldevin) BoulderBadgeDad 2026-06-07 12:52:57 -0700
  • 5187fe5f66 Torrents: stalled-torrent handling — abandon a dead magnet instead of holding a worker 6h (noldevin) BoulderBadgeDad 2026-06-07 12:38:51 -0700
  • 1753f2ab43 Settings GET: never ship spotify.token_info to the browser BoulderBadgeDad 2026-06-07 12:14:47 -0700
  • 603b7a2ab8 Spotify tokens move into the database — daily Docker deauth fixed (wolf39us) BoulderBadgeDad 2026-06-07 12:01:33 -0700
  • f1f9d803a5 Multi-artist: pin the Deezer-search -> Tidal-download flow end to end (Netti93 follow-up) BoulderBadgeDad 2026-06-07 11:46:04 -0700
  • 58df4632c4 Watchlist: repair iTunes ids that are actually Deezer ids (the 37725457 corruption, proven live) BoulderBadgeDad 2026-06-07 11:27:28 -0700
  • 377254572b Watchlist: iTunes ID backfill never worked in the normal wiring — use the registry client BoulderBadgeDad 2026-06-07 11:22:03 -0700
  • 4a1b3d0627 PR #801 follow-up: default-config template contradicted the retry engine's documented default BoulderBadgeDad 2026-06-07 11:04:28 -0700
  • ece74250fb art_apply: statvfs pre-flight is POSIX-only — Windows has no os.statvfs BoulderBadgeDad 2026-06-07 10:46:09 -0700
  • 3c758635d5 Cover-art filler: name the real cure when the music mount is read-only BoulderBadgeDad 2026-06-07 10:33:33 -0700
  • 142a1aaf38 Cover art: a numeric difference is a different release — Vol.4 stops wearing Vol.4.5's cover BoulderBadgeDad 2026-06-07 10:21:23 -0700
  • ef751ce4e4 Artist pages: stop watchlist probes from poisoning the album-list cache BoulderBadgeDad 2026-06-07 09:49:30 -0700
  • f250eaa228 #808: album-context qualifiers stop blocking library-presence matching BoulderBadgeDad 2026-06-07 09:24:03 -0700
  • 157d19f3b9 Post-merge #801 follow-ups: un-silence the retry engine's logs + register origin-history.js BoulderBadgeDad 2026-06-07 00:58:09 -0700
  • 79f020b3b4
    Merge pull request #801 from nick2000713/feature/retry-next-candidate-on-mismatch BoulderBadgeDad 2026-06-07 00:45:21 -0700
  • e135873b4b #705: release-date gate — unreleased tracks stay out of the wishlist cycle and Fresh Tape BoulderBadgeDad 2026-06-07 00:29:05 -0700
  • 1f7834cc7b Download Origins: see (and delete) exactly what watchlist + playlist syncs downloaded BoulderBadgeDad 2026-06-07 00:15:31 -0700
  • 76c63b5bc4 #806 lock-in: archive.org outage cooldown for CAA originals BoulderBadgeDad 2026-06-06 23:36:14 -0700
  • c6d1dede2b #806: MusicBrainz cover art at native resolution (Cover Art Archive /front) BoulderBadgeDad 2026-06-06 23:18:45 -0700
  • b7fc6c3361 Genius 429 backoff: fail-fast gate instead of napping the import pipeline BoulderBadgeDad 2026-06-06 20:51:33 -0700
  • 88da265ef4 Import speed: downloads pause ALL enrichment workers, discovery pauses the contention five BoulderBadgeDad 2026-06-06 19:05:56 -0700
  • b58d7b4dad Fix the track-row pills: <td>s must stay table-cells BoulderBadgeDad 2026-06-06 18:35:45 -0700
  • ab33d8cf2e #802: on-demand memory-growth diagnostic (tracemalloc, browser-drivable) BoulderBadgeDad 2026-06-06 18:31:14 -0700
  • d2771f0f26 Download modal: live track-row states — pills that breathe only while working BoulderBadgeDad 2026-06-06 18:27:00 -0700
  • 57c44064b1 Modal revamp: the living layer — dashboard-grade motion, compositor-only BoulderBadgeDad 2026-06-06 18:03:30 -0700
  • a5530c45be Revamp the download + discovery modals (visual only) BoulderBadgeDad 2026-06-06 17:59:39 -0700
  • c4633ada28 Dockerfile: bust the yt-dlp nightly layer cache per commit BoulderBadgeDad 2026-06-06 16:56:23 -0700
  • 00e50c2fcb Tests: lock the yt-dlp JS-runtime startup warning seam BoulderBadgeDad 2026-06-06 16:52:52 -0700
  • 303b09f1b5 YouTube: ship the JS runtime + nightly yt-dlp so streams/music videos work out of the box BoulderBadgeDad 2026-06-06 16:50:24 -0700
  • d35b09fc3c Auto-Sync tile: light for the WHOLE pipeline, including scheduled auto-sync BoulderBadgeDad 2026-06-06 16:32:10 -0700
  • ace4b15d2e Quick Actions tiles: live amplification (animation == gauge) + GPU cleanup BoulderBadgeDad 2026-06-06 16:18:15 -0700
  • 318dd28748 Dashboard animations: GPU pass — same visuals, compositor-only where possible BoulderBadgeDad 2026-06-06 16:05:05 -0700
  • 1ad3dac222 Rate monitor: call embers rise off the bars in proportion to real traffic BoulderBadgeDad 2026-06-06 15:44:54 -0700
  • 7efb5da893 Rate monitor: daily-budget ring around the Spotify avatar BoulderBadgeDad 2026-06-06 15:43:48 -0700
  • 09af31154e Rate monitor: rate-limit bans drain down as a visible countdown BoulderBadgeDad 2026-06-06 15:42:05 -0700
  • 12ad373a83 Rate monitor: peak-hold tick on the equalizer bars (the VU idiom) BoulderBadgeDad 2026-06-06 15:40:49 -0700
  • 01ae63f0d5 Worker orbs: excitement kick when a worker flips active BoulderBadgeDad 2026-06-06 14:49:23 -0700
  • 4082803d78 Worker orbs: sleep/wake cycle — the system drowses when idle, blooms awake on work BoulderBadgeDad 2026-06-06 14:48:15 -0700
  • be776cc35b Worker orbs: comet tails on telemetry pulses BoulderBadgeDad 2026-06-06 14:45:20 -0700
  • 103d55a2f3 Worker orbs: pulses visibly land on the nucleus (impact ripples + debris) BoulderBadgeDad 2026-06-06 14:44:47 -0700
  • 6e4c56c5d9 Worker orbs: pseudo-3D orbital depth — orbs pass behind the nucleus BoulderBadgeDad 2026-06-06 14:42:41 -0700
  • ee13bc8a05 Dashboard worker orbs bloom from center instead of creeping in from top-left BoulderBadgeDad 2026-06-06 14:30:54 -0700
  • fe1366d9e0 Mirrored "Liked Songs" stops 400ing on every auto-refresh (wolf39us) BoulderBadgeDad 2026-06-06 13:50:49 -0700
  • df19317dac Library Re-tag: cover-mode scans stop producing unappliable "(0 track(s))" findings BoulderBadgeDad 2026-06-06 13:38:13 -0700
  • 07d09d7d0e Stream button: the player never learns its stream is ready (2.6.5 regression) BoulderBadgeDad 2026-06-06 12:43:20 -0700
  • 69fc21d6b2 #767-2: reorganize finds the right album edition instead of mislabeling singles as deluxe BoulderBadgeDad 2026-06-06 10:52:58 -0700
  • 2921e80d58 Spotify: log WHY a request was skipped, not a catch-all "Not authenticated" BoulderBadgeDad 2026-06-06 09:40:52 -0700
  • cfb8cc8bd8 Library Re-tag findings: show the physical filename under each track BoulderBadgeDad 2026-06-06 09:11:20 -0700
  • d44de75906 Changelog/PR: note the Spotify Free budget→free bridge in the 2.6.7 entry BoulderBadgeDad 2026-06-06 08:52:54 -0700
  • e5e56f3d06 Bridge the Spotify worker to Free when the daily budget is spent (don't pause) BoulderBadgeDad 2026-06-06 08:51:30 -0700
  • 19bd34863f Downloads: retry next-best candidate defaults to off (opt-in) dev 2026-06-06 14:52:04 +0200
  • 2fdfc702db Downloads: race guard ignores stale duplicate calls after quarantine dev 2026-06-06 00:59:38 +0200
  • 9b1445b3b5 Downloads: version-mismatch fallback also fires when retry search finds no candidates dev 2026-06-05 23:38:41 +0200
  • 69a37e96b7 WebUI: restore Soulseek-only gating for the Quality Profile tile dev 2026-06-05 22:59:30 +0200
  • 37140dff34 Downloads: opt-in last-resort acceptance of repeated version mismatches dev 2026-06-05 22:55:07 +0200
  • 87a4e41f9e WebUI: Quality Profile tile visible via tab filter (drop fragile Soulseek gate) dev 2026-06-05 22:26:35 +0200
  • 81291c198b WebUI: fix empty Quality Profile tile — gate whole tile, not inner group dev 2026-06-05 22:15:04 +0200
  • 63036a41ee WebUI: Retry/Quality settings as collapsible Downloads tiles; restore sidebar hover in reduce-effects dev 2026-06-05 22:05:10 +0200
  • 6cb5d455f9 MusicBrainz: alias trust-gate evaluates MB-score leader, not combined leader dev 2026-06-05 21:34:37 +0200
  • 70732ad80e Downloads: lazy multi-query quarantine retry — exhaust all queries per source dev 2026-06-05 19:12:36 +0200
  • 07ca7eacfa Downloads: cached-first quarantine retry — stop re-searching the same source dev 2026-06-05 17:25:47 +0200
  • 5e0f86c5f5 Downloads: exhausted source switches to next source instead of failing dev 2026-06-05 15:50:11 +0200
  • f3d43f385e Downloads: per-source exhaustive retry budget on mismatch (opt-in) dev 2026-06-05 13:14:51 +0200
  • e83cf19903 Downloads: retry next-best candidate on AcoustID/integrity quarantine dev 2026-06-05 02:24:00 +0200
  • 04de4b61c4
    Merge pull request #803 from Nezreka/dev 2.6.7 BoulderBadgeDad 2026-06-05 23:48:10 -0700
  • 971f2fd4f0 Release 2.6.7: version bump + changelog BoulderBadgeDad 2026-06-05 23:37:53 -0700