Changelog

Releases.

Public releases of Husk. Detailed notes for each version live on the corresponding GitHub Release; this page is the index.

  1. v0.1.9 2026-06-30 Patch

    EasyList parser hardened — the real DDG fix. v0.1.8 made the JS interceptor match by hostname so "facebook" in a query no longer self-blocks, but the URL bar still went dead under the runtime EasyList drop because the line parser had been treating scoped rules like ||duckduckgo.com^$image,domain=somesite.com as global host blocks. After parsing those, the blocked-domain set held 239 short / no-dot parser artefacts ("collector-", "util-") and any host that appeared anywhere in a scoped rule — DDG included. v0.1.9 only treats canonical ||host^ rules as global blocks, requires at least one dot in the resulting label so single-label entries like "com" can never make it in, and drops scoped rules entirely until we ship a proper rule engine. Same EasyList drop now yields 6 parser artefacts (real short tracker hosts like ad.gt and hh.ru) down from 239.

  2. v0.1.8 2026-06-30 Patch

    Adblock false positives wiped — the JS interceptor was matching blocklist entries as substrings of the full URL, so searching the word "facebook" on DuckDuckGo turned the query URL into duckduckgo.com/?q=facebook, matched facebook.com/tr, and the URL bar + DuckDuckGo search box went silently dead. v0.1.8 parses the URL, matches by hostname (exact or eTLD+1 subdomain) and only treats path-anchored rules (e.g. facebook.com/tr) as path-prefix tests. Plus a per-page exemption table so YouTube / Twitch / youtu.be can load googletagmanager and analytics.google — without them, their player bootstrap JS crashed before painting and left a blank screen. Plus eprintln logging in should_block_top_level so any future "URL bar does nothing" report tells us exactly which rule matched. Homepage "Foxsoundi News" card now points to foxsoundi.com/news (single-domain, after the news subdomain was folded back into the main site).

  3. v0.1.7 2026-06-29 Patch

    Hardened auto-updater. In v0.1.6 the bundled streaming downloader truncated mid-flight under some network conditions (3.7 MB of a 6.2 MB binary), leaving an unrunnable husk.exe in place. The updater now downloads via ureq, verifies the file's size against the GitHub asset's Content-Length, checks the PE magic bytes ("MZ"), and only THEN hands the verified file to self_replace for the live-binary swap. Mid-flight truncation, redirect-page HTML, and antivirus-rewritten downloads now refuse the update with a clear error instead of bricking the install. Upgrade from v0.1.6 once manually; subsequent updates will go through the new safer path.

  4. v0.1.6 2026-06-29 Minor

    Four browser-feel fixes. HTML5 fullscreen now hands off to the OS window — YouTube/Netflix/games actually take over the screen instead of stretching inside the chrome. The adblocker no longer emits TypeError on every blocked request: blocked requests resolve as a silent 204 No Content, killing the DevTools noise and the Sentry tickets ad libraries generated. The bundled baseline filter list more than doubled (~260 rules) so users on locked-down networks where the runtime EasyList fetch fails still get useful blocking out of the box. And on top of that, EasyList + EasyPrivacy are now refreshed at startup through Husk's own DoH proxy — bypassing corporate DNS that often blocks easylist.to, with the engine hot-swapped in place once the new rules arrive.

  5. v0.1.5 2026-06-06 Minor

    Auto-update from inside Husk. Settings now has an About tab showing the installed version with a one-click "Check for updates" button — Husk asks GitHub for the latest stable release, downloads the new binary, and atomically replaces husk.exe on the spot. Restart to start using it; HuskData/ (bookmarks, vault, profiles, history) is preserved across the swap. From v0.1.5 onward, future updates land without re-downloading the zip or hunting for the download page.

  6. v0.1.4 2026-06-02 Patch

    Paste / Paste-and-go from the URL bar's right-click menu now work. They had been broken because the Win32 popup callback breaks Chromium's user-activation signal — both document.execCommand('paste') and navigator.clipboard.readText() silently bailed. The clipboard is now read on the Rust side, where no such gate applies, and the text is shipped to the URL bar directly. Download page also exposes a standalone husk.exe so existing users can update in place without re-extracting the full zip — your HuskData/ folder (bookmarks, vault, profiles, history) is preserved.

  7. v0.1.3 2026-05-29 Patch

    OAuth popups now open as real popup windows sized to the page's request (instead of as tabs). Firebase Auth and postMessage-based OAuth now work: the popup's window.opener is correctly wired to the parent so tokens land where they should. Vault save prompt is non-intrusive in all states — no more auto-opening the sidebar on a routine login. Credentials entered in OAuth popups are never offered for save (they belong to the identity provider, not the parent site).

  8. v0.1.1 2026-05-28 Patch

    OAuth popups now close themselves after auth (Google / Microsoft / GitHub / Apple). Taskbar pin identity (AUMID) is now per install location, so two Husk binaries on the same machine no longer collide.

  9. v0.1.0 2026-05-27 First public release

    First binary published. Privacy core, network privacy, power tools, plausible deniability. Pre-launch audit completed. Portable build only.

Older versions, when they exist, will appear above the current one. For commit-level history, see husk-crypto on GitHub — the rest of Husk's source is closed.