.omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/README.md
Task: fix blocker #4 from .omo/evidence/20260629-prepublish-heavy-review/final/blockers.md: command mode must not exit 0 or report evidence paths when tmux capture is empty or failed.
bun test script/web-terminal-visual-qa.test.ts before the production fix, with a new command-mode empty-capture test temporarily in that file.1; failure shows expected exit 1 but helper returned 0..omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/red-empty-capture-test.log.omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/red-empty-capture-test.receipt.txtbun test script/web-terminal-visual-qa.test.ts script/web-terminal-visual-qa-command.test.ts0; 10 tests pass, including #given command mode captures an empty tmux pane #when rendering #then the helper rejects the evidence..omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/green-focused-tests.log.omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/green-focused-tests.receipt.txtbun run typecheck:script0; tsgo --noEmit -p script/tsconfig.json passed..omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/typecheck-script.log.omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/typecheck-script.receipt.txtnode script/qa/web-terminal-visual-qa.mjs --title "Live Command QA" --command "printf 'webterm-live-ok\\n'" --source-label "printf live marker" --evidence-dir .omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/live-command-artifacts --dwell-ms 500 --no-browser0; terminal.txt and terminal-ansi.txt are each 86 bytes; terminal.txt contains webterm-live-ok and [web-terminal-visual-qa exit:0].tmux kill-session; tmux ls check found no remaining omo_webterm session..omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/live-command-artifacts/terminal.txt, terminal-ansi.txt, terminal.html, metadata.json.omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/live-command-checks.txt.omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/live-command-cli.logPATH=<fake-empty-tmux> node script/qa/web-terminal-visual-qa.mjs --title "Empty Command QA" --command "printf 'hidden\\n'" --source-label "fake empty tmux" --evidence-dir .omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/empty-command-artifacts --dwell-ms 1 --no-browser1; stderr contains tmux capture was empty; no evidence files are written.rm -rf; this scenario used no live tmux session..omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/empty-command-cli.log.omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/empty-command-checks.txtscript/qa/web-terminal-visual-qa.mjs 228, script/web-terminal-visual-qa.test.ts 224, script/web-terminal-visual-qa-command.test.ts 75; all under the 250 pure LOC ceiling..omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/loc-check.txtscripts/typescript/check-no-excuse-rules.ts was not present in this checkout; recorded in .omo/evidence/20260629-prepublish-blocker-fixes/web-terminal-empty-capture/no-excuse-checker-unavailable.txt and substituted bun run typecheck:script plus LOC checks.The RED test proves the pre-fix behavior accepted empty command-mode captures. The new regression test and direct fake-tmux CLI proof cover the blocker path with a non-zero, clear error and no bogus evidence files. The live tmux command proof covers the non-empty success path and confirms artifacts remain non-empty while cleanup completes.
PNG capture was intentionally omitted with --no-browser because the blocker is command-mode tmux transcript acceptance, not browser rendering. Existing file-replay/browser-render tests remain covered by the focused helper suite.