🛠️ Bug Fix Release - Radarr v6 Tag Compatibility & Critical Fixes
Overview
Adds automatic tag migration for Radarr v6 compatibility and fixes critical bugs preventing approval list display. Includes comprehensive Plex label sync refactoring with enhanced reliability and Node.js 24.11.1 update.
Key Updates
Automatic Tag Migration for Radarr v6 Compatibility
- Fixes Radarr v6 tag creation failures: Radarr v6 (September 2024) now requires tags use hyphens instead of colons
- Automatic migration on upgrade: All existing Sonarr and Radarr tags automatically migrated to compliant format on first tag sync
- Zero-config: Migration runs seamlessly in background, no manual intervention needed
- Tag format changes:
pulsarr:user:john→pulsarr-user-john,pulsarr:removed→pulsarr-removed
Bug Fixes
- Fixed #728: Removed 1000-item API limit preventing thousands of pending approvals from displaying
- Fixed #727: Resolved Radarr tag creation failures due to colon delimiter incompatibility
- Label sync fixes: Fixed removal mode edge cases and tag-as-label handling
- Matcher improvements: Fixed cache initialization preventing tag matches in certain scenarios
- Log viewer: Fixed auto-scroll issues on page load
Plex Label Sync Refactoring
- Modular architecture: Refactored into specialized components for matching, operations, cleanup, and tracking
- Enhanced reliability: Improved error handling and multi-user coordination
- Comprehensive test coverage: Added extensive unit tests across all label sync modules
- Performance optimizations: Lazy cache initialization and efficient bulk operations
Breaking Changes
- Node.js 24.11.1 required: Upgraded from Node.js 24.11.0 (patch update)
- Docker users: No action needed, image includes correct version
- Manual installations: Update Node.js before upgrading Pulsarr
Manual installation upgrade:
node --version # Should show 24.x.x
nvm install 24 && nvm use 24
# Then update Pulsarr normallyTechnical Changes
Tag System
- Tag migration service handles automatic conversion during first sync
- Migration tracked per Radarr/Sonarr instance to prevent duplicate runs
- Delete sync regex patterns automatically updated to new tag format
- Improved tag deduplication in bulk updates
Cross-Platform Improvements
- Added rimraf for reliable cross-platform builds (Windows/macOS/Linux)
- Enhanced build commands work consistently across operating systems
Migration & Compatibility
Docker users - No action required, pull latest image
Manual installation users - Must be on Node.js 24.x before updating:
node --version # Verify you're on Node.js 24.x
# If not, install Node.js 24:
nvm install 24 && nvm use 24
# Then update Pulsarr normallyDatabase migration - Automatic on startup, adds tag migration tracking
Tag migration - Automatic on first tag sync after upgrade:
- Creates new hyphen-based tags in all Radarr/Sonarr instances
- Updates all content to use new tag format
- Removes old colon-based tags after migration completes
Full Changelog: v0.7.0...v0.7.1
Docker Image: lakker/pulsarr:0.7.1
Changes
- Fix: Radarr v6 Tag Compatibility & Critical Fixes (#735) @jamcalli
- Fix/radarr sonarr tag invalid (#734) @jamcalli
- Fix/approval schema increase cap (#733) @jamcalli
- feat: added rimraf for cross-platform build commands and bump dev version to align with master (#730) @jamcalli
- feat: refactor plex-label-sync service into modular architecture with comprehensive test coverage (#729) @jamcalli
🔄 Dependencies
- chore(deps): update fastify ecosystem (#719) @renovate[bot]
- chore(deps): update react (#726) @renovate[bot]
- chore(deps): update dependency autoprefixer to v10.4.22 (#725) @renovate[bot]
- chore(deps): update dependency @types/node to v24.10.1 (#724) @renovate[bot]
- chore(deps): update node.js to v24.11.1 (#721) @renovate[bot]
- fix(deps): update dependency lucide-react to ^0.553.0 (#722) @renovate[bot]
- chore(deps): update dependency @scalar/fastify-api-reference to v1.39.3 (#718) @renovate[bot]
- chore(deps): update dev dependencies (non-critical) (#720) @renovate[bot]
Docker
docker pull lakker/pulsarr:0.7.1
Contributors
@actions-user, @jamcalli, @renovate[bot] and renovate[bot]