feat: 0.9.5 — file_size_bytes backfill in Library Health
Older download paths sometimes left tracks.file_size_bytes at 0 even
after the file landed on disk. The total storage SUM on Home then
under-counts by however much of the library predates the fix —
users with mostly-legacy libraries see 4 GB displayed for what's
actually a 20+ GB collection.
The Library Health "Run backfill" button already runs a metadata
pass (format + bitrate via MMR). Extend it to a second pass that
reads File.length() for every row where file_size_bytes is still 0
and writes the real size back via a new setFileSize DAO method.
Both passes:
- Idempotent (DAO selection queries exclude already-correct rows)
- Run back-to-back under one progress meter (processed/total bumped to formatRows + sizeRows)
- Skip rows whose file is missing on disk (length() returns 0)
- Logged in summary so the difference between "needed format fix"
and "needed size fix" is visible in logcat after each run
After running on a legacy library: Home's Storage stat reflects
truth, and the FLAC sub-text under Storage starts showing real
sizes too (the v0.9.4 decoupling already let it show whatever
SUM produces — this just makes that SUM accurate).
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.4...v0.9.5