docs: add Kodi <-> Music Assistant smart queue bridge writeup
Covers the design rationale, the refill-cycle mechanism, three real issues found and fixed via live testing against a real Kodi session (a silent result-key mismatch that meant the daemon never once resolved a track, a starved similarity candidate pool, and a 4-minute poll-interval blind spot), and live proof of a working auto-queued run of similar tracks. Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
1 parent
f85fce7202
commit
4e3e9b02a8
4 files changed
+142
No files matched your search
@@ -93,6 +93,10 @@ Every physical host, VM/LXC, and running service in the fleet, re-derived from t
|
||||
Packer builds a hardened base image, Terraform provisions each VM from it, and Ansible configures and continuously re-hardens every host after that — three tools, three separate responsibilities, connected by one tag that threads through all three stages instead of one tool trying to do every job. Terraform's part in that link ends at creation — it writes the tags file once, and that file then drives Ansible independently for the rest of that host's life.
|
||||
→ [docs/iac-pipeline.md](docs/iac-pipeline.md)
|
||||
|
||||
### 🎧 Kodi <-> Music Assistant Smart Queue Bridge
|
||||
Kodi stays the only music player, UI, and ratings authority; Music Assistant runs invisibly behind it as a similarity engine, never a player, never writing anything back to the library. A small daemon watches Kodi's live queue and auto-refills it with similar tracks via MA's recommendation API when it runs low. Three real issues surfaced only once it was tested against a live Kodi session — not exercised in isolation — including one where the daemon had silently never worked at all.
|
||||
→ [docs/kodi-music-assistant-bridge.md](docs/kodi-music-assistant-bridge.md)
|
||||
|
||||
### 🔔 Notifications
|
||||
Every alert in the fleet — from apps, from hosts, from security events — funnels through one Node-RED instance and one shared formatter before reaching Slack, so a notification reads the same regardless of which of a dozen-plus sources triggered it. A dedicated role puts every host onto the same pipeline for OS-level health, independent of any single application. One shared endpoint handles every app's webhook regardless of shape — a source field where an app provides one, structural fingerprinting of the payload where it doesn't — instead of standing up a dedicated integration per app.
|
||||
→ [docs/notifications.md](docs/notifications.md)
|
||||
|
||||
Reference in new issue
Block a user