DuProcess
2a6f28d529
Fix native-v1 connection break, server panic, and resource leaks
...
The native-v1 work changed the UDP wire format (HEADER_LEN 42->58) without a
version bump, so a current client silently timed out against the older
still-deployed server. The server just needed redeploying; alongside that,
fix the robustness bugs surfaced while restoring the connection:
- Server: clamp terminal size to >=1 at every PTY/parser resize site. A client
reporting a 0x0 terminal made vt100::Parser::set_size panic ("attempt to
subtract with overflow") and took down the whole single-threaded daemon.
- Client: treat size() == Ok((0,0)) like a missing size and fall back to 80x24
instead of sending 0x0 to the server.
- Reap abandoned sessions and their shells. PtyHandle now retains the child and
kills it on drop, and the cleanup task removes clientless, non-prewarmed
sessions after the grace period. Previously the shell leaked forever (one
zsh per abandoned session); prewarmed sessions still stay hot.
- Evict half-finished native handshakes (pending_native) after 30s so an
unauthenticated ClientHello flood can't grow the map without bound.
- Drop the per-client, per-packet vt100 Screen clone on the output hot path and
remove the write-only last_screen field.
- Guard load_or_create_server_secret against a <32-byte secret file (was an
index-out-of-range panic at startup).
- Reconcile stream flow-control credit (client and server) when StreamData hits
a missing writer, so a closed/unknown stream can't wedge the peer's window.
Adds a unit test for session reaping. cargo fmt + cargo test green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 10:06:27 -04:00
DuProcess
fb5c25ea0b
Add stream window flow control
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-14 09:08:19 -04:00
DuProcess
dd9c4daeda
Report server version in doctor
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 22:34:09 -04:00
DuProcess
f66de64b3f
Support host-config login users
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 22:32:45 -04:00
DuProcess
1b1278f39e
Add explicit environment propagation
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 22:30:15 -04:00
DuProcess
38e2fa091a
Ignore stale packets during attach resume
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 22:21:20 -04:00
DuProcess
76e2e980f1
Avoid PTY allocation for forward-only mode
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 22:18:15 -04:00
DuProcess
7fec3592f5
Honor more SSH config in native auth
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 22:13:47 -04:00
DuProcess
0575cf678f
Add native doctor auth diagnostics
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 22:01:27 -04:00
DuProcess
6d1e9d3065
Add background forwarding mode
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 15:55:14 -04:00
DuProcess
3642de71e4
Add native dynamic port forwarding
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 15:48:49 -04:00
DuProcess
64b00783fd
Bound forwarded stream buffering
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 15:43:42 -04:00
DuProcess
6a0f12c59e
Add native remote port forwarding
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 15:41:48 -04:00
DuProcess
6aa81d0ce3
Add native local port forwarding
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 15:36:10 -04:00
DuProcess
f324a7627f
Support encrypted native identity keys
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 15:26:31 -04:00
DuProcess
55a0fc1ab4
Add ssh-agent native auth
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 15:21:21 -04:00
DuProcess
e7f3679fc1
Wire native Dosh auth runtime
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 11:54:24 -04:00
DuProcess
26fc863149
Add native Dosh host trust foundation
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 11:32:01 -04:00
DuProcess
80166eae15
Keep Dosh alive across stale UDP reconnects
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-13 10:20:03 -04:00
DuProcess
3a38a9da80
Add public comparison benchmarks and SSH import
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-12 14:27:58 -04:00
DuProcess
4ac5d63faf
Avoid login shell for Dosh sessions listing
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-12 13:59:12 -04:00
DuProcess
83b2d9d70c
Quote Dosh sessions remote command
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-12 13:58:16 -04:00
DuProcess
e3f61a4efb
Add Dosh host workflows and reconnect QoL
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-12 13:48:44 -04:00
DuProcess
c56e8f9fe1
Add guarded local typing prediction
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-12 13:39:27 -04:00
DuProcess
03df1c6ed7
Ignore stale Dosh snapshots
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-12 13:33:55 -04:00
DuProcess
32da29e2fb
Render Dosh frames in stream order
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-12 13:32:07 -04:00
DuProcess
f8df38efb0
Stop drawing client overlay over TUIs
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-12 13:03:39 -04:00
DuProcess
fd7849f889
Forward terminal input bytes without cursor rewriting
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-11 22:22:03 -04:00
DuProcess
6580e75fbf
Resolve SSH aliases for Dosh UDP host
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-11 22:09:55 -04:00
Codex
93a210b420
Normalize application cursor arrows
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-11 16:11:56 -04:00
Codex
63a1cfe3a3
Use raw terminal input without cursor translation
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-11 15:41:06 -04:00
Codex
2257aeca0b
Improve terminal input and client cleanup
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-11 14:32:55 -04:00
Codex
14cdd5fd56
Fix stale client rejection and terminal cursor mode
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-11 14:14:15 -04:00
Codex
8ffbb07bfa
Fix terminal resize handling and cached updates
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-11 10:20:58 -04:00
Codex
66c4c97c9d
Use fresh implicit sessions and raw live terminal output
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-11 10:10:13 -04:00
Codex
3ad8f95833
Add dosh update command
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-11 09:49:53 -04:00
Codex
da60b71984
Gate client timing logs behind verbosity
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-11 09:45:55 -04:00
Codex
0eca4f1cf4
Add fresh default sessions and terminal status handling
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-11 09:41:46 -04:00
Codex
babfb204c3
Use installed dosh-auth path for SSH bootstrap
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-11 09:03:20 -04:00
Codex
12beb04d4d
Support SSH aliases in Dosh client installs
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-11 08:46:24 -04:00
Codex
555d738a85
Initial Dosh implementation
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
2026-06-11 08:42:28 -04:00