What's Changed
- Maintenance mode — take the panel out of service without stopping it
- hop_interval_max on a hysteria2 listener's client config #163
Bug Fixes
- A user who runs out of quota is actually disconnected — an already authenticated session kept being served #175
- Post-auth privilege gaps closed, and the session hardened
- The login that lied, resets that never asked, and a healthcheck
- The 401 that wasn't, a leaked listener, and an OpenVPN key you had to leave the panel for
- Three ways the panel got out of step with the running core
- The stability defects behind the 1.6.1/1.6.2 sync
- Three nil-map panics in node sync and the subscription builders
- Link generation and subscription assembly repaired across the family
- Five things the external and node-replica link paths got wrong
- A managed node can no longer inject parameters into the master's links
- Adopted inbound replicas are refreshed from the node, so a port change reaches the master #196
- Node links are regenerated even when the client push fails #196
- Idle HTTPS connections from short-lived node clients no longer leak #176
- The panel's own socket is recognised by every spelling of it
- Only an unroutable Host can be the panel's own socket
- CGNAT counts as unroutable
- The same-origin stand-down is earned, and Update no longer downgrades
- The log factory's observable half is real
- Four follow-ups from reviewing the merges above
Chores
- Update sing-box to 1.14.1
- Read node values through the shared coercion readers
- Update the gomod group across 4 modules
- Update the gomod group across 4 modules
- Update the frontend group across 7 packages
- Update yaml to 2.9.1
- The unroutable set is four categories, not three
Full Changelog: v1.8.1...v1.8.2