What's Changed
Bug Fixes
- Fix signal handler not breaking main loop in watchdog mode (proper shutdown with threading.Event)
- Fix double-extension archives (.tar.gz) bypassing zip-bomb security checks
- Fix RAR5 format detection (signatures now sorted by length before matching)
- Fix tarfile path traversal vulnerability on Python < 3.12 (explicit filter='data')
- Fix memory leak in polling monitor (periodic cleanup of stale entries)
- Fix memory leak in watchdog handler (entries for deleted files now cleaned up)
- Fix
_find_archivesbailing on first OSError instead of per-item error isolation - Fix
os.makedirs('')edge case in CLI setup config save - Remove dead
import osin security.py
Optimizations
- Use direct
__version__import instead of__import__()dynamic lookup - Deduplicate post-extraction delete/trash logic into shared helper
- Remove redundant zipfile import inside CLI setup test function
New Features
- Standalone binary distribution via PyInstaller with build script
- Multi-platform GitHub Actions CI (Linux x86_64, macOS arm64, Windows x86_64)
- Binaries auto-attached to releases on version tags
Full Changelog: v2.0.0...v2.1.0