hermes-agent/ui-tui/src/lib
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
..
circularBuffer.ts fix(tui): address PR #13231 review comments 2026-04-20 19:09:09 -05:00
clipboard.ts fix(tui): raise picker selection contrast with inverse + bold 2026-04-21 14:31:21 -05:00
emoji.ts fix(tui): inject VS16 so text-default emoji render as color glyphs 2026-04-21 15:52:39 -05:00
externalCli.ts feat(tui): /model and /setup slash commands with in-place CLI handoff 2026-04-17 10:58:18 -05:00
gracefulExit.ts refactor(tui): /clean pass on memory + resize helpers 2026-04-20 18:58:44 -05:00
history.ts refactor(tui): /clean pass across ui-tui — 49 files, −217 LOC 2026-04-16 22:32:53 -05:00
memory.ts fix(tui): address PR #13231 review comments 2026-04-20 19:09:09 -05:00
memoryMonitor.ts refactor(tui): /clean pass on memory + resize helpers 2026-04-20 18:58:44 -05:00
messages.ts refactor(tui): /clean pass across ui-tui — 49 files, −217 LOC 2026-04-16 22:32:53 -05:00
osc52.ts fix(tui): raise picker selection contrast with inverse + bold 2026-04-21 14:31:21 -05:00
platform.ts fix(tui): raise picker selection contrast with inverse + bold 2026-04-21 14:31:21 -05:00
reasoning.ts fix(tui): strip <think>…</think> tags from assistant content and route to reasoning panel 2026-04-18 14:46:38 -05:00
rpc.ts fix(tui): slash.exec _pending_input commands, tool ANSI, terminal title 2026-04-18 09:30:48 -07:00
syntax.ts feat(tui): per-language syntax highlighting in markdown code fences 2026-04-18 09:48:38 -05:00
terminalParity.ts fix(tui): raise picker selection contrast with inverse + bold 2026-04-21 14:31:21 -05:00
terminalSetup.ts fix(tui): raise picker selection contrast with inverse + bold 2026-04-21 14:31:21 -05:00
text.test.ts fix: clean newline paste thingy 2026-04-13 12:54:48 -05:00
text.ts fix(cli): keep snake_case underscores intact in strip markdown mode 2026-04-21 15:32:59 -03:00