Releases: nicobailon/pi-interactive-shell
Releases · nicobailon/pi-interactive-shell
v0.13.0
Changed
- Bundled runtime skills now live under
skills/, with only the canonicalpi-interactive-shellskill auto-registered. The Codex workflow skills remain packaged underexamples/skills/as opt-in copies alongside the example prompt templates. - Codex docs now include
gpt-image-2guidance across the optionalcodex-cliexample skill plus the shared README and interactive-shell skill, covering natural-language prompting,$imagegen, and-ireference-image workflows. - Replaced the legacy
@sinclair/typeboxruntime dependency withtypebox. - Upgraded
zigptyfrom^0.0.6to^0.1.6to pick up newer PTY prebuilds, including the Linux x64 path affected by the reported SIGILL crash. - Added first-class Cursor spawn support (
spawn.agent: "cursor"and/spawn cursor) mapped to the Cursor CLIagentexecutable by default, with default args set to--model composer-2-fast, fresh/worktree support, and Pi-only fork preserved. - Added an optional
examples/skills/cursor-clireference skill and updated spawn docs/tool help/tests so Cursor is treated as a peer to Pi/Codex/Claude in structured spawn flows. - Updated the optional
codex-cliexample skill to prefergpt-5.5for Codex CLI work.
Fixed
- Migrated the interactive-shell tool schema from
@sinclair/typeboxtotypebox1.x so packaged installs follow Pi's current extension runtime contract.
Removed
- Removed the legacy npm bin installer (
scripts/install.js) and its package metadata.pi install npm:pi-interactive-shellis now the only supported installation path.
v0.12.0
[0.12.0] - 2026-04-12
Added
- Inline threshold trigger support for regex monitors via
threshold: { captureGroup, op, value }withlt,lte,gt, andgteoperators. - First-class
file-watchmonitor strategy withmonitor.fileWatchconfig (path,recursive,events) and compact event lines (EVENT path). - Monitor lifecycle notifications (
interactive-shell-monitor-lifecycle) with explicit terminal reasons:stream-ended,script-failed,stopped, andtimed-out. - New monitor query fields:
monitorStatus,monitorSinceEventId, andmonitorTriggerId.
Changed
- Monitor mode now allows generated internal commands for
file-watch, so users can start file watchers without providing a shellcommand. - Monitor validation is now stricter for strategy-specific config (
fileWatchandpollusage) and threshold trigger requirements. - Monitor coordinator now tracks per-session monitor state (status, strategy, trigger ids, event count, last event metadata, terminal reason).
- Background session UI/listing now renders monitor sessions with monitor-specific context (strategy/event count) instead of plain generic running/exited labels.
v0.11.1
Changed
- Monitor event callback now guards against emitting after the monitor is disposed, preventing stale queued notifications from a dismissed session.
- Poll-diff strategy now wraps the command in a recurring loop and diffs per-interval samples instead of accumulating full PTY output.
- Monitor event history cleanup retries until referenced monitor/session/active entries are gone, preventing history leaks from one-shot timers firing too early.
Fixed
- Fixed
awaiton already-resolved detector command promise (removed unnecessaryawaiton non-async return).
v0.11.0
Added
- New
mode: "monitor"forinteractive_shellto run headless background commands and wake the agent only when output lines matchmonitorFilter. - New
monitorFiltertool parameter supporting plain-text substring matching and/regex/flagsmatching. - Monitor event notifications now wake the agent with
triggerTurnand includesessionId, matched text, and the matched line. - Regression coverage for monitor mode startup validation and ANSI-stripped line matching.
- Regression coverage for suppressing repeated wakeups when the exact same cleaned matching line is emitted more than once in a single monitor session.
Changed
- README, tool help, and the bundled
examples/skills/interactive-shell/SKILL.mdnow document monitor mode usage, event-driven behavior, and monitor session lifecycle with existing background-session APIs. - Monitor mode now suppresses repeated wakeups for the exact same cleaned matching line within a single monitor session, while still waking on distinct matching lines.
Fixed
- Slash-prefixed plain-text filters like
/tmp/logare now treated as literal text instead of being misparsed as regex literals. - Invalid monitor regex errors now preserve the underlying parser message for easier debugging.
v0.10.8
Added
submittool parameter forinteractive_shellsession input so the agent can type text and press Enter in one call, avoiding the common failure mode where commands are left sitting in editor-based TUIs like pi.- Regression tests covering
submit: truefor plain text input and bracketed paste input.
Changed
- PTY backend switched from
node-ptytozigptyinpty-session.ts, keeping the existingPtyTerminalSessionbehavior and higher-levelinteractive_shellAPI unchanged. - Input docs now explicitly state that raw
inputonly types text and does not submit it. - README,
SKILL.md, and tool help now prefersubmit: trueorinputKeys: ["enter"]over relying on\nfor command submission. - The registered
interactive_shellprompt snippet now nudges agents to usesubmit=truewhen sending slash commands or prompts to an existing session. - Structured input now emits bracketed paste content before trailing key presses, so combinations like paste-plus-Enter submit in the expected order.
Removed
- Removed the
node-ptymacOS spawn-helper permission workaround from runtime and install scripts (spawn-helper.ts,scripts/fix-spawn-helper.cjs, and thepostinstallhook).
v0.10.7
[0.10.7] - 2026-04-04
Added
- Prompt-bearing monitored spawn for
/spawn, so users can launch delegated hands-free or dispatch sessions like/spawn claude "review the diffs" --dispatchwithout dropping down to raw tool calls. - Native startup prompt support on structured
interactive_shellspawn params viaspawn.promptfor Pi, Codex, and Claude.
Changed
/spawnnow parses quoted positional prompt text plus--hands-freeor--dispatch, while plain/spawnremains an interactive overlay launch.- README and tool docs now spell out that
/spawnand structuredspawnshare the same resolver semantics, and thatCtrl+Gonly applies after taking over a genuinely monitored session. - README now includes a dedicated prompt-bearing
/spawnsubsection so the interactive vs monitored split is easier to find.
v0.10.6
Added
- Multi-agent spawn support for
pi, Codex CLI, and Claude Code./spawncan now launch the configured default agent, accept explicit agent overrides like/spawn codex, and support--worktreefor spawning into a separate git worktree. - First-class
spawnparams on theinteractive_shelltool so the agent can use the same spawn abstraction directly instead of building raw command strings by hand. - Regression coverage for dispatch background recovery when a backgrounded session cannot be looked up after overlay teardown.
Changed
- Spawn config now lives under a nested
spawnobject withdefaultAgent,shortcut,commands,defaultArgs,worktree, andworktreeBaseDir. - The spawn shortcut now launches the configured default spawn agent instead of always launching Pi.
- Pi-only fork validation is shared between
/spawnand theinteractive_shelltool, soforknow fails fast with a clear error for Codex and Claude. - README and tool schema examples now document structured spawn usage, multi-agent
/spawncommands, and worktree settings.
Fixed
- Pi fork now validates the persisted source session before creating a worktree, so failed fork attempts no longer leave stray worktrees behind.
- Dispatch background recovery now releases the source session and disposes stale monitor state if the expected background session entry is missing after handoff.
- Generated worktree paths now include enough uniqueness to avoid collisions during rapid repeated spawns.
v0.10.5
Added
spawnShortcutconfig setting for the fresh-session overlay shortcut. Defaults toalt+shift+pand is pinned at startup likefocusShortcut, so changes apply on reload or restart.
Changed
- Fresh-session shortcut registration now reads from config at startup instead of a hardcoded constant, so custom
spawnShortcutvalues are applied consistently. - Docs and config parity tests now cover
spawnShortcutdefaults and README alignment.
Fixed
- Overlay row/header rendering now clamps metadata and row content at narrow widths, preventing visual overflow when focus badge + PID metadata are wider than the available space.
v0.10.4
Fixed
- Focus shortcut handling now uses a terminal input listener while the overlay is open, so the configured
focusShortcuttoggles focus/unfocus reliably even when editor-level shortcuts would not fire. The default shortcut is nowalt+shift+finstead of `alt+`` for better terminal compatibility on macOS and to avoid Pi keybinding conflicts. - Overlay shortcut interception now ignores raw key release and key repeat events, which prevents the focus toggle from firing twice on Kitty-enabled terminals and cancelling itself out.
- Overlay focus state is now more obvious visually: the shell shows a persistent
SHELL FOCUSEDorEDITOR FOCUSEDbadge and switches to a stronger border treatment when focused. alt+/side chat is blocked whilepi-interactive-shellis open and shows a warning instead of opening on top of the shell overlay.
v0.10.3
[0.10.3] - 2026-04-04
Changed
- Added a
promptSnippetforinteractive_shellso Pi 0.59+ includes the tool in the default prompt tool list and keeps delegation guidance explicit (dispatchpreferred by default).