๐ Stable Release v2026.10.0
What's Changed
๐ Features
- add a libraries option to the recently added media widget
- add Estonian
- add a page where users type an invite code
- add show password buttons to the public password forms
- add endpoint for the installed version
- add activity statistics endpoints
- verify the Cloudflare Access token for admin requests
- choose which server the join page posters come from
- add Plex collection wizard widget
- add Drop media server support
๐ Bug Fixes
- show a help page for /wizard/ instead of the admin login
- show the newest items of all libraries in the recent media widget
- show the full "Add..." menu in the wizard step modal
- keep typed values after a failed connection test
- stop 500 errors when wizard step positions collide
- read the Jellyfin play method from PlayState
- prefer the account with a real email when Wizarr links accounts
- write LDAP uids and DNs in lowercase
- grant Kavita library access through the invite only
- re-enable the wizard Next button after htmx loads with defer
- point the Pushover migration at the current head
- override postcss-selector-parser to 7.1.6
- fix user creation and connection check
- rename Overseerr/Jellyseerr to Seerr
- send cn and sn when Wizarr creates a user
- allow normal Jinja and HTML in wizard steps
- don't leave an Emby user without a password
- keep an expired user when the media server delete fails
- check e-mail addresses with one pattern for every server type
- allow a nickname for users with a single account
- record the right user when several people join one unlimited invite
- guard the localtime lookup when zoneinfo is unavailable
- reuse expiry history when an expired user was re-enabled
- resolve the local zone from /etc/localtime when TZ is unset
- keep presentational markup in sanitized wizard templates
- show stored UTC timestamps in local time everywhere
- fix bootloop when PUID=0
- trust proxy headers for external URLs
- resolve dev script commands cross-platform
โก Performance Improvements
- reduce database, network and asset work across the app
โป๏ธ Code Refactoring
- let each media client own its connection check
- improve Drop client type safety and policies
๐ Documentation
- fix the public path lists for Authelia and Authentik
- update reverse proxy documentation to include trusted proxy headers configuration
๐งช Tests
- give each test process its own database file
- narrow the reloaded user before reading is_disabled
๐ท CI/CD
- build the static assets before the tests
- pin astral-sh/ruff-action to v4.1.0
๐ Styling
- fix ruff errors in the proxy settings
๐งน Chores
๐ Other Changes
- Bump virtualenv from 21.7.13 to 21.14.6
- Bump mako from 1.4.2 to 1.4.3
- Bump werkzeug from 3.1.8 to 3.1.9
- Bump source-map-js from 1.2.1 to 1.2.2 in /app/static
- Bump mako from 1.4.1 to 1.4.2
- Bump virtualenv from 21.7.7 to 21.7.13
- Bump urllib3 from 2.7.0 to 2.8.0
- Bump oauthlib from 3.3.1 to 4.0.0
- Bump astral-sh/setup-uv from 10.0.1 to 10.2.0
- correct the callback route docstring
- make the join claim race-safe and keep state until navigation commits
- load plex-oauth.js on the invite page so Join Server works
- a hidden invite page must not finish the sign-in or close the callback
- decide hand-off from the opener's visibility, not the window size
- return the user to Wizarr after Plex sign-in
- keep info-only connections offline
- chain the provisioning migration onto the current head
- turn on watchlist syncing for the accounts we create
- fix migration docstring, gate the provisioning checkbox to Overseerr forms
- Make Test Connection check what account creation needs
- Stop labelling a provisioning connection info-only
- Apply the account-creation form changes to the settings page too
- create the request-system account for invited Plex users
- Add Pushover as a notification agent
- Add sort-by-expiry option to users table
Full Changelog: v2026.10.0...v2026.10.0
๐ All Commits Included (76 commits)
Click to expand commit list
1f8d2b5b9 chore: release v2026.10.0
0ab4edf6e fix: show a help page for /wizard/ instead of the admin login
9b2436f6e feat: add a libraries option to the recently added media widget
2346496fd fix: show the newest items of all libraries in the recent media widget
32bbe2823 feat(i18n): add Estonian
b4ed18d90 feat: add a page where users type an invite code
b8645a7ca feat: add show password buttons to the public password forms
de588f19a feat(api): add endpoint for the installed version
b07c70b6d ci: build the static assets before the tests
b2126cb46 fix(wizard): show the full "Add..." menu in the wizard step modal
249e01eb6 fix(servers): keep typed values after a failed connection test
731178514 fix(wizard): stop 500 errors when wizard step positions collide
a6c98990f test: give each test process its own database file
bcebdd656 fix: read the Jellyfin play method from PlayState
4cf720e5c fix: prefer the account with a real email when Wizarr links accounts
bbb4d3293 fix: write LDAP uids and DNs in lowercase
710ee1f0d fix: grant Kavita library access through the invite only
2c1016080 fix: re-enable the wizard Next button after htmx loads with defer
0489fd420 fix: point the Pushover migration at the current head
110bd819c style: fix ruff errors in the proxy settings
cbbfbc3d5 fix(deps): override postcss-selector-parser to 7.1.6
ce9276502 ci: pin astral-sh/ruff-action to v4.1.0
3a4014105 chore(deps): update all dependencies and group Dependabot updates
ad94601c0 fix(drop): fix user creation and connection check
060c310f8 feat(api): add activity statistics endpoints
f255de038 fix(connections): rename Overseerr/Jellyseerr to Seerr
07c87d379 docs(sso): fix the public path lists for Authelia and Authentik
68926d912 fix(ldap): send cn and sn when Wizarr creates a user
a79a2edad perf: reduce database, network and asset work across the app
26deb704e Bump virtualenv from 21.7.13 to 21.14.6
9a4b47c10 Bump mako from 1.4.2 to 1.4.3
cb5ba2a27 fix: allow normal Jinja and HTML in wizard steps
45d0f2b75 Bump werkzeug from 3.1.8 to 3.1.9
30c1e355a Bump source-map-js from 1.2.1 to 1.2.2 in /app/static
0f19f4b9d Bump mako from 1.4.1 to 1.4.2
0abd1510a Bump virtualenv from 21.7.7 to 21.7.13
bf948e129 fix: don't leave an Emby user without a password
0321741aa fix: keep an expired user when the media server delete fails
2bb023809 fix: check e-mail addresses with one pattern for every server type
9889e0330 fix: allow a nickname for users with a single account
bfe1b1e36 fix: record the right user when several people join one unlimited invite
40d72cf09 feat: verify the Cloudflare Access token for admin requests
a583f814f fix: guard the localtime lookup when zoneinfo is unavailable
cca2e0b4f feat: choose which server the join page posters come from
b403cc283 test: narrow the reloaded user before reading is_disabled
d3a95b087 fix: reuse expiry history when an expired user was re-enabled
8cef0daad fix: resolve the local zone from /etc/localtime when TZ is unset
bc9f6b95d refactor: let each media client own its connection check
9b6ba4f43 fix: keep presentational markup in sanitized wizard templates
594c66f13 Bump urllib3 from 2.7.0 to 2.8.0
31f5b9f69 Bump oauthlib from 3.3.1 to 4.0.0
2a5b7e0e7 fix: show stored UTC timestamps in local time everywhere
b8836d42e Bump astral-sh/setup-uv from 10.0.1 to 10.2.0
fffb8f979 correct the callback route docstring
b1ba87662 make the join claim race-safe and keep state until navigation commits
a3737c3cf load plex-oauth.js on the invite page so Join Server works
418c795a6 a hidden invite page must not finish the sign-in or close the callback
289a2711e decide hand-off from the opener's visibility, not the window size
02aabcbff return the user to Wizarr after Plex sign-in
2bbda855d keep info-only connections offline
540f4ff90 chain the provisioning migration onto the current head
0bb77fdcb turn on watchlist syncing for the accounts we create
e132ee5a3 fix migration docstring, gate the provisioning checkbox to Overseerr forms
dfacce4f9 Make Test Connection check what account creation needs
95e2f0859 Stop labelling a provisioning connection info-only
e301f9c85 Apply the account-creation form changes to the settings page too
43cab7f51 create the request-system account for invited Plex users
75ae1d73d feat: add Plex collection wizard widget
749a80893 Add Pushover as a notification agent
e27b71a99 Add sort-by-expiry option to users table
9c5966c78 fix(entrypoint): fix bootloop when PUID=0
7c14a36ac docs: update reverse proxy documentation to include trusted proxy headers configuration
c69a1d84c fix(app): trust proxy headers for external URLs
40a2ccc4c fix: resolve dev script commands cross-platform
0a0263a91 refactor: improve Drop client type safety and policies
41318fd58 feat: add Drop media server support