Skip to content

➡️ (and any character with U+FE0F / VS-16) causes TUI misalignment and ghost artifacts #2469

Description

@beadgcf

Is this a reproducible bug?

  • I confirm this is a reproducible bug, not a feature request, idea, question, contribution proposal, or direction check.
  • I reproduced this bug on the version and environment reported below using the exact steps provided.

Current behavior

After a pane outputs a character carrying U+FE0F, herdr leaves residual text on screen and the pane border shifts off alignment from that point onward.

Image

Expected behavior

U+FE0F is a zero-width combining mark, so herdr should consume it without advancing the cursor and keep cell accounting in sync — no residual text, no border shift.

Reproduction

Minimal repro from a herdr pane:

printf 'before -> after\n' # plain arrow, no VS-16 — OK
printf 'before ➡ after\n' # U+27A1 alone — OK (text presentation)
printf 'before ➡️ after\n' # U+27A1 + U+FE0F — TUI breaks

Impact

Pane content becomes unreadable whenever an agent's output contains any VS-16 dingbat (common in LLM output — ⚠️, ➡️, etc.).

Environment

  • Herdr version: 0.8.0
  • Update channel (stable or preview): stable
  • Operating system: Windows11 WSL2 Ubuntu 26.04 LTS
  • Terminal: Wezterm
  • Shell, if relevant: fish
  • Relevant config, if any: font Maple Mono NF CN (in wezterm config)

Metadata

Metadata

Assignees

No one assigned

    Labels

    maintainer-neededrequires maintainer judgment or maintainer-only reproduction

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions