Releases: kaybi-gh/K7
Release list
K7 v1.5.0
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
K7 v1.4.0
Highlights
-
Resume / restart on detail pages
Movie, series, and episode pages now have a clear Resume action (with the timestamp) and Play from beginning, instead of one ambiguous play button.
-
Fixed Keep Watching carousel
On home page keep watching carousel was not displaying any content on some conditions. Also added a way to still see progress on a mediacard when hovering/focusing it.
-
Clearer stats and language labels
History and watch stats use readable titles (Artist - Track,Serie - Episode (S01E02)). Language rows show flag, native name, and translated label. Most-skipped is music-only.
-
Hardening media identification
Album and series matching uses calendar year more reliably, orphan cleanup / rematch no longer leaves stale work hanging, and library availability races are tightened so scans and watchers fail less loudly. -
Easier first-run setup
Until setup is finished, every restart logs a clearK7_SETUP_TOKEN=...line you can grep indocker logs/kubectl logs. Background jobs wait until setup is done, and default container logging is quieter so that token line is easier to spot.
Changes
Features
- feat(ui): add resume and restart on detail pages
- feat(stats): show clearer titles and language labels
- feat(home): apply shared profile watch state on feed
Bug Fixes
- fix(home): load keep watching with user auth
- fix(playback): ignore bad duration when saving progress
- fix(maui): fix video volume gestures and fullscreen
- fix(nav): fix back button and focus
- fix(ui): polish media card and playback policy
- fix(setup): wait for setup before background jobs
- fix(libraries): harden availability races and watcher failures
- fix(media): cascade orphan cleanup and cancel stale rematch tasks
- fix(media): match albums and series by calendar year
Artifacts
- Docker:
ghcr.io/kaybi-gh/k7:1.4.0 - Android:
K7-1.4.0-android.apk - Windows:
K7-1.4.0-win-x64.zip
K7 v1.3.3
Highlights
- Better re-identifying experience:
- Series re-identify now shows the expected source path (for instance an episode file)
- After a successful re-identify, navigation goes back in history instead of forcing home
Changes
Bug Fixes
- fix(ui): show serie sample path on reidentify
- fix(music): add album reidentify dialog and search ux
- fix(ui): navigate back after reidentify
Artifacts
- Docker:
ghcr.io/kaybi-gh/k7:1.3.3 - Android:
K7-1.3.3-android.apk - Windows:
K7-1.3.3-win-x64.zip
K7 v1.3.2
Highlights
Fix a library create/edit dialogs error on opening introduced in v1.3.0.
Bug Fixes
- fix(ui): add helpertext support to k7select
Artifacts
- Docker:
ghcr.io/kaybi-gh/k7:1.3.2 - Android:
K7-1.3.2-android.apk - Windows:
K7-1.3.2-win-x64.zip
K7 v1.3.1
Highlights
- Rematch library now runs as a background task (same pattern as library index), so large music libraries no longer time out.
Changes
Bug Fixes
- fix(libraries): run rematch as background task
Artifacts
- Docker:
ghcr.io/kaybi-gh/k7:1.3.1 - Android:
K7-1.3.1-android.apk - Windows:
K7-1.3.1-win-x64.zip
K7 v1.3.0
Highlights
- Rematch library: when metadata is wrong, admins can rematch a whole library without wiping user data (favorites, progress, reviews, etc.). MusicBrainz IDs and AudioMuse also stay in sync so music intelligence does not break after a rematch. This should come in handy for users who installed K7 before the new identification algorithms, so they can reidentify existing libraries with the improved matching.
- Stronger media identification:
- Honor provider IDs in paths (
[tmdbid-...]/[tvdbid-...]/[imdbid-...]) to skip ambiguous title search. - Series Auto provider: search TMDb and TVDB together, store both IDs, and choose the numbering that best fits your on-disk S/E layout.
- Music: trust embedded MusicBrainz tag IDs first; year only re-ranks candidates so a bad tag year no longer kills the match.
- Honor provider IDs in paths (
- UI polish:
- Fixed a bug that was stopping the Keep Watching home section from showing next series episodes.
- Fixed Home and Explore pages visual glitches (metadata refresh blinks, overlapping stills).
Changes
Features
- feat(admin): add rematch library action and confirm dialog
- feat(libraries): add rematch library media command
- feat(media): transfer user state on rematch and reidentify
- feat(music): preserve guids on rematch and reconcile audiomuse
- feat(music): harden musicbrainz album identity from tags
- feat(metadata): parse provider ids from media paths
- feat(serie): add auto provider identity and numbering provider
Bug Fixes
- fix(reviews): show local user avatars on media review cards
- fix(home): show next series episode in keep watching at zero progress
- fix(web): allow cover art and wikimedia image hosts in csp
- fix(auth): show french login errors as alerts and harden redirects
- fix(ui): resolve relative metadata picture urls on maui
- fix(shared-profiles): fix pin verify, tv keypad, and preferences ux
- fix(ui): prevent episode stills overlapping on mobile grid
- fix(ui): fix explore music tv shelves and radio preset loading
- fix(ui): scope home and explore media refresh to avoid blink
- fix(ui): remove music intelligence unavailable banner
Artifacts
- Docker:
ghcr.io/kaybi-gh/k7:1.3.0 - Android:
K7-1.3.0-android.apk - Windows:
K7-1.3.0-win-x64.zip
K7 v1.2.0
Highlights
- Native video chrome on Android/iOS MAUI: during playback the app swaps the Blazor WebView for ExoPlayer/MediaElement plus a full XAML control overlay (seek with chapters and thumbnails, audio/subs/quality, SyncPlay, cast, skip intro, next-episode autoplay, and touch gestures) so mobile and TV get a real native player UI instead of WebView controls over the picture which felt a bit laggy
- Series rename re-link transfers watch state and cleans orphaned entries
- Android Auto radio presets on home browse, plus a TV-navigable remote control panel
Changes
Features
- feat(android-auto): add radio presets to home browse
- feat(ui): make remote control panel tv-navigable
- feat(maui): host native overlay during playback
- feat(maui): add native video player overlay
- feat(clients): add native video chrome helpers
- feat(media): transfer watch state on re-link
- feat(media): serie rename re-link and orphan cleanup
Bug Fixes
- fix(android-auto): sync now-playing metadata on track change
- fix(ui): restore focus after native video
- fix(ui): harden js module dispose races
- fix(ui): soft-patch library group cards on reidentify
- fix(clients): guard playback progress against resume zero overwrite
- fix(maui): rebind exoplayer auth before access token expiry
- fix(media): match series by title and year
- fix(ui): prefer configured card color over cover dominant
- fix(ui): dedupe provider images with duplicate urls
- fix(metadata): soft-skip missing serie episodes
- fix(metadata): tvdb absolute episode fallback
Artifacts
- Docker:
ghcr.io/kaybi-gh/k7:1.2.0 - Android:
K7-1.2.0-android.apk - Windows:
K7-1.2.0-win-x64.zip
K7 v1.1.0
Highlights
- OpenSubsonic API for external music clients with app passwords and playback history integration (https://github.com/kaybi-gh/K7/discussions/14)
- Helm chart published to OCI for simpler Kubernetes installs
- Redesigned cover picker (tabs, search, virtualization) plus more reliable cover persistence
- Series metadata search/reidentify now cascades TVDB then TMDB
Changes
Features
- feat(opensubsonic): add OpenSubsonic API with app passwords and playback history @kaybi-gh (#15)
- feat(helm): publish OCI chart @qjoly (#12)
- feat(covers): redesign cover picker with tabs, search, and virtualization
- feat(metadata): cascade TVDB/TMDB for series identification
Bug Fixes
- fix(covers): copy selected pictures so covers survive metadata refresh
- fix(covers): hide native file input in cover picker
- fix(music): repair ID3v2.3 artist slash splits
- fix(admin): remount background tasks table when filters change
- fix(diagnostics): harden suspected duplicate year query
CI
Artifacts
- Docker:
ghcr.io/kaybi-gh/k7:1.1.0 - Android:
K7-1.1.0-android.apk - Windows:
K7-1.1.0-win-x64.zip
New contributors
K7 v1.0.2
Changes
Features
- Record guest playback sessions for admin history
Fixes
- Match TMDb titles using library language and fallback instead of only english
- Normalize sort titles for accents and casing
Other
- Resolve demo screenshot media dynamically and refresh gallery
Artifacts
- Docker:
ghcr.io/kaybi-gh/k7:1.0.2 - Android:
K7-1.0.2-android.apk - Windows:
K7-1.0.2-win-x64.zip
K7 v1.0.1
Changes
Fixes
- Scope series folder matching to the full path so unrelated folders are less likely to be mis-detected as a series
Performance
- Speed up the diagnostics summary during library scans
Artifacts
- Docker:
ghcr.io/kaybi-gh/k7:1.0.1 - Android:
K7-1.0.1-android.apk - Windows:
K7-1.0.1-win-x64.zip