SwiftMiner 1.40.4
A campaign with more than one reward is no longer abandoned after you claim the first. Alongside that, prioritised and excluded games now share one Game Rules sheet, Mining settings opens on a Game Priority summary, and the legacy fallback streamer steps out of the way until it is actually needed.
🐝 Bug fixes
- A reward claimed in one campaign no longer counts as claimed in every other campaign offering the same reward. Twitch reuses a reward’s identifier across campaigns — each day of an esports event offering the same charm, or every tier of a daily affiliate campaign — and SwiftMiner read that identifier appearing in your inventory as proof the reward had been claimed everywhere it appeared. Those campaigns were then left with nothing to earn, so each one was dropped from mining the moment its other reward was claimed. A recent esports campaign lost its second, longer reward this way on three consecutive days, each time within a couple of minutes of the first reward being claimed and with about twenty-one hours of the window still to run. Shared rewards are now matched to the campaign that actually awarded them, and a reward SwiftMiner cannot confidently attribute is treated as still worth earning.
- Claiming a reward no longer retires the whole campaign for a second reason: claiming refreshes a campaign’s details, and if that refresh came back without its reward list, SwiftMiner treated the campaign as having nothing left to earn and stopped mining it for up to four hours.
- A refresh can no longer leave a campaign knowing less than it did. Reward lists, approved-channel lists, restriction flags and confirmed game-account links are all kept when a Twitch response omits them. An omitted field is a lost answer, not a statement that the campaign lost the thing — a finished campaign still lists its rewards, marked as claimed.
- A campaign that returns only some of its rewards no longer loses the rest. Previously only a completely empty list was protected, so a two-tier campaign sending one tier could still erase the other.
- A campaign that vanishes from both of Twitch’s lists while its window is still open and its rewards unfinished is kept rather than dropped, until the window closes or your inventory confirms everything is claimed.
- A single “not connected” answer no longer unlinks a campaign your game account is linked to. A genuine unlink is still picked up within twenty minutes.
- A campaign listed with an unusable start or end date is ignored rather than treated as having already expired.
🔍 Visible When It Matters
- When a campaign you are mining stops being eligible while it is still active, the Activity Log names it and reports what it lost — rewards, eligibility, game-account link, status and end time. Previously this showed only as a number going down, which is why the problem above went unnoticed across three campaigns.
- When a campaign is repaired from its last good state, the Activity Log says so and names the missing field. Campaigns Twitch listed with an unusable window are reported too.
⚡ Fewer Repeated Requests
- A cached campaign is served for its full lifetime, with only its game-account link re-checked on the way out, instead of discarding the whole entry and re-fetching most campaigns every twenty minutes per account.
- Remembered campaign data is compared by reward definition rather than by minute-to-minute progress, so an actively mined campaign no longer rewrites its cache file on every refresh.
- Cache trimming runs once per refresh instead of once per campaign, and one miner’s prioritised-games choice can no longer travel through the shared cache to another.
🎯 One Place for Game Rules
- Prioritised and excluded games are now managed in a single Game Rules sheet. The separate Prioritised Games and Excluded Games sheets offered the same controls twice and let a game be moved between the lists anyway.
- Searching adds a game directly as prioritised or excluded, so there is no longer a list to choose before looking a game up.
- Every game carries a rule of Prioritised or Excluded. Changing that rule moves the game into the matching section and leaves its position in the priority order intact.
- Both sections collapse, so a long priority list no longer pushes exclusions below the visible area.
- Rows are quieter: artwork, name and current rule lead, with reordering and removal kept secondary to them.
⭐ Game Priority at a Glance
- Mining settings now opens on a Game Priority summary showing how many games are prioritised and how many are excluded, with one Manage Game Rules entry point beneath it.
🧹 Fallback Streamers Out of the Way
- The fallback streamer is a legacy feature and no longer occupies a row on every prioritised game. A game mentions its fallback only when one is actually configured.
- The field now sits behind each game's own disclosure, with a single action beside it: Set while a new login is being entered, Clear once one is saved.
- Changing a prioritised game to Excluded hides its fallback without discarding it. Switching the game back to Prioritised restores what was configured.