29 lines
1.3 KiB
Markdown
29 lines
1.3 KiB
Markdown
# 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>/`.
|
|
|
|
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.svg` and `terminal.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.
|
|
- 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.
|