🐛 Bug Fixes
- Library channel mapping broken: The config UI was saving
undefinedas the library key inJELLYFIN_NOTIFICATION_LIBRARIES— Jellyfin's/Library/VirtualFoldersreturnsItemId, notId. All per-library channel assignments were silently ignored - Webhook channel routing mismatch: Jellyfin webhook payloads send
CollectionIdasLibraryId, while the config storesVirtualFolder ItemId— added a resolution step so the IDs are correctly matched - Poller library fallback broken:
findLibraryIdwas called with aSetinstead of the requiredMap<id, libraryObject>, causing traversal fallback to always returnundefined - Seerr users not loading in User Mapping UI: Fixed for Seerr variants that return a plain array instead of
{ results: [...] } - Wrong timeout constant in
checkMediaStatus: Was usingTIMEOUTS.TMDB_APIinstead ofTIMEOUTS.SEERR_API JELLYFIN_BASE_URLtypo:GET /jellyfin/librarieswas readingprocess.env.JELLYFIN_URL(undefined), always returning 400
🏗️ Code Quality
- Removed dead
fetchRootFoldersfunction and related cache variables (leftover from a discarded feature) EMBED_COLOR_SEASONadded to config template so it is configurable via the dashboard