Everything from the 2.1.0 betas so far, plus two link fixes.
-
CPU and RAM charts work for Jellyfin and Emby. Needs SSE plugin 0.4.0.
-
Picking multiple servers overlays them on one chart, one line per server in its color.
-
The three stats cards share one time grid so they line up side by side.
-
Live charts hold a real two-minute window instead of a fixed number of points, so a server that samples at its own rate no longer stretches or shrinks the span.
-
Timestamps are placed on Tracearr's clock when the media server's clock has drifted. A server whose clock is already right keeps its own.
-
A gap in reporting draws as a gap rather than a straight line across it.
-
Charts stop polling hard when a server has nothing to report.
-
Playback Reporting plugin import for Jellyfin and Emby. History comes over the server connection you already configured, with no file export and no Jellystat install.
-
A Check Plugin button reports whether the plugin is there and how many records it holds before you commit to anything.
-
Pick the media server's timezone during import; the plugin stores timestamps in server-local time.
-
Safe to run twice. Rows already imported, rows from an earlier Jellystat import, and history Tracearr already tracked all get skipped. A full-range checkbox overrides the overlap guard if your history has gaps.
-
Emby imports include IP locations and pause time. The Jellyfin plugin does not record those.
-
Clicking a user from a media item's watchers or history opens that user. The link was built from the person's identity id where the page expects the per-server account id, so it landed on nothing.
-
Open on server opens the item instead of the server root. Plex goes through app.plex.tv so the link still works away from home; Jellyfin and Emby use the server URL you configured.
-
Plex metadata refreshes no longer trigger library syncs. Nightly maintenance could otherwise keep Tracearr syncing every 30 seconds for hours.
-
Dominant color lookups were scanning the whole library table once per poster. They're indexed now.
-
The image proxy looked up the server row on every cache miss. It remembers it for 30 seconds instead.
-
Dropped five sessions indexes no query used. Every session write maintains fewer indexes, and the disk comes back at boot.
-
The periodic full library scan runs on a clock, at most once every 3.5 days per library, instead of counting syncs.
-
Event bursts settle down: snapshot rebuilds cap at one per 5 minutes, duplicate reconciliation waits 10 minutes, count drift 15.
-
Library snapshots skip the write entirely when nothing changed.
-
Posters are resized by your media server instead of being downloaded full size and shrunk locally.
-
Image processing is capped to one thread, so cache warming after a big sync doesn't take over a small box.
-
Cleared four dependency advisories. Two remain in build tooling that never ships with Tracearr, and have no upstream fix published yet.
-
Public v2 history rows carry server_user_id next to the identity id.
-
Poster cache warming shows in the running tasks menu with a count and progress bar.
-
CI exercises the oldest and newest supported TimescaleDB. Extension updates are opt in at boot with TIMESCALEDB_AUTO_UPDATE.
-
The admin recovery CLI finds owners with legacy mixed-case usernames.
-
@tracearr/shared and @tracearr/translations publish to npm with each release.