Commit Graph

2776 Commits

Author SHA1 Message Date
Claudio Ortolina b0018db89d Improve error handling for color extraction
Includes a around embedding generation, which was happening twice (the
first call was redundant as record embeddings are always regenerated
after their parent artist embeddings are regenerated).

Closes #144.
2026-03-30 14:29:44 +01:00
Claudio Ortolina 24f061646e Fix migration strategy docs to match production
Coolify runs migrations post-deploy via rel/overlays/bin/migrate,
not on boot. Update both architecture and infrastructure docs.

Closes #141
2026-03-30 14:15:23 +01:00
Claudio Ortolina 53178b373b Add barcode scan quick action 2026-03-30 13:26:04 +01:00
Claudio Ortolina f16fc79e60 Add a healthcheck for the backup container 2026-03-30 11:40:20 +01:00
Claudio Ortolina b3e06ef809 No need to sign request when getting Last.fm profile 2026-03-30 11:04:22 +01:00
Claudio Ortolina c39202c5eb Update documentation 2026-03-30 10:59:14 +01:00
Claudio Ortolina 19b7091358 Extend last.fm token diagnostics for maintenance page 2026-03-30 10:55:20 +01:00
Claudio Ortolina 5a71a78392 Space out no results notification 2026-03-30 07:01:22 +01:00
Claudio Ortolina 3bc07c703c Improve Dockerfile
1. Split npm deps from assets copy — package.json + package-lock.json copied and installed before the full
assets/ directory (lines 69-73)
2. Split compile from assets.deploy — separate RUN commands (lines 76-77)
3. Node from image instead of nodesource — node:24-slim stage replaces curl | bash (lines 21, 29-32)
4. --no-install-recommends — on both builder (line 26) and runner (line 90)
5. Strip unused locales — rm -rf /usr/share/locale /usr/share/i18n after locale-gen (line 95)
6. SHELL with strict flags — set in both builder (line 34) and runner (line 97) stages
2026-03-29 23:30:17 +01:00
Claudio Ortolina 76b2ce6eea Update documentation 2026-03-29 23:11:36 +01:00
Claudio Ortolina 8f8eb0a656 Enable quick actions from universal search 2026-03-29 23:07:53 +01:00
Claudio Ortolina 0483d89fa7 Update mdex 0.11.7 => 0.12.0 (minor) 2026-03-29 17:27:53 +01:00
Claudio Ortolina bfc6cfd9c1 Handle transport errors in RefreshScrobbles worker 2026-03-29 16:45:38 +01:00
Claudio Ortolina 027f9d1a2d Can reset Last.fm account from maintenance page 2026-03-29 09:12:53 +01:00
Claudio Ortolina e2266b452d Update documentation 2026-03-29 08:56:27 +01:00
Claudio Ortolina 8996ca0eeb Add empty states for collection and wishlist 2026-03-29 08:53:33 +01:00
Claudio Ortolina bb1c53c44f Don't display some stats when there's no record 2026-03-29 08:48:30 +01:00
Claudio Ortolina 2e3f44495f Add record button when no latest record is present 2026-03-29 08:48:19 +01:00
Claudio Ortolina 0e6760ea73 Fix display of latest record when db is empty 2026-03-29 08:39:13 +01:00
Claudio Ortolina 87b1b4df4b Replace top_by widgets loading indicator with a skeleton 2026-03-28 21:40:51 +00:00
Claudio Ortolina 06e296b0e4 Expose scrobble rules telemetry 2026-03-28 10:59:50 +00:00
Claudio Ortolina 4db7442ad5 Update architecture docs 2026-03-28 10:26:46 +00:00
Claudio Ortolina 2e22ace7cf Move RecordsOnThisDayEmail to MusicLibraryWeb namespace 2026-03-28 10:25:03 +00:00
Claudio Ortolina d2f546b340 Update dependencies
typst 0.3.2 => 0.3.3
2026-03-28 10:15:09 +00:00
Claudio Ortolina b2575eb802 Make sure that list_enabled_rules returns ALL rules
Fixes partially working scrobble rule application
2026-03-28 10:07:08 +00:00
Claudio Ortolina 5c5a523fe6 Move scrobble refresh infra to Oban 2026-03-28 09:00:18 +00:00
Claudio Ortolina d45aff21ec Rename refresh_lastfm_feed to refresh_scrobbles 2026-03-28 08:59:22 +00:00
Claudio Ortolina 47f8eddff1 Move BackfillScrobbledTracks worker under MusicLibrary namespace 2026-03-28 08:05:02 +00:00
Claudio Ortolina 4e2e0605ed Update architecture docs for ListeningStats refactor 2026-03-27 23:18:23 +00:00
Claudio Ortolina fbcf40b4b3 Remove LastFm.Feed, LastFm.Refresh, and LastFm.Supervisor 2026-03-27 23:17:25 +00:00
Claudio Ortolina 61dd3f45c7 Move refresh config and callers to ListeningStats 2026-03-27 23:14:09 +00:00
Claudio Ortolina fa5e13f303 Add refresh/0 to ListeningStats 2026-03-27 23:08:08 +00:00
Claudio Ortolina 11f080b163 Add ListeningStats.Refresh GenServer 2026-03-27 23:06:05 +00:00
Claudio Ortolina 9643e2141c Add update/1 and subscribe/0 to ListeningStats 2026-03-27 23:03:23 +00:00
Claudio Ortolina 401e034549 Update dependencies
exqlite 0.35.0 => 0.36.0 (minor)
2026-03-27 22:04:31 +00:00
Claudio Ortolina aeb1e3a39a Update dependencies
phoenix_live_view 1.1.27 => 1.1.28
2026-03-27 19:22:57 +00:00
Claudio Ortolina 88542cc537 Fix Tailwind layout and spacing issues 2026-03-27 16:11:05 +00:00
Claudio Ortolina 96836ae715 Improve tests: better assertions, meaningful tests
Track resulting principles in project conventions
2026-03-27 15:46:31 +00:00
Claudio Ortolina 6e96bd019f Add two project conventions 2026-03-27 08:51:00 +00:00
Claudio Ortolina 1301f888f3 Remove "it" from the test descriptions 2026-03-27 08:38:41 +00:00
Claudio Ortolina b9e3de1db6 Add music recognition feature design spec 2026-03-27 07:35:59 +00:00
Claudio Ortolina ba787616e9 Set CI env defaults consistently 2026-03-26 23:09:05 +00:00
Claudio Ortolina fa20428989 Update documentation 2026-03-26 23:04:53 +00:00
Claudio Ortolina bf379b9887 Remove unnecessary test 2026-03-26 23:03:42 +00:00
Claudio Ortolina e575f2af9e Stub color extractor in tests
Makes the test suite much faster
2026-03-26 22:58:39 +00:00
Claudio Ortolina 152b3ddb70 Tweak test database settings for speed 2026-03-26 22:30:09 +00:00
Claudio Ortolina 41f1f72e23 Update rustler_precompiled 0.8.4 => 0.9.0
The upgrade surfaces a dependency problem that went unnoticed.

rustler_precompiled version 0.8.4 required castore, and that satisfied
the requirements for time_zone_info (which required the dependency
despite not listing it as such). With the upgrade to rustler_precompiled
0.9.0, castore is no longer listed as a dependency.

As it's still needed by time_zone_info, it's added to mix.exs. This
should have been done before, right when time_zone_info was added.
2026-03-26 20:46:15 +00:00
Claudio Ortolina 3fc4fe4539 Update typefest from 5.4.4 to 5.5.0 2026-03-26 13:01:11 +00:00
Claudio Ortolina 5a40a27585 Update tailwind version in node modules 2026-03-26 13:00:50 +00:00
Claudio Ortolina f2aaf771c7 Update oban from 2.21.0 to 2.21.1 2026-03-26 13:00:14 +00:00