Claudio Ortolina
c11009f3f9
Update dependencies
...
ex_slop 0.3.1 => 0.4.0
2026-05-01 17:03:14 +01:00
Claudio Ortolina
0675cff839
Don't install pi as a direct dependency
...
If used, it should be available on the host machine
2026-05-01 15:31:28 +01:00
Claudio Ortolina
ed67f97271
Move done -> completed
2026-05-01 15:29:33 +01:00
Claudio Ortolina
9f57244267
Update pi
2026-05-01 08:33:11 +01:00
Claudio Ortolina
baa95ab97f
Pin tap-summary to latest released version
2026-05-01 08:10:20 +01:00
Claudio Ortolina
4638ac1715
Update a few actions
2026-05-01 08:05:42 +01:00
Claudio Ortolina
933f04bb25
Add .mcp.json to version control
2026-04-30 23:00:20 +01:00
Claudio Ortolina
8777f05e2e
Use mise.lock
2026-04-30 20:06:38 +01:00
Claudio Ortolina
e934b2d5f2
Pin GH actions
2026-04-30 20:02:54 +01:00
Claudio Ortolina
b653c9af00
Add completed task count to backlog section header in dev summary
2026-04-30 17:40:24 +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
3849b338f3
Improve performance of job counting in maintenance
...
- Use a single query for all workers
- Replace the manual Ecto query against Oban.Job with Oban.Job.query/1
2026-04-30 14:54:56 +01:00
Claudio Ortolina
16f6bc78d9
Update dependencies
...
oban 2.21.1 => 2.22.1
2026-04-30 14:34:02 +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
bd93c036bc
Add elixir usage rules to AGENTS.md
2026-04-30 10:05:54 +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
f2839dfaf1
Test needs to be sync
2026-04-29 22:50:29 +01:00
Claudio Ortolina
1e346fcf79
Provide guidance to LLM on when to open references
2026-04-29 07:48:57 +01:00
Claudio Ortolina
2fc7e7593d
Update dependencies
...
swoosh 1.25.0 => 1.25.1
2026-04-29 07:08:00 +01:00
Claudio Ortolina
83ebfb7961
Update commit message conventions for dependencies
2026-04-28 22:46:09 +01:00
Claudio Ortolina
5656db609a
Update dependencies
...
time_zone_info 0.7.12 => 0.7.13
2026-04-28 22:39:07 +01:00
Claudio Ortolina
870b35787f
Add pi.dev configuration
...
Requires `DEEPSEEK_API_TOKEN` env variable
2026-04-28 15:25:34 +01:00
Claudio Ortolina
597cc89821
ML-147: Upgrade to ServerSentEvents 1.0.0
2026-04-27 22:02:45 +01:00
Claudio Ortolina
b57ba3c179
Update dependencies
...
phoenix_test 0.11.0 => 0.11.1
2026-04-27 15:59:56 +01:00
Claudio Ortolina
69e2d2f6e5
Upgrade to hurl 8.0.0
2026-04-27 11:54:40 +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
8e2a9b4941
Update phoenix_test 0.10.0 => 0.11.0
2026-04-26 18:57:21 +01:00
Claudio Ortolina
fdc64de30f
Update ex_slop 0.3.0 => 0.3.1
...
Includes additional checks
2026-04-26 18:52:46 +01:00
Claudio Ortolina
5b94d6bdcf
Avoid intermediate variables, and use consistent names
2026-04-26 07:57:40 +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
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
d588e5738f
Remove redundant tests
2026-04-25 06:57:03 +01:00
Claudio Ortolina
ab4eaa8890
Use if instead of case -> nil
2026-04-25 06:37:02 +01:00
Claudio Ortolina
ed2e91400c
Update documentation for ML-21, ML-9, and Erlang 28.5
...
- architecture.md: document new ErrorResponse behaviour, HttpError, and
Worker.ErrorHandler modules plus per-API ErrorResponse pattern
- project-conventions.md: capture API-failure → Oban tuple convention and
mix_audit CI/pre-commit run
- production-infrastructure.md: bump builder image Erlang to 28.5 and
note mix_audit in the lint step
2026-04-24 14:29:35 +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
e2a0b7aebc
Update to erlang 28.5
2026-04-24 14:09:08 +01:00
Claudio Ortolina
ade31b50a8
Update dependencies
...
db_connection 2.9.0 => 2.10.0
2026-04-24 14:05:34 +01:00
Claudio Ortolina
a1c665b490
ML-21: Classify API errors as transient vs permanent
2026-04-24 14:02:15 +01:00