• v2026.05.19.3 Stable

    bvandeusen released this 2026-05-19 15:48:31 -04:00 | 635 commits to main since this release

    Mobile 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 / legacy homeProvider / home-data JSON encoders; the metadata prefetcher now warms artists off the per-item homeIndexProvider. Drift schemaVersion 10 → 11 drops the dead cached_home_snapshot table; the migration chain remains valid for upgrades from any prior schema.
    • #374 — web route-test triage. Restored the discover / requests Svelte 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