Repository navigation
Releases
Releases · chrizantoz/auditarr
v0.9.1
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,#trashand the other tab names from the address.PUBLIC_URLsets 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:restoreboots last night's backup in a throwaway container and checks it,drill 4puts 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_MINUTESafter it lands if Bazarr has not found any by then (default 0 = off; the nightlyAUTO_WHISPER_DAYSrule stays). - Tests: viewer role in
authz.pyand the end-to-end stack (53 checks), regression cases for the movie check and the cookie-before-localhost order.
v0.9.0 - public beta
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.