Husk v0.1.6 - fullscreen handoff + silent 204 + baseline expand + DoH filter refresh
Husk v0.1.6 - Fullscreen handoff + quieter adblocker
Minor release. Four browser-feel fixes shipped together.
Downloads
| File | Size | SHA-256 |
|---|---|---|
Husk-Portable-0.1.6.zip |
2.7 MB | fce92b2b3d3b0309429a670872fe2d0135eca085b1fd2876c1369cca739646d1 |
husk.exe (standalone, for in-place update) |
5.9 MB | 660e5ddea96fb2747e6c1b974172d4ba8f8bf3ff7ae94336ee3ba4786d022d32 |
Verify before running
Get-FileHash .\Husk-Portable-0.1.6.zip -Algorithm SHA256Match the output against the hash above. If it differs, do not run.
What's new
Fullscreen video actually goes fullscreen
Pressing the fullscreen button in a YouTube / Netflix / Twitch player
used to expand the video inside Husk's chrome and stop there, the
window kept its title bar, taskbar stayed visible, the picture never
took over the screen. The HTML5 fullscreen API only controls the
webview's bounds; the OS window doesn't move unless someone tells it
to.
v0.1.6 wires those two together. When a page enters fullscreen Husk's
init script forwards the event to the Rust side, which calls
window.set_fullscreen() on the active tab's window. Exiting
fullscreen, via the page or the Escape key, undoes it. Background
tabs that toggle fullscreen no longer hijack the foreground window.
The adblocker is silent again
The fetch wrapper used to reject blocked requests with
new TypeError('Husk: blocked'). Functionally that blocks the
request, but every blocked ad call surfaced as an Uncaught (in promise) TypeError in DevTools and got picked up by Sentry / error
trackers as "Husk broke our site". On pages with 50+ trackers the
console noise drowned out actual errors.
Blocked requests now resolve as a 204 No Content response with an
X-Blocked-By: Husk header. Same blocking effect, no rejected
promises, no error-tracker tickets. The header is there for any
curious developer inspecting DevTools.
Bigger bundled baseline filter list
The starter filter list that ships inside the binary grew from ~110
rules to ~260. The expansion targets the long-tail of ad networks,
session-replay services (Contentsquare, Quantum Metric, …), regional
trackers (Yandex Metrika, Baidu Hm, Mail.ru), and the
analytics/pixel layer of TikTok / Snapchat. On networks where the
runtime EasyList fetch can't go through, the bundled list now covers
the obvious offenders out of the box instead of letting them through.
EasyList refresh now routes through Husk's own DoH
On corporate networks the OS resolver is often configured to refuse
easylist.to and similar adblock-tooling hostnames. That used to
silently leave the engine on the bundled baseline. v0.1.6 routes the
EasyList + EasyPrivacy fetch through Husk's local DoH proxy when DoH
is enabled: the OS resolver sees a 127.0.0.1 connection, the proxy
handles the actual lookup via the user's chosen DoH provider.
The refresh runs once at startup, on a background thread that doesn't
block window creation. On success the rules merge into the live
engine in-place (no restart needed). On failure,timeout, proxy
refused, mirror down, the engine quietly keeps the bundled baseline.
Upgrade path
- From v0.1.5 portable: open Settings → About → Check for
updates → Download & install Husk 0.1.6 → restart. That's it;
HuskData/is untouched. - From v0.1.4 or earlier: same in-app flow, or grab the zip from
the download page if you'd rather start fresh. - First install: download the zip or standalone
husk.exefrom
the download page, extract or drop in place, run.
Privacy notes: unchanged
- DoH stack, vault, profiles, boss key, fingerprint resistance, no
telemetry, no auto-poll for updates: all unchanged from v0.1.5. - The new EasyList refresh fires once at startup. It hits
easylist.to(a public, audit-friendly host); if you don't want
this network call, turn the adblocker off in Settings, the
refresh is gated behind the adblocker being enabled.
Known limitations carried over
- macOS + Linux still v0.2 targets.
- Taskbar pin AUMID identity remains consolidated by Windows Shell
in dev setups where multiplehusk.exebinaries live on the same
machine.
If Husk is useful to you, support keeps it free, ad-free and
account-free: husk.run/donate.