Commit Graph

3508 Commits

Author SHA1 Message Date
Claudio Ortolina e67b172d64 ML-200: daily scrobble count charts 2026-05-31 21:52:06 +03:00
Claudio Ortolina b3b8f0546e ML-200: daily scrobble count charts (plan) 2026-05-31 21:23:55 +03:00
Claudio Ortolina 611ca7e386 Rename vertical_bar_chart -> horizontal_bar_chart 2026-05-31 21:13:53 +03:00
Claudio Ortolina 88d75afa3e Work around Discogs TLS chain issue 2026-05-31 16:52:53 +03:00
Claudio Ortolina 3617f0e7b3 Update backlog.md 2026-05-31 07:30:18 +03:00
Claudio Ortolina 3e7a71f522 Update dependencies
mix:
  yaml_elixir 2.12.1 => 2.12.2
2026-05-30 23:28:11 +03:00
Claudio Ortolina 7a2c3e2d0d Update dependencies
mix:
  swoosh 1.25.3 => 1.26.0
2026-05-30 11:16:07 +03:00
Claudio Ortolina de576f49e9 Update dependencies
phoenix_live_view 1.1.30 => 1.1.31
2026-05-29 19:10:41 +03:00
Claudio Ortolina 75e2ec5c70 ML-199: extract shared record show logic 2026-05-29 08:50:27 +03:00
Claudio Ortolina f4648ce5d9 Scrobble entire release from wishlist show page 2026-05-29 08:22:14 +03:00
Claudio Ortolina 33474c1472 Allow scrobbling wishlisted records 2026-05-29 08:09:55 +03:00
Claudio Ortolina dd24258f33 Make stats formats and types counters sync 2026-05-27 23:45:29 +03:00
Claudio Ortolina aeca27d83d Use partitioned tests in precommit 2026-05-27 23:35:11 +03:00
Claudio Ortolina fed7f97b8e Increase partitioned test setup to 4 partitions 2026-05-27 23:32:17 +03:00
Claudio Ortolina 53652644b2 Update gh 2026-05-27 23:25:42 +03:00
Claudio Ortolina b895c9817f Remove duplicated usage_rules blocks in AGENTS.md 2026-05-27 23:16:21 +03:00
Claudio Ortolina f75e34211b Update dependencies
mix:
  decimal 3.1.0 => 3.1.1
  oban 2.22.1 => 2.23.0
2026-05-27 20:36:16 +03:00
Claudio Ortolina 87d2a59c3b Link included release groups to MusicBrainz
Render each included release group in the record detail page as a
link to its MusicBrainz release group page, opening in a new tab.
2026-05-27 13:00:45 +03:00
Claudio Ortolina 0adf6c6e6f Research image compression and optimization avenues 2026-05-27 11:31:01 +03:00
Claudio Ortolina d19a4a838c Add documentation writing guidelines 2026-05-27 07:40:32 +03:00
Claudio Ortolina 65f472c980 Convert screenshots to JPG 2026-05-27 07:27:25 +03:00
Claudio Ortolina 57866f4cad ML-198: document timezone plan 2026-05-27 01:11:07 +03:00
Claudio Ortolina 69101114ee Slightly compress screenshots 2026-05-27 01:05:17 +03:00
Claudio Ortolina 1d9fe12ca5 Update dependencies
mix:
  oban_web 2.12.4 => 2.12.5
  swoosh 1.25.2 => 1.25.3
2026-05-27 00:26:10 +03:00
Claudio Ortolina 45c52ee614 Tighten setup instructions 2026-05-26 18:48:12 +03:00
Claudio Ortolina 9939b53aa2 Fix compose variable name 2026-05-26 14:55:44 +03:00
Claudio Ortolina 19e097e514 ML-197: add Elm-style Presto application 2026-05-26 08:59:01 +03:00
Claudio Ortolina 631053b87e ML-197: track Elm-style Presto application 2026-05-26 08:45:04 +03:00
Claudio Ortolina c0af66190c [presto] Update dependencies 2026-05-25 23:02:09 +03:00
Claudio Ortolina 0d6d2fdc32 Ignore application and router in cover config 2026-05-25 22:15:31 +03:00
Claudio Ortolina 65b2f3e1f2 Update dependencies
ex_slop 0.4.1 => 0.4.2

