1.8 KiB
1.8 KiB
Terminal E2E artifacts
zig build terminal-e2e runs tools/terminal_e2e.py against the compiled mim
binary and writes ignored artifacts under .zig-cache/terminal-e2e/<scenario>/.
Matrix input profiles:
ios-default-qwertz-space-pathmeans the scenario may use only letters and Space from the default iOS software keyboard. No Esc, Ctrl, Alt, function keys, arrow keys, or symbol-layer punctuation should appear in that profile. Use this for primary mobile workflows.attached-keyboardis allowed to cover Esc, arrows, Home/End, punctuation, and other physical-key aliases.
Artifact roles:
manifest.tsv: stable scenario facts, hashes, bare-LF status, and artifact list.visible-controls.normalized.txt: primary semantic failure artifact. It shows CR as␍, LF as␊, ESC as␛, tabs as⇥, and normalizes volatile temp paths.transcript.txt: semantic terminal grid after escape/control interpretation.screenshot.svgandterminal.html: browser-viewable visual evidence.raw.bin: exact PTY bytes for low-level debugging.
Golden policy:
- Investigate before updating any expected artifact or assertion.
- Prefer semantic artifacts (
manifest.tsv,visible-controls.normalized.txt,transcript.txt) for assertions; visual artifacts explain what a user would see. - Updating artifacts is safe only after the change is intentional and the receipt names the changed UI/control-byte behavior.
- Adding a mobile scenario must preserve the
ios-default-qwertz-space-pathcontract unless the issue explicitly targets attached keyboards. - Bare LF in raw-mode terminal output is a regression unless a scenario explicitly proves a non-raw stream. Raw-mode rendering should use CRLF to avoid diagonal terminal skew.
- Generated artifacts must remain under ignored build output and must not dirty a clean source tree.