v0.5.5
PiTTy v0.5.5
PiTTy v0.5.5 fixes model selector mouse selection and the Working indicator during thinking and tool calls, plus modal focus capture and overlay focus management for every dialog.
Mouse selection for every selector
- OpenTUI Select has no built-in mouse handling. Clicking a model row in the model selector now maps the pointer Y coordinate (accounting for
scrollOffsetin scrolled lists) to the visible option index and selects it immediately. - This follows the same pattern as the thinking-level and settings selectors. The session selector and extension dialogs already had a mouse click mapping; the model selector was the only
Selectwithout one. - The panel overlay and search box share click handling without fighting over focus: clicking the search field keeps the cursor in search, clicking the list selects the clicked row.
Persistent Working indicator
- The "Working…" indicator now stays visible for the entire agent turn — including while the model is streaming thinking content or calling tools.
- Previously it was hidden whenever the latest conversation item was a streaming assistant message or a pending/streaming tool call. It is now equivalent to
isStreamingso it appears throughout the model's active period and disappears when the agent settles.
Modal focus management
- Every dialog (model selector, notification detail, extension dialog) now renders a full-screen overlay
onMouseDown={event => event.stopPropagation()}that prevents background terminal interaction from leaking through. - The
searchable-dialog-focushelper now usessetTimeout(focusSearch, 0)instead ofqueueMicrotaskfor initial focus, improving reliability on the OpenTUI event loop.
Regression coverage
- Added a mouse-click test for the model selector: renders the dialog, looks up the target row in the character frame, clicks at its coordinates, and verifies
onSelectfires with the correct model.