Implement Windows console raw-mode support
- Dominant language
- Rust
- Stars
- 53
- Forks
- 16
- Avg merge
- 4h 22m
- Merged PRs (30d)
- 46
Description
## Summary
`std::sys::windows::tty` currently exposes the portable terminal surface but every mutation function returns `-ENOSYS`. Interactive Wave applications therefore cannot enable raw input or restore the console state on Windows.
## Related issue
- #385
## Scope
Provide a Windows console-mode implementation using native console APIs. Keep Unix termios details inside Unix providers and translate only the portable behavior required by the public TTY layer.
## Acceptance criteria
- Console state can be queried, saved, switched to raw/nonblocking-compatible input, and restored.
- Redirection to a pipe or regular file is detected and handled without corrupting console state.
- Restoration is safe when activation failed partway through.
- Native handles are not leaked.
- Windows-native tests or a deterministic smoke harness cover enable/restore behavior.
- Public comments explain which Unix flags have no Windows equivalent.
Contributor guide
Research direction
Start by inspecting std::sys::windows::tty and the portable public TTY layer, then compare the Unix providers to identify the behavior that must be preserved without copying termios details. Use a Windows-native test or deterministic smoke harness to verify query, enable, restore, redirection handling, partial-failure safety, and handle cleanup; document unsupported Unix flags.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, operating-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100