Skip to content

Fix Windows Backspace; patch dependency advisories - #55

Merged
l1a merged 2 commits into
mainfrom
fix/windows-backspace-only
Jul 10, 2026
Merged

Fix Windows Backspace; patch dependency advisories#55
l1a merged 2 commits into
mainfrom
fix/windows-backspace-only

Conversation

@l1a

@l1a l1a commented Jul 10, 2026

Copy link
Copy Markdown
Owner

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 convention 0x7f (DEL) to match the default stty erase, so Backspace misbehaved from a Windows etr client. 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, and ENABLE_VIRTUAL_TERMINAL_PROCESSING (stdout) so the remote's ANSI renders — via a new Windows-only windows-sys dependency. No-op on Unix. Verified live (Windows etr → Unix etrs): Backspace now erases correctly.

Advisory bumps (pre-existing transitive deps, not introduced by this change):

  • crossbeam-epoch 0.9.18→0.9.20 — RUSTSEC-2026-0204 (dev-only via criterion; not in the shipped binaries)
  • anyhow 1.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).
  • Manual (Windows client → Unix host): Backspace erases at the shell and in editors; remote ANSI colors render.

🤖 Generated with Claude Code

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)
@l1a l1a self-assigned this Jul 10, 2026
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)
@l1a
l1a merged commit 96ccfc9 into main Jul 10, 2026
23 checks passed
@l1a
l1a deleted the fix/windows-backspace-only branch July 10, 2026 06:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant