Skip to content

Releases: jamcalli/Pulsarr

v0.6.3

11 Oct 08:40
Compare
Choose a tag to compare

Changes

🛠️ Bug Fix Release - BasePath support fixes

Overview

Bug fix release addressing critical issues with basePath configuration. This release fixes authentication failures, infinite redirect loops, and incorrect URL handling when using a custom basePath.

Key Updates

Critical Bug Fixes

  • Authentication with basePath: Fixed authentication hook to correctly identify public paths when basePath is configured
  • Login redirect loop: Resolved infinite redirect issue when accessing root URL with basePath set
  • Client-side navigation: Fixed double basePath in URLs after login and other navigation events
  • Path matching precision: Improved public path matching to prevent false positives

Technical Changes

Server-Side

  • Updated authentication hook to properly handle basePath prefix in request URLs
  • Added precise path matching with query string support to prevent unintended route matches
  • Fixed login route to return paths without basePath (client-side router handles it automatically)
  • Improved URL matching logic in app initialization for create-user and login pages

Client-Side

  • Removed navPath() utility function as React Router handles basename automatically
  • Updated all navigate() calls across components to use plain paths
  • Simplified navigation logic in login, create-user, logout, approvals, and utilities

Code Quality

  • Simplified IMDb service logging to remove implementation details
  • Removed unnecessary transaction status messages from logs

Migration & Compatibility

No user action required - fixes are applied automatically. Users with basePath configured will now experience proper authentication and navigation behavior.


