This is a maintenance and bugfix release. It includes many contributions from Google Summer of Code applicants — thanks to everyone who participated!
Features
- Add total size and file count display to source tab (#2448)
- Add Select All / Select None buttons to WiFi network list (#2443)
- Wait for network before backing up remote repos (#2176)
Fixes
- Fix non-ASCII (Korean) repo backup failure (#2370)
- Fix timezone handling for Borg 2.x archive timestamps (#2390)
- Fix WiFi detection when wired connection is primary (#2466)
- Suppress "Current WiFi is not allowed" notification for scheduled backups (#2444)
- Prevent crash when removing source during size recalculation (#2435)
- Include ExclusionModel in profile export/import (#2471)
- Restrict folder dialog to file:// scheme (#2476)
- Add missing errorText label in ChangeBorgPassphraseWindow (#2479)
- Correct various typos in comments and UI element names
Internal / Developer
- Migrate translations from Transifex to AI-based workflow (#2395)
- Add mypy type checking infrastructure and core module annotations (#2402)
- Add comprehensive CONTRIBUTING.md with AI contribution guidelines
- Refactor views around BaseTab and RepoTabViewModel
- Refactor: reorganize dialogs (#2428)
- Refactor: extract archive mounting logic from ArchiveTab (#2451)
- Refactor: decouple archive extraction logic from ArchiveTab (#2452)
- Update requires-python from >=3.8 to >=3.10 (#2384)