v0.29.2
mvt-project/mvtv0.29.2Jul 1, 2026by github-actions[bot]
Upgrading?
AI Summary
This release resolves performance bottlenecks during mass reconnections and fixes WebSocket upgrades for Tailscale JS/WASM clients, while improving hostname validation.
Key Highlights
- Fix map generation locking that caused stalls during mass reconnections on specific policies.
- Enable WebSocket GET upgrade for the `/ts2021` endpoint to support JS/WASM clients.
- Gracefully handle nodes with invalid FQDNs instead of failing map delivery.
- Implement read locks for policy reads to allow concurrent map generation.
Full Release Notes
## Changes - Fix map generation serializing on the policy lock, so a mass reconnect on `autogroup:self`, via or relay policies no longer stalls clients into `unexpected EOF` retry loops [#3358](https://github.com/juanfont/headscale/pull/3358) - Fix `/ts2021` rejecting the WebSocket `GET` upgrade with 405, which prevented Tailscale JS/WASM control clients from connecting [#3359](https://github.com/juanfont/headscale/pull/3359) - Gracefully handle nodes with an invalid FQDN (empty or too long) instead of failing map delivery; offending names are logged at startup with the fix command [#3349](https://github.com/juanfont/headscale/pull/3349) ## Upgrade Please follow the steps outlined in the [upgrade guide](https://headscale.net/stable/setup/upgrade/) to update your existing Headscale installation. ## Changelog * 8eea89488c642f3d5f617fab5493d5f51f6f4ad0 CHANGELOG: drop unreleased 0.30.0 stub * f708c5b0108ac2ba5ff384ae9b85bdef488e1ffc CHANGELOG: note /ts2021 WebSocket GET fix * 735742e3eea9be93c42c2bd76c9641a74dc11e20 CHANGELOG: note 0.29.2 invalid-name map fix * 3ac33cf1d5fa66bafcdf11fd0919d10f118ee8ea CHANGELOG: shorten 0.29.2 invalid-name entry, set date * f885d87827bcae30a07063f2723cd03458144a00 Fix invalid ip syntax * 1ec7b7fb726ea6270a1eb459534753ef27eda736 hscontrol: register /ts2021 for WebSocket GET * 8f4e69d2a643f41378275c1b33395448ba8a596d integration: add TS2021 WebSocket tests to CI matrix * e7851ef8815248699833ac82fc7bd4d127a05713 integration: test /ts2021 WebSocket GET with a real WASM client * 9d1327458fb21b240ea8078e64aa09ed30b59a96 mapper,policy: add reconnect-storm and lock-concurrency regression tests * ec6719736806e53f1aad1e219670bb8b79476052 mapper: skip peers with invalid names instead of failing the map * d4f2acf3ab3cada875ab88eab4e0f81e4118cd12 policy: take RLock for reads so map generation runs concurrently * 5fb76eb231f105c67ff38316958a889ab4b1534b poll: return an HTTP error on long-poll setup failure * fd154fdb663d4992fb15cd95796c4791e48b096f state: log nodes with map-breaking data at startup * 9c9206a92b7b3ca416e955f472e7f002e9215b75 state: reject renames whose FQDN exceeds the hostname limit
Related Repositories
public-apis/public-apis★ 491,348
A collective list of free APIs
NousResearch/hermes-agent★ 256,180
The agent that grows with you
yt-dlp/yt-dlp★ 200,398
A feature-rich command-line audio/video downloader
microsoft/markitdown★ 191,632
Python tool for converting files and office documents to Markdown.
Significant-Gravitas/AutoGPT★ 187,712
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.