Full Changelog: v0.6.2...v0.6.3
Docker Image: lakker/pulsarr:0.6.3

  • BasePath support fixes (#643) @jamcalli
  • refactor: remove navPath utility and update navigation logic across c… (#642) @jamcalli

Docker

docker pull lakker/pulsarr:0.6.3

Contributors

@actions-user and @jamcalli

v0.6.2

09 Oct 19:15
Compare
Choose a tag to compare

Changes

🛠️ Bug Fix Release - Delete sync safety check respects tracked-only setting

Overview

Bug fix release addressing safety check false positives when tracked-only deletion is enabled. The safety check now accurately counts only items that would actually be deleted.

Key Updates

Critical Bug Fix

  • Safety check accuracy: performSafetyCheck() now respects deleteSyncTrackedOnly setting when counting potential deletions
  • Prevents false aborts: Safety mechanism no longer triggers incorrectly when most content is untracked

Technical Changes

Delete Sync Service

  • Added tracked content validation to safety check for both movies and shows
  • Safety check now matches actual deletion behavior by filtering non-tracked items

Migration & Compatibility

No user action required - fixes are applied automatically.


Full Changelog: v0.6.1...v0.6.2
Docker Image: lakker/pulsarr:0.6.2

  • fix: delete sync tracked content incorrectly calculated within protection (#641) @jamcalli

Docker

docker pull lakker/pulsarr:0.6.2

Contributors

@jamcalli

v0.6.1

09 Oct 08:28
Compare
Choose a tag to compare

Changes

🛠️ Bug Fix Release - Base path redirect handling and navigation fixes

Overview

Bug fix release addressing incomplete base path support in redirects and navigation. Ensures consistent behavior when running Pulsarr under a reverse proxy with a custom base path.

Key Updates

Critical Bug Fixes

  • Server-side redirects: All authentication and logout redirects now respect configured base path
  • Client-side navigation: Fixed approval events, SSE reconnection, and form submissions ignoring base path
  • Documentation clarity: Enhanced JSDoc to prevent incorrect API utility usage

Technical Changes

Redirect Handling

  • Unified redirect logic: Added buildPath() helper for consistent base path handling across all server redirects
  • Authentication flows: Login, logout, and user creation routes properly construct redirect URLs
  • Client navigation: All window.location assignments use navPath() helper

API Documentation

  • Usage clarification: JSDoc now clearly distinguishes navigation paths (with base path) vs API paths (without)
  • Developer guidance: Added examples to prevent misuse of navigation utilities

Migration & Compatibility

No user action required - fixes are applied automatically.


Full Changelog: v0.6.0...v0.6.1
Docker Image: lakker/pulsarr:0.6.1

  • fix: Base path redirect handling and navigation fixes (#640) @jamcalli
  • feat: add missing basePath redirect handling (#633) @jamcalli

🔄 Dependencies

Docker

docker pull lakker/pulsarr:0.6.1

Contributors

@actions-user, @jamcalli, @renovate[bot] and renovate[bot]

v0.6.0

06 Oct 08:38
Compare
Choose a tag to compare

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 enhanced getApprovalRequestsByGuids() 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

Docker

docker pull lakker/pulsarr:0.6.0

Contributors

@actions-user, @jamcalli, @renovate[bot] and renovate[bot]

v0.5.18

05 Oct 06:08
Compare
Choose a tag to compare

Changes

🚀 Base Path Support & Structured Logging Enhancements

Overview

Added comprehensive reverse proxy subfolder support with dynamic base path configuration, alongside standardized structured logging across all services for improved observability and debugging.

Key Updates

Base Path Support

  • Reverse proxy integration: New basePath environment variable enables running Pulsarr under any subfolder path
  • Full application coverage: Client routing, API endpoints, static assets, and Swagger documentation all respect configured base path
  • Runtime injection: Server dynamically injects base path configuration into client bundle
  • Seamless operation: Automatic path handling for all client-server communication
  • Zero configuration default: Works out-of-box at root path, optional for subfolder deployments

Structured Logging Improvements

  • Consistent error format: Standardized error logging patterns across all services
  • Enhanced searchability: Added descriptive messages to all structured log calls
  • Better context: Improved debug logging with proper context objects and meaningful field names
  • Pino best practices: Aligned with Pino v9 structured logging patterns for optimal parsing
  • Service-wide coverage: Updated 36 files including plex-label-sync, watchlist workflow, database methods, and integrations

Technical Changes

Base Path Architecture

  • URL normalization: New utility function for consistent base path handling
  • Client API wrapper: Added helper function to automatically prepend base path to all API calls
  • Router configuration: Enhanced React Router with dynamic basename support
  • Asset resolution: Updated Vite configuration for runtime base path asset handling

Logging Refactor

  • Major service updates: Comprehensive logging improvements in plex-label-sync (1,553 lines), watchlist services, and database methods
  • Pattern consistency: All error logging follows structured format with context objects and descriptive messages
  • Debug enhancements: Added missing log messages and improved context throughout codebase
  • PostgreSQL integration: Enhanced configuration logging with structured format

Migration & Compatibility

No database migrations required - All changes are configuration and code improvements. Base path support is entirely optional via environment variable, defaulting to root path for existing deployments.


Full Changelog: v0.5.17...v0.5.18
Docker Image: lakker/pulsarr:latest
Upgrade Path: Standard Docker image update

🔄 Dependencies

Docker

docker pull lakker/pulsarr:0.5.18

Contributors

@actions-user, @jamcalli, @renovate[bot] and renovate[bot]

v0.5.17

27 Sep 07:33
Compare
Choose a tag to compare

Changes

🔧 Maintenance Release - Dependency updates and favicon improvements

Overview

Routine maintenance release with Node.js v22.20.0 upgrade and favicon implementation improvements.

Key Updates

UI Improvements

  • Favicon implementation: Added proper favicon files (SVG and ICO) with static HTML references
  • Code cleanup: Removed dynamic favicon JavaScript logic from main.tsx

Infrastructure

  • Node.js upgrade: Updated to v22.20.0 across Docker, .nvmrc, and package.json
  • Enhanced automation: Improved Renovate configuration for better dependency management

Migration & Compatibility

No user action required - all changes are applied automatically during standard Docker image update.


Full Changelog: v0.5.16...v0.5.17
Docker Image: lakker/pulsarr:latest
Upgrade Path: Standard Docker image update

🔄 Dependencies

Docker

docker pull lakker/pulsarr:0.5.17

Contributors

@actions-user, @jamcalli, @renovate[bot] and renovate[bot]

v0.5.16

26 Sep 07:56
Compare
Choose a tag to compare

Changes

🐛 Bug Fix Release - Approval routing consistency and Discord integration fixes

Overview

Critical bug fix release addressing approval routing inconsistencies and Discord notification crashes. Ensures approval UI matches actual routing behavior.

Key Updates

Critical Bug Fixes

  • Approval routing consistency: Fixed routing decisions showing incorrect values vs actual instance defaults
  • Discord crash prevention: Added runtime safety for undefined content types
  • Friend approval attribution: Fixed auto-approval workflow for friend-submitted content

Technical Changes

Content Router Improvements

  • Default routing accuracy: Approval decisions now capture exact instance defaults used during routing
  • Code deduplication: Extracted duplicate helper functions for better maintainability
  • Value normalization: Quality profiles and routing parameters use consistent resolution logic

Runtime Safety

  • Type checking: Added validation to prevent crashes from malformed data
  • Documentation fixes: Corrected misleading code comments

Migration & Compatibility

No user action required - fixes are applied automatically.


Full Changelog: v0.5.15...v0.5.16
Docker Image: lakker/pulsarr:latest
Upgrade Path: Standard Docker image update

  • Fix: Approval routing consistency and Discord integration fixes (#595) @jamcalli

Docker

docker pull lakker/pulsarr:0.5.16

Contributors

@actions-user and @jamcalli

v0.5.15

24 Sep 08:36
Compare
Choose a tag to compare

Changes

🚀 Auto-Approved Content Tracking & Approval System Enhancements

Overview

Enhanced approval system with comprehensive content tracking, auto-approved status support, and improved Discord integration for complete visibility into all content additions.

Key Updates

Auto-Approved Content Tracking

  • Complete audit trail: All content additions now tracked in approval system regardless of approval requirement
  • Auto-approved status: Content bypassing manual approval automatically marked as "auto_approved"
  • System user integration: Introduced system user (ID: 0) for tracking automated operations and RSS-sourced content
  • User attribution: Auto-approved items properly attributed to actual users during reconciliation
  • Real-time updates: SSE support for auto-approved items with live UI updates

Enhanced Approval Interface

  • Improved filtering: Added support for filtering by auto-approved status
  • Enhanced statistics: Approval stats header includes auto-approved content counts
  • Better table display: Enhanced columns to show auto-approved items with appropriate styling
  • Bulk operations: Updated bulk approval modals to handle auto-approved content
  • Export functionality: Complete approval history including auto-approved items

Discord Integration Improvements

  • Split button layout: Approval buttons reorganized into two rows of three to stay under Discord's limit
  • Auto-approval notifications: Added Discord notifications for auto-approved content
  • Previously rejected fix: Fixed bug preventing approval of previously rejected items
  • Enhanced commands: Improved Discord approval command handling

Technical Changes

Database Architecture

  • Migration 058: Added auto_approved status to approval workflow
  • Migration 059: Added system user support for automated operations
  • Enhanced methods: Improved database methods for auto-approved content handling
  • Better queries: Optimized approval queries with auto-approved status support

Content Router Enhancements

  • Automatic record creation: Content router creates tracking records for all additions
  • Improved attribution: Enhanced logic to attribute system-processed content to users
  • Proposed routing fixes: Fixed bugs with proposed routing in approval workflow
  • Workflow integration: Enhanced watchlist workflow for auto-approval tracking

Performance Optimizations

  • SSE improvements: Better server-sent event handling for approval updates
  • Database optimization: Improved methods for approval operations
  • Memory efficiency: Enhanced approval processing with better resource management
  • Error handling: Comprehensive error handling throughout approval system

Migration & Compatibility

Automatic migration - Two database migrations will run on upgrade. System user will be created and auto-approved tracking begins immediately. Existing approval records remain unchanged.


Full Changelog: v0.5.14...v0.5.15
Docker Image: lakker/pulsarr:latest
Upgrade Path: Standard Docker image update

  • feat: Implement comprehensive content tracking with auto-approved status support (#594) @jamcalli
  • Feature/auto approved content tracking (#583) @jamcalli
  • 📝 Add docstrings to feature/auto-approved-content-tracking (#584) @coderabbitai[bot]
  • fix: replace hardcoded timeout values with a constant for Plex API operations (#579) @jamcalli

🔄 Dependencies

Docker

docker pull lakker/pulsarr:0.5.15

Contributors

@actions-user, @coderabbitai[bot], @jamcalli, @renovate[bot], coderabbitai[bot] and renovate[bot]

v0.5.14

17 Sep 23:50
Compare
Choose a tag to compare

Changes

Stability & Performance Release - Friend management cleanup and database optimization

Overview

Enhanced friend management system with automatic cleanup of removed friends and improved database operations for better data consistency and performance.

Key Updates

Critical Bug Fixes

  • Friend cleanup automation: Automatically removes users who are no longer friends from database
  • Data consistency protection: Prevents accidental deletion of primary token user during cleanup
  • Timing optimization: Ensures token users are updated before friend cleanup to handle username changes

Database Improvements

  • New user deletion methods: Added single and bulk user deletion with cascade support
  • Enhanced error handling: Improved logging and error tracking for PostgreSQL and SQLite
  • Failed operation tracking: Better visibility into which operations succeed or fail

Technical Changes

Database Schema Operations

  • CASCADE deletion: Automatic cleanup of watchlist items when users are removed
  • Bulk operations: Efficient multi-user deletion with detailed success/failure reporting
  • Database-specific optimizations: Tailored behavior for PostgreSQL vs SQLite limitations

Friend Management System

  • Automated pruning: Removes orphaned friend data when users are unfriended
  • Primary user protection: Safeguards against accidental deletion of token owner
  • Username change handling: Proper synchronization when Plex usernames are updated

Performance Improvements

  • Reduced database bloat: Cleanup of stale friend data prevents unnecessary storage
  • Optimized queries: Efficient bulk operations for large friend lists
  • Memory usage: Better handling of large user datasets

Migration & Compatibility

No user action required - database operations are handled automatically during friend synchronization.


Full Changelog: v0.5.13...v0.5.14
Docker Image: lakker/pulsarr:latest
Upgrade Path: Standard Docker image update

  • fix: implement automatic cleanup of removed friends from databas (#577) @jamcalli
  • Fix/properly prune removed friends (#576) @jamcalli

🔄 Dependencies

Docker

docker pull lakker/pulsarr:0.5.14

Contributors

@actions-user, @jamcalli, @renovate[bot] and renovate[bot]

v0.5.13

12 Sep 20:10
Compare
Choose a tag to compare

Changes

🚀 New Features & Dependencies Release - Client log viewer and streaming improvements

Overview

Enhanced logging infrastructure with a new client-side log viewer and optimized streaming performance for real-time log monitoring.

Key Updates

New Client Log Viewer

  • Real-time streaming: Server-sent events for live log updates
  • Advanced filtering: Search text, log level filtering, and real-time toggles
  • Export functionality: Download filtered logs with custom filename support
  • Performance optimized: Virtualized display for handling large log volumes
  • Responsive design: Mobile-friendly interface with loading states

Enhanced Streaming Performance

  • Optimized file reading: Enhanced buffer management for efficient log processing
  • Memory efficiency: Proper bytesRead handling for clean data parsing
  • Polling optimization: Non-overlapping file change detection with guard mechanisms
  • Robust error handling: Comprehensive TOCTOU prevention and loop protection

Technical Changes

Client-Side Architecture

  • New log viewer page: Complete UI with filtering, search, and export capabilities
  • Custom hooks: useLogStream for SSE connection management
  • Skeleton loading: Dedicated loading states for improved UX
  • Responsive components: Mobile-optimized layout and controls

Backend Enhancements

  • Log streaming service: New service for efficient log file monitoring
  • SSE endpoint: Real-time log streaming via Server-Sent Events
  • Buffer optimizations: Fixed buffer handling and prevented uninitialized byte corruption
  • Race condition fixes: Eliminated TOCTOU issues in file operations

Infrastructure Updates

  • Plugin integration: Custom log streaming plugin
  • Schema definitions: Complete TypeScript schemas for log entries
  • Performance monitoring: Guard against overlapping polling operations
  • Dependency updates: Node.js 22.19.0 and various package updates

Migration & Compatibility

No user action required - new log viewer is automatically available in the utilities section.


Full Changelog: v0.5.12...v0.5.13
Docker Image: lakker/pulsarr:latest
Upgrade Path: Standard Docker image update

🔄 Dependencies

Docker

docker pull lakker/pulsarr:0.5.13

Contributors

@actions-user, @coderabbitai[bot], @jamcalli, @renovate[bot], coderabbitai[bot] and renovate[bot]