← Jobs
success

headless ant/term ↗

started 22 Sep 2026 16:40 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
perf: clear only the actual margin instead of the whole pixel buffer Profiling (see ROADMAP.md's "Performance profiling infrastructure" entry) found render.draw's unconditional fill_rect over the entire pixel buffer -- there only so the right/bottom margin past grid.cols*cell_w/grid.rows*cell_h picks up the theme background when the window size isn't an exact multiple of the cell size -- costing 9.4ms/frame, tied with all of draw_row_backgrounds combined. Every cell draw_row_backgrounds covers gets repainted right after anyway, so clearing the whole buffer was redundant everywhere but the true margin. Fixed by clearing only the right/bottom margin rectangles (skipped entirely when there's no margin in a given dimension), decomposed so the bottom-right corner is covered exactly once. Re-profiling the identical workload confirms it: render.draw_clear dropped from 9.4ms/frame to 0.19ms/frame (~50x), and render.draw's own average fell from 24.3ms/frame to 16.3ms/frame -- now essentially at the 60Hz frame budget on average, though the heaviest frame still exceeds it. draw_row_backgrounds is now clearly the largest remaining cost; see ROADMAP.md's revised "Damage tracking" entry for what that changes. render/render_test.odin gains a regression test for the exact-multiple-in-one-dimension-only case the two-rect decomposition introduces (the existing margin test only covered margin in both dimensions). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
$ headless success · exit 0 · raw
++ mktemp -d
+ checkout=/tmp/tmp.kXu0Ppc3Rk
+ trap 'rm -rf "$checkout"' EXIT
+ cp -R /var/lib/ci-tron/sources/f4f1b019abf12708/. /tmp/tmp.kXu0Ppc3Rk
+ cd /tmp/tmp.kXu0Ppc3Rk
+ 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 772706)
headless_test: starting term...
headless_test: term window mapped
headless_test: screenshot captured (5701 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 (12510 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.kXu0Ppc3Rk
Artifacts

no artifacts