github rawnaldclark/Stash v0.3.6
Stash v0.3.6

latest releases: v0.9.105, v0.9.104, v0.9.103...
4 months ago

feat(nowplaying): flag wrong-match track + surface in Failed Matches

Closes #7 — "Need an ability to correct a track."

When a sync-matched track downloads the wrong song (YouTube's match
picked a cover, a remix, or an unrelated video), users couldn't
correct it. They could only dismiss and re-sync the whole playlist,
which rarely surfaced a better candidate for the same metadata.

Three pieces:

  1. NowPlayingScreen flag button. A new flag icon in the top bar
    marks the currently-playing track as the wrong song. Placed there
    because that's the moment of truth — the user's ears say "this
    isn't what I asked for," and the fix should live where the error
    is noticed. Toast confirms + points to Sync → Failed Matches.

  2. FailedMatchesScreen "You flagged these" section. The existing
    screen already knows how to re-search YouTube, preview candidates,
    and approve/dismiss. Flagged tracks now appear in their own
    section with the same affordances but a different approve path:
    instead of downloading a fresh file for a never-matched track,
    the approve-swap path deletes the old audio and downloads the
    picked candidate in place, then swaps youtube_id + file_path +
    clears the flag so the track disappears from the list.

  3. Schema + plumbing. match_flagged column on tracks (migration
    v8 -> v9), DAO queries to toggle and read flagged rows,
    MusicRepository methods, and VM-side combine that merges unmatched

    • flagged into one reactive UI state.

Reversible throughout: unflag (not dismiss) clears the flag without
permanently skipping the track, so a mistakenly-flagged match can
be restored with one tap.

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.3.5...v0.3.6

Don't miss a new Stash release

NewReleases is sending notifications on new releases.