Hi Tim and Frode, Thanks for the review, and Frode, thanks for trying the PR in phasync/tui. I’m holding off on opening the vote on November 12.
Tim, your lease examples match the behavior. The last release restores the saved terminal attributes on POSIX or the saved input mode on Windows. If the terminal was already raw, that’s the state it restores, even if it was changed while the lease was active. Dropping the last reference attempts to release the lease. If explicit restoration fails, restoreMode() throws and leaves the token active so the caller can retry. I’ve documented the destruction behavior in the stub and added NoDiscard to enableRawMode(). A longer sequence timeout is valid: the wait is capped at the remaining overall time. readLine() returns the submitted value without the Enter delimiter, like readSecret(), while preserving other whitespace. I’d keep Key::Resize for now as a notification to query the size. Frode, it’s helpful to see raw mode and size used on their own. I’m keeping the reads in this revision for small CLI tools that need portable key and hidden input. On a native Windows console, readKey() reads console records. The raw-mode lease leaves the existing VT settings alone, and Ctrl+C is available as input. I agree that a richer decoder for modifiers, mouse and paste deserves its own design. fromStreams(STDIN, STDOUT) covers the usual CLI case. fromStdio() resolves the current native standard handles at operation time; fromStreams() keeps the resources passed in. The patch is up at https://github.com/php/php-src/pull/23941. I’ve prepared examples for the leases and sequential reads, and verified them with a Linux PTY and a scripted stream. I’ll announce the RFC revision here once it’s published, before proposing a new voting date. Regards, Pratik On Fri, 06 Nov 2026 09:21:48 +0000, Pratik Bhujel <[email protected]> wrote: Hi all, I plan to open voting on the Io\Terminal RFC on Thursday, November 12. <https://wiki.php.net/rfc/io_terminal> If you have any remaining concerns, please let me know before then. Regards, Pratik
