hermes-agent/ui-tui/src/components
Brooklyn Nicholson 136519a2c9 fix(tui): inject VS16 so text-default emoji render as color glyphs
Models frequently emit bare codepoints like U+26A0 (⚠), U+2139 (ℹ),
U+2764 (❤), U+2714 (✔), U+2600 (☀), U+263A (☺) which, per Unicode, have
Emoji_Presentation=No and render as monochrome text-style glyphs in
terminals unless followed by VS16 (U+FE0F). Agent output leaked through
the TUI like `⚠ careful` instead of `⚠️ careful`.

Added `ensureEmojiPresentation` (lib/emoji.ts): scans for the curated
set of text-default codepoints and appends VS16 when the next char is
not already VS16, ZWJ, or a keycap-enclosing mark. Idempotent and
fast-pathed by a Unicode-range regex so ASCII-heavy text is untouched.

Applied once at the top of `Md`'s line parse. Hermes-ink's stringWidth
already accounts for VS16, so cursor/layout stays correct.
2026-04-21 15:52:39 -05:00
..
appChrome.tsx fix(tui): raise picker selection contrast with inverse + bold 2026-04-21 14:31:21 -05:00
appLayout.tsx refactor(tui): turn elapsed lives in FaceTicker; emit done-in sys line 2026-04-20 11:38:11 -05:00
appOverlays.tsx fix(tui): stabilize slash-completion dropdown height 2026-04-21 14:43:18 -05:00
branding.tsx fix(tui): route update-behind banner through theme + auto-detect light terminals (#11300) 2026-04-20 11:12:13 -05:00
markdown.tsx fix(tui): inject VS16 so text-default emoji render as color glyphs 2026-04-21 15:52:39 -05:00
maskedPrompt.tsx fix(tui): fix Linux Ctrl+C regression, remove double clipboard write 2026-04-20 07:14:33 -07:00
messageLine.tsx chore: uptick 2026-04-18 15:17:42 -05:00
modelPicker.tsx fix(tui): truncate long picker rows so the height stays stable 2026-04-21 14:43:18 -05:00
prompts.tsx fix(tui): raise picker selection contrast with inverse + bold 2026-04-21 14:31:21 -05:00
queuedMessages.tsx refactor(tui): /clean pass across ui-tui — 49 files, −217 LOC 2026-04-16 22:32:53 -05:00
sessionPicker.tsx fix(tui): truncate long picker rows so the height stays stable 2026-04-21 14:43:18 -05:00
skillsHub.tsx fix(tui): truncate long picker rows so the height stays stable 2026-04-21 14:43:18 -05:00
textInput.tsx fix(tui): raise picker selection contrast with inverse + bold 2026-04-21 14:31:21 -05:00
themed.tsx refactor(tui): /clean pass across ui-tui — 49 files, −217 LOC 2026-04-16 22:32:53 -05:00
thinking.tsx fix(tui): auto-expand Activity on error 2026-04-20 15:25:29 -05:00