Highlights
-
Diagnostics dashboard and work queue
Admin diagnostics is split into a health overview (severity KPIs, Catalog / Enrichment / Polish, Fix all with clearer confirmations) and a filterable details page. Issues use work-class taxonomy and updated severity bands (e.g. inaccessible path as Error, missing metadata as Info). In-app help covers diagnostics and background tasks.
-
Explore category card tap action
Each library group can open either its Explore feed or library browse on tap/click. Admins set the default under Admin -> Library groups. Users can override per group in Settings -> Libraries. Long-press / right-click still offers both destinations.
-
Clearer playback labels
Movie releases show specs/source, audio and subtitle rows keep original names after the language. French dub variants stay distinct from plain ISO language codes.
-
Hardened K7.Import and matching
Title folding, episode-range parsing, ISRC track attach, MusicBrainz localized aliases, Tautulli/Spotify import fixes, and safer cast portrait handling reduce rematch noise and bad links. Dry-run now produces a much better sorted report file (--report/-o): full media lists and per-user plans go to UTF-8 text while the console stays a short summary - ideal for large libraries before a real import. -
MAUI session and downloads
Auth refresh/expiry, Android auto playback reporting, background downloads, and closing the native player when a movie ends are more reliable. Profile select reconnect after expiry is improved. -
Leaner default memory footprint
Server defaults are tuned downward for typical self-hosted installs.
Changes
Features
- feat(diagnostics): add work-class taxonomy and severity bands
- feat(diagnostics): filter items by work class and severity
- feat(ui): split diagnostics into dashboard and details
- feat(ui): add diagnostics and background-tasks help dialogs
- feat(ui): detail bulk-fix confirm dialog outcomes
- feat(explore): add per-group tap action on category cards
- feat(playback): label movie releases by specs and source
- feat(playback): show original audio and subtitle names after language
- feat(shared): keep french dub variants distinct from iso language
Bug Fixes
- fix(maui): play offline movies on android native overlay
- fix(maui): null-safe download foreground notification builder
- fix(tests): pin postgres image for testcontainers 4.x builder
- fix(ci): patch SSH.NET transitive vulnerability from testcontainers
- fix(ui): keep expansion panels and overflow scroll keyboard-friendly
- fix(metadata): copy supplemental cast portraits without person id
- fix(import): collapse spotify editions and sort dry-run reports
- fix(import): resolve tautulli series guids and coerce orphan episodes to movies
- fix(musicbrainz): use localized aliases instead of official japanese names
- fix(music): attach scanned files to existing tracks by isrc
- fix(medias): fold titles so import matches existing series episodes and music
- fix(shared): parse episode ranges and reject cross-type external ids
- fix(maui): close native player when a movie ends
- fix(maui): keep android downloads alive in background
- fix(maui): harden android auto playback session reporting
- fix(maui): harden auth session refresh and expiry
- fix(ui): hide images tab for music tracks
- fix(ui): improve select-profile reconnect after expiry
- fix(home): unwrap double-encoded layout on library delete
- fix(transcode): skip hdr tonemap without color transfer
Miscellaneous
- chore(server): lower default memory footprint for self-hosted
Artifacts
- Docker:
ghcr.io/kaybi-gh/k7:1.5.0 - Android:
K7-1.5.0-android.apk - Windows:
K7-1.5.0-win-x64.zip