v0.3.0
Per-item staging cleanup
- Each download now stages its intermediate files under a per-item directory keyed on the video's unique id (
/downloads-staging/<id>), isolating every file (video, thumbnail, fragments) for that item. - Failed, abandoned, or interrupted attempts have their staging files cleaned up automatically — before the next attempt, on failure, and after success — so stale intermediates can't accumulate or interfere with a later retry.
- Requires
LOCALTEMP=true; a no-op otherwise.
Home page failure-state tabs
The single "Pending" tab is now split into three so you can tell apart queued, retrying, and permanently failed items:
- Pending — queued and waiting, no errors.
- Retry — failed but will retry automatically, with a live countdown to the next attempt and a Retry Now button to skip the backoff.
- Failed — permanently failed, showing the last error and a Force Retry button that clears the error state and restarts the download from scratch (with a confirmation prompt).
Other
- Sidebar now shows the Pinchfork version dynamically (no more manual drift); the Pinchflat line reflects the upstream base it forks from.
- Docker image:
ghcr.io/o51r15/pinchflat:v0.3.0and:latest.