• v0.3.0 51f877f6c1

    v0.3.0 Stable

    joezombie released this 2026-02-13 20:28:55 +00:00 | 50 commits to main since this release

    What's Changed

    New Features

    • Fetch YouTube playlist metadata — New "Fetch Metadata" button in the feed editor auto-populates Title, Author, Image URL, Description, and Link from a YouTube playlist URL, saving time when creating feeds
      • Only fills empty fields to avoid overwriting user-entered values
      • Description is sourced from the first video (since YouTube playlists don't expose descriptions via the API) with a clear note to review
      • Loading spinner shows during fetch with snackbar feedback on success/error
      • Resilient error handling: partial failures (e.g., video description fetch fails) still return primary metadata (title, author, thumbnail)

    Full Changelog: https://github.com/joezombie/castr/compare/v0.2.1...v0.3.0

    Downloads
  • v0.2.1 8c48855936

    v0.2.1 Stable

    joezombie released this 2026-02-13 12:32:34 +00:00 | 53 commits to main since this release

    What's Changed

    Bug Fixes & Hardening

    • Enrich existing files with YouTube metadata — When a feed with a playlist URL is created or synced, existing MP3 files are now matched to playlist videos and enriched with descriptions, thumbnails, and publish dates
    • Prevent re-downloading existing files — Matched files are marked as downloaded in the DownloadedVideo table so the playlist watcher skips them on subsequent polls
    • Hardened error handling in playlist sync — Narrowed DbUpdateException catch to rethrow non-race-condition errors, added targeted entity detach instead of clearing all tracked entities, added OperationCanceledException filter for graceful shutdown
    • Dashboard visibility for sync failures — Partial sync failures are now logged as activity entries visible in the dashboard

    Chores

    • Added Claude Code Review and PR Assistant GitHub Actions workflows

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

    Downloads
  • 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
  • v0.1.0 ca74983ff4

    v0.1.0 Stable

    joezombie released this 2026-02-07 21:30:49 +00:00 | 68 commits to main since this release

    First release

    Downloads