Under -debug, surface the captcha/auth diagnostics that were previously
missing: a redacted breakdown of each error_code:14 challenge (parsed
fields, redirect base, session_token preview/length), the chosen solve
mode per attempt, the v2 page parse summary (show_type, pow difficulty,
slider availability, script URL), and the raw error map whenever an
error_code:14 is not recognized as a solvable captcha (so the next VK
format change is diagnosable without a code edit).
All new lines go through debugThrottledf, which emits at most once per
3s per key, so eight concurrent streams hitting the same challenge no
longer flood the log.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01HhExd8rxbEfhzJjBiawRQH
VK's error_code:14 ("Captcha need") response now omits captcha_sid and
captcha_img, providing only redirect_uri with an embedded session_token
for the Smart Captcha v2 flow. ParseVkCaptchaError returned nil on the
missing fields, so the auto-solver was never invoked and every stream
failed auth. Make captcha_sid and captcha_img optional; the v2 solver
only needs redirect_uri + session_token.
Also build Android for all ABIs (arm64 prioritized first, then arm, x86,
x86_64) in CI and release workflows, client and server cores alike.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01HhExd8rxbEfhzJjBiawRQH
Port the WRAP layer. Obfuscate DTLS packets before they enter TURN ChannelData with per-packet ChaCha20-XOR, and fail fast on invalid WRAP keys.
Co-Authored-By: Anton Monakhov <[email protected]>
Implement multi-lane transport (bonding) for VLESS to aggregate bandwidth
from multiple KCP/DTLS sessions. Added environment-based KCP tuning
and throughput statistics.
- Support multi-lane bonding in client and server
- Add KCP profiles (fast, balanced, slow) via VK_TURN_KCP_PROFILE
- Auto-detect bonding streams via magic prefix
- Add real-time throughput logging for active connections
Added SavedProfile struct and persistence logic in vk_profile.json.
Implemented automatic interception of real browser telemetry (browser_fp, device JSON, headers) during manual captcha solves.
Integrated saved profile reuse in automated solve flows to bypass BOT status.
Restored dynamic MD5-based fingerprint generation as a fallback mechanism.
Implement navigator.sendBeacon for more reliable token delivery.
Add server-side success_token extraction in generic_proxy.
Make HTTP server shutdown non-fatal on iSH (ignores context deadline exceeded during cleanup)
Increase manual captcha timeout to 3 minutes using an independent context
Increase global DNS resolver timeout from 5s to 10s to improve stability
Fixed 'SIGSYS: bad system call (futex_time64)' by using blocking accept and avoiding Go's time.Sleep in spin-loops.
Fixed 'TCP accept error: file file+net ish-conn: file exists' by implementing custom ishConn that bypasses Go's network poller.
Fixed 'route ip+net: netlinkrib: invalid argument' by using directNet bypass in TURN client.
Fixed 'TCP accept error: bad file descriptor' by retaining os.File reference to prevent GC from closing the FD.
Optimized slider captcha solver to avoid CPU/RAM-heavy image rendering.
Added legacy TCP accept support specifically for iSH on linux/386 arch.
Fixed 'accept4: function not implemented' error in VLESS mode on iSH.