-
DcRouter v32.6.2
StableRelease / build-and-release (push) Successful in 22m2sreleased this
2026-09-28 02:50:05 +00:00 | 5 commits to main since this release2026-09-28 - 32.6.2
Fixes
-
Move the in-process RemoteIngress hub to
@serve.zone/remoteingress^32.0.3(from^32.0.0, locked at 32.0.0), whose QUIC control stream is read cancel-safely on both sides. Up to 32.0.2 a control message was read as a 5-byte header and then its payload with tworead_exactcalls inside atokio::select!, and written in two writes that could arrive in separate packets; when another branch won after the header was consumed, the next read decoded the payload as a header. A splitCTRL_UDP_SESSION_CLOSEframe made the edge refusecontrol message too large: <N> bytes (max 65536)and tear its tunnel down, dropping every port listener of that edge while the hub loggedcontrol stream error: connection lost- the teardowns seen on the SSH tunnel tocode.foss.global:29419. From 32.0.3 the hub keeps a partially received control message buffered across cancelled reads and writes each message as one buffer, so it no longer loses a frame an edge sent, and the frames it sends no longer leave the header and payload in separate writes. The hub API dcrouter uses (RemoteIngressHub, its events,start,stop,getStatus,updateAllowedEdges, the egress proxy calls andencodeConnectionToken) is unchanged across 32.0.1-32.0.3, and the wire format is unchanged, so no dcrouter code changes. Edges read the hub's control stream with their own reader: an edge is fully protected only once it runs remoteingress 32.0.3 as well (see the readme's RemoteIngress version note). -
The release binaries resolve a first-party release published the same day. Deno 2.9 compiles with a 24-hour minimum dependency age by default, which left
@serve.zone/remoteingress@^32.0.3unresolved indeno compile(the smoke check caught it).deno.jsonnow commits the owner's policy that pnpm already applies: seven days for third-party packages, owner scopes (@api.global,@apiclient.xyz,@design.estate,@git.zone,@idp.global,@lossless.org,@push.rocks,@serve.zone,@tempfix,@tsclass) exempt, so every build host compiles under the same age policy whatever its own pnpm configuration (tsdeno 1.11.0 leaves a committed policy untouched). Deno resolves thepackage.jsonranges against the registry at compile time, notpnpm-lock.yaml. The binaries return to their complete size (816 MiB x64, 798 MiB arm64 from 564 npm packages, the size of the June builds): the 32.6.1 binaries (about 475 MiB) were most likely compiled without owner packages published within 24 hours of the build, which the--versionsmoke check cannot see.
Maintenance
@design.estate/dees-catalog^16.4.0→^16.6.0(locked 16.5.0 → 16.6.0).- Release tooling:
@git.zone/tsdeno1.11.0 and@git.zone/tsbundle3.0.0 (the dashboard bundle shipsdist_serve/bundle.js.third-party-notices.{txt,json}); pnpm 12.6.0 and@types/node26.6.3 wait for the seven-day rule.
Downloads
-