Changes
🗑️ Delete Sync Approval Cleanup & Tracked Content Management
Overview
Enhanced delete sync with approval system integration, enabling automatic cleanup of approval records when content is deleted and tracked-only deletion for granular control over what content gets removed.
Key Updates
Approval Cleanup Integration
- Automatic cleanup: New
deleteSyncCleanupApprovals
setting removes approval records when content is deleted - Real-time updates: SSE events notify connected clients when approvals are removed
- Dual branch support: Works with both tag-based and watchlist-based deletion modes
- Error resilience: Individual error handling prevents cascade failures
Tracked-Only Deletion
- Selective deletion: New
deleteSyncTrackedOnly
setting restricts deletion to Pulsarr-tracked content only - Content preservation: Protects manually-added or externally-synced content from removal
- GUID-based filtering: Efficient lookup against approval system records
- Consistent behavior: Identical logic across both deletion workflows
Technical Changes
Database Enhancements
- New methods: Added
getTrackedContentGuids()
and enhancedgetApprovalRequestsByGuids()
for approval system integration - Pattern consistency: Standardized GUID matching across PostgreSQL and SQLite
- GUID normalization: All GUIDs normalized for consistent matching between services
Architecture Improvements
- Service layer integration: Delete sync uses
ApprovalService
for proper SSE event emission - Optimized filtering: Tracked content check applied before protection playlist check
- Enhanced error handling: Detailed logging with approval ID and content title on failures
Migration & Compatibility
Automatic migration - Database migration adds two new settings to configs
table. Both default to disabled, preserving existing behavior.
Full Changelog: v0.5.18...v0.6.0
Docker Image: lakker/pulsarr:0.6.0
- Feat: Delete Sync Approval Cleanup & Tracked Content Management (#629) @jamcalli
- feat: add delete sync options for tracked content and approval cleanup (#627) @jamcalli
🔄 Dependencies
- chore(deps): lock file maintenance (#626) @renovate[bot]
- chore(deps): update dependency @commitlint/cli to v20.1.0 (#625) @renovate[bot]
- chore(deps): update dependency fast-xml-parser to v5.3.0 (#624) @renovate[bot]
- chore(deps): update dependency @scalar/fastify-api-reference to v1.37.0 (#623) @renovate[bot]
- chore(deps): update tailwind css to v4.1.14 (#622) @renovate[bot]
- chore(deps): update build tools (#621) @renovate[bot]
- chore(deps): update react to v19.2.0 (#620) @renovate[bot]
- chore(deps): update dependency dotenv to v17.2.3 (#619) @renovate[bot]
- chore(deps): update dependency @types/node to v22.18.8 (#618) @renovate[bot]
Docker
docker pull lakker/pulsarr:0.6.0
Contributors
@actions-user, @jamcalli, @renovate[bot] and renovate[bot]