v0.9.1: Post-Review Architecture Fixes
What's Changed
5 Architecture Fixes from Post-v0.9.0 Review
1. Fix silent progress loss in flush_to_db
runtime.rs: Track per-entry flush success; failed entries stay dirty and retry on next cycle- Previously:
let _ =silently discarded DB write errors, then unconditionally marked all entries as flushed - Added integration test with real DB writes
2. Fix rate limiter blocking tokio executor
limiter.rs: Changedwait_nto async usingtokio::time::sleep- Previously:
std::thread::sleepblocked OS threads, starving the tokio executor - Locks are dropped before sleeping to avoid blocking other workers
3. Unify start/redownload download pipeline
download_manager.rs: Extracted sharedexecute_download(DownloadSpec)method- Both
start_downloadandredownload_downloadnow delegate to it - Bug fix:
redownloadnow usesprobe_service::probe_with_fallback(was bypassing it)
4. Unify DownloadStatus serialization tests
types.rs: Added JSON roundtrip test for allDownloadStatusvariantsdb.rs: Added DB roundtrip test for all variants +parse_statusedge case tests
5. Verify error event logging
- Errors already flow through
handle_event→ Logger → Log Dialog - Confirmed the logging architecture is sound
Full Changelog: v0.9.0...v0.9.1