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
|
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
|
f10a932aea
|
Re-enable medium header + checkbox for releases with 1 medium
|
2026-04-27 11:47:32 +01:00 |
|
Claudio Ortolina
|
4075ec45ac
|
Make sure creating artist infos returns all fields
|
2026-04-26 19:24:56 +01:00 |
|
Claudio Ortolina
|
b64ab98189
|
Extract to pipe
|
2026-04-26 19:08:21 +01:00 |
|
Claudio Ortolina
|
eb9b1866a8
|
Streamline function implementation
|
2026-04-26 19:05:27 +01:00 |
|
Claudio Ortolina
|
d6e154b7b3
|
Remove redundant case
|
2026-04-26 19:01:44 +01:00 |
|
Claudio Ortolina
|
5b94d6bdcf
|
Avoid intermediate variables, and use consistent names
|
2026-04-26 07:57:40 +01:00 |
|
Claudio Ortolina
|
4fb1bf5079
|
Remove duplication in implementation
|
2026-04-25 21:34:11 +01:00 |
|
Claudio Ortolina
|
d4132d8851
|
Uniform interface of lastfm refresh async function
|
2026-04-25 21:30:06 +01:00 |
|
Claudio Ortolina
|
9f8ef6c329
|
Use larger image for Last.fm artists
|
2026-04-25 21:22:18 +01:00 |
|
Claudio Ortolina
|
9113df5879
|
ML-146: honour API retry headers
|
2026-04-25 07:39:49 +01:00 |
|
Claudio Ortolina
|
ab4eaa8890
|
Use if instead of case -> nil
|
2026-04-25 06:37:02 +01:00 |
|
Claudio Ortolina
|
4418fbc377
|
Remove unnecessary specs
Function is private, and AsyncResult doesn't expose `t()`
|
2026-04-24 14:13:04 +01:00 |
|
Claudio Ortolina
|
a1c665b490
|
ML-21: Classify API errors as transient vs permanent
|
2026-04-24 14:02:15 +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
|
90db113845
|
ML-5: document Last.fm OAuth callback trust boundary
Closes GitHub issue #178.
|
2026-04-24 08:05:07 +01:00 |
|
Claudio Ortolina
|
0784fc5e0c
|
Fix page title for scrobble anything release page
|
2026-04-23 21:06:32 +01:00 |
|
Claudio Ortolina
|
1bd5707cb4
|
Fix page title for scrobble anything index and release group route
|
2026-04-23 21:06:12 +01:00 |
|
Claudio Ortolina
|
d03e288353
|
Make sure top_by_period components have a proper ID
|
2026-04-23 16:41:18 +01:00 |
|
Claudio Ortolina
|
62586c9ae5
|
Restore flex context for sheet selection bar
|
2026-04-23 15:12:58 +01:00 |
|
Claudio Ortolina
|
ca9cc7687c
|
Hide release-actions dropdown when empty
|
2026-04-23 15:06:45 +01:00 |
|
Claudio Ortolina
|
779708e62e
|
Hide print tracklist on scrobble release page
|
2026-04-23 15:05:05 +01:00 |
|
Claudio Ortolina
|
72818bfaf2
|
Validate release-group shape before parsing
|
2026-04-23 15:00:49 +01:00 |
|
Claudio Ortolina
|
c7c7e1fe4e
|
Navigate from scrobble search to release-group page
|
2026-04-23 14:47:50 +01:00 |
|
Claudio Ortolina
|
0dcd6eab83
|
Replace /scrobble/:release_id with nested route
|
2026-04-23 14:39:26 +01:00 |
|
Claudio Ortolina
|
d8041dc0dd
|
Add /scrobble/:rg_id release-group page
|
2026-04-23 14:35:58 +01:00 |
|
Claudio Ortolina
|
4c48bda7b2
|
Refactor Release component to take release_id
|
2026-04-23 14:19:11 +01:00 |
|
Claudio Ortolina
|
0d1f580379
|
Refactor TracklistPdf to take release alone
|
2026-04-23 07:48:53 +01:00 |
|
Claudio Ortolina
|
8631b97b4d
|
Add joinphrase to Release.Artist; parse from MB
|
2026-04-23 07:42:06 +01:00 |
|
Claudio Ortolina
|
f7f38d580e
|
Enable unaliased modules ex_slop check
|
2026-04-22 20:37:09 +01:00 |
|
Claudio Ortolina
|
8179b4317c
|
ML-142: forgot to support timezones
|
2026-04-22 18:14:14 +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
|
016c4691be
|
Canonicalize tailwind classes
|
2026-04-21 14:22:41 +01:00 |
|
Claudio Ortolina
|
dd1d99a145
|
Fix store_embedding/3 spec to reflect float list input
|
2026-04-21 12:57:28 +01:00 |
|
Claudio Ortolina
|
30c0a961e9
|
Stringify format atom in get_release_status query
|
2026-04-21 12:57:09 +01:00 |
|
Claudio Ortolina
|
87522a6551
|
Fully qualify nested type refs in MusicBrainz.Release
|
2026-04-21 12:48:55 +01:00 |
|
Claudio Ortolina
|
c7749924fe
|
Spec release component private helpers
|
2026-04-21 12:48:36 +01:00 |
|
Claudio Ortolina
|
563135fcea
|
Remove dead nil fallback on play_count
|
2026-04-21 12:48:17 +01:00 |
|
Claudio Ortolina
|
9840690af1
|
Fix nil-index crash in move_record_in_set
|
2026-04-21 12:47:57 +01:00 |
|
Claudio Ortolina
|
53348a328e
|
Relax ScrobbleRule.t to allow unpersisted structs
|
2026-04-21 12:47:38 +01:00 |
|
Claudio Ortolina
|
87d2a8f186
|
Fix Maintenance vacuum/optimize return specs
|
2026-04-21 12:47:18 +01:00 |
|
Claudio Ortolina
|
40ac5bdc99
|
Widen Transform.new/1 spec to accept keyword list
|
2026-04-21 12:47:00 +01:00 |
|
Claudio Ortolina
|
29bfa20978
|
Remove unreachable error clauses in form save helpers
|
2026-04-21 12:46:35 +01:00 |
|
Claudio Ortolina
|
dc71b2ff90
|
Fix badge align issue in barcode scan cart
|
2026-04-20 16:04:20 +01:00 |
|
Claudio Ortolina
|
8d004d39cc
|
Extract shared cart sidebar component
|
2026-04-20 15:57:44 +01:00 |
|