v2.1.1
Patch release covering the drops-discovery rewrite landed after v2.1.0. Resolves the case where active Drops campaigns were invisible to the bot until the user manually opened Twitch in a browser to register a first watch-minute.
Changes
- Persisted-hash GQL flow for drops discovery — Dashboard summary + Inventory full detail + DropCampaignDetails batched enrichment replaces the raw-query Dashboard call that returned null for some accounts. Inventory∪Dashboard union ensures in-progress campaigns missing from the Dashboard summary are still picked up.
- Badge/emote eligibility check — campaigns with BADGE or EMOTE benefits are now eligible without requiring the Twitch account to be linked to the publisher's reward portal.
wanted_gamesstrict whitelist — Selector and BuildRows both gate on the configured games list, preventing the bot from picking random unrelated badge/emote campaigns over the wanted-game priority.- Parser fix —
campaign.GameNamenow readsgame.displayName || game.name. The persisted-hash Inventory response returnsgame.name, notdisplayName; previous parser dropped GameName entirely, breaking the whitelist downstream. - Diagnostic logging routed through file logger so Windows users can capture Dashboard nil/empty diagnostics without the console being /dev/null.
Cleanup
Removed unused raw-query string constants, dropped utls_transport.go (never wired), trimmed dead pubsub constants.
Binaries
| Platform | Binary |
|---|---|
| macOS Apple Silicon | twitchpoint-macos |
| macOS Intel | twitchpoint-macos-intel |
| Linux x86_64 | twitchpoint-linux |
| Linux ARM64 | twitchpoint-linux-arm64 |
| Windows x86_64 | twitchpoint-windows.exe |
All stripped release builds, no debug tag.