• v0.2.0 d86c164803

    v0.2.0 Stable

    joezombie released this 2026-02-12 23:05:17 +00:00 | 58 commits to main since this release

    What's Changed

    New Features

    • Immediate feed processing on creation — Creating a feed now syncs existing directory files and triggers YouTube playlist fetch immediately, instead of waiting up to 60s for the next poll cycle
    • Channel-based trigger mechanism (IPlaylistWatcherTrigger) — UI can wake the background PlaylistWatcherService on demand
    • Continuous directory sync — All active feed directories are synced every poll cycle to discover manually added files

    Bug Fixes & Hardening

    • Fixed misleading "Failed to save feed" error when directory sync fails after successful feed creation — now shows a warning instead
    • Fixed CancellationTokenSource disposal race during application shutdown
    • Isolated directory sync failures from aborting the entire YouTube poll cycle
    • Added OperationCanceledException filter to per-feed processing catch block
    • Added input validation guard on feed trigger

    Chores

    • Removed legacy PodcastFeeds config — feeds are now database-only
    • Updated docker-compose env vars for new Database config section
    • Updated docker-compose to use GHCR image
    • Removed legacy match_episodes scripts and data files
    • Cleaned up README for Castr

    Full Changelog: https://github.com/joezombie/castr/compare/v0.1.0...v0.2.0

    Downloads