Use MusicBrainz recording durations as a secondary heuristic for stale song metadata.
Problem: song-start metadata can linger beyond the real song, suppressing ad or spoken transcription.
Idea: after a song is identified, resolve its expected duration in the background and let the song state expire after duration plus tolerance unless fresh metadata/fingerprint evidence extends it.
Acceptance criteria:
- Known songs can expire from expected duration plus tolerance.
- Spoken/ad audio after a stale song marker becomes eligible for transcription.
- UI distinguishes inferred duration from direct stream metadata.
- Tests cover exact match, missing duration, version mismatch, and stale metadata fallback.
Use MusicBrainz recording durations as a secondary heuristic for stale song metadata.
Problem: song-start metadata can linger beyond the real song, suppressing ad or spoken transcription.
Idea: after a song is identified, resolve its expected duration in the background and let the song state expire after duration plus tolerance unless fresh metadata/fingerprint evidence extends it.
Acceptance criteria: