SwiftMiner 1.36.1
Follow-up reliability work on the mining loop: a miner waiting for a stream no longer describes itself as finished, and idle miners stop spending their Twitch request budget re-asking questions they have already answered.
Honest Waiting State
The same miner could report two contradictory states at once.
- A miner waiting for a stream reported Drops complete in its details while its card correctly said Looking for Streams. When no channel is available the miner clears its watch target before waiting, so nothing recorded which campaign it was waiting on, and it fell back to describing a prioritised game it had already finished.
- The campaign a miner is waiting for is now recorded when the channel search comes up empty, so the reported state matches what the miner is actually doing.
Idle Request Budget
Waiting for an esports broadcast should be nearly free.
- Approved channels for restricted campaigns are re-checked far less often once they have been offline for a sustained period — the case that generated almost all of this traffic, since a tournament channel is dark between events. Worst-case rediscovery stays capped at five minutes against broadcasts lasting hours, and any live sighting resets it immediately.
- Widens the shared liveness window to just under the re-check interval. The previous window expired twice per interval, so the same question was asked twice for no benefit.
- Stops retrying the followed-channel lookup when Twitch will not serve it for a session at all. Sessions imported without follow permission were retried every five minutes by every account, each attempt costing a doomed token refresh. Genuine network failures still retry as before.
Under the Hood
The safety properties are pinned, not assumed.
- Tests bound worst-case channel rediscovery, prove a channel cycling on and off never gets the slower treatment, and prove a live sighting resets it instantly.
- Adds coverage for a miner waiting with a cleared watch target still reporting the campaign it is waiting on.
- Prepared as SwiftMiner 1.36.1, build 2026072912.