unarr/internal/usenet
Deivid Soto 6e07e82d51 fix: harden usenet/debrid downloaders from critico review
- Consolidate 3 maps (active, taskDirs, taskTrackers) into single
  activeDownload struct — eliminates out-of-sync state on mid-function panic
- Cancel() runs os.RemoveAll in background goroutine (non-blocking)
- Flush(): clear dirty before unlock to prevent concurrent flush race on
  same tmp file; remove fragile re-mark-on-error pattern
- Revert RWMutex → Mutex in ProgressTracker (negligible benefit under
  write-heavy workload, higher overhead)
- Remove file.Sync() from debrid and usenet downloaders (Close flushes
  kernel buffers; fsync blocks for seconds on large files)
- Pin golangci-lint to v2.1.6 in CI (was floating with `latest`)
- Fix CI matrix: Go 1.25+1.26 (was 1.24+1.25, but go.mod requires 1.25)
2026-03-28 22:11:04 +01:00
..
download fix: harden usenet/debrid downloaders from critico review 2026-03-28 22:11:04 +01:00
nntp feat(usenet): implement full NNTP download pipeline 2026-03-28 21:12:12 +01:00
nzb feat(usenet): implement full NNTP download pipeline 2026-03-28 21:12:12 +01:00
postprocess feat(usenet): implement full NNTP download pipeline 2026-03-28 21:12:12 +01:00
yenc feat(usenet): implement full NNTP download pipeline 2026-03-28 21:12:12 +01:00