github bitr8/agregarr-dev v2.10.0

5 hours ago

v2.10.0

This release spent six weeks on develop. Most of the work went into overlays: parallel processing, conditional elements with colour scaling, an audio codec badge, and, from Marcus Isdahl, a new sync dashboard and optional Posterizarr integration.

Collections now have an ordering exclusion label for setups shared with Shortlist or Kometa, an episode-level filtered hub, and a run of smart collection fixes. Around 30 reported issues are closed in this release.

Docker tags

Tag What it tracks
bitr8/agregarr:latest Stable releases. This is what you want.
bitr8/agregarr:2.10.0 Pinned to this exact release.
bitr8/agregarr:develop Bleeding edge. Builds on every push, breaks sometimes.

Upgrading from 2.9.x is a pull. Config volumes are compatible, and nothing re-renders unless you turn Posterizarr on.

Thanks

  • Marcus Isdahl: Posterizarr integration and the new sync dashboard, plus two rounds of review fixes. Fork #103.
  • Rubeanie: the all-seasons Maintainerr countdown and the show poster countdown split. Fork #62.
  • gh0st-runner: dynamic title prefix for random and cycle collections.

Cheers too to everyone who filed an issue with logs attached. Most of the fixes below started with one of those.

What's new

Process overlays in parallel

Overlay runs used to be single-threaded. Settings > General > Parallel Items can now process 1 to 10 items at once. The default stays at 1, so nothing changes unless you touch it. A setting of 3 or 4 makes a noticeable difference across a few hundred items.

The dashboard Stop button now stops per-library overlay runs as well. Before this release, it only cancelled scheduled jobs. A run started against one library kept going.

Conditional elements and colour scaling

Template elements can check any context field and only render when a condition matches. That includes resolution, media type, whether a release date exists, and so on. Templates can carry as many conditional variable elements as needed.

Tile elements now accept a colorScale too. Set a numeric range and two colours, with an optional third colour at the midpoint, and the fill interpolates between them. For example, a rating badge could fade from red at 3.0 to green at 8.0. Both features work in the editor preview.

Colour swatches in the collection poster editor and overlay editor now have a text box beside them. It accepts #rrggbb, #rrggbbaa, rgb(), or rgba(). (fork #102)

Audio codec overlay

The new Audio Codec preset reads the stream profiles reported by Plex and badges the best track: TrueHD Atmos, DD+ Atmos, DTS:X, DTS-HD MA, and down the list. It's only available for movie libraries because Plex only exposes that stream detail there.

