Skip to content

Releases

v0.9.1

v0.9.1 Pre-release
Pre-release

Choose a tag to compare

@chrizantoz chrizantoz released this 11 Nov 10:17

Added

  • 👁️ Read-only login (F9): Setup → Protect the page → read-only account. A viewer sees the whole page without buttons, and the server answers 403 to any change from that session; the role travels in the signed session cookie.
  • 🎬 Content check for movies (S1): the dialogue is compared with the movie's synopsis against two dozen decoy synopses from the same Radarr library (matches / mislabeled / inconclusive). Nightly auto-verify and Tonight's plan include movies.
  • 📲 Pushes open the page (S3): every ntfy notification carries a link to the Findings tab (Trash when files were moved); the page reads #findings, #trash and the other tab names from the address. PUBLIC_URL sets the address used in links.
  • 🧩 Auditarr is in Unraid Community Applications (auto-approved 2026-11-11): Apps tab → search Auditarr → Install.
  • 🧘 The page no longer pulls the list out from under you: background refreshes update the header chips only; the lists re-render when something changed and you have been idle for a few seconds, otherwise a small ↻ refresh button appears. Focus, scroll position and open groups survive a refresh. (Owner: "it keeps refreshing and I lose my place.")
  • ℹ️ About tab: version, build, newest release, runtime, tools, database size, uptime; Check for updates, an "update available" chip in the header, and Update now through an optional host hook (UPDATE_HOOK_URL). The image now carries its version (APP_VERSION) and build (APP_REVISION).
  • 🔄 The instant check after an import now also clears that file's earlier findings that are gone (a replaced or re-tagged file no longer waits for the night to drop off the list).
  • 🧯 Two host drills in docs/auditarr-deploy.sh: restore boots last night's backup in a throwaway container and checks it, drill 4 puts Sonarr behind a 200-second latency proxy to prove the audit gives up on a slow service in time.
  • 🧪 The fake Sonarr/Radarr/Bazarr used by the tests is published as its own small project, arr-mock, chaos mode included.
  • 🧑‍💻 Persona tasks in the live browser test: a pretend first-time user searches for a missing episode, makes AI subtitles for a whole show and ignores a finding, using only the page.
  • 🔁 Flaky connections are forgiven once and remembered: a read that fails and works on retry no longer fails the run, and the History tab lists which service wobbles and how often (30 days).
  • ⏱️ Performance budget in CI: a 10,000-file / 5,000-finding library must build its report and page state within fixed time and size limits.
  • 🌪️ Chaos test in CI: the fake stack throws 500s, slow answers and a vanishing Radarr at the audit; it must finish degraded, keep that app's findings, write nothing, and recover on the next run.
  • 📲 The morning push lists problems by their plain names ("Won't play · No audio: Beta Movie") instead of codes, and is now pinned by a golden test.
  • ⏳ Rows with a running job (AI subtitles) show working, leave Needs you immediately and resolve by themselves when the subtitles land; if the job gives up the row returns. (Owner: "if I trigger Make AI subtitles it should leave the row and Needs you.")
  • ⚡ Same-day AI subtitles (F14): with the import hook connected, a new download that has no subtitles gets Whisper subtitles AUTO_WHISPER_IMPORT_MINUTES after it lands if Bazarr has not found any by then (default 0 = off; the nightly AUTO_WHISPER_DAYS rule stays).
  • Tests: viewer role in authz.py and the end-to-end stack (53 checks), regression cases for the movie check and the cookie-before-localhost order.

v0.9.0 - public beta

v0.9.0 - public beta Pre-release
Pre-release

Choose a tag to compare

@chrizantoz chrizantoz released this 11 Nov 03:53

First public release of Auditarr: nightly quality control for a Sonarr / Radarr / Whisparr / Bazarr / Plex library.

What it does — opens every video file and checks what is really inside (audio language, subtitles, runtime, picture format, Plex sync, missing episodes), fixes what is safe to fix on its own, and gives you plain-language findings with one-click, reversible buttons for the rest. Nothing is deleted: moved files sit in a trash folder with a countdown.

Highlights

  • Setup tab: connect your apps with a Test button each, media-folder visibility check, guided first audit, optional built-in sign-in.
  • Import hook: Sonarr/Radarr tell Auditarr about every import; the new file is checked within a minute.
  • Subtitles: Bazarr searches, AI subtitles (Whisper, GPU or CPU) when Bazarr finds nothing, subtitle track labelling, original-language audio + English subs as defaults.
  • Nightly automation with gates: duplicates, header repairs, content verification, accept-language, re-download of broken files (off by default), Plex track selection, SQLite backup with integrity proof.
  • Tested: synthetic-media detector tests, plain-language lint, UI bot + edge worlds, Playwright with accessibility and visual regression, a full end-to-end run against a fake arr stack, read-only staging before every promotion, weekly fault drill.

Install — docs/INSTALL.md (Unraid template, docker compose). Image: ghcr.io/chrizantoz/auditarr:v0.9.0 or :latest. Demo: https://chrizantoz.github.io/auditarr/

Beta: built for one homelab and generalized; issues with the Live tab's log lines are welcome.