Repository navigation
Releases: neohiro/dnscrypt-proxy-gui
Releases · neohiro/dnscrypt-proxy-gui
Release list
DNSCrypt Proxy GUI 1.2.1
DNSCrypt Proxy GUI 1.2.1
Changed
- Removed the "Restore DNS" button. It performed exactly the same action as Deactivate while the proxy was running, and its only other use - repairing settings left behind by a crashed session - already happens automatically every time the app starts.
Nothing else changes: your DNS settings are still snapshotted before any activation and restored verbatim on deactivation or exit, and recovery after a crash remains fully automatic.
What's Changed
Full Changelog: v1.2.0...v1.2.1
DNSCrypt Proxy GUI 1.2.0
DNSCrypt Proxy GUI 1.2.0
New
- Update checker (Configuration tab, bottom row): a quiet version line with a Check for update button. The app also probes silently at startup - if a newer release exists, the version line lights up as a clickable link to the download page. Version comparison is true semver (component-wise), so
1.10.0correctly ranks above1.9.0; network failures never nag at startup.
Fixed
- Config changes during an active session now really restart the proxy. Previously "Changes are applied immediately" only wrote settings - the running proxy kept its old configuration until a manual deactivate/reactivate.
- A crashed tray icon no longer tears down your protection: the app degrades to taskbar mode instead of quitting, and closing then asks before exiting.
- Auto-reactivation race eliminated: starting the app could spawn two dnscrypt-proxy processes racing for port 53, leaving one that Deactivate could not stop. Reactivation is strictly once per session.
- Corrupted/mirrored resolver lists are handled safely: duplicate or nameless entries are dropped at ingestion instead of crashing the server table; hand-edited relay mappings in settings.json are ignored with a warning instead of raising errors.
For contributors
- New integration test drives the real GUI through activate → config-change-restart → deactivate against a stub proxy on every push (Linux CI under xvfb, both Python 3.11 and 3.12). 93 tests total.
What's Changed
- Fix: config changes during an active session never restarted the proxy by @neohiro in #18
- Update checker (semver) + restart-cycle integration test by @neohiro in #19
Full Changelog: v1.1.0...v1.2.0
DNSCrypt Proxy GUI 1.1.0
DNSCrypt Proxy GUI 1.1.0
Robustness release covering everything landed since 1.0.5.
Fixed
- Tray crash no longer deactivates your proxy. If the system-tray thread failed, the app used to quit entirely - silently stopping a running proxy and reverting your DNS. It now logs the failure, switches to taskbar mode and keeps protecting you; closing the window then asks before exiting.
- Auto-reactivation race eliminated. When a resolver-list refresh completed faster than startup reactivation, a second activation attempt could spawn a second dnscrypt-proxy over the live one - leaving a proxy that the Deactivate button could not stop. Reactivation now happens exactly once per session.
- Corrupted or mirrored resolver lists can no longer break the app. Duplicate or nameless entries are dropped at both ingestion points (upstream fetch and local cache); previously a duplicate name crashed the server table with an internal error.
- Hand-edited settings are tolerated. A malformed relay mapping no longer crashes config generation, and listing the same relay twice produces one clean route instead of duplicated entries.
- Partial cache files load safely - older cache files missing newer fields no longer cause errors when populating the server list.
Hardened
- Run-at-startup registration is correct for every install type and handles paths with spaces/quotes/special characters on Windows, Linux and macOS.
- Single-instance detection is reliable; configuration restarts report "busy" instead of silently dropping changes.
- Partial DNS restores keep their backup for retry instead of falling back to a DHCP reset.
- More diagnostics in the log file for proxy-output and shutdown edge cases.
For contributors
- CI gates every PR and push: lint + tests + headless GUI smoke test on Python 3.11/3.12, with job timeouts; Dependabot tracks GitHub Actions versions.
What's Changed
- Production readiness: name dedupe, tray fallback, reactivation race by @neohiro in #16
- Ingestion tolerance: malformed relay maps, duplicate relays, partial caches by @neohiro in #17
Full Changelog: v1.0.5...v1.1.0
DNSCrypt Proxy GUI 1.0.5
DNSCrypt Proxy GUI 1.0.5
Fixed
- Linux/Wayland: app no longer crashes on startup. The system-tray backend could fail while importing on Wayland-only sessions or headless systems in a way the previous guard did not catch; any tray failure now degrades gracefully to running without a tray icon (closing minimises to the taskbar).
Hardened (since 1.0.4)
- Run-at-startup registration is now correct for every install type: frozen builds no longer register themselves twice, and paths containing spaces, quotes or
%characters work in Windows Run keys, Linux.desktopentries and macOS launch agents. - Single-instance detection is now reliable (Windows last-error handling hardened).
- Configuration restarts report "busy" instead of silently dropping changes when another operation is still running.
- Safer DNS restore policy: a partially failed restore keeps its backup for retry instead of falling back to a DHCP reset.
For contributors
- CI now runs lint + tests + a headless GUI smoke test on Python 3.11/3.12 for every PR and push, with job timeouts; Dependabot also tracks GitHub Actions versions.
What's Changed
Full Changelog: v1.0.4...v1.0.5
DNSCrypt Proxy GUI 1.0.4
DNSCrypt Proxy GUI 1.0.4
A major robustness release focused on protecting your existing network configuration.
Highlights
- Your DNS settings are now safe. Before any change, the GUI snapshots your current system DNS configuration and restores it exactly on deactivation or exit - manually configured servers are no longer replaced by DHCP defaults. A new Restore DNS button is always available as a safety hatch.
- Crash-safe by design: if the GUI is force-killed, the proxy child process is cleaned up automatically (Windows Job Object / POSIX watchdog) instead of leaving your DNS pointed at a dead port.
- Visible errors: a rotating log file now records what happens (
%LOCALAPPDATA%\DNSCryptClientGUI\logs,~/Library/Logs/DNSCryptClientGUI,~/.cache/dnscryptclientgui/logs), and proxy start failures show their actual error output. - Honest session persistence: explicit Deactivate stays deactivated across restarts; settings persist even when the resolver list cannot be fetched offline.
- Correct configs: relay mappings that reference relays which no longer exist upstream are dropped instead of producing configs dnscrypt-proxy rejects; stale-relay and parser behaviour covered by a new automated test suite.
- Faster refreshes: server/relay lists use conditional downloads - unchanged lists cost almost nothing.
- Better UX on modern systems: crisp text on high-DPI Windows displays, dark-theme-friendly table rows, window size/position remembered, modal relay selector, single-instance guard, cache fields validated (and correctly labelled as entries).
For contributors
- New CI pipeline: lint + unit tests (Python 3.11/3.12) + headless GUI smoke test on every PR/push.
- Release archives now ship with
SHA256SUMS.txt; Linux builds target glibc 2.35 for wider distro compatibility.
Notes
- macOS builds remain unsigned - right-click → Open on first launch (or allow in Privacy & Security).
- Place the official
dnscrypt-proxyexecutable next to the GUI, or set its path under Configuration → System Paths.
What's Changed
New Contributors
Full Changelog: v1.0.3...v1.0.4
v1.0.3
v1.0.2
Fix Python 3.11 syntax error with f-string backslash
dnscrypt-proxy-gui.exe
- Fixed error
- Added zebra effect for better viewing as per request on reddit
dnscrypt-proxy-gui.exe
Removed a blocking fallback resolver
dnscrypt-proxy-gui.exe
Better persistence after reboot