d8dde1438d
Three runtime bugs and fixture issues fixed: 1. stdin registered both "readable" and "data" handlers, causing double input processing in real PTY. Now only uses "data" handler (works for both real TTY and fake PassThrough streams). 2. dispose() didn't call stdin.unref() after restoring raw mode, keeping the event loop alive and causing raw mode exit tests to hang. 3. PTY fixtures used JSX syntax which tsx compiles without vue-jsx plugin, producing non-function slot values. Converted to h() with function slots. Also: term.ts now passes rows arg to node-pty for viewport-dependent tests, and exit-double-raw-mode fixture uses __READY__ protocol. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>