github jamcalli/Pulsarr v0.5.6

latest releases: v0.5.11, v0.5.11-beta.1, v0.5.11-beta.0...
11 days ago

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 with pulsarr-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 and TmdbContentViewer 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 to clientReady
  • 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:

  1. Environment Variables: If you previously customized logging behavior, you must now use environment variables:

    • enableConsoleOutput=false to disable terminal/console log output
    • enableRequestLogging=false to disable HTTP request logging
  2. File Logging: Now ALWAYS enabled and cannot be disabled. Logs write to ./data/logs/ directory with rotating files (10MB limit, 7 max files, gzipped).

  3. 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:

🔗 Join Discord Server

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

Docker

docker pull lakker/pulsarr:0.5.6

Contributors

@coderabbitai[bot], @jamcalli, @renovate[bot], coderabbitai[bot] and renovate[bot]

Don't miss a new Pulsarr release

NewReleases is sending notifications on new releases.