fix: address code review findings
- Honor ignore_singles/ignore_compilations at scanner read time so toggles take effect immediately on the dashboard, artist page, and digest instead of waiting for the MusicBrainz cache to expire and prune rows. - Run notifier notify synchronously in the scheduler loop to avoid overlapping read-send-mark runs double-sending the digest. - Show artist name (with ID fallback) on the archive page instead of raw IDs. - Select last_synced in GetAllArtistSettings for contract consistency. - Fix stale startPeriodicSync comment and remove redundant error var. - Remove dead ignored-branch from the artist template (never rendered). - Add tests: CSRF sameOrigin, ArtistCacheFresh, secondary_types round-trip, and scanner type-toggle filtering. - Update Specification.md schema/config to reflect mbid, last_synced, secondary_types, sync.interval, and server.public_url.
This commit is contained in:
@@ -231,7 +231,9 @@ func (a *App) startPeriodicSync(ctx context.Context) {
|
||||
ticker := time.NewTicker(a.cfg.Sync.Interval)
|
||||
defer ticker.Stop()
|
||||
|
||||
// free is a sentinel channel: nil means a sync is currently in flight.
|
||||
// free is a buffered token (capacity 1). A sync is in flight while the token
|
||||
// is drained; the in-flight goroutine returns it when done so the next tick
|
||||
// can start a new sync. While the token is held, ticks are skipped.
|
||||
var free = make(chan struct{}, 1)
|
||||
free <- struct{}{}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user