Stash v0.9.9
feat: 0.9.9 — sync_enabled becomes the playlist banlist
Fixes a long-standing UX complaint: Home and Library showed empty
mosaics for every Spotify/YouTube playlist in the user's upstream
library, regardless of whether they had ever turned the per-playlist
sync switch on. Every fresh sync re-imported them as syncEnabled=false
rows and the placeholders re-appeared.
The new behaviour: turning sync OFF for a playlist hides it from Home
and Library too — sync_enabled IS the ban. The Sync tab picker keeps
showing all rows so the user can flip sync back on at any time.
Playlists with downloaded tracks stay visible even when sync is off,
preserving investment in content the user previously consumed. A
'Delete & Block' that wipes every track in a playlist collapses it
back to invisible automatically (the EXISTS clause filters out
blacklisted tracks AND soft-deleted playlist_tracks rows).
Locally-created CUSTOM playlists ('+ Playlist' button) now default to
sync_enabled=true on creation. They have no upstream toggle, so
treating sync as off would have made fresh empty playlists invisible.
No DB schema migration. No new UI screens. ~25 lines of code.
Spec: docs/superpowers/specs/2026-05-03-sync-enabled-visibility-design.md
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
Install
Download the .apk below and open it on your Android device. If you've got a previous Stash release installed, this upgrades in place — your library, sync history, and settings are preserved.
Requires: Android 8.0 (API 26) or newer.
See the README for first-time setup.
Full Changelog: v0.9.8...v0.9.9