Releases: jamcalli/Pulsarr
v0.4.18-beta.2
v0.4.18-beta.1
v0.4.18-beta.0
v0.4.17
Changes
🚀 New Features
Service Availability Protection
- Smart Service Health Checks prevent content addition when Radarr/Sonarr are unavailable
- Structured Error Handling with new
ExistenceCheckResult
type for detailed status reporting - Bulk Sync Protection extends availability checks to periodic synchronization
- Graceful Degradation maintains approval requests even when services are down
Enhanced Content Verification
- Efficient TMDB/TVDB Lookups using dedicated API endpoints
- Multi-Instance Support checks all configured instances before processing
- Intelligent Deferral skips unavailable services for later retry
Periodic Reconciliation
- Plex Pass Independent sync now runs regardless of RSS feed availability
- 20-minute Forced Sync ensures content is processed even during RSS failures
- Enhanced Fallback mechanisms for improved reliability
🐛 Bug Fixes
Critical Issues Resolved
- Fixed misleading sync stats showing "added: 1321" when services were down
- Prevented failed API calls during service outages
- Corrected counter logic to only count successful additions
- Resolved race conditions between immediate and bulk sync operations
GUID Matching Improvements
- Centralized GUID utilities for consistent processing across services
- Fixed duplicate detection with improved matching algorithms
- Normalized GUID formats (provider://id → provider:id)
🔧 Technical Implementation
Core Changes
- New Type System -
ExistenceCheckResult
interface for standardized responses - Service Methods - Added
movieExistsByTmdbId()
andseriesExistsByTvdbId()
- Availability Checks - New methods in watchlist workflow for service health
- Error Handling - Structured responses instead of exceptions
Modified Files
- Service layer enhancements across Radarr/Sonarr managers and services
- Watchlist workflow with comprehensive availability checking
- New service result types for consistent error handling
- GUID handler utilities with centralized processing
📊 Impact Summary
-
6 files changed with ~400 lines of availability checking logic
-
Zero breaking changes - fully backward compatible
-
Prevents thousands of failed API calls during outages
-
Accurate reporting of actual successful operations
-
Maintained approval flow regardless of service availability
-
Service Availability Checks, Periodic Reconciliation & GUID Matching Improvements (#428) @jamcalli
-
📝 Add docstrings to
develop
(#429) @coderabbitai -
feat: add service unavailable checks before adding content to prevent approvals (#427) @jamcalli
-
feat: add periodic reconciliation regardless of plex pass status (#425) @jamcalli
-
feat: refactor guid matching and ensure central util usage (#423) @jamcalli
-
fix: added syncwatchlistitems to else clause (#422) @jamcalli
-
fix: disabled rules messing with processQueue (#421) @jamcalli
Docker
docker pull lakker/pulsarr:0.4.17
Contributors
@coderabbitai, @coderabbitai[bot] and @jamcalli
v0.4.17-beta.3
Changes
- feat: add periodic reconciliation regardless of plex pass status (#425) @jamcalli
- feat: refactor guid matching and ensure central util usage (#423) @jamcalli
- fix: added syncwatchlistitems to else clause (#422) @jamcalli
- fix: disabled rules messing with processQueue (#421) @jamcalli
Docker
docker pull lakker/pulsarr:0.4.17-beta.3
Contributors
v0.4.17-beta.2
v0.4.17-beta.1
v0.4.17-beta.0
v0.4.16
Quick Fix: Config store now initializes on Delete Sync Page
🚀 Docker Build Optimization
Performance Improvements
- Build times reduced from 35s → 1s for cached builds (35x faster)
- Image size reduced from 590MB → 405MB (31% smaller)
- Docker context reduced from 200MB+ → 75KB transfer
Technical Changes
- BuildKit cache mounts for npm and Vite caches
- Optimized layer ordering with package files copied before source code
- Production dependencies only using --omit=dev
CI/CD Enhancements
- GitHub Actions caching with scoped BuildKit cache
- Security metadata preserved (provenance/SBOM enabled)
- License compliance with LICENSE and README.md included
📊 Impact Summary
- 3 files changed: .dockerignore (new), dockerfile (optimized), CI workflow (enhanced)
- 35x faster incremental builds
- 31% smaller production images
- Maintained multi-arch support and security standards
Changes
- Fix: Config Store Mounting on Delete Sync Page (#420) @jamcalli
- fix: config store not loaded on delete sync page load (#418) @jamcalli
- 📝 Add docstrings to
fix/config-store-delete-sync
(#419) @coderabbitai
Docker
docker pull lakker/pulsarr:0.4.16
Contributors
@coderabbitai, @coderabbitai[bot] and @jamcalli
v0.4.15
🚀 Docker Build Optimization
Performance Improvements
- Build times reduced from 35s → 1s for cached builds (35x faster)
- Image size reduced from 590MB → 405MB (31% smaller)
- Docker context reduced from 200MB+ → 75KB transfer
Technical Changes
- BuildKit cache mounts for npm and Vite caches
- Optimized layer ordering with package files copied before source code
- Production dependencies only using --omit=dev
CI/CD Enhancements
- GitHub Actions caching with scoped BuildKit cache
- Security metadata preserved (provenance/SBOM enabled)
- License compliance with LICENSE and README.md included
📊 Impact Summary
- 3 files changed: .dockerignore (new), dockerfile (optimized), CI workflow (enhanced)
- 35x faster incremental builds
- 31% smaller production images
- Maintained multi-arch support and security standards
Changes
- feat: optimize docker build flow (#417) @jamcalli
- Feature/docker build improvements (#415) @jamcalli
Docker
docker pull lakker/pulsarr:0.4.15