Skip to content

Small consistency gaps found in the 2.1.7 evidence pass #89

Open

Description

@StaticHumStudio

What

  • After deleting a downloaded book that is loaded in the mini player, Play fails with an ExoPlayer ENOENT error (player shows an error state, no crash). The loaded item keeps the deleted local path. Not checked on 99839f6.
  • AudioBookDao.getByLibraryWithLastPlayed reads a whole library without a transaction. 2.1.7 fixed the same pattern in the Library shelf read, where a sync saving pages mid-read returned some books twice and missed others. This query is not on the Library path, but it can do the same.

Proposed shape

Refresh or unload the player item when its download is deleted. Wrap the full-library read in a transaction like getFilteredBooks.

🤖 Generated with Claude Code

Activity

  1. StaticHumStudio commented on Oct 4, 2026

    @StaticHumStudio
    OwnerAuthor

    One more from the phone pass on #90 (present on 99839f6 too): with a book's detail page open in the Library tab, deleting its download from the Downloads tab leaves the detail page showing "Downloaded" until it is reopened. BookDetailViewModel.observeDownloadState falls back to the isDownloaded value loaded when the page opened once the download row is gone. Reading the book row as a flow (or re-reading it when the row disappears) would fix it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions