Fixed
- Upload queue no longer freezes if server dies mid-transfer. Stall detection aborts cleanly after 30s of no progress and moves to next file.
- Partial files from failed or aborted uploads are now deleted immediately across every failure path. No more ghost files accumulating on disk.
- SQLite busy timeout set to 5000ms. Concurrent writes no longer fail silently under load.
- Startup orphan scan removes any files in the uploads directory with no matching DB record. Cleans up ghost files left by pre-v1.9.1 aborted uploads.