Commits
Sessions are now auto-named from directory + command when no name is
given: `pty run -- node server.js` creates `myapp-node-server`. Use
`--name` for explicit names. Old positional syntax still works with
a hint to migrate.
The interactive wizard auto-generates the name as you type the
command. Manually editing the name stops auto-generation. Filter
results now rank name matches above path/command matches.
Fix: add postinstall script to chmod +x node-pty's spawn-helper
binary. npm strips the executable bit during install, causing
posix_spawnp to fail on global installs.
Fix: move @preact/signals-core from optional peer dependency to
regular dependency — the CLI now uses it since the interactive
list rewrite.
The EXIT packet handler in attach() didn't set exitHandled, so the
socket close event called onExit a second time, which added a
duplicate stdin listener via resumeTui → setupInput.
Added regression test that types after session exit and verifies
characters aren't doubled.
Node refuses to run .ts files from node_modules/. The CLI and daemon
now run from dist/ (compiled by tsc). Tests and exports updated to
use dist/ for subprocess spawning.
npm run build is now required before using the CLI locally.
Node refuses to type-strip .ts files under node_modules/, so
`pty` failed after `npm install -g`. The CLI entry point is now
bundled to a single bin/cli.js via esbuild during prepublishOnly.
The testing and TUI exports remain .ts — consumers' toolchains
handle those.
TUI framework (src/tui/):
Declarative UI with reactive signals, two-pass layout engine,
cell-buffer diffing, and 5 color themes. Exported as ptym/tui.
Includes text wrapping with word-boundary breaking and a
highlight callback for per-character span styling.
Demo apps (demos/):
Three standalone apps that showcase the framework and the
PTY testing library:
- file-browser: two-pane directory tree + file preview with
soft-wrap and markdown highlighting
- reminders: full CRUD backed by .md files with YAML frontmatter,
three views (grouped list, kanban board, calendar), overlays
- agent-teams: live dashboard of a simulated AI agent hierarchy
with real-time timeline, inter-agent messages, progress bars
Each demo has unit tests and PTY integration tests that verify
actual rendered screen output — not just string presence, but
layout correctness (gutter alignment, panel sizing, selection
indicators, overlay compositing).
Testing improvements:
- JSDoc on all Session methods and type fields
- docs/testing.md: server-mode API (attach, reconnect, resize,
connectToExisting, hasExited)
- Fix timing-sensitive filter test (waitForText instead of sleep)
README:
- Beta notice
- Expanded testing library section with realistic example
- TUI framework alpha notice with demo descriptions
Also: vitest.config.ts, demos/run convenience script.
Resize to the smallest dimensions across all connected writable clients
Sessions are now auto-named from directory + command when no name is
given: `pty run -- node server.js` creates `myapp-node-server`. Use
`--name` for explicit names. Old positional syntax still works with
a hint to migrate.
The interactive wizard auto-generates the name as you type the
command. Manually editing the name stops auto-generation. Filter
results now rank name matches above path/command matches.
Fix: add postinstall script to chmod +x node-pty's spawn-helper
binary. npm strips the executable bit during install, causing
posix_spawnp to fail on global installs.
Fix: move @preact/signals-core from optional peer dependency to
regular dependency — the CLI now uses it since the interactive
list rewrite.
TUI framework (src/tui/):
Declarative UI with reactive signals, two-pass layout engine,
cell-buffer diffing, and 5 color themes. Exported as ptym/tui.
Includes text wrapping with word-boundary breaking and a
highlight callback for per-character span styling.
Demo apps (demos/):
Three standalone apps that showcase the framework and the
PTY testing library:
- file-browser: two-pane directory tree + file preview with
soft-wrap and markdown highlighting
- reminders: full CRUD backed by .md files with YAML frontmatter,
three views (grouped list, kanban board, calendar), overlays
- agent-teams: live dashboard of a simulated AI agent hierarchy
with real-time timeline, inter-agent messages, progress bars
Each demo has unit tests and PTY integration tests that verify
actual rendered screen output — not just string presence, but
layout correctness (gutter alignment, panel sizing, selection
indicators, overlay compositing).
Testing improvements:
- JSDoc on all Session methods and type fields
- docs/testing.md: server-mode API (attach, reconnect, resize,
connectToExisting, hasExited)
- Fix timing-sensitive filter test (waitForText instead of sleep)
README:
- Beta notice
- Expanded testing library section with realistic example
- TUI framework alpha notice with demo descriptions
Also: vitest.config.ts, demos/run convenience script.