• v0.5.0 86093f3ac4

    v0.5.0 Stable

    joezombie released this 2026-02-14 23:07:44 +00:00 | 43 commits to main since this release

    What's Changed

    New Features

    • Recursive subfolder scanning for feed directories — Feeds now support a configurable DirectorySearchDepth setting (0-4) to discover media files in nested subdirectories (e.g., season folders). Files are stored with relative paths and served via updated media endpoints.
      • New DirectorySearchDepth field on Feed entity with EF Core migration
      • Media endpoint updated to catch-all route ({**filePath}) for subfolder paths
      • RSS enclosure URLs encode each path segment individually to preserve / separators
      • Dashboard UI field for configuring search depth (0 = root only, 1-4 = subfolder levels)
      • 8 new tests added (170 total passing)

    Security Hardening

    • Server-side validation for directory search depth — [Range(0, 4)] annotation and Math.Clamp prevent excessive recursive enumeration via direct DB/API manipulation
    • Symlink protection in file enumeration — Resolved paths are checked against the feed root directory, preventing symlinks from escaping the intended directory boundary

    Full Changelog: https://github.com/joezombie/castr/compare/v0.4.0...v0.5.0

    Downloads