CODE-039: terminal escape injection — commit metadata reaches ANSI raw

Now
DONE
Sev
MED
Rep
///bee
Ask
gritzko
Rev
///bee#184fddf

Input

Context

view/log.js:101:Wn and view/list.js:95:cn feed commit subjects, author names and filenames into hunk bytes verbatim, and neither render/ansi.js nor render/wrap.js filters C0/ESC — a crafted subject repaints or spoofs the terminal. The HTML sink is safe (render/html.js:241:BN-246 escapes). Related sink bug: render/ansi.js:243:uy bannerColor pads the band by BYTES not columns (a UTF-8 URI under-fills it) and emits the URI unsanitised, unlike its plain/html twins. Found in the 2026-08-21 review.

Goals

One C0/ESC filter at the ANSI byte sink so every view is covered at once; column-aware banner padding. Repro: a commit whose subject carries ESC sequences renders inert in bee log.

Constraints

The filter must not strip the renderer's own SGR — sanitise hunk text on the way in, not the finished stream.

WIP

TODOs

Outcome