Description
wrapLine and visualColOf measure in runes, not terminal display width. A \t (KeyTab) or wide rune (CJK/emoji) wraps and positions the cursor cell by the wrong column. Pre-existing approach, now load-bearing for the canvas layout. Will surface on tab-indented code blocks or CJK text. Use a display-width (e.g. go-runewidth / uniseg) measure for wrapping + cursor placement.
Acceptance Criteria
- #1 wrapping and cursor placement use display-cell width