command: ["node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/cli/tests/app.test.mjs"]
TMPDIR: /mnt/storage/scratch/tmp/oEntjx
launch nice: 19
✔ every screen and overlay fits 120x36, 80x24 and the narrow layout, row for row (1356.324148ms)
✔ width counts terminal cells: wide CJK and emoji 2, U+FE0F after a one-cell base 1, marks 0 (66.930958ms)
✔ broker text is shown, never interpreted: no raw control character or bidi override reaches the terminal (150.126776ms)
✔ NO_COLOR: no escape codes, except reverse video on the selected row (270.413944ms)
✔ 1-9 shows the decide flow's own lines and question; only y resolves (66.076823ms)
✔ the app shows the same decide text as mosaic decide (29.336918ms)
✔ any key but y or Y at the question answers No; nothing is sent (270.560794ms)
✔ below 40x10 the question is hidden, so every key answers it No, y included (Filbert R3) (95.548755ms)
✔ under 40 columns a tall terminal shows the too-small screen even where the decide box would fit; y sends nothing (Filbert N10) (376.150831ms)
✔ a hidden decide box names the way out, and the status line under it does not promise y (Filbert N12) (57.836905ms)
✔ a throw while answering the question goes to crash, sends nothing and leaves no job pending (30.707613ms)
✔ type-ahead never answers the question: a paste, keys typed before it is drawn, keys inside askMs (427.718244ms)
✔ quitting at the question answers No and sends nothing, armed or not (47.387139ms)
✔ a timer tick reads nothing under an overlay, never answers the question, and keeps a resolved status (38.673934ms)
✔ a long question is cut inside the question; the action, target, choice and prompt stay (Dewey B1) (57.740505ms)
✔ a decide box too big for the terminal says so, and every key answers it No, y included (Dewey B1, round 3) (358.579587ms)
✔ at every size the decide box shows each line y depends on, or says it is hidden (9775.917276ms)
✔ outcome unknown: the CLI's sentence, no retry, then the trail or a re-read (82.866275ms)
✔ refused and failed reads keep the last list, marked stale; a refused decide says refused (46.846681ms)
✔ help or a detail box cut to fit keeps its last line, Esc included (Dewey) (21.900412ms)
✔ keys: views, moving, trail of a selection, the command line, help and quit (98.888396ms)
✔ one option: the status line says Press 1, not 1-1 (29.490108ms)
✔ no business: the app says so and :business picks one (14.750519ms)
✔ mosaic with no argument: exit 3 in an agent run, exit 4 with the usage off a terminal, the app on one (1.967313ms)
✔ scripts/mosaic with no argument reaches the app entry; the seat usage it printed before has not drifted (205.287055ms)
✔ strings to keep exactly live once, in the decide flow and the transport; the app does not restate them (0.49758ms)
✔ decide with --note still asks; a No sends nothing (15.733551ms)
✔ the app's business comes from a live bus host only (1.058155ms)
✔ 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.539427ms)
✔ draw is pure: same state, same frame (0.76075ms)
ℹ tests 30
ℹ suites 0
ℹ pass 30
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 14160.4819
