What Is New In v1.9.0.0
A full codebase review pass, then a second pass fixing what it found — a config feature that silently did nothing, a database reliability bug, and a navigation rework.
Exclusions, Actually Working
The exclusions: config section was fully defined and validated but never read anywhere — personal footage sharing a library with movies was being sent to Usenet indexers every cycle. It's now enforced before a search is ever issued, with a Settings UI to configure it.
Database Reliability
SQLite's default journal mode could throw "database is locked" under concurrent writes. WAL mode plus a busy-timeout are now set on every connection, and uploader-health scoring no longer blocks the event loop or silently breaks on PostgreSQL.
Sharper Upgrade Decisions
A local file's source type — read by the comparer's upgrade checks but never actually written — is now populated from the release title on replacement and guessed from the filename on scan.
Grouped Navigation
The sidebar's flat list of links is now grouped into Library, Activity, System, and Settings sections, with live badge counts for failed and orphaned downloads.