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

Reply via email to