Smith::UI::App
Inherits Reference < Object
The fullscreen controller. Owns the terminal, the block list and the key loop; everything else — the renderer, the approver, the plan gate — asks it to show things and, where a human decision is needed, blocks until one arrives.
Rendering model (same as Claude Code): finished blocks are flushed into the normal scrollback once; the live region at the bottom — streaming text, running tools, status bar, input — is redrawn in place every tick. No alternate screen, so the transcript stays in the terminal's scrollback and can be copied and searched like any other output.
Constants
Dragging a window edge delivers a SIGWINCH per step. Redrawing on each is wasted work that reads as flicker, so the redraw waits for this many quiet poll windows (~50ms apiece) in a row.
Constructors
Instance methods
Every finished block, in order, moves into the scrollback — printed once by draw! and never redrawn after that.
Blocks until the user presses one of chars (Escape always answers too,
as a cancel). Called from the turn fiber while the main loop is running.
The same as modal, but driven by its own key loop — for decisions
needed before the main loop starts (the hooks trust prompt).
Blocks until the user submits a line of text (plan feedback).