Added
- Issue forms for bugs, ideas and anything else –
.github/ISSUE_TEMPLATE/asks you to update first, a bug or an idea also to search earlier issues, and a bug for its version and log. Blank issues are off, setup questions can go to Discussions, and the morning digest shows what an issue says instead of the form's headings.
Changed
- Epic visits game pages less often, and the way a person does –
_claim_game()insrc/stores/epic.pyclicks a game's tile on the free games list, where it has one, instead of typing its address, and reads the page of a game you have, or one blocked in your region, again only after three days: two visits a week instead of about fourteen.
Fixed
- A Cloudflare check on an Epic game page is no longer taken for the game (#86, by @LOCKhart07) –
_claim_game()and_confirm_in_library()recognise the "One more step" page and wait for it to pass. A game you do not have yet comes to you over VNC under its real name, and the page is not reloaded over and over. - Games are kept under your sign-in name –
account_key()insrc/core/claimer.pysaves Epic, Fab, Steam and Ubisoft games underEG_EMAIL,STEAM_USERNAMEorUBI_EMAIL, not a profile name the page may hide. Each game is saved once, and Epic, Fab and Ubisoft no longer take one you own for new; their next run rereads current giveaways. DEBUG_SCREENSHOTSsends only failures –take_screenshot()insrc/core/claimer.pyno longer sends the screenshots taken after a claim on Steam, Prime, Fanatical, itch.io and IndieGala, or after Steam skips a paid game, so a giveaway that ended no longer brings a screenshot every run. They stay indata/screenshots/.- Fab never orders an asset that costs money –
_complete_checkout()insrc/stores/epic_fab.pyreads the total in Epic's checkout frame first and orders only when it is zero, as Epic does for games. A price ends asskipped:not-free, and a total it cannot read orders nothing. - Fanatical pays only on a zero total it can see –
_fanatical_checkout()insrc/stores/gamerpower.pypresses the pay button only when that same read of your cart shows a total of zero, never on an earlier one. - The morning issue labelling runs again –
.github/workflows/issue-digest.ymlinstalls bubblewrap before the agent starts, which the newest Claude Code needs to keep the workflow's secrets out of the agent's commands. Without it the labelling stopped before it began, while the digest still went out.
Security
- Telegram bot token no longer in DEBUG logs (#86, by @LOCKhart07) –
main.pynow quietsurllib3, whose request lines carried the bot token fromNOTIFY. - Your secrets and game codes are masked in the log –
src/core/redact.pymasks every log line,DEBUG_LIBS=trueincluded: passwords, two-factor secrets and sign-in names from.env, any e-mail address, your name in a store, the tokens inNOTIFYandDISCORD_WEBHOOK, and game codes, which keep five characters. Notifications stay whole.