Teaches coding agents how to build TUIs with TamboUI correctly: API-level selection, render-thread discipline, display-width safety, CSS-aware element authoring, and JFR conventions.
94
93%
Does it follow best practices?
Impact
97%
2.77xAverage score across 3 eval scenarios
Passed
No known issues
Java's String.length() returns UTF-16 code units, not terminal display columns. A CJK character is one code unit but two columns wide, an emoji is two code units and two columns, and a ZWJ family glyph can be five code units and two columns. Using length() or substring() for terminal layout produces visible breakage: misaligned tables, half-rendered glyphs, off-by-N truncation, garbled scroll regions.
CharWidth.of(text) — returns the display column countCharWidth.substringByWidth(text, maxWidth) (from start), CharWidth.substringByWidthFromEnd(text, w) (from end)CharWidth.truncateWithEllipsis(text, w, position)CharWidth.of(int codePoint)Buffer cell, in a widget render path, or in a status string sent to the terminalRect width, a Constraint, or an inline-display widthlength() is fine thereCharWidthParagraph.java shows the correct pattern for line-breaking and truncation; copy from it rather than inventing a new approachCharWidth