Commit Graph

17 Commits

Author SHA1 Message Date
Alexander 6a9bcd9b8c Add readiness probe to devenv 2026-07-25 12:44:14 +02:00
Alexander fb733c27fd Add health endpoint 2026-07-17 17:56:54 +02:00
Alexander 9f815f69c9 Add devenv output 2026-07-12 11:24:32 +02:00
Alexander 995397e495 Something + add comments to proto 2026-07-12 10:16:54 +02:00
Alexander fde1b4cd3e feat: add NixOS module with schema init
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/claude-agent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-20 12:38:16 +02:00
Alexander 2756cc1043 feat: fuzzy search with parallel DB/MusicBrainz execution
- Add pg_trgm fuzzy search to PostgreSQL artist repository
- Add Lucene fuzzy query (~0.7) for MusicBrainz artist search
- Run DB and MusicBrainz searches in parallel goroutines
- Cache MusicBrainz results to DB for accumulation
- Deduplicate results by external ID
- Filter out special purpose artists (type=Other)
- Add SaveAll method for batch artist inserts
- Move database schema to containers repo
2026-05-10 21:13:17 +02:00
Alexander b4e763be44 perf: fix N+1 query in GetAllByArtistID with batch loading
Replace per-album loadRelations calls with batch queries using ANY($1).
Reduces 1+2N queries to 3 queries total (1.45s → 50ms for 83 albums).
2026-05-10 00:03:29 +02:00
Alexander 88372c9301 feat: cache album tracks and load album artists on album fetch
- Add SaveAlbumTracks to TrackRepository for batch track caching
- Extend album loadRelations to join album_artists with artist data
- Cache album tracks in GetAlbumTracks after provider fetch
- Ensure artists cached when fetching single album
2026-05-09 19:28:44 +02:00
Alexander 9f1318e79e feat: fetch all artist albums with caching, filter by type in handler
- Provider fetches all release groups via paginated browse, no type filter
- Service caches all albums in DB, ensures referenced artists exist first
- Server handler filters by album_types (default: album|ep|single), excludes secondary types
- Add secondary_types to domain, DB schema, and MB types
- Add ErrBadRequest handling for MusicBrainz 400 errors
- Replace migrations with single schema.sql
- Add GetAllByArtistID and SaveAll to album repository
2026-05-07 20:03:04 +02:00
Alexander 35ac167952 feat: filter artist albums by type, default to album|ep|single 2026-05-07 17:22:59 +02:00
Alexander 80051396d8 refactor: split monolithic HTTP client into focused methods 2026-05-07 17:16:32 +02:00
Alexander 54d94b939e Refactor the proto 2026-05-07 17:02:46 +02:00
Alexander 3d111f9008 Refactor logging 2026-05-07 16:50:40 +02:00
Alexander fb2e4b9107 Add SearchAlbum endpoint 2026-05-07 14:27:25 +02:00
Alexander de52fcbc79 fix: fail on database connection error when database is configured 2026-05-07 14:27:25 +02:00
Alexander de674376ed feat: initial implementation of metadata aggregator
- gRPC service with MusicBrainz provider
- PostgreSQL schema with migrations
- Service layer with database-first caching
- Repository pattern for data access
- YAML configuration support
- Research documentation for 17 music metadata projects
2026-05-07 14:27:25 +02:00
Alexander a1f6701bac feat: initial implementation of metadata aggregator
- gRPC service with MusicBrainz provider
- PostgreSQL schema with migrations
- Service layer with database-first caching
- Repository pattern for data access
- YAML configuration support
- Research documentation for 17 music metadata projects
2026-04-28 16:28:53 +02:00