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
release(v1.10.2): fix compat-mode dial to fresh peers
In v1.10.1, a compat-mode (WSS-only) daemon's first SYN to a fresh peer
went raw through the WSS pipe because routing.WriteFrame only wrapped
frames in BeaconMsgRelay after the blackhole heuristic flipped the peer
to relay (3 misses, ~8s silence). For brand-new peers the unwrapped
frame reached the beacon as an unknown protocol byte and was dropped
silently — every outbound-initiated dial from a managed claw timed out.
Add routing.Manager.forceRelay, set by TunnelManager.ConnectCompat, so
every outbound write in compat mode is BeaconMsgRelay-wrapped regardless
of blackhole state. Verified live against beacon.pilotprotocol.network:
a fresh compat daemon (UDP-free, only TCP/443 + TCP/9000) successfully
fetched the weather-agent list from list-agents.
Test surface added:
- pkg/daemon/routing/zz_routing_test.go::TestWriteFrame_ForceRelayWrapsFreshPeer
- tests/compat/zz_real_beacon_test.go: 4 integration tests against the
real beacon binary's WSS bridge
- tests/zz_compat_dial_test.go: end-to-end DialConnection from a compat
daemon to a UDP peer through an in-process beacon
Also moves the unworkable go-test and go-coverage pre-commit hooks to
the manual stage (still one command away, no longer 5-min gate on every
commit). Pre-push retains the full release gauntlet.
Scope (per CHANGELOG platform matrix): unblocks Render-class environments
(UDP-blocked, arbitrary TCP allowed). Railway/Fly/Lambda/Cloud Run/Modal/
E2B/Daytona were already fine in UDP mode. Replit Agent / Docker AI
Sandbox / locked-down Cursor sandboxes still need HTTPS_PROXY + a
registry-over-WSS bridge (tracked for v1.10.3).
0 commit comments