Run library, checks and downloads in background threads with parallel fetching
This commit is contained in:
@@ -1,5 +1,30 @@
|
||||
# Changelog
|
||||
|
||||
## [1.2.0] — 2026-06-06
|
||||
|
||||
### Features
|
||||
|
||||
- Background threading — library refresh, update checks and downloads now run off the GUI thread, so the app no longer freezes during network or disk I/O
|
||||
- Parallel product-info fetching — up to 16 concurrent requests dramatically speed up library refresh and update checks (previously one request per game, sequentially)
|
||||
- Download progress — per-file byte progress bar with live transfer speed, plus a Cancel button to abort an in-progress download
|
||||
|
||||
### Improvements
|
||||
|
||||
- "Scan Existing Installers" now matches sanitized folder names and marks detected games as managed, so they appear checked in the Library tab
|
||||
- In-session caching of product info and owned game IDs in the GOG API client, cleared at the start of each manual refresh
|
||||
- Atomic writes for `config.json`, metadata and auth tokens — a crash mid-write can no longer corrupt them
|
||||
- `User-Agent` header now reports the real application version
|
||||
- File logging to `~/.config/gogupdater/gogupdater.log` (2 MB rotation) plus verbose diagnostics and logging of uncaught exceptions raised inside Qt slots
|
||||
|
||||
### Fixes
|
||||
|
||||
- Background workers were garbage-collected before running, so "Refresh Library" and "Check for Updates" did nothing — workers are now kept alive until their thread finishes
|
||||
- Download resume no longer corrupts files when the server ignores the HTTP `Range` request (falls back to a full re-download)
|
||||
|
||||
### Tests
|
||||
|
||||
- Added unit tests for folder-name sanitization, version comparison, prune strategies, atomic writes and the threading helpers; rewrote the stale constants test to match the current module
|
||||
|
||||
## [1.1.0] — 2026-05-13
|
||||
|
||||
### Features
|
||||
|
||||
Reference in New Issue
Block a user