Commit Graph

45 Commits

Author SHA1 Message Date
Claudio Ortolina cb07e70d36 ML-159: research and plan 2026-05-03 22:14:49 +01:00
Claudio Ortolina 010c89774a ML-159: cancelled as not fit for purpose 2026-05-03 20:47:01 +01:00
Claudio Ortolina 5981970039 ML-157: implementation and configuration 2026-05-03 16:33:23 +01:00
Claudio Ortolina a6ef5996ed Backlog cleanup 2026-05-03 15:40:20 +01:00
Claudio Ortolina b7666168dc ML-158: plan review 2026-05-03 15:39:19 +01:00
Claudio Ortolina 29bedcd028 ML-158: task research and plan 2026-05-03 15:28:02 +01:00
Claudio Ortolina 9fda537bf9 ML-157: iterate on plan 2026-05-03 14:59:14 +01:00
Claudio Ortolina a8eb4fe0b5 ML-157: task research and plan 2026-05-03 14:45:22 +01:00
Claudio Ortolina b396dbe037 ML-156: plan revisions 2026-05-02 19:14:25 +01:00
Claudio Ortolina dac946bbd6 ML-156: initial research 2026-05-02 17:17:11 +01:00
Claudio Ortolina 0b78f24fed ML-155: Compact collection summary and add stats preamble 2026-05-02 07:11:18 +01:00
Claudio Ortolina ed67f97271 Move done -> completed 2026-05-01 15:29:33 +01:00
Claudio Ortolina 3b558044b4 refactor: extract Records sub-contexts (Search, Import, Enrichment)
Split the 450+ line Records context into focused modules:

- Records.Search — FTS5 search, SearchParser integration, genre listing
- Records.Import — MusicBrainz release/group import, release status
- Records.Enrichment — genre population, cover refresh, color extraction,
  MusicBrainz data refresh
- Records.Query — shared helpers (essential_fields, order_alphabetically macro)

Records module is now a facade with defdelegate for compile-time safety.
CRUD and PubSub stay directly in Records. Tests moved alongside each
sub-module. Zero callers changed, 886 tests pass.
2026-04-30 17:20:37 +01:00
Claudio Ortolina 08fcd70a8c ML-154: add early platform detection for SQLite extensions 2026-04-30 13:39:39 +01:00
Claudio Ortolina 13068aa0ac ML-153: move MusicBrainz data transforms from Record 2026-04-30 13:21:18 +01:00
Claudio Ortolina b8b3b24ffa ML-151: document Assets.Cache TTL and invalidation strategy
Expand @moduledoc with cache key structure, 7-day TTL via
@one_week_seconds, periodic pruning by PruneAssetCache (every 12h),
and rationale for TTL-only invalidation (content-addressable immutable
assets). Update architecture.md entry accordingly.
2026-04-30 13:07:06 +01:00
Claudio Ortolina c489fde1cc ML-152: add /api/v1/ version prefix to all API routes 2026-04-30 11:57:43 +01:00
Claudio Ortolina 70d5f3bf61 Backlog grooming session 2026-04-30 11:50:07 +01:00
Claudio Ortolina f8a52993c1 ML-149: Fix selected bar not showing track data in Safari 2026-04-30 07:21:25 +01:00
Claudio Ortolina 597cc89821 ML-147: Upgrade to ServerSentEvents 1.0.0 2026-04-27 22:02:45 +01:00
Claudio Ortolina 839277de94 Done cleanup 2026-04-25 22:27:58 +01:00
Claudio Ortolina 242549b85a ML-147: Upgrade to ServerSentEvents 1.0 2026-04-25 22:26:34 +01:00
Claudio Ortolina 9113df5879 ML-146: honour API retry headers 2026-04-25 07:39:49 +01:00
Claudio Ortolina a1c665b490 ML-21: Classify API errors as transient vs permanent 2026-04-24 14:02:15 +01:00
Claudio Ortolina be4f4686f8 ML-146: Honour rate-limit headers for precise snoozing 2026-04-24 12:13:56 +01:00
Claudio Ortolina b9bc96b9a4 ML-21: reframe for correctness 2026-04-24 12:13:33 +01:00
Claudio Ortolina 2e38412a84 ML-10: break compile cycle via Artists → Collection edge 2026-04-24 10:49:47 +01:00
Claudio Ortolina 252caf31ce ML-11: Improve performance of Telemetry.Storage with in-memory buffer 2026-04-24 10:30:28 +01:00
Claudio Ortolina 2a688e2309 Cleanup old tasks 2026-04-24 09:58:09 +01:00
Claudio Ortolina 3852340479 ML-13: Tighten ecto_sqlite3 dep constraints 2026-04-24 09:54:05 +01:00
Claudio Ortolina 815b34c024 ML-9: add mix_audit for CVE scanning (warn-only) 2026-04-24 08:13:42 +01:00
Claudio Ortolina 90db113845 ML-5: document Last.fm OAuth callback trust boundary
Closes GitHub issue #178.
2026-04-24 08:05:07 +01:00
Claudio Ortolina 38b53592c5 ML-1: archive as not needed 2026-04-24 07:59:49 +01:00
Claudio Ortolina 7ad09736cf ML-144: enrich issue description and add done requirements 2026-04-24 07:52:22 +01:00
Claudio Ortolina 43297ecfde ML-145: done
Archives ML-142.1 as a consequence
2026-04-23 15:16:17 +01:00
Claudio Ortolina e1fe51972c ML-145: Restructure /scrobble routes; reuse Release component on scrobble page 2026-04-23 07:12:19 +01:00
Claudio Ortolina 1b782d910b ML-142.1: capture task 2026-04-22 17:31:23 +01:00
Claudio Ortolina 0776700170 ML-142: Improve scrobble UI in the release component
- Sticky bar for easier track-based scrobbling
- Support setting custom finish time
2026-04-22 17:19:35 +01:00
Claudio Ortolina 70b51b3790 ML-142: Accepted mockup and plan 2026-04-22 16:45:52 +01:00
Claudio Ortolina af6fed8bb7 ML-144: capture task 2026-04-22 16:41:34 +01:00
Claudio Ortolina 7ad094d537 Complete ML-143 2026-04-20 15:15:29 +01:00
Claudio Ortolina 3f5ce060b1 Implement ML-143: Cart-style multi record import
Closes ML-143.
2026-04-20 15:15:29 +01:00
Claudio Ortolina 0ae8e69fb9 Add ML-143: Cart-style multi record import 2026-04-20 11:02:51 +01:00
Claudio Ortolina 5c32016c39 Add ML-142: Improve scrobble UI in the Release component 2026-04-20 11:02:25 +01:00
Claudio Ortolina f995e01ca7 Import issue history in backlog.md 2026-04-20 10:02:25 +01:00