waX VPN development history
Original dated development notes, preserved as a historical record. Early plans and status reports are not claims about the current release. For today's download and verified limits, use the current release page.
- Project started. Goal: full WireGuard VPN client for Windows, Rust-first, WARP built in.
- Architecture settled: wax-core, wax-tunnel (wireguard-nt), wax-warp (wgcf-compatible, opt-in), wax-app desktop UI.
- Public repo created: github.com/vio137/wax-vpn. Scaffolding in progress - no build yet.
- UI direction set to egui: a pure-Rust immediate-mode GUI, no WebView or browser engine. Core keys/profiles, opt-in WARP client, WireGuard-NT backend, DNS and firewall controls, CLI and GUI written. Local type-checks and key/conf unit tests pass. Windows release build and runtime tests still pending - nothing is shipped.
- Product icon landed (cyan/teal X arcs on navy). Site brand updated to match: icon as favicon and header mark, accent color aligned to the icon.
- Copy review: wording now separates written/type-checked code from runtime-verified behavior across hero, overview, WARP and FAQ. Speed claims removed until measured.
- Windows release binaries built and workspace tests pass; official WireGuard driver payload assembled. Installer packaging failed on a CI tooling issue (makensis path) - fix pushed, rebuild running. Runtime tunnel and GUI verification queued in CI. Binaries are not a shipped app: nothing is downloadable yet.
- First preview release published: v0.1.0-preview.6 with a Windows x64 installer. CI build and NSIS packaging green; published checksum re-verified against the downloaded file. Unsigned preview, requires admin. Install, tunnel, kill switch and GUI are not runtime-verified yet; WARP stays opt-in and untested live.
- First field report on the preview: WARP device registration failed with "API error 0". Traced to the client decoder expecting a wrapped API response while the registration endpoint returns the object directly - the request may have reached Cloudflare fine. Decoder fixed in source with a unit test (not in preview.6). The GUI was also sent back for a full redesign after first feedback.
- Internal testing reached WireGuard demo-server registration and profile import - no tunnel handshake yet. Found a real CLI lifetime bug: the tunnel adapter is torn down when the connect process exits; fix and test rerun in progress. Newer CI prereleases are debug builds; v0.1.0-preview.6 stays the linked artifact for now.
- First live tunnel result: a real WireGuard handshake against the demo server passed in CI - moving byte counters, adapter up, tunnel DNS applied, and clean disconnect with DNS/firewall state restored. This does not yet prove general through-tunnel traffic, IPv6, kill-switch or crash safety, or a GUI-driven connection.
- A newer candidate build exists: v0.1.0-preview.13 (same commit as the handshake test above). It carries the WARP decoder fix and the rebuilt UI; the installer checksum was re-verified against a downloaded copy, and the handshake and DNS-cleanup test ran against this exact binary. Installer launch, data path, GUI-driven connect, kill-switch/crash safety, IPv6 and CLI persistence remain unverified - it does not replace preview.6 as the linked download below.
- Candidate v0.1.0-preview.19 passed a deeper CI leg: handshake plus a real ping through the tunnel to the demo server's tunnel address (first through-tunnel data-path proof), DNS setup and graceful restoration, and an explicit kill-switch leg - four blocking rules present while connected, removed on disconnect. Rule presence is not a traffic-blocking/leak test. Simulated-crash behavior is still being clarified - no automatic crash-recovery claim. The console-popup fix is in code but a popup-free GUI connect is not visually confirmed; tray/background running and the app icon are known gaps. Not promoted; preview.6 stays linked below.
- Crash-leg clarified: after the tunnel owner process was killed mid-connection, the test harness ran a manual wax disconnect and only then verified DNS/firewall cleanup - that proves the manual recovery command works after a crash, not automatic crash restoration (what Windows reclaims on its own is being instrumented now). Tray/background lifecycle and the embedded exe icon are written (source 099faa0) and awaiting their first Windows compile - no runtime claim yet.
- v0.1.0-preview.20: probing 3 seconds after the tunnel owner was killed found the adapter already gone and DNS already cleared (kill switch was OFF in that leg) - Windows tears down the adapter and its DNS automatically. Firewall-rules-on-crash and leak safety remain untested. The embedded icon now shows in the real Windows titlebar/taskbar (visually confirmed). Tray lifecycle is compiled but not runtime-exercised yet. Published, not promoted; preview.6 stays linked below.
- v0.1.0-preview.22 (commit f84d4d6): tunnel tests passed, including the first crash leg with the kill switch ON - all four blocking rules were still in place after the owner process died, and explicit cleanup removed them. Rule persistence is not proof that traffic was blocked; a live leak/blocking test is still outstanding. The GUI interaction leg did not run at all - a PowerShell parser error in the workflow, fixed in 444a456 - so there is no fresh GUI runtime verification. Auto-reconnect and a profile switcher landed in source, pending build and runtime. Published, not promoted; preview.6 stays linked below.
- v0.1.0-preview.23 adds the profile picker and a first auto-reconnect, and produced the first GUI-driven runtime result: clicking Connect in the app achieved a WireGuard handshake. No console windows were observed during the connect at 100ms polling - shorter flashes could be missed. Closing the window left the process and adapter alive; Quit and reopen behavior are not verified yet. The reconnect v1 in this build has known safety/cleanup issues with corrections in source, unverified - published, not recommended. The glass styling pass (preview.22 onward) is subtle styling over the same basic layout, not a redesign. preview.6 stays linked below.
- v0.1.0-preview.24 (auto-reconnect v2 + cleanup reporting) published. Its GUI legs passed - connect, close-to-tray, and the 100ms console-window observation. One failure: the final cleanup command exited 1 - new error aggregation surfaced a previously-swallowed DNS-reset error after Windows had already reclaimed the adapter, not a verified new regression in DNS restore. A fix (8248036) treats a missing adapter as already-clean. Corrections unverified; published, not recommended. preview.6 stays linked below.
- v0.1.0-preview.25 (native Gargantua GUI layout) published. The new in-app layout is a substantial visual rebuild - rendered and inspected via screenshot - but the GUI click leg went unexercised this run: the test locator mismatched an accessible label. Tunnel legs pass. The green CI job also incorrectly allowed FAIL lines through; that gate is fixed for the next build. Earlier per-leg passes on .23/.24 are being reconciled against result records, not invalidated. Published, not recommended pending preview.26. preview.6 stays linked below.
- GUI-leg reconciliation done against the actual verify-result artifacts: previews .23 and .24 literally passed - click-driven WireGuard handshake, window close leaving the process and adapter alive, and the 100ms console-window observation - with tray Quit recorded only as a WARN. preview.25's Connect-locator miss is a separate, later failure; the locator fix ships in preview.26.
- v0.1.0-preview.26: all CI legs pass, including the first exercised GUI click-through on the new layout (the accessible-name fix worked), close-to-tray with the tunnel still up, and the tunnel/DNS/firewall legs. Console-window observation stayed clean at ~100ms polling - shorter flashes could be missed. Extended crash and kill-switch legs now run on the hourly schedule and manual dispatch instead of every push. Tray Quit remains a WARN - manual confirmation still owed. Installer checksum not yet re-verified against a downloaded copy; preview.6 stays linked below.
- After user feedback the app interface direction was scrapped outright - a from-scratch redesign of composition, controls and typography is in progress instead of another styling pass. The verified tunnel core is unaffected.
- The download card below now points to v0.1.0-preview.26, replacing preview.6: its checksum was re-verified against a fresh download (SHA-256 6d0cf919b9e7472fcf0903e99afe51ca39811db48b32aff5b3ef1b80b45747f0, 10.4 MB). This build carries the WARP decoder fix in source (WARP is still not live-tested against Cloudflare). Caveats on the card still apply - it remains a development preview.
- v0.1.0-preview.28 published - the first build of the from-scratch interface direction (centered, calmer layout; refinement already in progress for the next build). GUI-click handshake, through-tunnel ping, DNS cleanup, the ~100ms console observation and close-to-tray all pass; tray Quit and reopen remain WARN; live WARP, the leak test and a clean-machine installer launch are unverified. The download card below now points to this build - checksum re-verified against a fresh download (10.4 MB).
- v0.1.0-preview.31 published and promoted to the download card, replacing preview.28: the footer overlap with the Connect button is fixed (verified on the actual Connect view). GUI-driven Connect handshake, through-tunnel ping, DNS apply/restore, close-to-tray, a clean firewall check after disconnect and the ~100ms console observation all pass. Still unsigned; a clean-machine installer launch, live WARP, IPv6 leak, effective kill-switch blocking and tray Quit/reopen remain unverified. Checksum re-verified here against a fresh download (10.4 MB). preview.29 and .30 were skipped (footer overlap).
- Tray Quit/reopen testing hit an environment limit: the CI runner has no notification area at all (no shell tray window), so Quit from the tray cannot be exercised there. It stays on the outstanding list as a manual check on a real Windows desktop. preview.31 remains the current download.
- The v0.1.0 gate run (actions/runs/42744062122) passed a fresh-runner NSIS install, installed GUI launch, graceful quit and uninstall - installer launch moves from outstanding to verified on the card above, scoped to a CI Windows runner: it is not a consumer-PC or SmartScreen experience test.
- v0.1.2 held the download card (replacing v0.1.1, now replaced by v0.1.3): unsupported wg-quick script/routing directives and DNS hostnames are now rejected explicitly with redacted errors instead of silently ignored, and the test sampler's evidence reporting is corrected. Checksum re-verified here against a fresh download (10,908,768 bytes; matches the published SHA256SUMS). The CI legs ran on this build (run 42760500153): the first GUI attempt crashed in the runner and the same source passed on rerun - cause unestablished, not claimed as a fixed app bug. A scoped popup observation passed in this run only (52 samples at ~100ms polling, none seen) - not a general no-popup claim. Limits unchanged: unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - no IPv6 leak-protection claim, and the tray menu and live WARP remain unverified.
- v0.1.3 held the download card (replacing v0.1.2, now replaced by v0.1.4): the profile MTU is honored (1380 confirmed on the tunnel adapter, IPv4; IPv6 MTU not runtime-proven), diagnostics are local and allowlisted (no keys, tokens, IDs, endpoints or paths), state wording is based on peer-handshake evidence (internet reachability not tested), external-tunnel status monitoring makes no guessed reconnect, and the CLI and GUI report a consistent version. Checksum re-verified here against a fresh download (10,922,699 bytes; matches the published SHA256SUMS). CI legs ran on this build (run 42768192198). Limits unchanged: unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - no IPv6 leak-protection claim, no internet-reachability or speed claim, and the tray menu and live WARP remain unverified.
- v0.1.4 held the download card (replacing v0.1.3, now replaced by v0.1.5). Checksum re-verified here against a fresh download (10,942,141 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6, the tray menu and network roaming remain unproven, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified.
- v0.1.5 held the download card (replacing v0.1.4, now replaced by v0.1.6): a Connect-screen layout fix (centered stats, stable status slots). Checksum re-verified here against a fresh download (10,943,511 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6, the tray menu and network roaming remain unproven, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified.
- v0.1.6 held the download card (replacing v0.1.5, now replaced by v0.1.7): the app interface is a native Rust redesign informed by Meta's Astryx - neutral surfaces, text navigation, no particles, still no web runtime. Checksum re-verified here against a fresh download (10,943,260 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6, the tray menu and network roaming remain unproven, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified.
- v0.1.7 held the download card (replacing v0.1.6, now replaced by v0.1.8): a native adapter-presence check replaces one PowerShell call on quit, and disabling Auto-reconnect now cancels an in-flight automatic retry. Network-change code is test-only - no roaming claim. A rare unexplained first-attempt quit timeout was seen earlier in testing. Checksum re-verified here against a fresh download (10,944,296 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6, the tray menu and network roaming remain unproven, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified.
- v0.1.8 held the download card (replacing v0.1.7, now replaced by v0.1.9): Start with Windows only saves after a registry readback (a failed check warns and reverts the switch), and profile import never overwrites - exclusive create with numeric collision suffixes. Two unexplained incidents, disclosed separately: a test-script crash (exit 0xC0000409) happened once in an earlier push run, and a rare 15-second quit stall was seen in installed cleanup; neither is diagnosed, and later passes do not explain them. Checksum re-verified here against a fresh download (10,948,015 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6, the tray menu and network roaming remain unproven, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified.
- v0.1.9 held the download card (replacing v0.1.8, now replaced by v0.1.10; source cf51767, gate 42817228387): settings errors are no longer silent - a damaged settings file is kept unchanged with Auto-reconnect off for that session and a warning shown, and a failed settings save shows a warning too; the tested failures preserve the previous data, with no power-loss guarantee. Two unexplained incidents, disclosed separately: the test-host crash (exit 0xC0000409) repeated - seen on pwsh and not seen under Windows PowerShell 5.1 in the passing runs, so it is not a diagnosed cause - and a rare quit stall seen earlier in installed cleanup; later passes do not explain either. Checksum re-verified here against a fresh download (10,948,914 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6, the tray menu and network roaming remain unproven, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified.
- v0.1.10 held the download card (replacing v0.1.9, now replaced by v0.1.11; source eace04a, gate 42822679916): periodic redraw requests are unified - hidden 1000 ms, visible disconnected with Reduced motion 250 ms, otherwise 33 ms - and input or animation can wake sooner. No CPU, battery or frame-rate claim. The two unexplained incidents stay disclosed separately: the pwsh test-host crash (exit 0xC0000409), not seen under Windows PowerShell 5.1 in the passing runs and not a diagnosed cause, and the rare quit stall; later passes do not explain either. Checksum re-verified here against a fresh download (10,948,767 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6, the tray menu and network roaming remain unproven, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots are v0.1.10 gate captures where they exist (Connected, first launch, the Connect showcase) and v0.1.9 captures elsewhere, each labeled in its caption.
- v0.1.11 held the download card (replacing v0.1.10, now replaced by v0.1.12; prepared source f945aaf, full manual preview 42826605856): the administrator restart is now native ShellExecuteW with the runas verb instead of an interpolated PowerShell command - the executable path travels as a separate UTF-16 argument, so apostrophes and spaces are no longer read as PowerShell syntax. A failed or cancelled launch keeps the current window open with a failure message; an accepted request exits the old instance, and the elevated child waits up to 10 seconds for it before taking the existing single-instance mutex, aborting on timeout without killing another process. Still untested, per the release notes: real UAC acceptance and cancellation, the failure-message pixels, a successful elevated restart and the complete parent-to-child handoff - a ShellExecute success reports an accepted launch request, not a proven elevated UI. Both unexplained incidents stay disclosed separately: the pwsh test-host crash (exit 0xC0000409) repeated in the 8fc4241 push run, and the intermittent installed-quit timeout; later passes do not explain either. Checksum re-verified here against a fresh download (10,949,648 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots are v0.1.11 captures where they exist (Connected, Profiles, Features, WARP, About), v0.1.10 captures for the Connect showcase and first launch, and v0.1.9 captures for the settings warnings, each labeled in its caption.
- The v0.1.11 release body was corrected (docs commit 0268672): the exact stable gate 42828756989 on release source ee886d0 passed Windows workspace tests, tunnel/GUI and fresh install/uninstall and retains the preview results, so the card and FAQ now cite the exact stable gate instead of the preview gate. Nothing else on the card changed.
- v0.1.12 held the download card (replacing v0.1.11, now replaced by v0.1.13; release source 9f55336, exact stable gate 42836227105): profile loading now reports a count of unreadable or malformed .conf files instead of silently hiding them - the warning carries no file names, keys or config contents, and skipped files are left unchanged - and a directory-level reload failure keeps the previous list visible with Connect and Delete disabled until a successful reload, which the new Reload profiles action performs; a successful reload clears the warning but does not repair unreadable files. Per the corrected release body, the exact stable gate passed workspace tests, tunnel/GUI and fresh install/uninstall, the retained tunnel and lifecycle results stand, and the GUI warning pixels (skipped-file count, stale list with disabled Connect/Delete, warnings cleared after restore) were inspected. Still untested: real UAC acceptance/cancellation, the native-restart failure pixels and the full elevated handoff (carried from v0.1.11), plus the startup directory-error pixels and an invoked manual-Connect failure from the stale snapshot (source-checked only). Both unexplained incidents stay disclosed separately: the pwsh test-host crash (exit 0xC0000409) and the intermittent installed-quit timeout; later passes do not explain either. Checksum re-verified here against a fresh download (10,950,262 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots are v0.1.12 captures where they exist (Connected, Profiles, Features, WARP, About), v0.1.10 captures for the Connect showcase and first launch, and v0.1.9 captures for the settings warnings, each labeled in its caption.
- Stills update: first launch and the profile warnings are now v0.1.12 captures. Installed shows the disabled-Connect first launch; the settings-load slot shows the skipped-profile warning (count only) stacked above the settings-file warning; a new figure shows the failed profile reload with the previous list kept and Connect/Delete disabled. The settings save-warning still stays v0.1.9 and the Connect showcase v0.1.10, each labeled.
- v0.1.13 held the download card (replacing v0.1.12, now replaced by v0.1.14; release source 3e455d2, exact stable gate 42842372496): both close paths now share one background policy - closing still hides to the tray when the tray initializes, and requests minimize instead when tray initialization fails, so the window is never hidden unreachable; a tray-unavailable notice explains taskbar restoration and Ctrl+Q, and the close tooltip reflects the fallback. Per the corrected release body, the exact stable gate passed Windows workspace tests, tunnel/GUI and fresh install/uninstall, and the retained exact stable results stand; the hide/minimize policy is unit-tested command selection, and a real tray failure was not reproduced, so the fallback warning pixels and taskbar restoration without a tray stay untested. Still untested: real UAC acceptance/cancellation, the native-restart failure pixels and the full elevated handoff (carried from v0.1.11), plus the startup directory-error pixels and an invoked manual-Connect failure from the stale snapshot (source-checked only). Both unexplained incidents stay disclosed separately: the pwsh test-host crash (exit 0xC0000409) and the intermittent installed-quit timeout; later passes do not explain either. Checksum re-verified here against a fresh download (10,950,419 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots are v0.1.13 captures where they exist (Connected, Profiles, Features, WARP, About, first launch and the profile warnings), v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning, each labeled in its caption.
- v0.1.14 held the download card (replacing v0.1.13, now replaced by v0.1.15; release source ae7d6dd, exact stable gate 42847687629): profile discovery now accepts .conf extensions regardless of ASCII case, matching drag/drop - valid Office.CONF and Home.CoNf files are no longer silently omitted - and malformed mixed-case files count in the existing count-only skipped-profile warning; no config contents, names or bytes are changed by discovery. The named unit test is filesystem loader proof; there is no separately invoked mixed-case UI selection test. Per the corrected release body, the exact stable gate passed Windows workspace tests, full tunnel/GUI and fresh install/uninstall, and the retained exact stable results stand; the initial publication failed with a GitHub HTTP 500 (release lookup returned 404 twice) and a failed-jobs-only retry completed without rebuilding or changing the tested source or artifacts. Still untested: a genuine tray-initialization failure (fallback warning pixels and no-tray taskbar restoration; the command-selection policy test passes), real UAC acceptance/cancellation, the native-restart failure pixels and the full elevated handoff (carried from v0.1.11), plus the startup directory-error pixels and an invoked manual-Connect failure from the stale snapshot (source-checked only). Both unexplained incidents stay disclosed separately: the pwsh test-host crash (exit 0xC0000409) and the intermittent installed-quit timeout; later passes do not explain either. Checksum re-verified here against a fresh download (10,950,860 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots are v0.1.14 captures where they exist (Connected, Profiles, Features, WARP, About, first launch and the profile warnings), v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning, each labeled in its caption.
- v0.1.15 held the download card (replacing v0.1.14, now replaced by v0.1.16; release source 573ec70, exact stable gate 42855126569): a settings.json with one leading UTF-8 BOM now loads without resetting preferences, since Windows editors may add that prefix; BOM-only, malformed and double-BOM JSON still fail, and the preservation rule still prevents saving over invalid original settings; no new settings or network behavior. The named tests are filesystem/settings fixtures - unchanged bytes on read, preferences retained, successful subsequent save and roundtrip, invalid originals untouched - not a separately invoked BOM-backed GUI launch. Per the corrected release body, the exact stable gate passed Windows workspace tests, full tunnel/GUI, fresh install/uninstall and publication, and the retained exact stable results stand. Still untested: a genuine tray-initialization failure (fallback warning pixels and no-tray taskbar restoration; the command-selection policy test passes), real UAC acceptance/cancellation, the native-restart failure pixels and the full elevated handoff (carried from v0.1.11), plus the startup directory-error pixels and an invoked manual-Connect failure from the stale snapshot (source-checked only); mixed-case profile loading has filesystem fixture proof, not a separate mixed-case UI selection test. Both unexplained incidents stay disclosed separately: the pwsh test-host crash (exit 0xC0000409) and the intermittent installed-quit timeout; later passes do not explain either. Checksum re-verified here against a fresh download (10,950,766 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots are v0.1.15 captures where they exist (Connected, Profiles, Features, WARP, About, first launch and the profile warnings), v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning, each labeled in its caption. Site: a primary Download for Windows button now sits in the hero linking the installer directly, with version and size on the button and the SHA-256 prefix plus the unsigned/SmartScreen note beside it; the release-notes link is secondary.
- v0.1.16 held the download card (replacing v0.1.15, now replaced by v0.1.17; exact release source 10bf470, exact stable gate 42872576889): configs with repeated single-value keys now fail to import or load instead of silently taking the last value - PrivateKey, MTU and ListenPort in [Interface], and PublicKey, PresharedKey, Endpoint and PersistentKeepalive within one [Peer] - with the error naming the key, section and line, never the value; even identical repeats are rejected, while repeated Address, DNS and AllowedIPs stay additive and keys in separate peers stay independent. A stricter waX policy, not a WireGuard requirement: previously accepted configs may now fail; existing files are not rewritten or deleted, and skipped profiles surface in the existing count-only warning. The named tests are parser/filesystem fixtures (rejecting each repeated singleton, identical values and a reopened Interface while preserving repeated lists, independent peers and zero-valued settings; the additive-import fixture checks no new file on rejection and unchanged existing bytes) - not a separately invoked duplicate-key GUI import test. Per the corrected release body, the exact stable gate passed all four jobs including publication, the full hourly run passed Windows workspace tests, full tunnel/GUI and fresh install/quit/uninstall, and the retained exact stable results stand. Also disclosed: one preview run repeated the intermittent installed-quit stall at the unchanged 15-second limit (its diagnostic file missing; a later run passed and does not diagnose it), and another preview lost the PowerShell host with 0xC0000409; a source audit found W-API declarations without Unicode marshaling, but that link is a hypothesis only - the declarations were corrected and the next full run passed, while the cause of the crash stays unproven; the harness changes alter no product networking, timeouts or assertions. Checksum re-verified here against a fresh download (10,952,038 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots remain v0.1.15 captures (the change reuses the existing count-only skipped-profile warning), v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning, each labeled in its caption.
- v0.1.17 held the download card (replacing v0.1.16, now replaced by v0.1.18; exact release source d4b68c8, exact stable gate 42879365730): WireGuard profiles can now use the exact lowercase PersistentKeepalive = off - it imports as zero (disabled) and saves back as PersistentKeepalive = 0; numeric values 0 to 65535 still work, while other words, uppercase OFF, negative, overflow and empty values stay rejected, and repeated singleton keys remain errors under the stricter v0.1.16 validation. The named tests are parser proof (off-to-zero roundtrip, boundaries, invalid values and duplicate rejection) - not a separately invoked GUI import of an off-valued config. Per the corrected release body, the exact stable gate passed all four jobs including publication, the full preview run passed the tunnel/GUI legs and fresh install/quit/uninstall, and the retained exact results stand. Crash causes stay unproven: the earlier installed-quit stall and the 0xC0000409 host failures remain undiagnosed - the Unicode P/Invoke corrections and stage markers passed subsequent full runs, but causality is not established. Checksum re-verified here against a fresh download (10,952,319 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots remain v0.1.15 captures, v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning, each labeled in its caption.
- v0.1.18 held the download card (replacing v0.1.17, now replaced by v0.1.19; exact release source 4f3107a, exact stable gate 42886055673): WireGuard profile headers and ordinary values can now carry inline # comments - text from the first # to end of line is a comment, including after [Interface], [Peer], keys and numeric values - and comments are dropped from the saved normalized config; whole-line semicolon comments still work, semicolons never start inline comments, and existing profile files are not rewritten by loading them. Validation is not relaxed: duplicate singleton keys, unsupported directives, unknown keys and invalid values before a comment remain errors, with no value echo. The named fixture (annotated BOM/CRLF config equals the plain config, normalized roundtrip drops comments) is parser proof - not a separately invoked annotated-config GUI import. Per the corrected release body, the exact stable gate passed all four jobs including publication, the full preview run passed the tunnel/GUI legs and fresh install/quit/uninstall, and the retained exact results stand. Crash causes stay unproven: the earlier installed-quit stall and the 0xC0000409 host failures remain undiagnosed - the Unicode P/Invoke corrections and stage markers passed subsequent full runs, but causality is not established. Checksum re-verified here against a fresh download (10,953,334 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots remain v0.1.15 captures, v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning, each labeled in its caption.
- v0.1.19 held the download card (replacing v0.1.18, now replaced by v0.1.20; exact release source 48d3240, exact stable gate 42893726607): bare numeric IPs in Address and AllowedIPs now parse as single-host prefixes - /32 for IPv4 and /128 for IPv6 - and saved normalized configs write the explicit prefix; existing CIDR prefixes keep their lengths, and a bare address never becomes a default route or wider network. The named fixture (mixed bare IPv4/IPv6 and explicit prefixes, repeated list entries, inline comments, normalized roundtrip, and rejection of invalid addresses, hostnames, prefix lengths, bracketed IPv6 and IPv6 MTU 1279) is parser proof only - not a separate bare-IP GUI import test. Per the release body, the exact gate passed all four jobs including publication on attempt 2; attempt 1 passed workspace tests and release compilation but failed packaging setup when the Chocolatey feed returned HTTP 504 for nsis.install - one unchanged failed-jobs retry passed with no source, timeout or assertion changes, and the retry does not diagnose the service error. The full preview run passed the tunnel/GUI legs and fresh install/quit/uninstall, and the retained exact results stand. Crash causes stay unproven: the earlier installed-quit stall and the 0xC0000409 host failures remain undiagnosed - the Unicode P/Invoke corrections and stage markers passed subsequent full runs, but causality is not established. Checksum re-verified here against a fresh download (10,953,211 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots remain v0.1.15 captures, v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning, each labeled in its caption.
- v0.1.20 held the download card (replacing v0.1.19, now replaced by v0.1.21; exact release source 7975de8, exact stable gate 42902285364): Address, DNS and AllowedIPs now reject leading/trailing commas and empty entries between commas instead of silently dropping them, and entirely empty Address and DNS values fail - errors name the field and line without echoing values, so some configs that imported earlier now fail; fix their missing entries before use, and existing files are not rewritten or deleted by loading them. One compatibility exception: an entirely empty AllowedIPs line still means no routes so older waX-saved profiles keep loading, while new normalized saves omit that line; a missing AllowedIPs line also means no routes, this adds no default route, and repeated nonempty entries stay additive. The named fixtures (list gaps/whitespace/comments, empty-value rejection, legacy empty AllowedIPs loading with bytes preserved, no file created on malformed import) are parser/filesystem proof - not a malformed-list GUI import or saved-profile GUI selection test. Per the release body, the exact gate passed all four required jobs first try, the full preview run passed the tunnel/GUI legs and fresh install/quit/uninstall, and the retained exact results stand. Crash causes stay unproven: the earlier installed-quit stall and the 0xC0000409 host failures remain undiagnosed - the Unicode P/Invoke corrections and stage markers passed subsequent full runs, but causality is not established. Checksum re-verified here against a fresh download (10,955,592 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots remain v0.1.15 captures, v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning, each labeled in its caption.
- v0.1.21 held the download card (replacing v0.1.20, now replaced by v0.1.22; exact release source 3039360, exact stable gate 42908508425): known section and field names now read ASCII case-insensitively like the official parser - [interface], privatekey and AllowedIPs in any case - while values are never lowercased or changed, so endpoint spelling and key material stay intact; normalized saves keep canonical section and field names. Mixed-case repeated scalar fields still fail instead of replacing earlier values, repeated Address, DNS and AllowedIPs lists stay additive, unsupported directives and unknown fields or sections still reject, the disabled keepalive value still requires lowercase off, and existing list-gap, MTU and numeric validation is unchanged. Parser-only change - no new network service, DNS resolution, endpoint validation or reconnect-policy change. The named known-name fixture (all 27 Windows core tests: mixed-case names with unchanged values and canonical roundtrip, all seven scalar duplicate fields across case variations, all seven unsupported directives, unknown names, invalid MTU, list gaps and uppercase OFF rejection, additive mixed-case lists) is fixture proof only - not a separate mixed-case GUI import or saved-profile selection test. Per the release body, the exact gate passed all four required jobs first try, the full preview run passed the tunnel/GUI legs and fresh install/quit/uninstall, and the retained exact results stand. Crash causes stay unproven: the earlier installed-quit stall and the 0xC0000409 host failures remain undiagnosed - the Unicode P/Invoke corrections and stage markers passed subsequent full runs, but causality is not established. Checksum re-verified here against a fresh download (10,956,471 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots remain v0.1.15 captures, v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning, each labeled in its caption.
- v0.1.22 held the download card (replacing v0.1.21, now replaced by v0.1.23; exact release source 51804e0, exact stable gate 42914037237): invalid PrivateKey, PublicKey and PresharedKey values now report their line and canonical field name with a fixed expectation - a base64-encoded 32-byte key - and errors do not include the submitted key or decoder detail. Error wording only: the same decoder accepts and rejects the same inputs, with no crypto, serializer, tunnel, DNS, network-service or reconnect-policy change. The named key-error fixture (all 28 Windows core tests: all three key fields with mixed-case spelling, malformed base64, 31/33-byte decoded lengths and empty input, line and canonical-field messages, no payload echo, valid three-key roundtrip) is fixture proof only - not a separate malformed-key GUI import screenshot. Per the release body, the exact gate passed all four required jobs and published the release, the full preview run passed the tunnel/GUI legs and fresh install/quit/uninstall, and the retained exact results stand. Crash causes stay unproven: the earlier installed-quit stall and the 0xC0000409 host failures remain undiagnosed - the Unicode P/Invoke corrections and stage markers passed subsequent full runs, but causality is not established. Checksum re-verified here against a fresh download (10,957,848 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots remain v0.1.15 captures, v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning, each labeled in its caption.
- v0.1.23 held the download card (replacing v0.1.22, now replaced by v0.1.24; exact release source 35e5afc, exact stable gate 42919192721): a [Peer] missing its required PublicKey now reports the source line of that peer's section header, so the incomplete peer is easier to locate in multi-peer configs whether parsing reaches the next section or the end of the file. Error wording only: accepted and rejected configs are unchanged, and errors do not include key material or config payloads - no crypto, serializer, profile-write, tunnel, DNS, network-service or reconnect-policy change. The named missing-public-key fixture (all 29 Windows core tests: first, middle and last incomplete peers, EOF and next-section boundaries, mixed-case headers, comments, BOM and line counting, no key/endpoint payload echo, valid three-peer roundtrip) is fixture proof only - not a separate malformed-peer GUI import screenshot. Per the release body, the exact gate passed all four required jobs and published the release, the full preview run passed the tunnel/GUI legs and fresh install/quit/uninstall, and the retained exact results stand. Crash causes stay unproven: the earlier installed-quit stall and the 0xC0000409 host failures remain undiagnosed - the Unicode P/Invoke corrections and stage markers passed subsequent full runs, but causality is not established. Checksum re-verified here against a fresh download (10,957,908 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots remain v0.1.15 captures, v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning, each labeled in its caption.
- v0.1.24 held the download card (replacing v0.1.23, now replaced by v0.1.25; exact release source c76684a, exact stable gate 42924289008): new imports now reject structurally malformed Endpoint values before creating any directory or profile file - a nonempty host and a port from 0 through 65535 are required, and IPv6 addresses need brackets. This intentionally changes acceptance of malformed endpoints; it is a syntax check, not DNS resolution, hostname validation or proof that an endpoint can connect, and a missing Endpoint remains allowed. Already-saved profiles with odd Endpoint values still load through the unchanged parsing path, their files are not rewritten, and Endpoint strings including IPv6 zone suffixes stay byte-identical. Fixed peer-index errors do not include the endpoint payload. The two named fixtures (all 31 Windows core tests: syntax coverage of IPv4, hostnames, bracketed IPv6, numeric/named IPv6 zones, ports 0/65535, missing Endpoint, peer index and preserved values, plus filesystem proof that an odd saved endpoint loads unchanged, bad imports create no directory or file and preserve existing files, and valid endpoint/zone imports roundtrip) are fixture proof only - not separate malformed-endpoint GUI import screenshots or real IPv6-zone connections. Per the release body, the exact gate passed all four required jobs and published the release, the full preview run passed the tunnel/GUI legs and fresh install/quit/uninstall, and the retained exact results stand. Crash causes stay unproven: the earlier installed-quit stall and the 0xC0000409 host failures remain undiagnosed - the Unicode P/Invoke corrections and stage markers passed subsequent full runs, but causality is not established. Checksum re-verified here against a fresh download (10,958,882 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots remain v0.1.15 captures, v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning, each labeled in its caption.
- v0.1.25 held the download card (replacing v0.1.24, now replaced by v0.1.26; exact release source 17a9ae5, exact stable gate 42928838728): numeric parse errors now explain the expected range while retaining the existing line number - MTU names 576 through 65535 (a minimum of 1280 when an IPv6 interface address is present), ListenPort accepts 0 through 65535, and PersistentKeepalive accepts off or 0 through 65535 seconds. These are existing parser rules, not new validation or a guarantee that a device or network supports every value; errors do not include the rejected value. Three fixed error strings changed; numeric parsing, accepted configurations, duplicate handling and the separate MTU address-family minimum check are unchanged - no profile-loading, crypto, tunnel, DNS, network-service or reconnect-policy change. The named numeric-errors fixture (all 32 Windows core tests: negative, nonnumeric, overflow, fractional and empty errors with line/field guidance and no value echo; ListenPort/keepalive 0 and 65535, keepalive off, MTU 65535 and 576/1280 boundaries; unchanged separate MTU minimum errors for 0/575/1279) is fixture proof only - not separate GUI screenshots of invalid numeric imports. Per the release body, the exact gate passed all four required jobs and published the release, the full preview run passed the tunnel/GUI legs and fresh install/quit/uninstall, and the retained exact results stand. Crash causes stay unproven: the earlier installed-quit stall and the 0xC0000409 host failures remain undiagnosed - the Unicode P/Invoke corrections and stage markers passed subsequent full runs, but causality is not established. Checksum re-verified here against a fresh download (10,958,801 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots remain v0.1.15 captures, v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning, each labeled in its caption.
- v0.1.26 held the download card (replacing v0.1.25, now replaced by v0.1.27; exact release source 2d36a9b, exact stable gate 42933568843): invalid Address and AllowedIPs entries now produce fixed IP-address/CIDR guidance instead of echoing the rejected entry, with the existing line numbers kept and the error naming Address or AllowedIP as appropriate. Wording only: two error strings changed; the shared IP/prefix parser, acceptance and rejection rules, serialization and saved-profile loading are unchanged, and bare IPv4/IPv6 addresses and CIDR prefixes remain accepted - no crypto, tunnel, DNS, network-service or reconnect-policy change. The named address-errors fixture (all 33 Windows core tests: invalid hostnames, prefixes and private sentinels with line/field guidance and no rejected-entry echo; IPv4/IPv6 bare addresses, host prefixes and wider CIDR lists still parse with expected values and round-trip) is fixture proof only - not separate GUI screenshots of invalid address imports. Per the release body, the exact gate passed build, demo-tunnel/GUI verification, fresh-runner install/quit/uninstall and publish, the full preview run passed the tunnel/GUI legs, and the retained exact results stand. Crash causes stay unproven: the earlier installed-quit stall and the 0xC0000409 host failures remain undiagnosed - the Unicode P/Invoke corrections and stage markers passed subsequent full runs, but causality is not established. Checksum re-verified here against a fresh download (10,958,944 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots remain v0.1.15 captures, v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning, each labeled in its caption.
- v0.1.27 held the download card (replacing v0.1.26, now replaced by v0.1.28; exact release source f734afd, exact stable gate 42938264349): a config with an [Interface] section but no PrivateKey now reports that section's first header line - "line N: [Interface] missing PrivateKey" - while mixed-case section names are recognized as before and the existing fallback remains when no Interface section exists. Wording only: first-header line tracking is used for this error; acceptance and rejection rules, serialization and saved-profile loading are unchanged, including repeated Interface handling - no crypto, tunnel, DNS, network-service or reconnect-policy change. The named missing-private-key fixture (all 34 Windows core tests: normal, mixed-case, BOM and leading-comment headers, first-header selection with repeated Interface sections, the no-interface fallback, absence of config payloads in the error and valid round-trips) is fixture proof only - not separate GUI screenshots of missing-key imports. Per the release body, the exact gate passed build, demo-tunnel/GUI verification, fresh-runner install/quit/uninstall and publish, the full preview run passed the tunnel/GUI legs, and the retained exact results stand. Crash causes stay unproven: the earlier installed-quit stall and the 0xC0000409 host failures remain undiagnosed - the Unicode P/Invoke corrections and stage markers passed subsequent full runs, but causality is not established. Checksum re-verified here against a fresh download (10,958,737 bytes; matches the published SHA256SUMS). Scoped claims unchanged: recovery handling covers adapter loss only, IPv6 untested, the tray menu manual-only, unsigned (SmartScreen warnings expected), no kill switch - traffic can use the normal connection if the tunnel drops - and live WARP unverified. Product screenshots remain v0.1.15 captures, v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning, each labeled in its caption.
- v0.1.28 held the download card (replacing v0.1.27, now replaced by v0.1.29; exact release source 358df1c, exact stable gate 42943100326, full preview 42941505112). Private keys and present preshared keys are now replaced with a fixed <redacted> marker in InterfaceConfig and PeerConfig Debug output; nested WireGuardConfig and Profile Debug output inherits the protection. Absent preshared keys remain None, while public keys and nonsecret fields stay visible. Defensive hardening only, with no observed production leak and no parser, serialization, profile storage, crypto, tunnel, UI or network behavior change. Serialized configs still contain required keys and must stay private. The config_debug_redacts_secret_keys_including_nested_profiles fixture passed with all 35 Windows core tests, covering compact/pretty and nested output, raw-array/base64 secret sentinels, visible nonsecret fields, Some/None behavior and unchanged serialization/parse round-trips. Fixture proof only, not evidence of an observed leak. An earlier CI run of this change (42939812475) failed with no tunnel handshake and capture errors; it was not diagnosed, and an unchanged re-run passed. Per the release body, the exact gate passed build, demo-tunnel/GUI verification, fresh-runner install/quit/uninstall and publish. Crash causes stay unproven: earlier installed-quit and PowerShell/CLR failures remain undiagnosed. Checksum re-verified here against a fresh download (10,958,731 bytes; matches the separately downloaded SHA256SUMS). Limits unchanged: adapter-loss recovery only, IPv6 protection untested, tray menu manual-only, unsigned with SmartScreen warnings expected, no kill switch (traffic can use the normal connection if the tunnel drops), live WARP unverified. Product screenshots remain labeled v0.1.15 captures, v0.1.10 for the Connect showcase and v0.1.9 for the settings save-warning.
- v0.1.29 held the download card (replacing v0.1.28, now replaced by v0.1.30; exact release source 8ba657c, exact stable gate 42947907711, full preview 42946492976). Unknown section, Interface key and Peer key errors now give fixed expected-section/key guidance instead of repeating the typed token, retaining line numbers. Defensive wording only, not a confirmed leak fix. Parser acceptance/rejection rules and known unsupported wg-quick directive handling are unchanged; no serialization, profile-storage, crypto, tunnel, UI or network behavior change. The unknown_tokens_use_fixed_guidance_without_echoing_payloads and inline_hash_comments_parse_without_relaxing_validation fixtures passed with all 36 Windows core tests. Coverage includes unknown sections/keys, long sentinels, whitespace/BOM/comments, mixed-case known headers, line/category/guidance, no offending token/value echo, seven known unsupported directives and valid round-trips. Fixture proof only, not separate GUI screenshots of these imports. First candidate 42944794908 failed a stale test expectation requiring token echo; a fixture-only follow-up corrected it and added an explicit no-token assertion. The new fixture already passed in the first run. Earlier CI 42939812475 failed with no tunnel handshake and capture errors; it was not diagnosed, and an unchanged re-run passed. Per the final release body, the exact gate passed build, demo-tunnel/GUI verification, fresh-runner install/quit/uninstall and publish. Earlier installed-quit and PowerShell/CLR failure causes stay unproven. Checksum independently re-verified against a fresh installer and separately downloaded SHA256SUMS (10,958,662 bytes). Limits unchanged: unsigned, no kill switch, no Internet-reachability, speed or IPv6 leak-protection claim; adapter-loss recovery only, actual tray menus and live WARP unverified. Stills remain labeled v0.1.15, v0.1.10 for Connect and v0.1.9 for settings save-warning.
- v0.1.30 held the download card (replacing v0.1.29, now replaced by v0.1.31; exact release source 46358e8, exact stable gate 42951343643, full preview 42949842839). Account Debug output redacts a present license while preserving None; Registration Debug redacts its token and nested license; WarpAccount Debug redacts private key, token and license including nested registration. Defensive hardening only, with no observed production Debug credential leak. Serialization, stored JSON, registration requests, profile generation, crypto, tunnel, UI and network behavior are unchanged. No signup, WARP registration or network action was performed for this change. The account_and_registration_debug_redact_nested_credentials and stored_account_debug_redacts_credentials_without_changing_json fixtures passed with all 3 WARP tests. Synthetic offline fixtures cover compact/pretty Account, Registration, Envelope<Registration> and WarpAccount output, absent secret sentinels, redaction markers, None, visible nonsecret fields and unchanged JSON retention/round-trips. Fixture proof only, not a production leak reproduction. Per the final release body, the exact gate passed build, demo-tunnel/GUI verification, fresh-runner install/quit/uninstall and publish. Earlier stale-test expectation 42944794908 was fixed by a fixture-only follow-up; earlier handshake/capture failure 42939812475 remains undiagnosed despite a later unchanged pass. Earlier installed-quit and PowerShell/CLR failure causes stay unproven. Checksum independently re-verified against a fresh installer and separately downloaded SHA256SUMS (10,958,167 bytes). Limits unchanged: unsigned, no kill switch, WARP unregistered, no Internet-reachability, speed or IPv6 leak-protection claim; adapter-loss recovery only and actual tray menus unverified. Stills remain labeled v0.1.15, v0.1.10 for Connect and v0.1.9 for settings save-warning.
- v0.1.31 held the download card (replacing v0.1.30, now replaced by v0.1.32; exact release source 896a831, exact stable gate 42955123769, full preview 42953804105). Malformed JSON and unexpected WARP response shapes now give fixed HTTP-status guidance instead of serde parse details; failed device deletion gives fixed HTTP-status guidance instead of repeating the raw response body. Defensive wording only, with no observed production credential leak. Structured API codes/messages, acceptance rules, request payloads/headers, timeouts, registration, storage, tunnel, UI and network behavior are unchanged. No live WARP request or signup was performed. The malformed_response_errors_use_fixed_guidance_without_echoing_payloads and fixed_response_guidance_preserves_direct_envelope_and_api_rules fixtures passed with all 5 WARP tests. Synthetic offline fixtures cover invalid JSON, wrong shapes, deletion-failure bodies with secret sentinels, fixed status guidance and no sentinel in Display/Debug errors, successful direct/enveloped registration decoding and unchanged structured API and HTTP fallback rules. Fixture proof only, not a production leak reproduction. Per the final release body, the exact gate passed build, demo-tunnel/GUI verification, fresh-runner install/quit/uninstall and publish. Earlier stale-test expectation 42944794908 was fixed by a fixture-only follow-up; earlier handshake/capture failure 42939812475 remains undiagnosed despite a later unchanged pass. Earlier installed-quit and PowerShell/CLR failure causes stay unproven. Checksum independently re-verified against a fresh installer and separately downloaded SHA256SUMS (10,958,358 bytes). Limits unchanged: unsigned, no kill switch, WARP unregistered, no Internet-reachability, speed or IPv6 leak-protection claim; adapter-loss recovery only and actual tray menus unverified. Stills remain labeled v0.1.15, v0.1.10 for Connect and v0.1.9 for settings save-warning.
- v0.1.32 held the download card (replacing v0.1.31, now replaced by v0.1.33; exact release source 148b6ec, exact stable gate 42958434223, full preview 42956985311). Malformed WARP profile v4/v6 address errors now give fixed expected-IPv4/IPv6 guidance instead of repeating the malformed address string. Defensive wording only, with no observed production credential leak. Address acceptance and prefix handling, keys, peer/endpoint selection, default DNS, MTU, AllowedIPs, registration, storage, UI and network behavior are unchanged. No live WARP request or signup was performed. The warp_profile_address_errors_use_fixed_guidance_without_echoing_payloads fixture passed with all 6 WARP tests. Synthetic offline WarpAccount fixtures cover sentinel address errors, valid bare/host-prefix/whitespace addresses, empty addresses, existing rejection of non-host prefixes and unchanged keys, endpoint, DNS, MTU and AllowedIPs. Fixture proof only, not a production leak reproduction. Per the final release body, the exact gate passed build, demo-tunnel/GUI verification, fresh-runner install/quit/uninstall and publish. Earlier stale-test expectation 42944794908 was fixed by a fixture-only follow-up; earlier handshake/capture failure 42939812475 remains undiagnosed despite a later unchanged pass. Earlier installed-quit and PowerShell/CLR failure causes stay unproven. Checksum independently re-verified against a fresh installer and separately downloaded SHA256SUMS (10,958,326 bytes). Limits unchanged: unsigned, no kill switch, WARP unregistered, no Internet-reachability, speed or IPv6 leak-protection claim; adapter-loss recovery only and actual tray menus unverified. Stills remain labeled v0.1.15, v0.1.10 for Connect and v0.1.9 for settings save-warning.
- v0.1.33 held the download card (replacing v0.1.32, now replaced by v0.1.34; exact release source 00b9db7, exact stable gate 42964757326, full preview 42962992616). Malformed split-exclusion entries now give fixed expected-IPv4/IPv6-CIDR guidance instead of repeating the malformed token. Defensive wording only, with no observed production credential leak. Entry splitting, empty entries, CIDR acceptance, input order and route subtraction are unchanged; no UI or network behavior change. The exclusion_errors_use_fixed_guidance_without_echoing_tokens fixture passed with all 37 core tests. Synthetic offline fixtures cover invalid-token sentinels, current valid mixed-family/separator/empty entries, duplicates, unaligned values and ordering. Fixture proof only, not a production leak reproduction. Per the final release body, the exact gate passed build, demo-tunnel/GUI verification, fresh-runner install/quit/uninstall and publish. Earlier stale-test expectation 42944794908 was fixed by a fixture-only follow-up; earlier handshake/capture failure 42939812475 remains undiagnosed despite a later unchanged pass. Earlier installed-quit and PowerShell/CLR failure causes stay unproven. Checksum independently re-verified against a fresh installer and separately downloaded SHA256SUMS (10,958,144 bytes). Limits unchanged: unsigned, no kill switch, WARP unregistered, no Internet-reachability, speed or IPv6 leak-protection claim; adapter-loss recovery only and actual tray menus unverified. Stills remain labeled v0.1.15, v0.1.10 for Connect and v0.1.9 for settings save-warning.
- v0.1.34 held the download card (replacing v0.1.33, now replaced by v0.1.35; exact release source e4ac0a1, exact stable gate 42971728009, full preview 42970156634). Features helper text explains that Auto-reconnect retries owned adapter loss only and physical-network roaming is not supported yet. Clearer guidance, not a new recovery capability: toggle behavior, retry delays and budget policy are unchanged. Offline split-subtraction boundary regression tests and a pure test-only coordinator for caller-supplied underlay snapshots do not change production routing or wire network notifications into recovery. Regression coverage, not a bug fix or leak proof. Physical-network roaming remains unimplemented. Per the final release body, all 35 app, 40 core, 6 WARP, 4 diagnostics and 1 tunnel tests passed, including four coordinator and three split-boundary fixtures; exact-release Features pixels at 880x600 showed readable two-line guidance and an unobscured toggle. The exact gate passed build, demo-tunnel/GUI verification, fresh-runner install/quit/uninstall and publish. Earlier stale-test expectation 42944794908 was fixed by a fixture-only follow-up; earlier handshake/capture failure 42939812475 remains undiagnosed despite a later unchanged pass. Earlier installed-quit and PowerShell/CLR failure causes stay unproven. Checksum independently re-verified against a fresh installer and separately downloaded SHA256SUMS (10,958,228 bytes). Limits unchanged: unsigned, no kill switch, WARP unregistered, no Internet-reachability, speed or IPv6 leak-protection claim; adapter-loss recovery only and actual tray menus unverified. Site stills remain labeled v0.1.15, v0.1.10 for Connect and v0.1.9 for settings save-warning, not v0.1.34 captures.
- v0.1.35 held the download card (replacing v0.1.34, now replaced by v0.1.36; exact release source c4e39ff, exact stable gate 42979370349, full preview 42977715778). Profiles helper text says "Drop a .conf file to add a profile. Existing profiles are kept; duplicate names get a number." Clearer guidance for existing behavior, not a change to parsing, storage, selection, connections or network policy. Test-only cancellation ownership fixtures and a one-shot Windows Notifications/Snapshot bridge prove the supplied stop/result/ack contract and one successful register/baseline/read/shutdown/ack sequence only. No production observer, continuous monitoring, quit-ack integration or physical-network roaming is implemented. Per the final release body, all 41 app, 40 core, 6 WARP, 4 diagnostics and 1 tunnel tests passed; the helper fits fully on one line at the 880x600 runner window and all 14 exact-release screenshots were inspected. The exact gate passed build, demo-tunnel/GUI verification, fresh-runner install/quit/uninstall and publish. Earlier stale-test expectation 42944794908 was fixed by a fixture-only follow-up; earlier handshake/capture failure 42939812475 remains undiagnosed despite a later unchanged pass. Earlier installed-quit and PowerShell/CLR failure causes stay unproven. Checksum independently re-verified against a fresh installer and separately downloaded SHA256SUMS (10,958,379 bytes). Limits unchanged: unsigned, no kill switch, WARP unregistered, no Internet-reachability, speed or IPv6 leak-protection claim; adapter-loss recovery only, physical-network roaming unimplemented, real UAC and actual tray menus unverified. Site stills remain labeled v0.1.15, v0.1.10 for Connect and v0.1.9 for settings save-warning, not v0.1.35 captures.
- v0.1.36 held the download card (replacing v0.1.35, now replaced by v0.1.37; exact release source 9c04001, exact stable gate 42984360903, full preview 42982601482). About diagnostics says "Report age: Ns. Generate a new report to refresh." UI-only elapsed time since report arrival, not an OS measurement timestamp. Clear removes report and age; a new report arrival resets the age. Those transitions are code-reasoned, not separately asserted by the gate; existing generate/clear behavior is checked. Report JSON, copied payload, OS queries, repaint schedule and connection policy are unchanged, with no background monitoring. Test-only cancellation ownership and one-shot Windows Notifications/Snapshot fixtures remain groundwork, not production observation, continuous monitoring, quit acknowledgement, OS cancellation-failure safety or physical-network roaming. Per the final release body, all 41 app, 40 core, 6 WARP, 4 diagnostics and 1 tunnel tests passed; diagnostics guidance is readable with Generate/Copy/Clear unobscured at 880x600 and all 14 exact-release screenshots were inspected. The exact gate passed build, demo-tunnel/GUI verification, fresh-runner install/quit/uninstall and publish. Earlier stale-test expectation 42944794908 was fixed by a fixture-only follow-up; earlier handshake/capture failure 42939812475 remains undiagnosed despite a later unchanged pass. Earlier installed-quit and PowerShell/CLR failure causes stay unproven. Checksum independently re-verified against a fresh installer and separately downloaded SHA256SUMS (10,958,570 bytes). Limits unchanged: unsigned, no kill switch, WARP unregistered, no Internet-reachability, speed or IPv6 leak-protection claim; adapter-loss recovery only, physical-network roaming unimplemented, real UAC and actual tray menus unverified. Site stills remain labeled v0.1.15, v0.1.10 for Connect and v0.1.9 for settings save-warning, not v0.1.36 captures.
- v0.1.37 held the download card (replacing v0.1.36, now replaced by v0.1.38; exact release source 65e3ebb, exact stable gate 42989763965, full preview 42987951097). Profiles shows "N profile(s) loaded" beside Reload profiles and "Previous list: N profile(s)" after a failed reload. Layout/label only: loading, import, delete, selection, storage and networking are unchanged. Per the final release body, normal and partial-warning Profiles show "1 profile loaded"; failed reload shows "Previous list: 1 profile" with the retained list and disabled Connect/Delete controls. Count, warning and buttons are readable without overlap at 880x600. Empty/plural wording is formatter-fixture proof only, not a separately captured UI state. All 42 app, 40 core, 6 WARP, 4 diagnostics and 1 tunnel tests passed, and all 14 exact-release screenshots were inspected. The exact gate passed build, demo-tunnel/GUI verification, fresh-runner install/quit/uninstall and publish. Test-only cancellation ownership and one-shot Windows Notifications/Snapshot fixtures remain groundwork, not production observation, continuous monitoring, quit acknowledgement, OS cancellation-failure safety or physical-network roaming. Earlier stale-test expectation 42944794908 was fixed by a fixture-only follow-up; earlier handshake/capture failure 42939812475 remains undiagnosed despite a later unchanged pass. Earlier installed-quit and PowerShell/CLR failure causes stay unproven. Checksum independently re-verified against a fresh installer and separately downloaded SHA256SUMS (10,959,142 bytes). Limits unchanged: unsigned, no kill switch, WARP unregistered, no Internet-reachability, speed or IPv6 leak-protection claim; adapter-loss recovery only, physical-network roaming unimplemented, real UAC and actual tray menus unverified. Site stills remain labeled v0.1.15, v0.1.10 for Connect and v0.1.9 for settings save-warning, not v0.1.37 captures.
- v0.1.38 held the download card (replacing v0.1.37, now replaced by v0.1.39; product source 342787b, release metadata 20fcd6a, final notes 356bca0, exact stable gate 42996054493, full preview 42993266597). Profiles Split tunneling shows "Editing profile: <name>" above the exclusions field. UI text only: parsing, settings, routes and connection policy are unchanged. Per the final release body, normal, partial-warning and failed-reload Profiles show "Editing profile: demo" readable without overlap at 880x600; Import shifts down within the existing scroll area. Unicode/long-name preservation is formatter-fixture proof only, not actual glyph or wrapping screenshot proof. All 43 app, 40 core, 6 WARP, 4 diagnostics and 1 tunnel tests passed, and all 14 exact-release screenshots were inspected. The exact gate passed build, demo-tunnel/GUI verification, fresh-runner install/quit/uninstall and publish. Test-only cancellation ownership and one-shot Windows Notifications/Snapshot fixtures remain groundwork, not production observation, continuous monitoring, quit acknowledgement, OS cancellation-failure safety or physical-network roaming. Earlier stale-test expectation 42944794908 was fixed by a fixture-only follow-up; earlier handshake/capture failure 42939812475 remains undiagnosed despite a later unchanged pass. Earlier installed-quit and PowerShell/CLR failure causes stay unproven. Checksum independently re-verified against a fresh installer and separately downloaded SHA256SUMS (10,959,296 bytes). Limits unchanged: unsigned, no kill switch, WARP unregistered, no Internet-reachability, speed or IPv6 leak-protection claim; adapter-loss recovery only, physical-network roaming unimplemented, real UAC and actual tray menus unverified. Site stills remain labeled v0.1.15, v0.1.10 for Connect and v0.1.9 for settings save-warning, not v0.1.38 captures.
- v0.1.39 held the download card (replacing v0.1.38, now replaced by v0.1.40; product source d8bbe80, release target ab29057, final notes b11a5ed, exact stable gate 43000796483, full preview 42998862323). Split tunneling says "Enter CIDR ranges separated by commas or spaces." and "Applies to the named profile on next connect." Guidance text only: parsing, settings, routes and connection policy are unchanged. Per the final release body, normal, partial-warning and failed-reload Profiles retain readable format guidance, named profile context, count and exclusion field without overlap at 880x600; Import remains in the existing scroll area. Unicode/long-name preservation remains formatter-fixture proof only, not actual glyph or wrapping screenshot proof. All 43 app, 40 core, 6 WARP, 4 diagnostics and 1 tunnel tests passed, and all 14 exact-release screenshots were inspected. The exact gate passed all four build, installer, GUI/demo verification and publication jobs. Test-only cancellation ownership and one-shot Windows Notifications/Snapshot fixtures remain groundwork, not production observation, continuous monitoring, quit acknowledgement, OS cancellation-failure safety or physical-network roaming. Earlier stale-test expectation 42944794908 was fixed by a fixture-only follow-up; earlier handshake/capture failure 42939812475 remains undiagnosed despite a later unchanged pass. Earlier installed-quit and PowerShell/CLR failure causes stay unproven. Checksum independently re-verified against a fresh installer and separately downloaded SHA256SUMS (10,959,322 bytes). Limits unchanged: unsigned, no kill switch, WARP unregistered, no Internet-reachability, speed or IPv6 leak-protection claim; adapter-loss recovery only, physical-network roaming unimplemented, real UAC and actual tray menus unverified. Site stills remain labeled v0.1.15, v0.1.10 for Connect and v0.1.9 for settings save-warning, not v0.1.39 captures.
- v0.1.40 held the download card (now replaced by v0.1.41), replacing v0.1.39 on the stable line (product source f02ec9b, release target afee7d4, final notes e610a84, exact stable gate 43007081041, full preview 43005252907). The Split tunneling field label says "Excluded IP ranges for profile: <name>", replacing "Editing profile: <name>". Text only: existing wrapping, spacing, accessible input name, parsing, settings, routes and connection policy are unchanged. Per the final release body, normal, partial-warning and failed-reload Profiles retain readable label, profile context, count, guidance and exclusion input without overlap at 880x600; Import stays within the existing scroll area. Unicode/long-name preservation remains formatter-fixture proof only, not actual glyph or wrapping screenshot proof. All 43 app, 40 core, 6 WARP, 4 diagnostics and 1 tunnel tests passed, and all 14 exact-release screenshots were inspected. The exact gate passed all four build, installer, GUI/demo verification and publication jobs. Test-only cancellation ownership and one-shot Windows Notifications/Snapshot fixtures remain groundwork, not production observation, continuous monitoring, quit acknowledgement, OS cancellation-failure safety or physical-network roaming. Earlier stale-test expectation 42944794908 was fixed by a fixture-only follow-up; earlier handshake/capture failure 42939812475 remains undiagnosed despite a later unchanged pass. Earlier installed-quit and PowerShell/CLR failure causes stay unproven. Checksum independently re-verified against a fresh installer and separately downloaded SHA256SUMS (10,959,337 bytes). Limits unchanged: unsigned, no kill switch, WARP unregistered, no Internet-reachability, speed or IPv6 leak-protection claim; adapter-loss recovery only, physical-network roaming unimplemented, real UAC and actual tray menus unverified. Site stills remain labeled v0.1.15, v0.1.10 for Connect and v0.1.9 for settings save-warning, not v0.1.40 captures.
- Website cohesion pass: real version-labeled captures moved into a dedicated Screenshots gallery with full-size viewing. Navigation, spacing, typography and surfaces aligned; download summary separates essential limits from expandable verification detail. Installer remains v0.1.40. The unsigned build and Windows warning notes remain.
- v0.1.41 replaces v0.1.40 on the download card. Product source e33c059, release target 495ce06; exact stable gate 43013058134 and full preview 43010809620 passed. Split-field label changes from 11.5px secondary to 12px primary text only; wording, wrapping, spacing, parsing, saving, routes and connection policy are unchanged. Released installer independently downloaded: 10,959,264 bytes, SHA-256 matched a separately downloaded SHA256SUMS. The real v0.1.41 Profiles capture replaces the older gallery image. Remaining stills keep their original versions. All existing network, WARP, UAC, tray and Unicode-fixture limits remain.
- v0.1.42 replaces v0.1.41 on the download card. Installer cleanup helpers now run without a console window. Silent fresh-install, upgrade and uninstall checks found no new visible console window in 150, 364 and 329 samples; shorter flashes could be missed. App and installer website links now use https://waxvpn.pages.dev/. Released installer independently downloaded: 10,963,400 bytes, SHA-256 matched separately downloaded SHA256SUMS. No measured speedup claimed. Unsigned/SmartScreen warnings remain; no kill switch or leak-protection proof. UAC and actual tray menus remain untested.
- v0.1.43 replaces v0.1.42 on the download card. Network page added: public IP before/after, local live throughput, HTTPS latency and a manual 10 MB speed test. Only local throughput is on by default; external checks are opt-in and share your IP with Cloudflare by default. Observations, not leak tests. Real Windows IP-change remains unproven. Installer independently downloaded: 11,061,755 bytes; SHA-256 matched separately downloaded SHA256SUMS. No speed claim. Unsigned, no kill switch and no leak/IPv6 proof; real UAC and tray-menu limits remain.
- Remaining: interface refinement continues (the design bar is not yet met); the tray menu and Quit/reopen behavior (a manual Windows-desktop check - CI runners have no notification area); a live WARP test against Cloudflare.