Commit graph

  • d556ec0fa7 Bump version to 2.4.3 + make sidebar version dynamic Broque Thomas 2026-05-08 09:17:20 -0700
  • d7ab37e3b9
    Merge pull request #525 from Nezreka/fix/discover-track-selection-correction BoulderBadgeDad 2026-05-08 09:04:50 -0700
  • d75ae48981 Discover: sharpen track selection (diversity, source-aware popularity, library dedup, SQL genre) Broque Thomas 2026-05-08 08:49:22 -0700
  • d123581a39 Fix: ID gate missed Deezer-track-id-only rows Broque Thomas 2026-05-08 07:46:09 -0700
  • 959562f6b0 Delete Recently Added / Top Tracks / Forgotten Favorites / Familiar Favorites Broque Thomas 2026-05-08 07:31:51 -0700
  • 44dd7f980f Discover: unify Decade + Genre tabbed browsers Broque Thomas 2026-05-08 07:15:37 -0700
  • 0701bcc213 PersonalizedPlaylistsService: bake in ID-validity gate, lift selectors Broque Thomas 2026-05-08 07:14:36 -0700
  • 1f2b8f8ccd
    Merge pull request #522 from Nezreka/feat/discover-section-controller BoulderBadgeDad 2026-05-07 20:51:56 -0700
  • c557d9196e Discover controller — Cin pre-review polish Broque Thomas 2026-05-07 20:35:10 -0700
  • dc2323cde6 Discover cleanup: controller extensions, toast errors, migrate skipped sections Broque Thomas 2026-05-07 20:05:39 -0700
  • 4ee78bb973 Migrate 7 more discover sections to the shared controller Broque Thomas 2026-05-07 19:21:19 -0700
  • 07a71f0432 Discover section controller foundation + migrate Recent Releases Broque Thomas 2026-05-07 18:14:56 -0700
  • fd4b051bcc
    Merge pull request #521 from Nezreka/dev 2.4.2 BoulderBadgeDad 2026-05-07 16:23:21 -0700
  • 6637c29964
    Merge pull request #520 from Nezreka/release/2.4.2 BoulderBadgeDad 2026-05-07 16:14:54 -0700
  • 6aafcaae93 Bump version to 2.4.2 Broque Thomas 2026-05-07 16:11:25 -0700
  • f2fb66340a
    Merge pull request #519 from Nezreka/feat/artist-top-tracks-download BoulderBadgeDad 2026-05-07 15:50:08 -0700
  • 1a2da016e4 Add download buttons + bulk action to artist top-tracks sidebar Broque Thomas 2026-05-07 15:44:47 -0700
  • dd48dc8c6e Update style.css Broque Thomas 2026-05-07 14:03:14 -0700
  • 5eff659220
    Merge pull request #518 from Nezreka/fix/acoustid-version-mismatch BoulderBadgeDad 2026-05-07 13:42:58 -0700
  • 01c528fd5f Reject AcoustID matches whose version disagrees with the expected track Broque Thomas 2026-05-07 13:25:30 -0700
  • caef3dc9f1
    Merge pull request #517 from Nezreka/fix/primary-source-non-admin-profiles BoulderBadgeDad 2026-05-07 11:58:03 -0700
  • caa1c198e5 Fix non-admin profiles defaulting to Spotify on search picker Broque Thomas 2026-05-07 11:53:02 -0700
  • 627d32cebd
    Merge pull request #516 from Nezreka/fix/silent-exception-swallowing BoulderBadgeDad 2026-05-07 11:28:43 -0700
  • 9602d1827c Final silent-exception sweep + ruff S110 lint guardrail — ~45 sites Broque Thomas 2026-05-07 11:16:06 -0700
  • aa54bed818 Surface silent exceptions across remaining modules — ~70 sites Broque Thomas 2026-05-07 10:28:58 -0700
  • e95452b465 Surface silent exceptions in workers + repair jobs — ~30 sites Broque Thomas 2026-05-07 10:27:24 -0700
  • 8219771304 Add module logger + surface silent exceptions in 7 logger-less files — 12 sites Broque Thomas 2026-05-07 10:27:04 -0700
  • 8dc9f79f97 Surface silent exceptions in watchlist + discovery + reorganize — 18 sites Broque Thomas 2026-05-07 09:52:20 -0700
  • de348981a5 Surface silent exceptions in import pipeline — 11 sites Broque Thomas 2026-05-07 09:50:15 -0700
  • aa9429d733 Surface silent exceptions in core/artists — 23 sites Broque Thomas 2026-05-07 09:49:29 -0700
  • cc7a3f76ac Surface silent exceptions in metadata clients — 37 sites Broque Thomas 2026-05-07 09:33:38 -0700
  • e4e6b6bd5a Surface silent exceptions in repair_worker — 16 sites Broque Thomas 2026-05-07 09:17:51 -0700
  • bfef2c7579 Surface silent exceptions in music_database.py — 18 sites Broque Thomas 2026-05-07 09:17:19 -0700
  • b0c58a0f91 Surface silent exceptions in web_server.py — 81 sites Broque Thomas 2026-05-07 09:09:17 -0700
  • 763d160691
    Merge pull request #514 from Nezreka/fix/repair-job-card-pending-count BoulderBadgeDad 2026-05-07 08:30:45 -0700
  • 4c11375930 Repair job card badge — show pending count, not last-scan count Broque Thomas 2026-05-07 08:28:17 -0700
  • 7bd15438da
    Merge pull request #506 from JohnBaumb/dependencies-pin BoulderBadgeDad 2026-05-06 23:46:32 -0700
  • 7ceeee2715
    Merge pull request #496 from dlynas/feat/fast-entrypoint-permissions BoulderBadgeDad 2026-05-06 23:36:16 -0700
  • 8e389fc187
    Merge pull request #512 from Nezreka/fix/slskd-http-timeout-prevents-worker-deadlock BoulderBadgeDad 2026-05-06 22:11:03 -0700
  • 5c69b853b4 Bound slskd HTTP timeout — fixes worker thread deadlock Broque Thomas 2026-05-06 22:02:25 -0700
  • fdd6700161
    Merge pull request #511 from Nezreka/fix/library-reorganize-job-via-per-album-planner BoulderBadgeDad 2026-05-06 21:38:39 -0700
  • ca5c93162c Rewrite Library Reorganize job to delegate to per-album planner Broque Thomas 2026-05-06 21:18:20 -0700
  • 4f19b2ffb8
    Merge pull request #510 from Nezreka/fix/honor-manual-match-in-enrich BoulderBadgeDad 2026-05-06 20:00:32 -0700
  • cceffbd8ec Honor manually-matched source IDs in per-source enrichment workers Broque Thomas 2026-05-06 19:00:53 -0700
  • 4dd0640799
    Merge pull request #509 from Nezreka/fix/hifi-instances-table-missing BoulderBadgeDad 2026-05-06 18:02:30 -0700
  • fd5ccf4cb8 Fix "no such table: hifi_instances" via defensive lazy-create Broque Thomas 2026-05-06 17:49:44 -0700
  • b385034f79
    Merge pull request #508 from Nezreka/feat/plex-all-libraries-mode BoulderBadgeDad 2026-05-06 17:10:11 -0700
  • 9f2813fce4 Add cross-section dedup to all-libraries listing layer Broque Thomas 2026-05-06 16:01:37 -0700
  • 0eab09cead unpin yt-dlp to always grab latest on rebuild JohnBaumb 2026-05-06 15:47:51 -0700
  • 083f38ca77 pin all dependencies to exact resolved versions JohnBaumb 2026-05-06 15:45:19 -0700
  • 620c41f1ac Add "All Libraries (combined)" mode to PlexClient Broque Thomas 2026-05-06 15:39:19 -0700
  • bc5644d5c2
    Merge pull request #504 from Nezreka/fix/enhance-quality-without-spotify BoulderBadgeDad 2026-05-06 13:10:43 -0700
  • 822759740d Fix Download Discography pulling wrong artist + log routing Broque Thomas 2026-05-06 13:03:43 -0700
  • 3befe9349c Direct ID lookup in Enhance Quality, like Download Discography Broque Thomas 2026-05-06 12:05:41 -0700
  • 7316646b01 Extract multi-source search; Enhance Quality matches Redownload coverage Broque Thomas 2026-05-06 11:26:22 -0700
  • 4a27f3c245 Source-agnostic Enhance Quality flow + reject empty matches Broque Thomas 2026-05-06 09:30:33 -0700
  • 549c885f02
    Merge pull request #497 from Nezreka/refactor/media-server-engine BoulderBadgeDad 2026-05-06 09:07:43 -0700
  • b0dc139b72 Sync WHATS_NEW with current engine surface Broque Thomas 2026-05-06 08:07:44 -0700
  • e27ecb84f4 Final review-pass nits — class docstring, dead branch, dead imports, boot resilience Broque Thomas 2026-05-05 22:59:33 -0700
  • 6489244bcc MS Cin/JohnBaumb honesty pass — drop dead wrappers, sync contract to reality Broque Thomas 2026-05-05 22:36:05 -0700
  • 99f527ecd1 MS pre-review polish followup — log levels + docstring honesty Broque Thomas 2026-05-05 21:25:27 -0700
  • 860f9a0a8c MS pre-review polish — encapsulation + visibility + tests Broque Thomas 2026-05-05 21:04:14 -0700
  • f230c93890 Merge remote-tracking branch 'origin/dev' into refactor/media-server-engine Broque Thomas 2026-05-05 20:36:31 -0700
  • 397a1c73df ID-first fallback for replace-track + remove-track too Broque Thomas 2026-05-05 20:06:08 -0700
  • 218af65606 ID-first fallback for server-playlist add-track + diagnostic logging Broque Thomas 2026-05-05 19:54:31 -0700
  • 03d1c36637 Fallback to empty MediaServerEngine if init fails Broque Thomas 2026-05-05 18:42:21 -0700
  • edb6d1bc33 Drop dead per-server class imports + update WHATS_NEW Broque Thomas 2026-05-05 18:36:36 -0700
  • 2ebaf2e6e3 MS Gap 1: Lift shared TrackInfo + PlaylistInfo to neutral types module Broque Thomas 2026-05-05 18:25:28 -0700
  • a6bb5f5b43 MS Cin-5: Drop per-server globals — engine owns the clients Broque Thomas 2026-05-05 18:05:45 -0700
  • d3f8a06d7a WHATS_NEW entry for media server engine review pass Broque Thomas 2026-05-05 17:43:05 -0700
  • 1bc5017592 MS Cin-3 + Cin-4: Route web_server through engine instead of per-client globals Broque Thomas 2026-05-05 17:40:27 -0700
  • 49f7679eef MS Cin-1 + Cin-2: Explicit contract inheritance + generic accessors Broque Thomas 2026-05-05 16:59:05 -0700
  • 2c0a0da9ea Address Copilot doc-drift review Broque Thomas 2026-05-05 13:53:31 -0700
  • b53d6f1b95
    Merge pull request #495 from Nezreka/refactor/download-source-plugins BoulderBadgeDad 2026-05-05 15:43:18 -0700
  • 4aa6b0fcf5 Add 5 test additions JohnBaumb suggested Broque Thomas 2026-05-05 13:04:18 -0700
  • c4c922c40f Surface engine-not-wired errors + exclude soulseek from monitor aggregation Broque Thomas 2026-05-05 12:20:51 -0700
  • 2c19d7d1f2 Per-source lock sharding on the engine Broque Thomas 2026-05-05 11:56:09 -0700
  • a5fde0502a Engine state: nested-dict layout for O(source) iteration Broque Thomas 2026-05-05 11:46:44 -0700
  • ea04cd5879 Address Copilot review nits Broque Thomas 2026-05-05 11:22:01 -0700
  • da424d4bf6 Treat 'type beat' as a wrong-version keyword Broque Thomas 2026-05-05 10:42:05 -0700
  • 2aff3dc210 Filter SoundCloud previews at every entry point + fix hybrid fallback regression Broque Thomas 2026-05-05 10:26:25 -0700
  • 563204ceae Drop SoundCloud preview snippets before scoring Broque Thomas 2026-05-05 09:50:37 -0700
  • d17365296a Lift shared download dataclasses + boot via singleton factory Broque Thomas 2026-05-05 09:08:39 -0700
  • adecb7e8a8 Cin-7: Final per-source attr-reach cleanup Broque Thomas 2026-05-05 07:12:01 -0700
  • 61ba3a15de Cin-6: Rename soulseek_client global → download_orchestrator Broque Thomas 2026-05-04 23:23:32 -0700
  • 7519c3d50c Cin-5: Drop per-source attrs from orchestrator Broque Thomas 2026-05-04 23:14:05 -0700
  • e4bdb8bc17 fix: skip recursive chown when data directory ownership already matches dlynas 2026-05-05 02:05:26 -0400
  • d0eac87601 Cin review: alias resolution, atomic terminal write, generic accessors Broque Thomas 2026-05-04 22:58:46 -0700
  • 6a75d656fa Cin-2: Generic accessors on orchestrator + singleton factory Broque Thomas 2026-05-04 22:35:45 -0700
  • ea654f664e Cin-1: Make DownloadSourcePlugin inheritance explicit on every client Broque Thomas 2026-05-04 22:19:52 -0700
  • 2cd2f9c443 fix: skip recursive chown on startup when UIDs are already correct dlynas 2026-05-05 00:46:45 -0400
  • 650327ba18 Phase E: Add WHATS_NEW entry for media server engine refactor Broque Thomas 2026-05-04 21:45:29 -0700
  • b769f02f04 C2: Migrate remaining uniform is_connected dispatches Broque Thomas 2026-05-04 21:28:09 -0700
  • 971d683ebd C1: Migrate status-check dispatch sites to engine Broque Thomas 2026-05-04 21:25:20 -0700
  • 6b54ca6598 Phase B: Add MediaServerEngine skeleton Broque Thomas 2026-05-04 21:14:17 -0700
  • 50fe4bec97 A4: Pin SoulSyncClient observable behavior Broque Thomas 2026-05-04 21:03:37 -0700
  • edcdaaa993 A3: Pin NavidromeClient observable behavior Broque Thomas 2026-05-04 21:01:11 -0700
  • 5da2cfec46 A2: Pin JellyfinClient observable behavior Broque Thomas 2026-05-04 20:53:55 -0700
  • c1da56b2c2 A1: Pin PlexClient observable behavior Broque Thomas 2026-05-04 20:53:00 -0700
  • f702196dca Phase 0: Add MediaServerClient contract + registry Broque Thomas 2026-05-04 20:49:25 -0700