← Jobs
success

headless ant/term ↗

started 18 Sep 2026 19:00 UTC · ran for
2m 38s, success 2m 32s, success 2m 41s, success 2m 37s, success 3m 43s, success 3m 29s, success 3m 47s, success 3m 37s, success 3m 31s, success 3m 46s, success avg 3m 14s ± 33s over the last 10 runs
fix: declare bce in terminfo now that erase ops actually implement it The bce (background-color-erase) capability was deliberately left undeclared with a comment saying erase-shaped ops always fill with COLOR_DEFAULT, not the active background -- true when written, stale the moment blank_cell(g) landed (see the commit that introduced it): clear_row/erase_line/erase_chars/insert_chars/delete_chars all fill via blank_cell(g), which reads g.cur_bg. Leaving a real capability undeclared isn't harmless: an ncurses-linked app checks terminfo before trusting erase-to-fill-with-background, and without bce falls back to manually padding a line with spaces instead of a plain erase -- starting from wherever the cursor already was, not column 1. On a full-width row that overshoots the last column by however far the cursor had already advanced, autowrapping and forcing a real scroll. This is the actual root cause of a real nvim session intermittently shifting the whole screen up by one row when entering command-line mode -- root-caused by replaying the exact captured bytes into a real tmux pane (whose terminfo correctly declares bce) and watching it reproduce the identical corruption, which places the defect in what term told nvim about itself, not in term's own byte handling.
$ headless success · exit 0 · raw
++ mktemp -d
+ checkout=/tmp/tmp.psGVNj4Nd0
+ trap 'rm -rf "$checkout"' EXIT
+ cp -R /var/lib/ci-tron/sources/2a370d6c980198f5/. /tmp/tmp.psGVNj4Nd0
+ cd /tmp/tmp.psGVNj4Nd0
+ nix develop --command python3 scripts/headless_test.py
GC Warning: Could not open /proc/stat
headless_test: building term...
headless_test: starting headless sway...
headless_test: headless sway is on wayland-1 (pid 1585995)
headless_test: starting term...
headless_test: term window mapped
headless_test: screenshot captured (5444 bytes)
headless_test: wlrctl found — exercising wl_pointer capability negotiation
headless_test: wl_pointer wiring survived a synthetic scroll (does not confirm axis_discrete fired)
headless_test: wlrctl found — exercising pointer motion + click
headless_test: wl_pointer click/motion wiring survived a synthetic click and follow-up motion
headless_test: resizing headless output (term was 1280x672)...
headless_test: term resized to 640x432
headless_test: post-resize screenshot captured (12017 bytes) — resize path survived
headless_test: middle-click never reached term after 5 synthetic attempts — known wlrctl virtual-pointer enter/leave race (see check_pointer_click's docstring and ROADMAP.md's Known v1 limitations), not a paste-logic failure; skipping the round-trip assertion
headless_test: PASS
+ rm -rf /tmp/tmp.psGVNj4Nd0
Artifacts

no artifacts