Alexander
76e426c5d3
feat: integrate musicfs for post-download metadata enrichment
...
- Add internal/musicfs package: gRPC client, TriggerRescan (stream consumer), EnrichFiles (BatchUpdateMetadata), DeriveSubdir helper
- Add MusicFS config section (enabled, endpoint, origin_id, origin_root, timeout)
- Wire MusicFSClient into PollDownloadWorker: on download completion, trigger scoped rescan then push enriched metadata
- Fix album auto-persist in monitor workflow: persist artist+album from metadata-agregator before saving torrent/download
- Add filterByActiveSeeders: skip torrents where magnet resolution found 0 real active seeders
- Add musicfs proto to buf.gen.yaml inputs
- Enricher only sends non-empty fields to avoid overwriting existing file tag data with empty values
2026-05-17 23:32:44 +02:00
Alexander
451fd97c95
Return NotFound error when no torrents or quality matches found instead of silent empty response
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/claude-agent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-05-11 20:46:40 +02:00
Alexander
0fd51a1e03
Retry indexer search with stripped parenthetical suffixes when initial query returns no results
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/claude-agent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-05-11 20:38:39 +02:00
Alexander
9aff4b0a29
Return all downloads per album grouped by quality, filter out failed/cancelled from listings
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/claude-agent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-05-11 20:15:33 +02:00
Alexander
ff6bc444d0
Prefer torrents with real seeders: resolve connected seeder count from swarm during magnet resolution
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/claude-agent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-05-11 20:02:02 +02:00
Alexander
5a5660bf21
Refactor MonitorAlbumStream: EventPublisher interface, background workflows, DB-before-qBit save order
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/claude-agent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-05-11 15:54:01 +02:00
Alexander
eab92dd40b
Add SearchArtists and GetArtistAlbums proxy RPCs to music-agregator service
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/claude-agent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-05-11 10:30:18 +02:00
Alexander
f5e2f764b5
Optimize GetArtists: parallel artist processing, batch album upserts, batch download lookups, retry on metadata calls
2026-05-10 00:06:58 +02:00
Alexander
6320f37240
Deduplicate GetAlbum response: merge release info into AlbumDetail, track release into TrackDetail
2026-05-09 23:23:34 +02:00
Alexander
2740585261
Add album/track releases with audio analysis, AnalyzeAlbumRelease RPC, Docker path auto-resolution, release parsing decision tree
2026-05-09 23:16:59 +02:00
Alexander
ef75b9bfba
Share single torrent client across all services, eliminate triple qBittorrent login on startup
2026-05-09 21:42:53 +02:00
Alexander
31ec3f9826
Add MonitorAlbum component tests: 21 cases covering all flow diagrams (bufconn + testcontainers + hand-rolled mocks)
2026-05-09 21:31:09 +02:00
Alexander
6f31698006
Fix monitor state: never downgrade on upsert, explicitly set monitored on MonitorAlbum
2026-05-09 20:26:38 +02:00
Alexander
3ce6e23421
Fix duplicate download insert: handle NULL columns in download scan, check by torrent ID, enrich MonitorAlbum response, recover orphaned downloads on startup
2026-05-09 20:13:43 +02:00
Alexander
cca404bcc0
Enrich MonitorAlbum response, prevent duplicate downloads, recover orphaned jobs on startup
2026-05-09 20:01:53 +02:00
Alexander
5257ed0f1b
Fix album persistence by passing artist DB ID directly to PersistAlbum
2026-05-09 11:18:52 +02:00
Alexander
8c60fe5e35
Add GetAlbum RPC with track details and persist metadata on discovery
2026-05-09 10:47:06 +02:00
Alexander
e61e58be72
Expand GetArtists with album details, download info, and generic MonitorState enum
2026-05-08 23:00:42 +02:00
Alexander
e49cc25372
Add GetArtists RPC with artist monitor state (monitored/unmonitored/excluded)
2026-05-08 22:27:56 +02:00
Alexander
60c94935b2
Persist metadata to DB, poll download worker, metadata service layer
2026-05-08 11:00:04 +02:00
Alexander
84a6fe8ec7
Refactor MonitorAlbum into focused methods
2026-05-07 23:28:35 +02:00
Alexander
8ad2734964
Implement MonitorAlbum: search, parse, filter by quality, add best to qbittorrent
2026-05-07 23:21:21 +02:00
Alexander
79f3f145de
Add indexer cache with River queue for scheduled refresh
2026-05-07 21:41:17 +02:00