SwiftMiner 1.41
Two of the fixes here each cost hours of watching that earned nothing, and both were invisible while they happened — a miner sitting on a stream that had already ended, and recovery quietly switched off on any campaign whose reward is offered at more than one watch time. The rest of the release is about making a multi-account SwiftMiner easier and more personal to run: choose Atomic Purple, invite a friend without handling their credentials, put miners in an order of your choosing, place the status dock where it belongs, and see which mining engine is running.
💜 Atomic Purple
- General settings now carry a theme: SwiftMiner’s Standard look, or Atomic Purple. Atomic Purple paints the window, sidebar, cards, selection and floating status dock in violet, and takes light or dark from your Mac rather than carrying a switch of its own — change the system appearance and the theme changes with it. Game artwork keeps its own colour, as do the green, orange and red operational states; only the mining progress bar and its percentage move to the theme’s purple.
- Atomic Purple follows macOS accessibility preferences: Reduce Transparency turns the floating status dock and the Drops panels opaque, Increase Contrast strengthens surface edges, and the existing Reduce Motion behaviour remains intact. The choice applies immediately and travels with a settings backup.
🐝 Bug fixes
- Miners no longer keep watching a stream that has already ended. Twitch’s game directory carries on listing a channel for a while after it goes dark, so a miner could pick the very channel it had just left — in one case four seconds after the stream ended, then sitting there for more than two hours while Twitch quietly credited nothing. A stream going offline is now shared across every miner the moment it is seen, and channels already known to be dark are skipped when a new one is chosen. As a backstop for an ending nobody saw, a miner that has gone five minutes without earning checks its channel directly and moves on if it is offline.
- Anti-stall recovery runs again on campaigns whose reward is offered at several watch-time tiers. Twitch gives those tiers one shared identifier, so claiming the 60-minute tier made the 360-minute tier you were still earning look as though it had been claimed somewhere else. Every stall check read that as a fresh claim, reset the counter, and let the miner sit on a channel crediting nothing — three accounts logged over three hours of exactly that. Recovery now takes its answer from the inventory reconciliation itself, so it switches channel or cools the campaign down as it was always meant to.
- Full screen is gone from SwiftMiner’s windows for good. The app has always been meant to run in one ordinary window, but the code that turns full screen off ran when the app quit rather than when it launched, so it never took effect while you were using it — the Settings, What’s New and About windows could still be taken full screen, and the menu bar kept the item that does it. The same misplaced setup also left macOS window tabbing switched on.
- A miner with nothing to mine now says when it will next look for work, and its card counts the wait down. It used to go silent between scans, which is the state it spends most of its time in and the one hardest to tell apart from stuck; clicking the miner forced an off-cadence refresh, which made the click look like the cure.
- When Twitch refuses to serve follow state, the Activity Log now says so. Ranking channels without it is the right fallback, but it happened silently while the followed-streamer preference stayed switched on and inert — on one day, six of seven lookups failed with nothing on screen to explain why.
- A stall and the decision it led to are filed together in the Activity Log. They used to land in separate categories where routine chatter evicted the outcome within a day, leaving a log that said something had gone wrong and never said what was done about it.
🔗 Bring a Friend
- Adding a first Twitch account still goes straight to Twitch. Once SwiftMiner already has an account, Add Account offers three clear paths: set it up on this Mac, create an invitation to send yourself, or invite someone directly through SwiftBot when the integration is enabled.
- A friend can be sent a polished SwiftMiner invitation three ways: Mail opens a branded, ready-to-send draft in Apple Mail, Share hands the link to the native macOS share sheet for Messages, AirDrop or anywhere else, and Invite via SwiftBot lists people from the connected Discord server who do not already have a SwiftMiner account. A live 30-minute countdown shows exactly how long the invitation remains valid, then offers Send Again to create a fresh one. They approve their own Twitch account from their own device, while SwiftMiner waits on the host Mac and adds the miner automatically.
- The Mail invitation arrives as a real invitation rather than a pasted link: a subject line naming the inviter, the SwiftMiner icon, one clear Connect to SwiftMiner button, and the reminder that they sign in directly with Twitch. SwiftMiner never sends it — the draft opens unaddressed for you to review and send yourself.
- Add Account and the invitation flow were rebuilt around the current macOS design language: the same softly rounded grouped surfaces used throughout SwiftMiner’s Settings, system-supplied sheet material and controls, clear default actions, and restrained accent colour. The invitation code and its countdown now sit at the top of the screen, the connected account appears in place of the waiting indicator, and choosing a SwiftBot recipient stays within the same modal instead of stacking another sheet on top.
- Invitations now link to a page written for the person receiving one: what connecting actually approves, what the inviter can and cannot see, honest reasons to decline, what SwiftMiner cannot do, and how to revoke the Twitch connection themselves at any time. It is linked from the invitation page, the Mail invitation and the SwiftBot message.
- The invitation names the selected operator account, or the first account when no operator has been chosen, and opens a focused SwiftMiner setup page with a branded link preview, one clear Twitch connection action and a reminder that credentials are never shared. Nothing SwiftMiner shares exposes Twitch’s activation URL, device code or technical setup instructions.
📋 Your Fleet, In Your Order
- Miners can now be put in an order of your choosing. Reorder on Overview drags the cards into place, and the same arrangement can be made by dragging rows in Settings › Accounts. Overview, the Miners tab, the account list and the status dock all follow it, and a newly added account joins the end rather than landing in the middle of an arrangement you made.
- The order is purely presentational: it does not change what any miner mines, or when. Every miner is still scheduled on its own.
- It travels with your settings backup, and is stored by account, so a miner that is restarted or reconnected keeps its place.
📊 A Clearer Overview
- The status dock along the bottom keeps mining state, average uptime, average last poll and squad health on screen. It uses Apple’s Liquid Glass treatment on macOS 26 and a frosted material on earlier versions, and floats over the page rather than sitting on an opaque strip.
- Where the dock appears is now yours to choose, in Settings › General: every page, Overview only, or off. The same figures stay available per miner on the Miners tab whichever you pick.
- Squad Health reports Healthy, Recovering, Warning, or Error based on the most severe miner condition. A fleet with nothing to mine still reads Healthy, which keeps operational health separate from activity — there is nothing wrong with an app that has nothing to do.
- Overview cards hold one shape. Each card keeps the room its progress bar, detail and up-next lines need, whether or not that miner is using them right now, so a miner moving between watching, updating and waiting redraws inside its own card instead of resizing the row and pushing the campaign feed below it up and down. The card stays compact with it: the status heading is gone, what follows reads on a single line, and a campaign name too long for that line is on hover.
- Overview cards are wider, and read tighter. The game and the campaign under it now sit as one pair: the card used to hold a second line of space beneath the game name whether or not the name needed it, which showed as a gap on every card whose game fits on one line. The drop artwork has gone from the compact card too — it repeated the game already named beside it, and it was what set the card’s height. The fleet now fills the width of the window rather than leaving an empty column at the end of the row.
- A larger Overview heading with its matching outline symbol sits closer to the toolbar, with consistent section spacing and short descriptions for current activity and the order of preferred games.
- Manage Games sits beside Reorder in the priority queue, and Reorder becomes available once there are at least two pinned games to move.
- Priorities that apply to every account are now called shared rather than global, in the app and on the web dashboard. Global read as a scope, when what these really are is a set of preferences an operator keeps on behalf of the squad — and the dashboard now names the account that owns them, alongside a reworked priority menu, preview tiles, account menu and status strip.
- The refresh control explains that it restarts miners and refreshes campaign data, and shows that it is working while it runs.
- Routine status text fades rather than jumping, progress updates stay local to the card that changed, and every one of these transitions respects Reduce Motion.
🔍 Knowing What You Are Running
- SwiftMiner has a proper About window, replacing the standard macOS panel. It carries the version, the build, and the mining engine version with the date it last moved.
- The mining engine now has a version of its own, separate from the app version. The app version moves for website, documentation and interface work; the engine number moves only when mining behaviour changes. So “is that fix actually in the copy I am running?” is now answerable — from the About window, Settings › Mining, the engine’s start-up log line, a diagnostic export, or the web dashboard footer. This release runs engine 4.16.
- Check for Updates is in the About window, and the reply when there is nothing to install is a plain sentence instead of the recovery text Sparkle offers by default.
🌐 A Simpler Website
- The SwiftMiner homepage now gets to the essentials faster, with three clear benefits, a shorter product tour, concise security information and less repeated detail. Deeper technical comparisons and guides remain in Help when you need them.