Fix Windows Backspace; patch dependency advisories - #55
Merged
Conversation
Windows console fix (client only): - The Windows console delivers legacy key codes to raw byte reads (Backspace as 0x08), whereas a Unix PTY expects the xterm convention 0x7f (DEL) to match the default stty erase. The client now enables virtual-terminal console modes after raw mode (ENABLE_VIRTUAL_TERMINAL_INPUT on stdin, ENABLE_VIRTUAL_TERMINAL_PROCESSING on stdout) via a new Windows-only windows-sys dependency, so it emits the xterm byte sequences the remote expects and renders the remote's ANSI output. No-op on Unix. Verified live: Windows etr -> Unix etrs, Backspace now erases correctly. Advisory bumps (pre-existing transitive deps, not introduced here): - crossbeam-epoch 0.9.18->0.9.20 (RUSTSEC-2026-0204, dev-only via criterion) - anyhow 1.0.102->1.0.103 (RUSTSEC-2026-0190 unsoundness) A separate, unresolved bug (Windows: first line of input not echoed until Enter) is documented in NOTES.md and tracked in issue #54. Fixes attempted for it are deliberately NOT included here. Assisted-By: Claude Opus 4.8 (1M context)
Reconcile with #52 (project logo, which took v0.6.3 and already bumped crossbeam-epoch). Bump to v0.6.4, keep the Windows Backspace fix + anyhow advisory bump, and combine NOTES.md. Assisted-By: Claude Opus 4.8 (1M context)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Focused replacement for #53 — keeps only the confirmed-working fix plus the security bumps; the unresolved first-line-echo investigation is documented and tracked separately (not included here).
What & why
Windows Backspace (client only). The Windows console delivers legacy key codes to raw byte reads (Backspace →
0x08), whereas a Unix PTY expects the xterm convention0x7f(DEL) to match the defaultstty erase, so Backspace misbehaved from a Windowsetrclient. The client now enables virtual-terminal console modes after raw mode —ENABLE_VIRTUAL_TERMINAL_INPUT(stdin) so keys are emitted as the xterm byte sequences the remote expects, andENABLE_VIRTUAL_TERMINAL_PROCESSING(stdout) so the remote's ANSI renders — via a new Windows-onlywindows-sysdependency. No-op on Unix. Verified live (Windowsetr→ Unixetrs): Backspace now erases correctly.Advisory bumps (pre-existing transitive deps, not introduced by this change):
crossbeam-epoch0.9.18→0.9.20 — RUSTSEC-2026-0204 (dev-only viacriterion; not in the shipped binaries)anyhow1.0.102→1.0.103 — RUSTSEC-2026-0190 (unsoundness)Version bumped 0.6.2 → 0.6.3; NOTES.md and man pages updated.
Known issue (NOT fixed here — see #54)
A separate Windows bug — the first line of input isn't echoed until Enter — remains unresolved. It's documented in NOTES.md and tracked in #54, including the diagnosis (client batches the first line) and the two attempted-and-reverted fixes. Deliberately excluded from this PR so the Backspace fix and security bumps can land cleanly.
Test plan
cargo fmt --check,cargo clippy --all-targets -D warnings,cargo test(110) — green on Windows (x86_64-pc-windows-msvc) and Linux (WSL Fedora).🤖 Generated with Claude Code