v0.5.4
PiTTy v0.5.4
PiTTy v0.5.4 improves notification investigation, subagent visibility, and recovery from stalled context tools while preserving the fast terminal workflow.
Session-only notification history
- Every PiTTy toast, including RPC extension
notifymessages, is retained in an in-memory history for the current session. - Full Markdown text remains available after a toast expires, including long command output and diagnostic output.
- History is intentionally session-only and bounded to 100 records; it is cleared when PiTTy restarts and is never written to disk.
- New notifications are unread. Opening a notification marks it read, and unread entries stay above read entries with newest-first ordering within each group.
Notification investigation UI
- A notification section appears below Todos in the right sidebar, with proportional space shared according to the Subagents > Todos > Notifications priority.
- Every visible panel keeps a header and content-row floor; notifications hide first when a short terminal cannot fit all panel floors.
- Notification lifecycle tones use semantic border colors, while read rows remain visually quieter.
- Clicking a notification opens a scrollable detail modal containing the complete text rendered as Markdown. Escape and the close control dismiss the modal without losing session history.
Subagent visibility and rendering
- The main chat now renders each logical subagent once. Later updates replace the existing entry instead of displaying duplicate copies.
- Foreground and asynchronous representations of the same subagent are merged, while distinct parallel child indexes remain separate.
- Completed subagent Markdown is finalized after its first rendered frame, preventing content above live responses from blinking or disappearing during long conversations.
- Viewport culling is disabled for the live main conversation and subagent inspector transcript, avoiding stale geometry while streaming content changes height.
- Subagent inspection supports OpenCode-style Ctrl+Down inspection, arrow-key navigation, Ctrl+Left/Right cycling, and Ctrl+Up return-to-chat aliases.
Context-tool and interrupt recovery
- Pi now forwards abort signals to the context-mode MCP bridge.
- Aborted or timed-out bridge requests send cancellation notifications, terminate the stuck child, and recover by respawning it for the next request.
ctx_searchhas a bounded 50-second bridge recovery timeout;ctx_executeremains unbounded.- Ctrl-C aborts active work with a single-flight guard. A subsequent Ctrl-C while that abort is still pending force-closes the renderer instead of leaving the terminal trapped behind a stalled request.
Regression coverage
- Added coverage for bounded notification retention and oldest-first eviction, unread/read ordering, panel allocation floors, clickable rows, and full Markdown detail rendering.
- Added coverage for one-owner subagent rendering, parallel-child identity preservation, Markdown finalization, subagent navigation, target-count hints, bridge recovery, and interrupt decisions.