Changes
🛠️ Bug Fix Release - Reverse proxy and notification cleanup
Overview
Bug fix release addressing reverse proxy asset loading, watchlist notification cleanup, and several stability improvements. Fixes CSS/JavaScript 404 errors when using custom basePath and ensures proper notification cleanup when removing watchlist items.
Key Updates
Critical Bug Fixes
- Reverse proxy asset loading: Fixed asset path rewrites to use
/app/assets/instead of/assets/to match Vite build output - Watchlist notification cleanup: Orphaned
watchlist_addnotifications are now properly deleted when removing items, allowing re-notification when items are re-added - Genre normalization: Fixed handling of JSON strings, arrays, and null values in genre data
- Webhook cache stability: Enhanced cache key generation to prevent duplicate webhook processing
- Discord mention privacy: Users who opt out of Discord notifications are no longer mentioned in public channels
Technical Changes
Server-Side
- Added transaction safety to watchlist deletion with type-aware notification matching
- Uses message pattern inference (
%movie%or%show%) to differentiate items with identical titles - Enhanced asset path rewriting in HTML responses for reverse proxy compatibility
Code Quality & Testing
- Added comprehensive test suite with 760+ unit and integration tests
- Refactored Plex utilities into focused modules for better maintainability
- Refactored webhook queue into modular components
- Refactored notification system into distinct sub-modules
Migration & Compatibility
No user action required - fixes are applied automatically. Users with basePath configured will now properly load CSS/JavaScript assets.
Full Changelog: v0.6.4...v0.6.5
Docker Image: lakker/pulsarr:0.6.5
- fix: reverse proxy and notification cleanup (#675) @jamcalli
- fix: basePath rewrite to include /app/assets (#674) @jamcalli
- Fix/watchlist add notification removal (#673) @jamcalli
- feat: Comprehensive Testing Infrastructure (#672) @jamcalli
- Feature/add utils unit tests (#668) @jamcalli
- feat: added asset prefix rewriting in onSend hook for fastify-vite (#662) @jamcalli
🔄 Dependencies
- chore(deps): update node.js to v22.21.0 (#667) @renovate[bot]
- chore(deps): update dependency vite to v7.1.12 (#666) @renovate[bot]
- chore(deps): update dependency vite to v7.1.11 [security] (#671) @renovate[bot]
- chore(deps): lock file maintenance (#658) @renovate[bot]
- chore(deps): update actions/setup-node action to v6 (#665) @renovate[bot]
- fix(deps): update dependency pino to v9.14.0 (#664) @renovate[bot]
- fix(deps): update dependency lucide-react to ^0.546.0 (#657) @renovate[bot]
- chore(deps): update dependency vite to v7.1.11 [security] (#663) @renovate[bot]
- chore(deps): update dependency p-limit to v7.2.0 (#656) @renovate[bot]
- chore(deps): update dependency @types/node to v22.18.11 (#655) @renovate[bot]
- chore(deps): update dependency @scalar/fastify-api-reference to v1.38.1 (#654) @renovate[bot]
- chore(deps): update dependency vite to v7.1.10 (#653) @renovate[bot]
Docker
docker pull lakker/pulsarr:0.6.5
Contributors
@actions-user, @jamcalli, @renovate[bot] and renovate[bot]