fix: support Windows TUI control - #16
Conversation
|
Landed the standalone cursor-response fix in #25. The OpenTUI host now forwards actual query-time positions from Ghostty, including split and repeated queries, instead of dropping them or injecting home-position reports. The real-PTY regressions and Linux CI pass. This only addresses the shared response path. Leaving the Windows transport and ConPTY teardown work in this PR for Windows-native verification. |
|
The shared cursor-response fix is now released in Terminal Control 1.1.1 on crates.io and npm. Fresh registry-installed CLIs pass split/repeated cursor queries and the OpenTUI host checks, with actual query-time positions and no unsolicited home-position reports. Windows session transport and ConPTY teardown remain outside this release and still need Windows-native verification. |
Summary
EIOhandlingRoot cause
OpenCode's TUI waits for a standalone
CSI 6 ncursor-position response during startup. The host only replied as part of a larger OpenTUI capability probe. Persistent sessions were also compiled out on Windows because their control transport was implemented only with Unix sockets.Impact
Windows can now launch and capture OpenCode through the PTY and orchestrate a persistent OpenCode TUI with
start,show,send,wait, andstop. Unix and macOS continue using the existing Unix-socket implementation. Windows workspace attachment remains out of scope.Validation
cargo fmt --all -- --checkcargo check --lockedcargo test --locked --lib shot::tests(10 passed)GOT:HELLO)termctrl send, wait forORCHESTRATED_TUI_OK, capture response, and stop cleanly