Releases: cortexuvula/RSVP
Releases · cortexuvula/RSVP
Release list
v1.5.0 — Security Hardening & Background Threading
Security
- SSRF protection in URL fetching — DNS-resolved IPs checked against private/reserved ranges (loopback, RFC 1918, link-local, CG-NAT, IETF, IPv6-mapped IPv4)
- Atomic file writes for settings and stats via
tempfile.mkstemp()+os.replace()
Changed
- TTS playback runs on a dedicated QThread — UI stays responsive
- URL fetching in TextInputDialog runs on a background QThread
- TTS stop/dispatch routes through worker thread signals
- Settings and stats
save()no longer re-raise — errors logged and flagged SettingsDialogrequires explicitsettings=parameter (DI)- Proportional ORP formula
min(length // 3, 4) - Improved markdown stripping, CRLF normalization, UTF-8 encoding fallback
Fixed
- Stats recorder sets
finished=Truewhen reaching last word - Duplicate logger in bookmark_controller
- Duplicate entries in
__all__ - TextInputDialog caches fetched text to avoid redundant re-fetch
- Concurrent fetch guard in TextInputDialog
Testing
- 340 tests passing (52 new), 0 failures, zero ruff violations
- New test files:
test_document_loader.py,test_text_input_dialog.py
Full Changelog: v1.4.0...v1.5.0