cli: terminal app follow-up, narrow-terminal guard test, hidden-box way out and width tests (#1562)

Row 69, built by Darkwing, approved by Dewey (comment 28048) and Filbert
(comment 28055) on manifest c68e6582. Sage gate on c6711453: cli 123/0,
queue 150/0, every scripts suite green.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-12 18:36:52 -05:00
co-authored by Claude Opus 5.5
parent 14c1484da4
commit 90d7ed6628
4 changed files with 103 additions and 8 deletions
+10 -5
View File
@@ -129,11 +129,16 @@ and nothing else.
action and target, what the choice authorizes, the task, your choice
and the `[y/N]` question stay. The cut line points to `mosaic inbox
--json`. When even those lines don't fit, the box says only "Too small
to show this decision. Any key answers No." `y` resolves only while the
frame shows the whole box apart from the cut, and the app checks the
size at each key, so a terminal shrunk after the question appeared
answers No. A gated decision with a task needs 20 rows at 80 columns
(21 with a cut question), and 29 rows at 40 columns.
to show this decision. Any key answers No. Resize, or use mosaic
decide.", and the status line says "Too small to confirm here." instead
of promising a `y`. `y` resolves only while the frame shows the whole
box apart from the cut, and the app checks the size at each key, so a
terminal shrunk after the question appeared answers No. Under 40
columns or 10 rows the app shows only the too-small screen, however
tall the terminal is. How many rows a box needs depends on its lines.
For example, a plain gated decision with a task needs 20 rows at 80
columns (21 with a cut question) and 29 rows at 40 columns; one with
longer lines needs more.
- The transport is the verbs' `spawnSync` child, so the screen does not
redraw while a read is in flight (up to its 30 s timeout).
- On quit, end of input, SIGTERM, SIGINT, SIGHUP or an error (one in a