feat(companion): 60s mesh probe window + session pre-warm from the VPN service
Implements the app-side recommendations from the node diagnosis (HANDOFF-2026-07-23): first session through the public tree takes 15s+ when it works at all, far beyond the old ~8s probe window. - connect(): mesh ULA probed inside a 60s budget, 15s per-phase timeouts. - ArchyVpnService: session warmer probes every saved node ULA as soon as the tunnel is up (5s cadence first minute, then 60s keep-warm) so the UI hits a warm session and it never idles out. - Served APK: 0.5.5 (vc25); handoff updated with 25-ping evidence that public-tree discovery currently fails outright (supports the private-tree infra decision). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -126,3 +126,19 @@ Chain of findings, each verified live:
|
||||
broader public mesh.
|
||||
- **Upstream:** report the direct-peer session-path asymmetry to
|
||||
jmcorgan/fips (0.4.1).
|
||||
|
||||
## App-side recommendations implemented (23:30–23:50, Mac agent — 0.5.5/vc25)
|
||||
|
||||
- Connect probe: mesh ULA now probed inside a **60s budget** with 15s
|
||||
per-phase timeouts (rides out TCP retransmit backoff), replacing the old
|
||||
~8s window.
|
||||
- **Session pre-warm**: the VPN service starts probing every saved node ULA
|
||||
the moment the tunnel is up (5s cadence for the first minute, then a 60s
|
||||
keep-warm tick) — discovery/handshake cost is paid in the background, and
|
||||
the session never idles out while the mesh is connected.
|
||||
- Extra evidence for the infra decision: from the phone on 5G, a 25-packet
|
||||
ping burst to the node's ULA (25s continuous traffic, post-nginx-fix)
|
||||
still got **zero replies** — discovery through the public tree isn't just
|
||||
slow, it's failing outright. The private-tree option (detach fleet from
|
||||
the public v0l mesh, root at vps2) looks like the real fix; app-side
|
||||
patience only helps once discovery succeeds at all.
|
||||
|
||||
Reference in New Issue
Block a user