What's new
- History now records the real Jellyfin library for newly observed plays. After updating, a one-time guided upgrade matches older History entries too, with visible progress and safe resume support.
- History can now be exported to a native, versioned Jellydash CSV. Choose the search, user, library and time period you want, preview the exact number of matching plays, or export everything.
- Jellydash CSV files can be restored or moved to another installation from Settings → Import play history. Jellydash previews new and already-present plays, skips duplicates, imports transactionally and never sends playback notifications for restored rows.
- Now Playing cards show bitrate, video codec, audio codec and container details without becoming taller. Transcoding cards add a compact reason button that opens the complete source-to-output path and every reason reported by Jellyfin.
- Statistics now keeps exact watch seconds until display time, calculates truthful averages and user shares, and keeps percentage groups balanced to 100%. Zero-value trend days, sub-minute activity, long durations, metadata coverage and smaller
Othercategories are represented clearly.
Polished along the way (mostly small fixes)
- History keeps episode or item details visible and places the real library beside them in a compact pill.
- The one-time History upgrade cannot be dismissed accidentally while it is running. Its completed result stays visible until you close it, then the normal What's new dialog appears.
- Empty Statistics periods use neutral language and visuals instead of implying Direct Play activity.
- Recently Added keeps its correct mobile position after refreshing or returning to the installed Android app.
- The Docker-backed SQLite check has a clearer name in GitHub Actions.
History CSV format
The native CSV format is documented in [docs/HISTORY_CSV.md](https://github.com/themartz90/jellydash/blob/main/docs/HISTORY_CSV.md). It is designed for Jellydash backups and migrations, includes its own format version and source timezone, and preserves the playback fields needed for a safe round trip.
Update
docker compose pull && docker compose up -dHappy monitoring 👀😁