This release introduces major improvements, including the highly requested ability to detach and attach sessions, as well as ProxyCommand support. It also ships with significant stability enhancements, resolving memory retention issues, blocking operations, and connection timeouts under high load.
🚀 Features
- Session Management & Attachment (#35): Implement robust session management. You can now detach from sessions without terminating them and safely discard previous terminal output upon reattachment (#39).
- ProxyCommand Support: Added support for
ProxyCommand, which implies TCP proxy mode for more flexible routing. - Network Diagnostics: Added an RTT callback for heartbeat acknowledgements to better monitor connection latency on the client side.
🐛 Bug Fixes
- Windows 11 ARM64 Display: Fixed Neovim (0.12.3) display misalignment on Windows 11 ARM64 by providing exact terminal dimensions during ConPTY creation (removes previous
-1column width offset). - Hanging Accept Connections (#36): Fixed an issue where parked local connections (e.g., from
ssh-addorgitcommit signing) hung indefinitely if the client never claimed them. These are now properly reaped after a timeout. - Blocking Operations & Memory Leaks (#37): Resolved critical blocking operations, goroutine leaks, and memory retention issues during connection teardown, stream replacement, and repeated attach cycles. Stream writes are now interruptible.
- Client Concurrency: Fixed potential defer and goroutine bugs caused by named return values, and ensured the active checker is properly initialized before client setup.
🛠 Transport & Recovery Improvements
- Simplified Transport Recovery: Replaced proxy packet replay with PTO (QUIC) and RTO (KCP) resets on reconnect. Packets are now dropped when the backend is unavailable, relying natively on the transport layer to recover lost traffic.
- Crypto Delegation: Removed unnecessary proxy crypto delegation for non-attachable KCP connections.
📚 CI & Documentation
- CI/CD Automation (#38): Added automatic pre-release deployment via GitHub Workflows and fixed GoReleaser SemVer parsing errors.
- Documentation Updates: Updated UDP reconnect and timeout configuration docs, and added new screenshots demonstrating auto-reconnect and
tsshdattach sessions.
New Contributors
- @aliceisjustplaying made their first contribution in #36
Full Changelog: v0.1.8...v0.1.9