🚀 Stable Release v2025.10.4
✅ What's New
✨ Features
-
Activity Monitoring & Historical Data Import
- Added historical data import jobs with scheduling and status tracking.
- Added support for AudiobookShelf historical import and activity collection.
- Activity sessions now track start time and elapsed duration.
- Added identity links for activity sessions (replacing
ended_at
).
-
Improved Logging & Application Setup
- Introduced
structlog
with context variables & better console rendering. - Set Flask environment to production and improved app configuration loading.
- Introduced
-
SQLite & Performance Enhancements
- Enabled WAL mode, added retry logic for commits, and improved concurrency handling.
-
Wizard System Improvements @engels74
- Refactored wizard steps into pre-/post-flow.
- Show progress bar only when multiple steps exist.
- Improved combo invitation flow consistency.
-
User Management
- Added
enable_user
endpoint and improved user ID resolution for AudiobookShelf. - Enhanced username mapping for media servers (Audiobookshelf, Jellyfin disabled logic).
- Added
-
Utility Additions
- Added
local_date
Jinja filter (UTC to local timezone conversion).
- Added
🐛 Bug Fixes
- Improved session data validation & added automatic re-fetching for incomplete Plex data.
- Improved SQLite testing cleanup and error handling.
- Fixed server name and avatar URL resolution in Plex/Emby collectors.
- Fixed safe JSON rendering in dropdown and alert templates (resolves #913).
- Resolved multiprocessing issues on Python 3.14 (
fork
). - Fixed Jellyfin user disable behaviour.
- Fixed server tag overflow and formatting inconsistencies.
- Applied missing imports, removed unused "enable" argument, and resolved various lint errors.
♻️ Refactoring
- Removed outdated license middleware and unused Plus WebSocket dependency.
- Migrated to Flask-SQLAlchemy
get_or_404()
pattern. - Consolidated session management test fixtures.
- Standardised type hints across user and activity services.
- Cleaned up obsolete migrations and legacy files.
- Small UI template tweaks (wizard phases, progress bar display conditions).
🔧 Build System & Dependencies
-
Updated key packages:
sqlalchemy
,structlog
,cachetools
ruff
(0.13.3 → 0.14.1)ty
(0.0.1a21 → 0.0.1a23)websocket-client
(1.8.0 → 1.9.0)htmx-ext-preload
,inapp-spy
-
Updated CI workflows:
astral-sh/setup-uv
6 → 7.
🌍 Internationalisation (i18n)
-
Updated translation strings (POT refresh).
-
New/updated translations:
- French, Dutch, Danish, Chinese (Simplified).
📝 Other Changes
- Reverted temporary Python 3.14 upgrade and Docker build tool change.
- Internal code structure improvements and template compilation enhancements.
- Removed unused
.cursorignore
. - Updated migration IDs and down-revisions for consistency.
- Minor fixes for code scanning alert #69 (exception exposure).