← Jobs
success

headless ant/term ↗

started 18 Sep 2026 19:42 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 bel/rep/tbc -- audited terminfo against 5 real terminals Systematically compared this file's declared capability set against xterm-256color, foot, alacritty, kitty, and st-256color (compiling both sides with tic + infocmp for a fair, normalized comparison) to find any other implemented-but-undeclared gaps in the same shape as bce/cr. Found three: - bel: feed_ground's BEL case is a deliberate no-op (no bell support in v1), but that's not a reason to leave it undeclared -- sending it is a real, harmless, correctly-handled action, the same structurally-correct-but-static tradeoff already made for blink. Every reference terminal checked declares it. - rep: run_csi's 'b' case (REP) has repeated the last graphic character since early in this project; never declared. - tbc: run_csi's 'g' case handles TBC mode 3 (clear all tab stops) via clear_all_tab_stops; never declared. A stale test comment had conflated this with the genuinely-unimplemented modes 1/2 and asserted tbc should stay absent -- corrected. Also checked for the reverse direction (declared capabilities the code doesn't back) and found none. Genuinely unimplemented features turned up too (CBT/back-tab, the Insert key, shifted special keys, modified function keys) -- left undeclared correctly, since there's no behavior for them to under-promise. Adds bce/cr-style behavior-linking tests for rep and tbc so these can't silently drift stale again either.
$ headless success · exit 0 · raw
++ mktemp -d
+ checkout=/tmp/tmp.dPCVfJ1tXM
+ trap 'rm -rf "$checkout"' EXIT
+ cp -R /var/lib/ci-tron/sources/d219a82de314d56c/. /tmp/tmp.dPCVfJ1tXM
+ cd /tmp/tmp.dPCVfJ1tXM
+ 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 1624735)
headless_test: starting term...
headless_test: term window mapped
headless_test: screenshot captured (5653 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 (12241 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.dPCVfJ1tXM
Artifacts

no artifacts