Changes
Stability & Performance Release - Critical bug fixes, dashboard optimization, new media viewer, and infrastructure improvements with logging configuration changes
Overview
This release focuses on stability improvements with critical session monitoring fixes, dashboard performance optimization, and dependency updates. Key improvements include fixing session monitoring bugs that were wrongfully deleting future seasons, centralizing dashboard statistics fetching to prevent duplicate API calls, adding a new media viewer for detailed content information, and updating Discord.js to resolve deprecated API usage. Important: This release includes breaking changes to logging configuration that require user attention.
Breaking Changes
Logging Configuration Changes
- Breaking: Removed
NODE_ARGS
Docker logging system (deprecated) - Breaking: Migration from command-line argument-based logging to environment variable-based configuration
- Two new environment variables control logging behavior:
enableConsoleOutput
: Controls terminal/console log output (default:true
)enableRequestLogging
: Controls HTTP request logging (default:true
)
- File logging is now ALWAYS enabled and writes to
./data/logs/
directory - Rotating logs with 10MB size limit, 7 max files, gzipped
- Log format:
pulsarr-YYYY-MM-DD.log
withpulsarr-current.log
for active file
Key Updates
Critical Bug Fixes
- Fixed session monitoring service wrongfully deleting future seasons when not watched
- Fixed bug where master records were treated as inactive shows in session monitoring
- Resolved progressive cleanup issues in session monitoring
- Fixed duplicate dashboard statistics requests causing performance issues
- Corrected content router approval priority from highest weight settings
New Features
- Media Viewer: New components
ContentDetailModal
andTmdbContentViewer
for enhanced content details - Clickable eye icon on media cards (when GUIDs available) opens detailed content information
- Responsive modal/drawer using Credenza component for different screen sizes
- TMDB integration with ratings, streaming providers, and cast information
- TVDB GUID prioritization for TV shows to avoid TMDB ID conflicts
Dashboard & UI Improvements
- Centralized all dashboard stats fetching to prevent race conditions and duplicate API calls
- Enhanced content detail modals with improved TMDB metadata integration
- Implemented loading state improvements to reduce UI flicker
- Enhanced stats refresh functionality with proper error handling
- Added abort controller implementation for better request lifecycle management
Service Layer Enhancements
- Improved error handling throughout session monitoring service
- Added unique constraint migration for rolling monitored shows to prevent duplicate entries
- Major logging system overhaul: Migrated from command-line argument-based to environment variable configuration
- Removed deprecated
NODE_ARGS
Docker logging system - Implemented always-on file logging with rotating log files (10MB limit, 7 max files, gzipped)
- Enhanced logger configuration with granular control over console and request logging
- Streamlined database methods by removing duplicates
Technical Changes
Database Schema Migration
- Migration 054: Added unique constraint to
rolling_monitored_shows
table preventing duplicate per-user entries - Implemented cross-database compatible cleanup logic for both SQLite and PostgreSQL
- Enhanced data integrity with race-safe rolling monitoring record creation
Performance Improvements
- Dashboard statistics now use intelligent caching with 5-second duration to prevent duplicate API calls
- Implemented parameter-aware caching that respects different limit/days combinations
- Added race condition prevention during manual dashboard refresh operations
- Optimized SSE (Server-Sent Events) cleanup with proper abort controller implementation
Dependency Updates
- Discord.js: Updated to v14.22.1 with migration from deprecated
ready
event toclientReady
- React: Updated to v19.1.1 for latest performance improvements
- Zustand: Updated to v5.0.8 with improved state management patterns
- Node Types: Updated to v22.18.0 for latest TypeScript definitions
- Biome: Schema updated to align with package version for consistent linting
- Multiple minor dependency updates for security and stability
API & Schema Enhancements
- Aligned approval API specifications with actual route returns
- Updated OpenAPI documentation with 975+ lines of improvements
- Enhanced error schemas to match Fastify Sensible standards
- Improved TMDB metadata fetching with better error handling
- Added consistent session user ID extraction across all approval routes
Migration & Compatibility
Action Required for Logging Configuration - This release includes breaking changes to logging configuration:
-
Environment Variables: If you previously customized logging behavior, you must now use environment variables:
enableConsoleOutput=false
to disable terminal/console log outputenableRequestLogging=false
to disable HTTP request logging
-
File Logging: Now ALWAYS enabled and cannot be disabled. Logs write to
./data/logs/
directory with rotating files (10MB limit, 7 max files, gzipped). -
Docker Users: Remove any
NODE_ARGS
logging configuration and update your docker-compose or deployment configuration to include the new environment variables if you want non-default console/request logging behavior.
Database Migration: The new migration (054) is compatible with both SQLite and PostgreSQL installations and will automatically clean up any existing duplicate records before adding the new unique constraint. No user action required for database changes.
What's Next
This release establishes a solid foundation for upcoming features with improved stability and performance. Future releases will focus on new functionality building upon these infrastructure improvements, including enhanced content management features and expanded integration capabilities.
Community
Join our Discord community! Get support, share feedback, and stay updated on development progress:
Whether you're troubleshooting, requesting features, or just want to chat about media automation, our community is here to help!
Full Changelog: v0.5.5...v0.5.6
Docker Image: ghcr.io/jamcalli/pulsarr:0.5.6
Upgrade Path: Pull latest image and restart container - migration runs automatically
- chore: docstrings (#519) @jamcalli
- 📝 Add docstrings to
develop
(#518) @coderabbitai[bot] - v0.5.6: Fix session monitoring bugs, add media viewer, optimize dashboard (#517) @jamcalli
- Fix/dashboard multiple stats requests (#516) @jamcalli
- fix: progressive cleanup in session monitoring wrongfully deleting future seasons when not watched (#511) @jamcalli
- fix: approvals settings from highest weight takes priority (#510) @jamcalli
- feat: refactor logger to always log file with some env config and removed duplicate db methods (#508) @jamcalli
- Bug/fix sse events cleanup (#505) @jamcalli
- Feature/content info dashboard (#503) @jamcalli
🔄 Dependencies
- chore(deps): lock file maintenance (#489) @renovate[bot]
- fix(deps): update react (#514) @renovate[bot]
- fix(deps): update dependency rotating-file-stream to v3.2.7 (#513) @renovate[bot]
- fix(deps): update dependency @scalar/fastify-api-reference to v1.34.6 (#512) @renovate[bot]
- fix(deps): update dependency lucide-react to ^0.542.0 (#500) @renovate[bot]
- fix(deps): update dependency discord.js to v14.22.1 (#504) @renovate[bot]
- fix(deps): update dependency zustand to v5.0.8 (#499) @renovate[bot]
- chore(deps): update dependency @types/node to v22.18.0 (#515) @renovate[bot]
- fix(deps): update build tools (#498) @renovate[bot]
Docker
docker pull lakker/pulsarr:0.5.6
Contributors
@coderabbitai[bot], @jamcalli, @renovate[bot], coderabbitai[bot] and renovate[bot]