Skip to content

v0.11.0 — the full-screen app

Choose a tag to compare

@lavindeep lavindeep released this 02 Jul 20:15
f85f418

ShellPilot v0.11.0 — the full-screen app

ShellPilot now opens as a persistent full-screen terminal app on an interactive TTY: a scrolling transcript pane, a framed modal input dock, and a pinned status bar. The classic line-based REPL remains available via --legacy-ui (or SHELLPILOT_UI=legacy) and shares the same renderers.

The app

  • Modal input dock — the border says what it is asking: faint while idle, amber ╭─ approve? ─╮ for a pending approval, red ╭─ type "run" to execute ─╮ for high-risk actions.
  • Type-ahead queue — keep typing while a turn runs; the staged message fires at turn end, and Up-arrow recalls it.
  • Worker-thread turns — streaming, scrolling, and Ctrl-C stay live mid-generation.
  • Clean cancellation — Ctrl-C aborts a generation mid-stream, kills a running command's process group immediately, or declines the pending approval; conversation history and the on-disk session roll back consistently.
  • Thinking trails — reasoning models stream their thinking into a live, collapsible trail (display-only, never fed back).
  • Slash menu and completion — a filtered command menu above the dock, Tab path completion for /cwd set, /attach, and /export, and background-cached model-name completion for /model use.
  • Diffs and tool calls — approval previews show the entire diff (click or Ctrl-O to expand/collapse); tool calls render by subject; !<cmd> output is captured into the transcript.
  • Status bar — workspace, model, profile, git branch, locality, and context usage, always visible.

Correctness and hardening

  • Session transcripts now carry reconciliation records: a mid-batch approval decline and a mid-tool cancel both repair the on-disk transcript, so --resume never replays lost or half-finished work.
  • A plain approval decline ends the turn (and pauses an active plan) instead of letting the model immediately retry; steering via [e]dit continues as before.
  • Worker-action failures map through the leak-free error path — raw upstream response bodies never reach the terminal.
  • User paths in /cwd and /model error messages are markup-escaped; tilde completion degrades gracefully when no home directory can be resolved.
  • The test suite (1,610 tests) is hermetic against ambient terminal/color environment and machine-specific home directories; CI runs the full gate on Python 3.11 and 3.14.

Docs

  • README rewritten from the ground up for v0.11.0.
  • DESIGN.md updated throughout §31 (app shell, threading, approvals, cancellation, dock, menu, trails) plus the decline/reconciliation semantics.

Validated live on local and cloud models during development; the line-based REPL remains the supported path for non-TTY and SSH use.