What's New in v1.4.0
✨ New Features
- SOCKS5 username/password authentication (RFC 1929) — Optionally require credentials on the local SOCKS5 listener via
socks_userandsocks_passinclient_config.json. Useful for shared or LAN setups where you want to control who can use your tunnel. - Server upstream proxy (
upstream_proxy) — Route all outbound connections from the VPS through a local SOCKS5 proxy such as Cloudflare WARP. Sites that block datacenter IPs see the proxy's IP instead. Setupstream_proxyinserver_config.json. - Graceful client shutdown — On Ctrl+C the client sends RST frames for all active sessions so the server releases upstream connections immediately rather than waiting for the idle GC timer.
- Server-side idle session GC — Upstream TCP connections orphaned by ungraceful client disconnects (killed process, network drop, sleep/wake) are now force-closed after 10 minutes, preventing slow resource exhaustion over repeated disconnect cycles.
⚡ Performance
- download throughput improvement — Poll worker idle sleep reduced from 50 ms to 10 ms, keeping workers in the pool fast enough to sustain concurrent download polls without gaps.
- 3 poll workers per deployment key — Each
script_keysentry now spawns 3 concurrent poll workers, scaling parallelism proportionally with the number of configured endpoints.
🛡️ Stability
- Session receive queue 64 → 1024 frames — The per-session inbox can absorb large multi-user fan-out bursts without dropping connections.
- Graceful receive backpressure — Instead of immediately killing a session when the inbox is full (which caused mid-stream drops during brief GC pauses), the server now waits up to 5 s for the consumer to drain before giving up.
- Drain window fix — Any non-empty client batch now triggers the short active drain window, so connection setup and teardown are no longer gated on the 8-second long-poll window.
- Idle GC respects outbound traffic — A long pure-download session (large file, video stream) with no client→server frames is no longer incorrectly force-closed by the idle GC.
📖 Documentation & Developer Tools
- Windows Server setup guide — Step-by-step NSSM instructions in both English and Persian READMEs for running
goose-serveras a Windows service. - End-to-end benchmark harness (
bench/) — Realgoose-client+goose-serverloopback suite measuring throughput, TTFB, session rate, and idle CPU. Runbash bench/bench.shto validate performance impact before opening a PR.