SwiftMiner 1.21
A reliability-focused update. Miners that used to get stuck on subscription-gated drops, bad campaign selections, or stalled workers now recover on their own, and the Drops view now shows which miners are actively mining or already claimed without overloading that screen with per-miner progress detail.
Mining Reliability
Miners no longer get stuck on campaigns they cannot complete by watching.
- Detects subscription-gated drops (those requiring a paid Twitch sub) and skips them automatically, so miners no longer hang on "checking with Twitch" when watching alone cannot earn the reward. Skipped drops are logged to the Activity Log.
- Adds a Stall recovery setting, on by default, that restarts an individual miner after a long progress stall or recoverable network error.
- Adds a dedicated miner supervisor that tracks worker liveness, detects when one miner goes quiet while others are still receiving Twitch activity, and recovers that miner without requiring an app restart.
- Adds Miner Unresponsive, Recovering, and No Recent Activity states so stalled miners are clearly distinguished from a legitimate no-campaign situation.
- Detects false-positive account connections and cools campaigns down for 1 hour when they never produce an active drop session, so miners stop cycling on bad selections.
- Narrows spade beacon URL extraction to
spade_urlonly, matching the upstream TwitchDropsMiner fix — previously a straybeacon_urlmatch could silently route watch events to the wrong endpoint.
Miner Accounts & Pending
A single notification-style section surfaces everything that needs your attention.
- Adds a Pending section under each miner that consolidates account-link reminders and subscription-required campaigns into one list with dismiss and remind-me actions per item.
- Adds an orange dot to each miner row, and broadens the Miners sidebar badge, when a miner has non-muted pending items — covering both link issues and sub-gated campaigns.
- Adds right-click nickname editing from miner rows and activity cards, and uses miner nicknames everywhere a miner is shown.
- Adds SwiftBot integration so new miners can be created and managed through the bot workflow without manual setup in SwiftMiner.
- Shows a notification when a previously blocked prioritised game becomes linked and ready to mine.
App & Updates
Update channels, in-app release notes, and a quicker route to filing issues.
- Adds Software Updates controls for choosing the stable or beta Sparkle feed, with prompts for available updates and unattended installs where macOS permits.
- Adds a What's New window in the app menu and derives release-note links from the configured update channel.
- Adds Help > Raise Issue on GitHub…, prefilled with version and macOS details.
- Restricts Start minimised to login launches, only showing the option once Start at login is enabled, and removes the unused View menu.
- Tidies the SwiftBot integrations settings by hiding pairing once connected, removing redundant advanced controls, and adding a repair action beside connection testing.
- Updates the stable Sparkle appcast for SwiftMiner 1.21 build 2026050811.
Mining Status
Clearer status while multiple miners are running.
- Summarises how many miners are currently mining instead of naming only the first active campaign, and refreshes activity cards periodically while the app stays open.
- Shows claiming rewards in activity cards instead of leaving completed drops labelled ready to claim, and uses a green check in the menu bar when all miners are running.
- Updates grouped Drops cards to show which miners are mining or claimed for each campaign instead of using a combined progress bar at the game level.
- Removes the now-redundant Claim All Drops command — ready rewards are claimed automatically.
Polish
Plus a round of UI polish across priorities, search, artwork, and drop history.
- Drag prioritised cards left or right to change mining priority, with smoother spacing and spring settling. Deduplicates entries when the same game appears under multiple Twitch listings (e.g. Call of Duty), and adds context-menu actions for removing games and managing custom artwork.
- Custom artwork now caches in Application Support, matches by game id or name, and shows up across Drops decks, grouped rows, campaign details, and fallback reward art.
- Twitch category search debounces while you type, cancels stale requests, and keeps the loading state steady so the dropdown does not flash false "no results".
- Improves completed drop history when Twitch no longer exposes an expired campaign, and uses cached data only as a fallback so fresh Twitch data still wins.
- Adds in-app TipKit hints (with a toggle to disable) and tidies the Advanced settings layout, including a maintenance action to clear cached drop history.