Changelog

Every release, dated.

The kit's pitch is that it stays current as Apple moves. That claim is only worth what the list below is worth, so the list is public and it is complete: these are all the releases there have been, including the one that exists because our own tool caught our own mistake.

1.1.07 Sep 2026
  • Licensing moved from Gumroad to Polar, in Hawser itself and in the kit it hands you. The reasons are ours and not yours: a lower cut, and a merchant of record who carries EU VAT. What matters on your side is that the shape of the thing you are buying did not change. LicenseClient.swift is still the only file that names a provider, and it is still 72 lines of code whose whole job is one HTTP call.
  • Two behaviours the Gumroad client did not have. A 4xx is now treated as an answer and a 5xx is not, so an outage at the provider drops a paying customer into the offline grace period instead of locking them out. And HTTP 200 is no longer a yes on its own: revoked and disabled keys also answer 200, which is how refunds and chargebacks arrive, so the status field decides.
  • The deactivate button was describing something it does not do. It said it frees an activation so the licence can be used on another Mac. It never called the provider; it clears the key from this Mac's keychain, and there is no activation limit for it to free. It now says that, and carries a note for the case where you do turn activation limits on.
  • The free sample was rebuilt on the same client, so the thing you can inspect and the thing you would buy no longer disagree about who checks the licence.
1.0.24 Sep 2026
  • Fixed the update feed address. Every copy of 1.0.1 looks for updates at a GitHub Pages URL that has returned 404 since 12 August, when this site moved hosts. Sparkle reads an unreachable feed as "no update right now" and says nothing, so there was no symptom to notice. 1.0.2 points at an address on this domain that answers.
  • What this does not do, said plainly. It cannot reach anyone already running 1.0.1: the update feed is the one component that cannot deliver its own fix. If you have 1.0.1, download 1.0.2 from your original purchase link. And the feed it now points at is still deliberately item-free, for the reason set out in the traps write-up, so this release makes the feed honest rather than making updates work.
  • Found by hawser-check on its first run against our own app, which is the entire argument for that tool and the reason it is free.
  • appcast.sh assumed your update feed is called appcast.xml. Sparkle names the feed after the last part of your SUFeedURL, so anyone whose feed was called anything else got a confident, wrong error on their first release: "no EdDSA signatures, updates would silently fail", about a feed that was in fact signed correctly. Found the same way, by giving our sample app a feed of its own and watching the script break on it.
1.0.129 Jul 2026
  • Renamed from Carina to Hawser after a trademark search on the previous name.
  • Brand language, the traps write-up and the custom domain went live with this build.
1.0.027 Jul 2026
  • First public release.
  • The app moved out of a Settings pane into its own window and the Dock, so unlocking and setup no longer happen in a preferences sheet.
  • Kit payload separated from the app that delivers it, so the buyer package can be regenerated reproducibly.
  • ship.sh gained a progress indicator, and an early stop is no longer reported as success.
  • Licence entry gates the How it works tab, which generates the terminal command for you.

Subscribed to nothing and want to hear when a release lands? Mail yaveez.dev@gmail.com and we will write to you. There is no list, no tracking pixel and no newsletter platform, just a reply.