v1.0.1: ZFS-aware reporting and cache state reconciliation #2

Merged
alan merged 1 commit from feature/1.0.1-zfs-reporting into main 2026-09-27 14:10:13 +00:00
Owner

Summary

Adds the next v1.0.1 reliability and reporting tranche for Jellyfin Hotcache.

Changes

  • Add ZFS-aware cache capacity reporting
    • dataset and pool identification
    • quota/refquota visibility
    • dataset used/referenced/available
    • effective remaining capacity
  • Add configurable cold-cache demotion policy
    • canonical demote_after_days_cold
    • 14-day default
    • backward compatibility with demote_after_days_unwatched
  • Correct projected cache/category accounting after demotion
  • Reconcile existing manifest-managed cache entries before promotion
  • Distinguish current promoted state from promotion actions
  • Exclude already-promoted hot items from candidate/skip lists
  • Add promoted-file count and size reporting
  • Expand unit coverage for ZFS, demotion policy, reconciliation, and state reporting

Qualification

  • Unit tests: 49 passed, 2 expected skips
  • PostgreSQL 18 integration: PASS
  • Jellyfin 10.11.11 core SQLite integration: 3 passed
  • Jellyfin 12.1 core SQLite integration: 3 passed
  • Production --check on nidhoggur: PASS, 0 warnings
  • Production forced dry-run against CACHE/jellyfin-cache: PASS
    • ZFS dataset/refquota correctly detected
    • 14-day demotion policy correctly reported
    • existing promoted media reconciled correctly
    • no false promotion candidates/skips
## Summary Adds the next v1.0.1 reliability and reporting tranche for Jellyfin Hotcache. ### Changes - Add ZFS-aware cache capacity reporting - dataset and pool identification - quota/refquota visibility - dataset used/referenced/available - effective remaining capacity - Add configurable cold-cache demotion policy - canonical `demote_after_days_cold` - 14-day default - backward compatibility with `demote_after_days_unwatched` - Correct projected cache/category accounting after demotion - Reconcile existing manifest-managed cache entries before promotion - Distinguish current promoted state from promotion actions - Exclude already-promoted hot items from candidate/skip lists - Add promoted-file count and size reporting - Expand unit coverage for ZFS, demotion policy, reconciliation, and state reporting ## Qualification - Unit tests: 49 passed, 2 expected skips - PostgreSQL 18 integration: PASS - Jellyfin 10.11.11 core SQLite integration: 3 passed - Jellyfin 12.1 core SQLite integration: 3 passed - Production `--check` on nidhoggur: PASS, 0 warnings - Production forced dry-run against `CACHE/jellyfin-cache`: PASS - ZFS dataset/refquota correctly detected - 14-day demotion policy correctly reported - existing promoted media reconciled correctly - no false promotion candidates/skips
Add ZFS-aware cache reporting and state reconciliation
All checks were successful
CI / fast-tests (push) Successful in 9s
CI / jellyfin-sqlite (jellyfin/jellyfin:12.1) (push) Successful in 27s
CI / postgresql-18 (push) Successful in 34s
CI / jellyfin-sqlite (jellyfin/jellyfin:10.11.11) (push) Successful in 38s
CI / fast-tests (pull_request) Successful in 13s
CI / postgresql-18 (pull_request) Successful in 17s
CI / jellyfin-sqlite (jellyfin/jellyfin:12.1) (pull_request) Successful in 21s
CI / jellyfin-sqlite (jellyfin/jellyfin:10.11.11) (pull_request) Successful in 25s
21f1b25b54
alan merged commit cd4c297318 into main 2026-09-27 14:10:13 +00:00
alan deleted branch feature/1.0.1-zfs-reporting 2026-09-27 14:10:13 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
alan/linux-jellyfin-hotcache!2
No description provided.