11 commits since v2026.05.16.0. CI fully green including the new integration suite.
Headline: integration tests now run in CI
test-go.yml previously ran only go test -short (no DB) — the entire integration suite silently skipped. This batch wires an integration job (act_runner shared-daemon pattern: Postgres service with no published ports, bridge-IP discovery via the docker socket + hard exactly-one guard, minstrel migrate, go test -p 1 -race ./...). It surfaced and we cleared ~200 latent failures (TRUNCATE deadlocks, stale fixtures/stubs, a fixed-allowlist art-source CHECK, a newTestEnricher registry-wipe, the no-MBID enricher contract). "CI green" is now meaningful and a durable safety net.
#339 local test-DB isolation (make test-integration, minstrel_test) + the CI integration job above.
#388 removed the global cover-art backfill cap (per-provider rate-limited).
Discover suggestions: on-demand Lidarr artist art server-side; Flutter Discover screen now renders the LB suggestion feed (web parity, closed an #356 gap).
A2 / migration 0030: relaxed the art-source CHECK from a fixed provider-ID allowlist to non-empty (same brittleness class as #433; matches the pluggable provider registry).
Coverart/test-harness correctness: ResetDB cover-art version reset, newTestEnricher no longer wipes caller-registered stubs, stale AlbumCoverProvider signature, no-MBID → settle-'none' contract aligned (operator-decided).
Recommendations / LB pipeline / scrobbling device-verified during dev
Post-deploy: exercise the offline two-bucket cache incl. eviction (#429, deletes files) and the Flutter Discover suggestions feed on the deployed build
11 commits since v2026.05.16.0. CI fully green including the new integration suite.
## Headline: integration tests now run in CI
`test-go.yml` previously ran only `go test -short` (no DB) — the entire integration suite silently skipped. This batch wires an `integration` job (act_runner shared-daemon pattern: Postgres service with no published ports, bridge-IP discovery via the docker socket + hard exactly-one guard, `minstrel migrate`, `go test -p 1 -race ./...`). It surfaced and we cleared ~200 latent failures (TRUNCATE deadlocks, stale fixtures/stubs, a fixed-allowlist art-source CHECK, a `newTestEnricher` registry-wipe, the no-MBID enricher contract). "CI green" is now meaningful and a durable safety net.
## Features / fixes
- **#321** `minstrel admin reset-password` + `minstrel migrate` subcommands.
- **#339** local test-DB isolation (`make test-integration`, `minstrel_test`) + the CI integration job above.
- **#388** removed the global cover-art backfill cap (per-provider rate-limited).
- **Discover suggestions:** on-demand Lidarr artist art server-side; Flutter Discover screen now renders the LB suggestion feed (web parity, closed an #356 gap).
- **A2 / migration 0030:** relaxed the art-source CHECK from a fixed provider-ID allowlist to non-empty (same brittleness class as #433; matches the pluggable provider registry).
- Coverart/test-harness correctness: ResetDB cover-art version reset, `newTestEnricher` no longer wipes caller-registered stubs, stale `AlbumCoverProvider` signature, no-MBID → settle-`'none'` contract aligned (operator-decided).
## Migrations
`0028` (discovery-mix CHECK, shipped v2026.05.15.1), `0029` (tracks.mbid non-unique), `0030` (art-source CHECK relax). Apply on startup.
## Test plan
- [x] Full CI green (fast + integration jobs)
- [x] Recommendations / LB pipeline / scrobbling device-verified during dev
- [ ] Post-deploy: exercise the offline two-bucket cache incl. eviction (#429, deletes files) and the Flutter Discover suggestions feed on the deployed build
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
11 commits since v2026.05.16.0. CI fully green including the new integration suite.
Headline: integration tests now run in CI
test-go.ymlpreviously ran onlygo test -short(no DB) — the entire integration suite silently skipped. This batch wires anintegrationjob (act_runner shared-daemon pattern: Postgres service with no published ports, bridge-IP discovery via the docker socket + hard exactly-one guard,minstrel migrate,go test -p 1 -race ./...). It surfaced and we cleared ~200 latent failures (TRUNCATE deadlocks, stale fixtures/stubs, a fixed-allowlist art-source CHECK, anewTestEnricherregistry-wipe, the no-MBID enricher contract). "CI green" is now meaningful and a durable safety net.Features / fixes
minstrel admin reset-password+minstrel migratesubcommands.make test-integration,minstrel_test) + the CI integration job above.newTestEnricherno longer wipes caller-registered stubs, staleAlbumCoverProvidersignature, no-MBID → settle-'none'contract aligned (operator-decided).Migrations
0028(discovery-mix CHECK, shipped v2026.05.15.1),0029(tracks.mbid non-unique),0030(art-source CHECK relax). Apply on startup.Test plan
🤖 Generated with Claude Code