Skip to content

Tags: b0bbywan/go-odio-api

Tags

v0.17.4

Toggle v0.17.4's commit message
v0.17.4 — Admin app proxy and service open modes

* An admin web app on a Unix socket (api.ui.adminSocket) is proxied at
  /ui/admin/ and opens in the same tab, X-Forwarded-Prefix included.
* A configured service's url carries an open mode: tab (default), panel
  over the dashboard, or self for an app that links back to odio.

v0.17.4-beta.2

Toggle v0.17.4-beta.2's commit message
docs: point MPRIS player setup at the guides that cover it

The systemd reference says nothing about it; each player's setup lives in its
own guide. The sentence moves to the MPRIS feature it is about.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

v0.17.4-beta.1

Toggle v0.17.4-beta.1's commit message
docs: point MPRIS player setup at the guides that cover it

The systemd reference says nothing about it; each player's setup lives in its
own guide. The sentence moves to the MPRIS feature it is about.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

v0.17.3

Toggle v0.17.3's commit message
docs(debian): changelog entry for 0.17.3

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013gFB9WgpMajs1zcfrxyanA

v0.17.2

Toggle v0.17.2's commit message
Framebuffer Browser UI Fixes

- UI: the button reset is restated without :where() (chromium 88), which
  invalidated the whole rule on the QtWebEngine 5.15 browser the pi
  setups run: every button fell back to native chrome, a white box
  swallowing the icon drawn in currentColor.
- UI: the cover art and tracklist cap carries a vh fallback ahead of the
  cqw value (container queries, chromium 105), so the art keeps its
  aspect and the tracklist scrolls inside its card instead of pushing
  the page off the 480px tall screens.

v0.17.1

Toggle v0.17.1's commit message
D-Bus Call Deadlines

- MPRIS: D-Bus calls now carry a real deadline (mpris.timeout). The old
  wrapper never timed out, so a player that ignores calls on interfaces
  it does not implement (Kodi, on the TrackList probe) froze the listener
  until it left the bus and never showed up in /players.
- MPRIS: shutdown waits for the listener and heartbeat goroutines before
  closing the event channel, fixing a "send on closed channel" panic
  when a player appeared right before stop.
- Login1, Bluetooth: same deadline fix; Device1.Connect keeps the pairing
  timeout since a first connect bonds the device.

v0.17.1-beta.1

Toggle v0.17.1-beta.1's commit message
fix(mpris): bound D-Bus calls with a real deadline and wait for gorou…

…tines on Close

callWithTimeout read call.Err after obj.Call had already returned, so the
configured timeout never applied. Kodi never replies to the optional
TrackList probe, which froze the listener (and Start) until the player
left the bus; the player never reached the cache. Every call now goes
through CallWithContext with mpris.timeout.

Close used to close the events channel while the listener could still be
inside a handler, panicking on notify ("send on closed channel"). Listener
and heartbeat Stop now wait for their goroutine; Close closes the D-Bus
connection first so in-flight calls fail fast, then closes events last.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F9qZzw2ePsBw6ZeUPnzTDz

v0.17.0

Toggle v0.17.0's commit message
PulseAudio Client Rewrite & Admin Link

- PulseAudio: backend migrated from the unmaintained the-jonsey/pulseaudio
  client to jfreymuth/pulse. Subscription events are routed per facility
  so sink and stream changes refresh only their own cache; client and
  output caches are lock-free snapshots; volume writes carry one value
  per channel as the native protocol requires.
- Config: new api.ui.admin setting links an admin web app from the
  dashboard header, accepting the same forms as service URLs.
- Systemd: malformed _XX escapes in unit names are kept verbatim instead
  of decoding to a NUL byte.
- UI: muted corked clients stay visible so they can be unmuted (#102).

v0.17.0-beta.4

Toggle v0.17.0-beta.4's commit message
v0.17.0-beta.4 admin link in the UI header

v0.17.0-beta.3

Toggle v0.17.0-beta.3's commit message
v0.17.0-beta.3 use pulse lib events

Discard beta.2, forcing bluetooth codec does not work