Claudio Ortolina
320a131370
Increase cooldown for Discogs requests
2026-04-01 09:30:39 +01:00
Claudio Ortolina
553ad2bbb9
Discard worker when no wikipedia entry is present
2026-04-01 08:52:28 +01:00
Claudio Ortolina
e3a6c0563b
Do not invert order of artist sections on mobile
2026-04-01 07:51:29 +01:00
Claudio Ortolina
6fcca38e27
Make sure to pull artists info when record is updated
...
Catches the scenario when a new artist is added
2026-04-01 07:11:47 +01:00
Claudio Ortolina
7d65a7d4ab
Make sure create record returns updated record
2026-04-01 07:06:33 +01:00
Claudio Ortolina
f2def32571
Increase MusicBrainz api_cooldown to 1000ms
2026-04-01 06:44:37 +01:00
Claudio Ortolina
e0a277e215
Always open chat links in new tabs
2026-03-31 19:17:58 +01:00
Claudio Ortolina
cf8ad0b826
Update dependencies
...
oban_web 2.12.1 => 2.12.2
2026-03-31 15:46:52 +01:00
Claudio Ortolina
6f4600192f
Update sqlean extensions 0.28.1 => 0.28.2
2026-03-31 08:04:32 +01:00
Claudio Ortolina
c913dab692
Return controlled errors from genre population
...
Closes #142
2026-03-30 15:01:42 +01:00
Claudio Ortolina
92a36b915a
Harden public asset endpoint against invalid payloads
...
Closes #143
2026-03-30 14:56:40 +01:00
Claudio Ortolina
45fd414f1b
Use friendly error messages in Last.fm callback
...
Closes #145
2026-03-30 14:42:20 +01:00
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