Two fixes from a Windows user's testing, a database-bloat fix found along the way, and a docs note.
Fixed
- *Auto-remediation now finds the arr instance for Windows UNC paths (#323). On a Windows host, remediation failed with
no instance found for path: \\server\share\TV Shows\...even though the file's corruption was detected correctly. The instance-ownership matcher (isValidPathMatch) only trimmed trailing/and only treated/as a directory boundary, so a Windows *arr's backslash-separated UNC path never matched its configured root folder and remediation gave up. Same separator class of bug as the v1.3.9 webhook fix, in a different matcher; it now accepts/or\(and\\srv\media\Moviesstill doesn't false-match\\srv\media\MoviesArchive). Reported by alex882001 in #322. - Manual scans no longer spam "database is locked (SQLITE_BUSY)" warnings (#324). Connection-level SQLite pragmas — most importantly
busy_timeout=30000— were applied with a post-opendb.Exec, which configures only one connection in the pool; the other three keptbusy_timeout=0and returnedSQLITE_BUSYimmediately instead of waiting for the lock. The parallel scanner's watermark writer (running alongside the per-filescan_filesinserts) hit those unconfigured connections and failed noisily. The pragmas now ride on the connection string so every pooled connection gets them, the watermark write uses the same retry wrapper as the other writers, and its best-effort failures log at debug level instead of warn (the watermark is a resume optimization;scan_filesrows are the source of truth). Reported by alex882001 in #321. - The database now reclaims freed space instead of only growing (#326).
auto_vacuumonly takes effect on an empty database or after aVACUUM, but it was set with a plaindb.Execafter the schema already existed, so it silently stayed atNONE. That made the dailyPRAGMA incremental_vacuummaintenance a no-op — and since no fullVACUUMruns in normal operation (onlyVACUUM INTOfor backups, which compacts the backup copy), pages freed by retention pruning were never reclaimed and the file only grew. The database is now converted toINCREMENTALauto-vacuum once on startup (a one-timeVACUUMthat also reclaims accumulated free space; skipped on every start thereafter), so incremental vacuum actually works. Found while investigating #321.
Documentation
- Windows UNC path note (#327). After fixing three Windows-host path issues (#298, #305, #322), the README "Setting Up Scan Paths" section and the in-app Help "Webhook Path Mapping Errors" troubleshooter now explain Windows *arr setups: set the *arr Path to the UNC form the Windows *arr reports (e.g.
\\server\media\TV Shows) and the Local Path to where Healarr sees the files; Healarr normalizes the separators automatically.
Full Changelog: v1.3.10...v1.3.11