Changed
- Dependency updates –
nodriverto>=0.50.6,sqlalchemyto>=2.1.4,tenacityto>=9.2.1,tzdatato>=2026.5andpython-dotenvto>=1.2.4(Dependabot #85). The image for this release already ran on these versions in its test passes.
Fixed
- Epic picks your saved account by itself (PR #91 by @jcugat) –
_pick_saved_account()insrc/stores/epic.pyclicks your tile on Epic's "Welcome back" list, matchingEG_EMAILalso in the masked form Epic shows, and takes a lone tile only withoutEG_EMAIL. When none is yours, the bot signs in through "Use another account" and asks you only without credentials. - Unity claims work for US accounts (#89) –
_prepare_checkout()insrc/stores/unity.pywaited for the consumption-tax question, which Unity shows only in some countries, and gave up on a US checkout that was already there. It now waits for the billing address, gives the tax question a few seconds, and a checkout that never loads shows asfailed:checkoutinstead of a hidden skip. - A GOG code someone already used is no longer reported as redeemed –
gog_redeem_outcome()insrc/stores/gog.pyreads "already redeemed" before success, where the word "redeemed" used to win. An unclear answer shows as failed and the next run tries the code again, instead of asking you to check it. - Unity no longer fills your cart –
_start_checkout()insrc/stores/unity.pypresses only "Buy Now". "Add to cart" never opened the checkout and left the asset in your cart on every run. - Fab claims free assets again – Epic's newer checkout shows a free asset with its price only, no total line, so
checkout_total_is_zero()insrc/stores/epic.pyread nothing and Fab ordered nothing. It now reads the prices in any currency and language, leaving out the asset's title, and orders only when all of them are zero. - The log no longer says the bot asks you again when it does not –
_wait_out_challenge()insrc/core/claimer.pyskips a captcha quietly once nobody answered that store's last prompt in the run, instead of logging another "requesting manual solve via VNC" it never sends. - Browser profiles take less disk space –
start_browser()insrc/core/claimer.pycaps Chrome's two caches, downloaded files and compiled scripts, at 250 MB each per store. Before, Chrome let the busiest profiles indata/browserkeep over a gigabyte of downloaded files; the next run trims them, and your sign-ins stay. - Prime goes back for a code it could not read –
_claim_internal_games()insrc/stores/prime.pyopens a claimed GOG or Legacy Games tile again on the next run when its code was not on the page yet, so the code still gets redeemed. Before, such a game was saved as claimed and never visited again unlessPG_FORCE_CHECK_COLLECTEDwas on.