Media-level codec names returned by Plex (ac3, eac3, dts, dca-ma) now map to the existing icon set instead of rendering nothing. (fork #89)

Posterizarr integration

Marcus Isdahl built this in fork #103.

Turn on Posterizarr Integration under Overlay System > Overlay Output Settings, and Agregarr writes an ownership marker into the generated JPEG for Posterizarr to read. That should stop Posterizarr from treating an Agregarr overlay as an unmanaged poster. Agregarr also accepts authenticated callbacks after a Sonarr or Radarr import, letting the new item pick up its collections and overlays straight away.

For show libraries, each full and quick sync can process the main poster, season poster, and episode card. You choose which targets are included. Callbacks follow the quick sync selection.

When Plex supplies the base poster, Agregarr now pulls the exact selected poster bytes through Plex's file endpoint instead of guessing between uploads.

The integration is off by default. Turning it on switches overlay output to JPEG so the marker can be carried. The first full sync after that re-renders tracked artwork once. Leave it off and nothing about your overlays changes. Setup is covered in POSTERIZARR.md.

Sync dashboard

Marcus Isdahl also built the new sync dashboard. This one's on for everyone.

The Overlay Sync and Collection Sync cards now show per-library progress, an item counter, and a breakdown by artwork target. Success / Errors / Unchanged / Filtered tiles open to show which items landed where. Download CSV log exports the run. It's the same data that was already in the log, without needing to read through the log.

Leave labelled collections out of ordering

Settings > General > Exclude from Ordering (Plex Label) accepts a comma-separated list.

Collections not created by Agregarr are left alone when they carry one of those labels. Agregarr won't reorder their hubs, enforce visibility, or manage their sort titles. Matching includes the exact label and anything prefixed with that label plus an underscore, so Shortlist catches every Shortlist_<username>. Kometa labels work the same way. (fork #75)

Recently added episodes as individual items

There's a new Recently Added Episodes (Individual) filtered hub. The existing Recently Added Episodes hub lists shows with a recent episode. This one lists the episodes themselves, so a "New Episodes Today" row contains only what dropped today. (fork #29)

Smaller additions

  • Days Since Last Episode Added is a new show variable for conditions such as "new this week" badges. (fork #106)
  • IMDb Bottom 100 is available as a collection source. Same as the Top 250, other end. (fork #69)
  • Sort Title Prefix can be set per collection. It's prepended to the collection name, so !020_ produces !020_Apple TV Top 10. That puts it in the right place in Plex's alphabetical sort without touching hub ordering. (fork #50)
  • Dynamic title prefix is available for random and cycle collections, from gh0st-runner.
  • All-seasons Maintainerr countdown. A show poster can wait until every season is scheduled to leave before showing a countdown, dated by either the first or last season out. There's a new Show poster countdown dropdown per library. Turning off the season countdown no longer strips the show poster countdown. From Rubeanie (fork #62).
  • Unwatched filter is now its own smart collection option instead of being tied to the smart collection toggle. (fork #97)
  • Overlay configs for deleted libraries can now be removed from the UI. (fork #94)
  • Library Essentials subtypes now carry the Auto prefix, so they don't read as manual collections.
  • Solver and Trakt notices. Networks collections warn up front when no Cloudflare solver is configured, and Trakt collections mention that free accounts get one connected app. (fork #66) If FlareSolverr refuses a FlixPatrol page, its reason now lands in the log. There's also a Letterboxd health check. (fork #109)

Fixed

Collections

  • Smart collections should no longer accumulate missing-item records. Those records had quick sync trying to write to the collections every half hour. (fork #112)
  • Item sort order is now forwarded to Plex attribute smart collections. (fork #90)
  • Selection fields should now persist when collection settings are saved. MDBList and AniList URLs should also survive edits. (fork #79, #101)
  • Preview now respects maxItems when matched items fill the cap, for both single-source and multi-source configs. (fork #95, #111)
  • Random list rotation now excludes the last-used URL. Letterboxd random lists should also be discovered again. (fork #74, #119)
  • FlixPatrol typed collections now prefer a same-type TMDB match. Top 10 network platforms default to 10 items, and the supplementary Amazon Channels table is ignored. (fork #74, #95)
  • Failed collection saves now show the server's reason instead of a generic error. (fork #76)
  • Deleting a Radarr or Sonarr server now clears collection references to it. (fork #111)
  • Multi-source full sync now includes direct download options. (fork #88)

Overlays

  • Base posters should download again when Plex resolves to a private plex.direct address. (fork #64)
  • Items without a TMDB id should now fall back to their Plex poster as the base instead of breaking. (fork #110)
  • Overlay hashes now include the effective icon mappings, so changing a mapping should trigger a re-render. Mapping resolution is order-stable too, so identical config should produce identical posters.
  • A template that renders no elements no longer re-uploads the base poster. If Agregarr put the current poster there, it still strips it back.
  • Custom SVG icons are now rasterised instead of inlined. (fork #34) Rotated elements anchor on their centre, and new layers stay inside the canvas.
  • daysAgoNextSeason is now derived from the latest aired season. Plex request retries use the actual HTTP status instead of matching text in the error, from Marcus Isdahl.

Placeholders and jobs

  • Auto franchise cleanup should no longer delete placeholders belonging to sibling franchises. (fork #96)
  • The placeholder discovery loop now stops early when nothing matches. yt-dlp has been bumped to 2026.08.19. (fork #92)
  • The Jobs page should no longer crash when a job's next run is more than 48 hours away. (fork #108)
  • The job watchdog now keeps real completions and respects time restrictions.
  • The trash-purge warning now points to the right Plex setting. (fork #116)

UI

  • Modal buttons now stay pinned to the bottom of long dialogs. (fork #107)
  • Clicking inside a modal opened from a popover should no longer close the popover behind it.
  • Number inputs and the sort title field now render correctly across themes. (fork #70)
  • Seerr service users should keep their external permissions during sync, and is4k now follows the configured arr server. (fork #98)

Don't miss a new agregarr-dev release

NewReleases is sending notifications on new releases.