Skip to content

v0.16.0

Choose a tag to compare

@github-actions github-actions released this 23 Jul 16:35

Highlights

This release brings MPRIS tracklist support, end to end — from the D-Bus
interface to the dashboard.

  • #132 — MPRIS TrackList backend: the tracklist is loaded into the player
    cache, kept live via TrackList D-Bus signals, and exposed through new
    capability-gated endpoints plus a dedicated SSE event.
  • #133 — Tracklist UI & cover zoom: the player card can switch its cover
    to the tracklist, and covers zoom fullscreen.

✨ Features

  • Tracklist endpointsGET /players/{player}/tracklist serves the
    cached list; POST …/tracklist/goto/{trackid} jumps to a track,
    POST …/tracklist/add inserts a URI (validated against the player's
    supported schemes), POST …/tracklist/remove/{trackid} removes one. Edit
    operations are gated on the player's CanEditTracks; tracks are referenced
    by ID (last path segment, or the full %2F-encoded object path).
  • Live tracklist cache — TrackListReplaced / TrackAdded / TrackRemoved /
    TrackMetadataChanged signals mutate the cache and broadcast
    player.tracklist.updated SSE events. Players that only reveal the
    interface through signals (failed initial load) are picked up lazily.

🎨 UI

  • Tracklist view — a toggle on the player card swaps the cover for the
    tracklist (same footprint, inner scroll): current track highlighted, tap a
    row to jump, per-track remove when the player allows edits. Only rendered
    with 2+ tracks; the chosen view and scroll position survive live refreshes.
  • Cover zoom — tap a cover to view it fullscreen; tap or Escape closes.

🧹 Internal

  • Lock-free player cache — readers take immutable snapshots, writers are
    serialized copy-on-write.
  • MPRIS backend dedup — capability guards, variant extraction and
    capability property mapping factored into shared helpers.
  • Deps & CI — Go 1.25 in CI, dependabot enabled for GitHub Actions,
    actions and golang.org/x bumps.

Full Changelog: v0.15.1...v0.16.0