You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Integrates the Hysteria 2.12.1 transport updates proposed in XTLS#6565 and completes the server-side lifecycle and error-handling work needed by this fork.
Adds optional UPnP and NAT-PMP port mapping for Realm, together with ipMode selection for dual-stack, IPv4-only, and IPv6-only deployments.
Adds QUIC controls for Chrome-style transport behavior, GSO, and Brutal loss compensation.
Fork fixes
Preserves existing QuicParams protobuf field numbers and adds compatibility tests to prevent wire/config regressions.
Makes Realm mapping leases deterministic: bounded discovery and requests, early renewal, rollback after ambiguous failures, real zero-lifetime NAT-PMP deletion, and cleanup error propagation.
Closes Realm constructor and shutdown leaks and serializes renew/close ownership to avoid timer and goroutine races.
Ensures Hysteria and XHTTP/3 listeners release UDP sockets and wait for owned accept/client goroutines during shutdown.
Clones TLS configuration before applying QUIC client behavior instead of mutating shared state.
Propagates Brutal loss-compensation configuration through every affected runtime path.
Upstream changes
No additional upstream stable release was merged for this version; upstream main at 7d214f8b is already an ancestor of this fork release.
The pending changes from XTLS#6565 were integrated, reviewed against this fork's current QUIC paths, and completed with regression coverage and lifecycle hardening.
Compatibility notes
Existing QuicParams protobuf fields 1–13 retain their original numbers; the new options use fields 14–16.
Chrome-style QUIC behavior is enabled by default. Set disableChromeParrot when custom certificate callbacks or non-compatible TLS behavior require it.
disableGSO is available for platforms or network stacks where UDP GSO must not be used.
Realm port mapping is opt-in through portMapping.enabled; omitted configuration preserves the previous behavior.
Realm ipMode accepts dual, v4, or v6, and defaults to dual.
Validation
Affected unit tests passed on Go 1.26.5.
Affected race, checkptr, go vet, formatting, module-integrity, and dependency-ban gates passed.
Xray, sing-box, and Mihomo Hysteria process interoperability passed 9/9 executions.
The XHTTP/3 HandlerService removal probe confirmed that the UDP listener is released.
A static Linux/amd64 release-style cross-build passed (a3b07b4422695ebbdc1288a0f7830ef909516a92181323da68a116ebddad4d77). Native Linux validation and the full platform asset matrix are enforced by the release workflow.