Files
cthulhu/docs/testing/terminal-scrollback.md

39 lines
2.1 KiB
Markdown

# Terminal scrollback deletion feedback
VTE reports old lines leaving its accessible text as deletions at offset zero.
Speaking those deletions replays previous prompts and command output while new
output arrives. This was reproduced with a real shell and reader on private X11;
the same event pattern appeared in the reported Wayland log.
The shared event policy suppresses only terminal deletions at offset zero when
the native caret is known, the original removed text ends with a newline, and
its positive code-point length does not extend past the current line start.
Other deletions retain the existing redraw coalescing and editing feedback.
Speech normalization stays unchanged; numeric length and line-ending metadata
are retained separately because normalized payloads lose that information.
Build and run the focused native regression:
```sh
go build -o /tmp/cthulhu-terminal-check ./cmd/cthulhu
CTHULHU_BINARY=/tmp/cthulhu-terminal-check /usr/bin/python3 tests/native_terminal.py
```
It requires GTK3, VTE 2.91, Python GI/pyatspi, Xvfb, i3 and xdotool. It uses a
private display, D-Bus session, configuration, shell home and recorded SSIP
server; it does not replace the running reader. A small terminal with zero
scrollback reaches the scrolling condition quickly. The test checks that 16
command outputs reach SSIP without old prompt deletions, then exercises
Backspace, Delete, Ctrl+W, character navigation, history and current-line flat
review. It prints the evidence directory containing reader logs and speech
records. Run private X11 display tests sequentially to avoid xvfb-run display
allocation collisions.
Human acceptance still requires listening in LXTerminal on both X11 and
Wayland. Fill the terminal until output scrolls, run short and multiline
commands, and confirm previous prompts and output are not replayed. Edit at
the beginning, middle and end of a command with Backspace, Delete and Ctrl+W;
use arrows, history and flat review. Check fresh-terminal and cleared-screen
behavior as well. Physical keyboard, audible speech and Braille acceptance
are separate from recorded SSIP and synthetic input.