Smith::UI::App
Inherits Reference < Object
The fullscreen controller.
The machinery — the event loop, the live region, committing finished
blocks into the scrollback, the modal channels — comes from Anvil::App.
What lives here is what is smith's own: which keys mean what while a
prompt is open, how the status bar reads, and what the slash-command
popup does to the keys it owns.
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 whenever something changes. No alternate screen, so the transcript stays in the terminal's scrollback and can be copied and searched like any other output.
Constants
Two seconds, not the library's default: a turn can take a moment to notice the first interrupt, and a hasty second press should not kill it.
Constructors
The real thing: a live region at the bottom of the terminal.
Instance methods
A block reaches the scrollback once it reports itself finalized — which
is what the old finalize: flag always meant, so the flag is gone.
The same as modal, but driven by its own key loop — for decisions
needed before the main loop starts (the hooks trust prompt).
smith's own notice block, not the library's generic one: it brings the rendering the renderer relies on.