command: ["timeout", "-k", "10", "1800", "node", "--test", "/home/jwoltje/.t3/worktrees/mosaic-stack/magica-row329/packages/cli/tests/app.test.mjs"]
TMPDIR: /mnt/storage/scratch/tmp/U6qOPP
begin: {"utc": "2026-10-24T21:31:59.769+00:00", "load1": "2.71"}
launch nice: 19
✔ every screen and overlay fits 120x36, 80x24 and the narrow layout, row for row (1224.912228ms)
✔ width counts terminal cells: wide CJK and emoji 2, U+FE0F after a one-cell base 1, marks 0 (73.876093ms)
✔ broker text is shown, never interpreted: no raw control character or bidi override reaches the terminal (167.944667ms)
✔ NO_COLOR: no escape codes, except reverse video on the selected row (241.262125ms)
✔ 1-9 shows the decide flow's own lines and question; only y resolves (62.873408ms)
✔ the app shows the same decide text as mosaic decide (26.093158ms)
✔ any key but y or Y at the question answers No; nothing is sent (240.102338ms)
✔ below 40x10 the question is hidden, so every key answers it No, y included (Filbert R3) (82.118908ms)
✔ under 40 columns a tall terminal shows the too-small screen even where the decide box would fit; y sends nothing (Filbert N10) (300.553917ms)
✔ a hidden decide box names the way out, and the status line under it does not promise y (Filbert N12) (39.00805ms)
✔ a throw while answering the question goes to crash, sends nothing and leaves no job pending (25.873787ms)
✔ type-ahead never answers the question: a paste, keys typed before it is drawn, keys inside askMs (420.085983ms)
✔ quitting at the question answers No and sends nothing, armed or not (41.123021ms)
✔ a timer tick reads nothing under an overlay, never answers the question, and keeps a resolved status (34.803698ms)
✔ a long question is cut inside the question; the action, target, choice and prompt stay (Dewey B1) (51.229868ms)
✔ a decide box too big for the terminal says so, and every key answers it No, y included (Dewey B1, round 3) (323.780942ms)
✔ at every size the decide box shows each line y depends on, or says it is hidden (8904.284861ms)
✔ outcome unknown: the CLI's sentence, no retry, then the trail or a re-read (81.601431ms)
✔ refused and failed reads keep the last list, marked stale; a refused decide says refused (43.391107ms)
✔ help or a detail box cut to fit keeps its last line, Esc included (Dewey) (23.34607ms)
✔ keys: views, moving, trail of a selection, the command line, help and quit (112.096983ms)
✔ one option: the status line says Press 1, not 1-1 (30.684776ms)
✔ no business: the app says so and :business picks one (16.471692ms)
✔ mosaic with no argument: exit 3 in an agent run, exit 4 with the usage off a terminal, the app on one (2.33531ms)
✔ scripts/mosaic with no argument reaches the app entry; the seat usage it printed before has not drifted (256.7972ms)
✔ strings to keep exactly live once, in the decide flow and the transport; the app does not restate them (0.474305ms)
✔ decide with --note still asks; a No sends nothing (16.390037ms)
✔ the app's business comes from a live bus host only (1.067195ms)
✔ runApp leaves the terminal as it found it on q, end of input, SIGTERM, SIGINT, SIGHUP and an error, the first frame's included (9.300013ms)
✔ draw is pure: same state, same frame (0.832206ms)
ℹ tests 30
ℹ suites 0
ℹ pass 30
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 12998.139292
