← Pipelines
success

headless #54 ant/term ↗

main @ 8381298b
push by ant
started 18 Sep 2026 19:00 UTC · · 1 passed
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.

Jobs 1

  1. jobs

Evaluation

ok · push · 18 Sep 2026 19:00 UTC · synthesised from a run that predates job graphs