This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+12 more
Affected surfaces
ReleasePort's take
Light signalNightingale v0.7.0 introduces self‑hosted web mode binary server, new media provider integrations (Jellyfin, Navidrome/Subsonic), a lyrics editor UI with LRCLIB candidate browser, and several refactorings plus deprecations.
Why it matters: The release adds concrete functional enhancements—self‑hosted HTTP serving, expanded library sources, and an in‑app lyrics editor—that directly affect developers building integrations and SREs deploying the service; it also deprecates `mic_mirroring` requiring config migration before its removal.
Summary
AI summaryUpdates Highlights, https://nightingale.cafe/docs/self-hosted.html, and v1 across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Adds self-hosted web mode binary 'server' serving app over HTTP on LAN. Adds self-hosted web mode binary 'server' serving app over HTTP on LAN. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Adds Jellyfin media provider to library sidebar. Adds Jellyfin media provider to library sidebar. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Adds Navidrome / Subsonic media provider integration for audio-only libraries. Adds Navidrome / Subsonic media provider integration for audio-only libraries. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Adds lyrics editor with LRCLIB candidate browser for each song. Adds lyrics editor with LRCLIB candidate browser for each song. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Persists sidebar and song-list scroll positions across navigation via `usePersistentScroll` hook. Persists sidebar and song-list scroll positions across navigation via `usePersistentScroll` hook. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Feature | Medium |
Increases contrast of sidebar/menu surfaces for better readability. Increases contrast of sidebar/menu surfaces for better readability. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Deprecation | Medium |
Deprecates `mic_mirroring` setting; renames to `mic_monitoring` with compatible config migration. Deprecates `mic_mirroring` setting; renames to `mic_monitoring` with compatible config migration. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Refactor | Medium |
Extracts cross-runtime logic into new `app-core` crate used by desktop client and self-hosted server. Extracts cross-runtime logic into new `app-core` crate used by desktop client and self-hosted server. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Refactor | Medium |
Modularizes `library_db.rs` into separate submodules for connection, migrations, queries, songs, analysis queue, remote helpers, and rebase logic. Modularizes `library_db.rs` into separate submodules for connection, migrations, queries, songs, analysis queue, remote helpers, and rebase logic. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Refactor | Medium |
Restructures sidebar to cluster library actions, cache actions, and theme toggle separately. Restructures sidebar to cluster library actions, cache actions, and theme toggle separately. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Refactor | Medium |
Splits `use-menu-nav.ts` into focused hook modules to resolve focus edge‑case bugs. Splits `use-menu-nav.ts` into focused hook modules to resolve focus edge‑case bugs. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Other | Medium |
Adds Self-Hosted Web Mode documentation page covering install, HTTPS, firewall, and coexistence with Caddy. Adds Self-Hosted Web Mode documentation page covering install, HTTPS, firewall, and coexistence with Caddy. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Other | Medium |
Adds Library Sources documentation page describing Folder, Jellyfin, and Navidrome options with credential handling. Adds Library Sources documentation page describing Folder, Jellyfin, and Navidrome options with credential handling. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Other | Medium |
Updates Lyrics & Transcription docs to include in‑app lyrics editor and LRCLIB candidate browser. Updates Lyrics & Transcription docs to include in‑app lyrics editor and LRCLIB candidate browser. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Other | Medium |
Updates Configuration docs to reflect new `library_source` key and `mic_monitor_gain` rename. Updates Configuration docs to reflect new `library_source` key and `mic_monitor_gain` rename. Source: llm_adapter@2026-05-23 Confidence: low |
— |
Full changelog
Highlights
- Self-hosted web mode (v1) — Nightingale now ships a second binary,
server, that runs the same app over HTTP on a Linux box on the LAN. The React bundle is embedded into the binary viarust-embed, browsers on phones/laptops/tablets/TVs all open the app athttp://<hostname>.local. A one-shotscripts/install.shdrops a systemd unit, a Caddy front-door (HTTP on:80, opt-in HTTPS via Caddy's local CA on:443for mic capture), and an avahi advertisement onto the host so it's reachable without DNS. See docs/self-hosted. - Jellyfin media provider — connect the library to a Jellyfin server from the sidebar. Items are scanned via paginated
GET /ItemswithSortNamefor stable enumeration; bytes are downloaded lazily on first analysis intocache/sources/<file_hash>.<container>and rekeyed to a true Blake3 hash, so the rest of the karaoke pipeline (stems, transcription, shifts) behaves identically to a folder library. - Navidrome / Subsonic media provider — same shape as Jellyfin, but talking the Subsonic API. Audio-only (Navidrome doesn't serve video). Auth uses per-call
MD5(password + salt)tokens; the password is encrypted at rest inconfig.json. - Lyrics editor with LRCLIB browser — every song now has an "Edit lyrics" entry that opens an editor seeded with the current transcript. When LRCLIB returns multiple candidate matches, a second tab lets you carousel through them and apply one with a single click. Saving re-runs alignment with your edits, so timing stays accurate.
- Sidebar restructure — Library actions (folder picker, Jellyfin/Navidrome connect, rescan), cache actions (clear all / videos / models), and the theme toggle moved out of the avatar dropdown into dedicated clusters. The Library row exposes its source buttons inline with live status badges (green/grey/amber) and tooltips showing the reachable hostname or the connection error. The avatar dropdown is now Profile / Settings / Update / About / Exit / Re-run Setup.
Improvements
- Persistent scroll — sidebar and song-list scroll positions are preserved when navigating away and back, via a new
usePersistentScrollhook keyed by panel id. - Higher-contrast sidebar surfaces — various sidebar/menu surfaces had their contrast bumped after the cluster restructure, mostly for the badges and the focused/hovered ring states.
app-corecrate extraction — all cross-runtime logic (config, scanner, library DB, vendor bootstrap, sources, secrets, media server) was lifted out ofclient/src-tauriinto a newapp-corecrate consumed by both the Tauri desktop client and the new self-hostedserver. Drops a chunk of duplicated code and removes the few client/server divergences that had crept in.library_dbmodularization — the single 1k-linelibrary_db.rswas split intoconnection,migrations,queries,songs,analysis_queue,remote, andrebase. Remote-source helpers live inlibrary_db::remoteso Jellyfin/Navidrome share the prune/upsert plumbing.- Single-focus refactor —
use-menu-nav.tswas split intomenu-nav/{use-menu-nav-input, use-menu-nav-refs, use-mouse-menu-focus, use-nav-lock, use-scroll-to-song, use-tab-panel-switch}. Resolves a pile of edge cases where focus could land in two panels at once or get stuck after dialog dismissal. mic_mirroring→mic_monitoring— the setting and its config keys are renamed (mic_monitoring,mic_monitor_gain,mic_active). Older configs withmic_mirroring/mic_mirror_gainare read transparently via serde aliases and rewritten under the new names on next save. Existing UI hotkeys (Rto toggle, etc.) are unchanged.
Documentation
- New Self-Hosted Web Mode page with the full install / HTTPS / firewall / co-existing-with-your-own-Caddy story.
- New Library Sources page covering the Folder / Jellyfin / Navidrome options and the at-rest credential envelope.
- Updated Lyrics & Transcription page with a section on the in-app lyrics editor and the LRCLIB candidate browser.
- Updated Configuration page with the new
library_sourcekey and themic_monitor_gainrename.
Breaking Changes
- Renamed config keys: `mic_mirroring` → `mic_monitoring`, `mic_mirror_gain` → `mic_monitor_gain`. Old names are read via serde aliases and rewritten on save.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About nightingale
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]