Important: New authentication system
- A more secure authentication system has been added, see #4460 for details
- All users are required to re-login to the web client to start using the new authentication system
- The old authentication system will continue to function and be removed from the server no earlier than September 30, 2025 to allow 3rd party apps time to update
Added
- JWT authentication with refresh tokens to replace old authentication system (See #4460) (in #4444)
- API Key config page for managing configurable API Keys that act on behalf of users (See #4460) (in #4444)
- Session model for managing sessions in the new auth system (See #4460) (in #4444)
- Rate limiter for authentication endpoints (See #4460) (in #4444)
- Explicit filter for books & podcasts (only shows if user has access) #2114 by @Vito0912 in #4425
Fixed
- Scanner re-adding single-file audiobooks in folder root when they are deleted through the web ui #4459 (in #4469)
- Continue listening items not updating due to
updatedAttimestamp not updating for mobile local syncs #4366 (in #4454) - Dockerfile
NUSQLITE3_PATHbuild arg not configurable by @HadrienPatte in #4413 - Book author secondary sort by title not respecting ignore prefixes when sorting setting #4414 (in #4417)
- Server crash when FantLab metadata provider requests time out #4410
Changed
- Remove
TOKEN_SECRETenvironment variable (See #4460 for new vars) (in #4444) - UI/UX: Timestamps in podcast episode description are clickable to open player at time (in #4419)
- UI/UX: Podcast episode view modal shows duration & episode feed modal shows duration & size (in #4422)
- UI/UX: Book narrators page, narrator name links to library filtered by narrator
- API: Update password change endpoint (
/api/me/password) to return error status codes - Server init database cleanup removes duplicate media progress rows
- More strings translated
- Chinese (Simplified Han script) by @springsunx @FiendFEARing
- Croatian by @biuklija
- Czech by @petr-prikryl
- Danish by @DavidMunch @Strit
- Dutch by @matieke @DavevanIersel
- German by @B0rax @Dalabad @Eragos @Vito0912
- Hungarian by @Kabika82
- Italian by @burghy86
- Slovenian by @thehijacker
- Ukrainian by @buzzik @Maksim2005UA2
Internal
- Env variable override to use experimental React client (in #4430)
New Contributors
- @HadrienPatte made their first contribution in #4413
Full Changelog: v2.25.1...v2.26.0