Skip to content

pine v0.5.0

Latest

Choose a tag to compare

@Thelost77 Thelost77 released this 14 Jul 10:12

pine v0.5.0

This release expands search, separates playback sessions by installation, and
hardens playback, cache, and local-secret handling.

What's New

  • Fuzzy search everywhere — command-palette search now tolerates partial and
    approximate matches across books, podcasts, and series.
  • Podcast episode search — individual podcast episodes now appear in global
    search and can be played directly from the result.
  • In-place list filtering — press / on the home, library, series, or
    series-list screen to filter the visible list by title, author, podcast, or
    series context. Press esc to clear the filter before navigating back.
  • Per-install playback identity — Pine generates a stable device_id and
    editable device_name, preventing Audiobookshelf from merging playback
    sessions from different machines. Pine also reports its installed version to
    Audiobookshelf.
  • Editable default configuration — Pine creates config.toml on first run,
    including its default theme values and playback identity.

Reliability and Correctness

  • Stale mpv launch events can no longer interfere with a newer playback session.
  • Seek commands now run through the Bubble Tea update loop, and a missing mpv
    seek confirmation no longer freezes position tracking.
  • Pine stops playback, closes the active session, and clears queue and sleep
    state before returning to login after a 401 Unauthorized response.
  • mpv startup fails promptly when the subprocess exits before IPC is available.
  • MPRIS playback state is synchronized for safe concurrent D-Bus access.
  • Cancelled cache fills can be retried by other callers instead of spreading a
    stale cancellation result.
  • Search snapshots are invalidated after cache clearing, metadata updates, and
    item or episode deletion.
  • Books belonging to multiple series now use the selected series sequence when
    sorted.

Security and Storage

  • Pine restricts its SQLite database to owner-only 0600 permissions.
  • Native mpv IPC sockets now live in an owner-only 0700 directory, protecting
    stream URLs and authorization headers from other local users.
  • Default-account updates are transactional, ensuring only one account remains
    selected as default.

Pine continues to store the Audiobookshelf token directly in the protected local
SQLite database; no desktop keychain is required.

Upgrade Notes

Existing config.toml files are migrated in place with device_name and
device_id while preserving unrelated settings. Keep device_id stable for one
installation. When copying the config to another machine, remove or replace that
value so Pine generates a separate identity.

Installation

go install github.com/Thelost77/pine@v0.5.0

Requirements