You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v1.0.3 M2: checked terminal I/O and a typed terminal-loss event
When the terminal went away without a SIGHUP (a suspended or background pi),
the stdin read source ignored read() <= 0 and fired without end: pi ran at
~135% CPU until killed (reproduced 2026-10-05). Now reads, writes and the
raw-mode calls are checked; the first terminal loss stops input and output
and is reported once through Terminal.setIOErrorHandler / TUI.setIOErrorHandler
(default no-op for other conformers). TerminalIOError carries the operation,
descriptor and saved errno; isTerminalLoss is the upstream set (EIO, EPIPE,
ENOTCONN, ENOTTY) plus end-of-file on a terminal (Darwin returns EOF on a
closed pty master). Output uses write(2) with partial-write and EINTR handling
instead of FileHandle.write, and F_SETNOSIGPIPE on Darwin (no process-wide
SIGPIPE change). MiniTui reports; the host (PiSwiftTui) decides the exit.
MiniTui 578 -> 596, no existing test changed.