Bug Fixes
Reverse proxy #80
The TLS terminated by reverse proxy switch is usable again, and can no longer take down what it is protecting.
- Switching it on failed on every install that had used the feature before the vhost was renamed — the old file collided with the new one on 443, and every retry replayed it. Both prefixes are swept now
- Switching it off deadlocked: the vhost was deleted before the save that travelled over it, leaving the vhost gone and the setting unsaved. That cleanup now runs after the restart
- Changing the panel's path or domain while the proxy is on no longer moves the nginx
locationout from under the request still in flight - Three ways a working vhost got destroyed are closed: a duplicate
server_nameon:80misread as a 443 conflict, an enabled side with no domain skipped silently, and a failed settings read at startup reconciling as "disabled" - The settings page reports drift between nginx and the saved settings on load, and ACME HTTP-01 validation no longer mistakes the proxy's 443-only vhost for a
:80block
Panel URI vs. panel path #80
Panel URI only decides where the redirect goes after a restart; the path the panel actually serves comes from Panel Path. Editing the former to move the panel sent the user to a 404 with no way back, since the only page that could undo it was the one that no longer loaded. Both are now refused at save time, with nothing written, and the same guard covers Subscription URI, where a mismatch is silent — the panel keeps working while every client stops updating.
Frontend #77
- Recovering from a failed chunk load returned to the route being left instead of the one that was clicked
out/OutTLScrashed on an entity with notlskey- Dates ignored the language switch until reload; seven render sites pointed at i18n keys that do not exist
- Build assets are named by content hash instead of a per-build id, so
Cache-Control: max-age=31536000stops serving stale bundles across releases
Enhancements
- First paint is roughly half the payload — the single 2.1 MB chunk is split, and the unused
wofffallback is dropped from the font CSS #77 - The
in/andout/form duplicates (Dial, Multiplex, Listen, Transport, Headers, Network, UoT) are merged, andDnsServerDrawerreuses them #77
Chores
- Every GitHub Action is pinned to a commit SHA, and dependabot updates are grouped into one PR per ecosystem #71
- Release and Windows builds no longer run the full matrix twice on a merge-then-publish #74
- Dependency bumps: frontend group (11) #73, gomod group (2) #72,
sing-vmess#70,docker/login-action#76
Full Changelog: v1.6.1...v1.6.2