Introduces a new check around misusing the `length/1` function which
require widespread fixes.
2026-05-25 19:45:33 +03:00
Claudio Ortolina bfcdfc1b90 ML-169.7: record audit findings 2026-05-25 12:52:01 +03:00
Claudio Ortolina 118171ed8a ML-169.8: restore formats/types stats position after counters
Formats and types stats should appear directly after the record counters,
before the TopArtists/TopAlbums/OnThisDay grid. The refactor had
accidentally moved them below.
2026-05-25 11:32:48 +03:00
Claudio Ortolina d75a683df0 Update README features section
Add missing features: collection chat, markdown notes, store templates, scrobbled tracks browsing, tracklist PDF, daily email, maintenance dashboard, cart-style import, color extraction, and search syntax details. Group into sub-sections for readability.
2026-05-25 10:06:47 +03:00
Claudio Ortolina 9f6848f1ab Fix gh actions to use mise lock as cache key 2026-05-25 09:54:19 +03:00
Claudio Ortolina 2d8989a8d0 ML-169.8: keep latest record query synchronous
get_latest_record is a single fast ORDER BY LIMIT 1 query --
no reason to async-load it. Removes the <.async_result> wrapper
and the now-unnecessary render_async() from its test.
2026-05-25 09:42:14 +03:00
Claudio Ortolina a3701de90e Backlog cleanup 2026-05-25 09:33:08 +03:00
Claudio Ortolina f347f56218 ML-169.8: reduce Stats mount sync queries to 3
Move 7 non-critical queries out of synchronous mount into assign_async
and start_async tasks with skeleton loading placeholders.

Only scalar badge counters (collection count, wishlist count, scrobble
count) remain synchronous. All async sections use <.async_result> with
loading and failed slots. Scrobble activity preserves LiveView streams
via handle_async. On-this-day date changes use AsyncResult.ok/2.
2026-05-25 09:31:43 +03:00
Claudio Ortolina 6f5c959238 Show timezone settings in maintenance page 2026-05-25 09:16:56 +03:00
Claudio Ortolina 2503b5e46e Sync docs: Elixir 1.20.0-rc.6, updated Docker tags, busy_timeout 2026-05-25 08:33:09 +03:00
Claudio Ortolina 5c80a6d6ad ML-169.11: archive as invalid 2026-05-23 20:23:01 +01:00
Claudio Ortolina 1ccd9ccc91 ML-182: finish audit and subsequent improvements 2026-05-23 07:18:25 +01:00
Claudio Ortolina 27d3a9f285 Try and reduce test flakiness 2026-05-23 06:56:52 +01:00
Claudio Ortolina 8127eccd41 Reduce sensitive paths guard to paths in actual use in this application 2026-05-22 23:47:20 +01:00
Claudio Ortolina 69245d8d15 ML-156: extend and improve plan 2026-05-22 23:46:04 +01:00
Claudio Ortolina 484e9297b7 Update git-commit skill to instruct the LLM to skip manual run of precommit tasks 2026-05-22 16:28:55 +01:00
Claudio Ortolina 3f2e5f2e27 ML-169.10: drop socket-internals delete tests
Remove 12 unit tests that accessed socket internals via :sys.get_state
and called handle_async directly — these leak implementation details and
error/exit paths can't be reached through the DOM.

Keep the 3 integration delete tests that use pure DOM assertions: visit,
assert_has, click, refute_has, render_async, DB verification.
2026-05-22 16:27:42 +01:00
Claudio Ortolina b10be7ba3c ML-169.10: async delete actions with initial implementation 2026-05-22 16:19:54 +01:00
Claudio Ortolina 9f02e12414 ML-169.10: refine implementation plan 2026-05-22 15:37:09 +01:00
Claudio Ortolina ee4eecd1c6 ML-169.9: archive invalid stream pagination task
Pagination is page-based (not load-more), so reset: true on each
page navigation is correct. Using at: -1 would accumulate records
across pages, breaking the pagination model.
2026-05-22 15:29:07 +01:00