-
v2026.05.19.3 Stable
released this
2026-05-19 15:48:31 -04:00 | 635 commits to main since this releaseMobile client
2026.5.19+13. Flutter client + web-test changes only — no server code or server migration changes. Includes one Flutter (on-device) drift schema migration: 10 → 11.Headline — #66: playback stall resilience
Fixes the real-world failure you hit on poor coverage: a track finishes and the next one never starts (the stream attempt fails and nothing retries — the queue silently hangs). The player now:
- runs a 15s stall watchdog keyed off buffered-position progress (not wall-clock alone),
- makes one bounded recover attempt on the stalled track,
- then skips to the next cached track, or pauses cleanly, so the queue keeps moving instead of dead-ending.
Also in this release
- #406 — drop legacy home snapshot path. Removes
CachedHomeSnapshot/ legacyhomeProvider/ home-data JSON encoders; the metadata prefetcher now warms artists off the per-itemhomeIndexProvider. DriftschemaVersion10 → 11 drops the deadcached_home_snapshottable; the migration chain remains valid for upgrades from any prior schema. - #374 — web route-test triage. Restored the
discover/requestsSvelte route test suites (they crashed at module-load on the un-mocked$app/state); test-only, no runtime impact.
Caveat — verify in the field
#66 has not been device-verified on a throttled / poor-coverage connection (tracked). After installing, validate on a weak or airplane-toggled connection: when a next-track stream fails, the queue should retry once and then skip to a cached track (or pause cleanly) rather than hanging silently.
Regression check
Media notification + watch transport controls should still appear during playback (the v2026.05.19.2 fix stands — nothing in this release touches that path).
Downloads