unarr/internal
Deivid Soto a5f3f0914a fix(engine): cross-backend integrity guard with retry-then-damaged
A truncated debrid download (in-memory byte counter hit 100% while the
NFS write-back silently dropped most of the bytes) was marked completed.
The 1.1.6 fsync fix closed the debrid-specific hole; this generalizes the
guarantee so "completed" never means a corrupt file on ANY backend.

- IntegrityError + bounded retry: on a corrupt/short result the manager
  re-downloads the same source up to 3x (clean start), then surfaces the
  task as damaged ("corrupt download:" prefix) instead of completing it.
- verify (size mismatch / empty), debrid (incomplete / post-write / flush),
  torrent (BytesMissing), usenet (par2 unrepairable / repair-failed) all
  classify integrity failures so they route through the retry/damaged path.
- scanner: a file ffprobe can't read is emitted as a damaged library_item
  (reason "unreadable") instead of being silently dropped from the sync.
- tests: manager retry-then-success + retry-exhausted-then-damaged,
  verifying->resolving transition, damaged sync item.
2026-06-17 12:58:43 +02:00
..
acme feat(agent): per-agent direct-TLS cert client + HTTPS listener wiring 2026-06-05 12:09:46 +02:00
agent feat(downloads): ordered preferred_methods list honored for web tasks 2026-06-14 12:51:32 +02:00
arr feat(cli): upgrade command, rich status, and version cache 2026-03-31 22:05:43 +02:00
cmd chore(release): 1.1.6-beta 2026-06-15 17:12:33 +02:00
config feat(downloads): ordered preferred_methods list honored for web tasks 2026-06-14 12:51:32 +02:00
engine fix(engine): cross-backend integrity guard with retry-then-damaged 2026-06-17 12:58:43 +02:00
funnel feat(subtitles): subtitle-fetch jobs vía sync + auto-fetch opcional en scan 2026-06-10 14:48:35 +02:00
library fix(engine): cross-backend integrity guard with retry-then-damaged 2026-06-17 12:58:43 +02:00
mediaserver feat(cli): upgrade command, rich status, and version cache 2026-03-31 22:05:43 +02:00
parser feat: initial commit — unarr CLI 2026-03-28 11:29:42 +01:00
sentry refactor(sentry): decouple agent import via string-match, rename predicate 2026-05-27 17:03:26 +02:00
ui fix(ci): fix lint errors and pin CI to Go 1.25 2026-03-31 22:15:12 +02:00
upgrade test(upgrade): exercise the real signed checksum flow, not a bypass 2026-06-04 08:47:24 +02:00
usenet fix(engine): cross-backend integrity guard with retry-then-damaged 2026-06-17 12:58:43 +02:00
vpn feat(subtitles): subtitle-fetch jobs vía sync + auto-fetch opcional en scan 2026-06-10 14:48:35 +02:00