Changelog
- e4fd231 [management,proxy] Attribute agent network errors in access logs (#8460)
- 5a4bfab [self-hosted,misc] Add Viper-backed config loader for the combined server (#8108)
- 2d3c816 [client] Add profile ownership and IPC authz (#7407)
- 0270bfa [doc] Expand repository contribution guidance (#7946)
- fc37116 [proxy] Renew cached ACME certificates and report expiry (#8524)
- 8dc1e2a [management] Stop peer expiration jobs when expiration is disabled for the account (#8521)
- 76797c8 [management] limit resource policy store call (#8522)
- 772d0b8 [client, ios] Add RefreshWireGuardStats to the iOS SDK (#8509)
- 91f4ad0 [management] Restyle the MCP consent page and leave write unticked (#8502)
- 14911a2 [management] Catch drift between the MCP catalog and the OpenAPI spec (#8498)
- 6a6d217 [management] Record MCP sign-ins in the activity log (#8499)
- d77bd23 [client, ios] Do not wait for the utun to be removed on engine stop (#8471)
- 4e266e3 [client,ios] Preserve credentials when login checks cannot reach management (#8202)
- 7949132 [management] Serve the REST API as an MCP server (#8335)
- 3160255 [management] Add an OAuth 2.1 broker for MCP clients (#8334)
- d3d872e [management] Scope group resource references to the owning account (#8474)
- 145bfca [proxy] Report LLM token usage as metrics (#8481)
- 313f71f [misc] Make the skip-latest tests independent of their environment (#8468)
- 2f5b9ca [client] Use a destination Windows refuses in the UDP dial error test (#8480)
- 3c996c9 [management] extract peer connection to separate tables (#8426)
- ad8c1cc [client] Match peer rule protocols behind IPv6 extension headers in nftables (#8451)
- 45a3bcb [client] Drop forwarded traffic that would leave through the interface it arrived on (#8440)
- 4db6fb7 [client] Default the SSH server to off for stored configs without a peer key (#8448)
- e2af490 [client] Remove a peer from the interface when it leaves the network map while its lazy connection is idle (#8449)
- b839159 [client] Start the SSH server's SFTP subprocess through su like session commands, so nologin and expired accounts are refused (#8394)
- caf50c8 [misc] Bump the signing pipeline to v0.1.9 (#8466)
- f790834 [misc] Don't move latest for a patch on an older release line (#8215)
- 2160682 [management] Enforce account id on proxy update (#8419)
- ef987dc [management] Add a hard deadline to update debouncer to signal pending updates (#8437)
- 65f833f [misc] Stop dispatching the mobile client submodule bumps on release tags (#8347)
- 99cc59d [infrastructure] Fix Enterprise migration with env-provided secret (#8436)
- 801ca16 [management] Ensure configure.sh does not clear the DataStoreEncryptionKey value (#5258)
- 7d0f159 [client,ios] Report network loss through the existing recovery callback (#7716)
- 5b55b83 [management] Skip writes and network map updates for unchanged objects (#8404)
- 44ad4ee [infrastructure] Offer CrowdSec AppSec during self-hosted install (#8341)
- 798b4ad [client] Close established SSH connections whose JWT user is no longer authorized when UpdateSSHAuth applies a new authorization list (#8393)
- d23f631 [client] Let Signal register behind proxies that hold headers until the first message (#8380)
- 50a9b14 [infrastructure] Build releases from the pushed tag, not GoReleaser's guess (#8427)
- 627876c [client] Treat 0.0.0.0 and :: as local in the userspace firewall (#8432)
- de7fd30 [client] Start ConPty SSH shells with bInheritHandles=FALSE so they no longer inherit the daemon's os/exec pipes of other users' sessions (#8391)
- cf673a9 [client] Close SSH connections still in the handshake on Stop and reject ones accepted by a stopped server (#8392)
- c72c42c [client] Start the update manager when management forces an update (#8232)
- 274788b [client] Refuse SSH JWT auth when the client changes the user name between auth requests on one connection (#8389)
- 6f73711 [self-hosted] Override relay auth secret and store encryption key from the environment (#8405)
- dea73ff [management] use peer.Status.LastSeen field to detect stale peer.Status.Connected values (#7268)
- 4ff3267 [management] Match account ids from the request and service config (#8386)
- 4241844 [client] Refuse path-bearing locale, TERM and TZ values from SSH clients (#8388)
- e2ee1dd Apply the SSH root-login setting to uid 0, not only to the account named root (#8390)
- 1acdebf [management] Add configurable statement timeout to postgres store (#8381)
- c9936ba [client] Bump wails fork to v3.0.0 (#8370)
- 678aff0 [client] Send the relay hostname as Host when dialing a relay by IP (#8359)
- 09f1de1 [management] batch disconnect and lock free reconnect (#8373)
- 3633999 [client] Mark Rosenpass as deprecated (#8372)