✔ every screen and overlay fits 120x36, 80x24 and the narrow layout, row for row (1333.47789ms)
✔ width counts terminal cells: wide CJK and emoji 2, U+FE0F after a one-cell base 1, marks 0 (65.211992ms)
✔ broker text is shown, never interpreted: no raw control character or bidi override reaches the terminal (147.248208ms)
✔ NO_COLOR: no escape codes, except reverse video on the selected row (227.62734ms)
✔ 1-9 shows the decide flow's own lines and question; only y resolves (58.888794ms)
✔ the app shows the same decide text as mosaic decide (27.186247ms)
✔ any key but y or Y at the question answers No; nothing is sent (230.930898ms)
✔ below 40x10 the question is hidden, so every key answers it No, y included (Filbert R3) (69.163312ms)
✔ under 40 columns a tall terminal shows the too-small screen even where the decide box would fit; y sends nothing (Filbert N10) (292.176244ms)
✔ a hidden decide box names the way out, and the status line under it does not promise y (Filbert N12) (37.268204ms)
✔ a throw while answering the question goes to crash, sends nothing and leaves no job pending (23.002955ms)
✔ type-ahead never answers the question: a paste, keys typed before it is drawn, keys inside askMs (415.099983ms)
✔ quitting at the question answers No and sends nothing, armed or not (43.590543ms)
✔ a timer tick reads nothing under an overlay, never answers the question, and keeps a resolved status (40.140929ms)
✔ a long question is cut inside the question; the action, target, choice and prompt stay (Dewey B1) (55.655687ms)
✔ a decide box too big for the terminal says so, and every key answers it No, y included (Dewey B1, round 3) (355.422635ms)
✔ at every size the decide box shows each line y depends on, or says it is hidden (8438.175775ms)
✔ outcome unknown: the CLI's sentence, no retry, then the trail or a re-read (73.541746ms)
✔ refused and failed reads keep the last list, marked stale; a refused decide says refused (32.5336ms)
✔ help or a detail box cut to fit keeps its last line, Esc included (Dewey) (16.823665ms)
✔ keys: views, moving, trail of a selection, the command line, help and quit (75.789528ms)
✔ one option: the status line says Press 1, not 1-1 (20.389821ms)
✔ no business: the app says so and :business picks one (9.680077ms)
✔ mosaic with no argument: exit 3 in an agent run, exit 4 with the usage off a terminal, the app on one (1.785862ms)
✔ scripts/mosaic with no argument reaches the app entry; the seat usage it printed before has not drifted (165.265489ms)
✔ strings to keep exactly live once, in the decide flow and the transport; the app does not restate them (0.440568ms)
✔ decide with --note still asks; a No sends nothing (19.257084ms)
✔ the app's business comes from a live bus host only (1.096705ms)
✔ runApp leaves the terminal as it found it on q, end of input, SIGTERM, SIGINT, SIGHUP and an error, the first frame's included (6.360622ms)
✔ draw is pure: same state, same frame (0.768973ms)
ℹ tests 30
ℹ suites 0
ℹ pass 30
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 12418.114575
