Skip to content

Windows: herdr icon codepoints (U+E1A0…) render as U+FFFD in panes and sidebar, but render correctly in Windows Terminal outside herdr #5201

Open

Description

@alexeira

Environment

  • herdr 0.9.3 (stable) and preview build 2026-10-12-6d697e1e75ff, x86_64-pc-windows-msvc
  • Windows 11 (build 26300)
  • Windows Terminal, font GeistMono NFM (Nerd Font Mono)
  • Icon font Herdr Agent Icons Max installed for the current user (per-user registration). It covers U+E1A0–U+E1BA and U+E1C0–U+E1C5.

What happens

Herdr's private-use icon codepoints (U+E1A0…) are shown as U+FFFD (�) inside herdr panes and in the sidebar (agent logo and branch token). The same codepoints render correctly when printed in Windows Terminal outside herdr.

Steps to reproduce

  1. Outside herdr, in Windows Terminal, run:

    Write-Host "$([char]0xE1A0) test"

    Result: the icon renders.

  2. Open a herdr pane and run the same line. Result: � test.

  3. In a herdr pane, run:

    Write-Host "$([char]27)[0m$([char]0xE1A0) normal   $([char]27)[1m$([char]0xE1A0) bold$([char]27)[0m"

    Result: both normal and bold show �.

  4. Sidebar: an agent logo token containing U+E1A0 shows �.

Expected

The icons render from the installed font, as they do outside herdr.

Notes

  • Starship glyphs from the same font family (U+E0A0 branch, U+F07B folder) render correctly in the same panes, so the failure looks specific to the herdr icon codepoints.
  • The preview build from 2026-10-12 still shows the replacement character, so this is not fixed there.
  • On macOS with Ghostty the icons render. The herdr-radar plugin writes an explicit font-codepoint-map for these ranges. Windows Terminal has no equivalent option, so Windows relies on system font fallback.

Question

Does herdr draw these codepoints through its own cell model, and does it fall back to U+FFFD for codepoints it considers unknown on Windows? If so, is there a supported way to map them to a specific font?

Activity

  1. added
    triagedScreened; left open for investigation or maintainer judgment. Not proof of a bug or reproduction.
    p2valid narrow or ordinary defect with limited impact or a practical workaround
    windowsaffects Windows-specific behavior
    renderingterminal emulation, reflow, layout, graphics, or output rendering
    maintainer-neededrequires maintainer judgment or maintainer-only reproduction
    on Oct 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    maintainer-neededrequires maintainer judgment or maintainer-only reproductionp2valid narrow or ordinary defect with limited impact or a practical workaroundrenderingterminal emulation, reflow, layout, graphics, or output renderingtriagedScreened; left open for investigation or maintainer judgment. Not proof of a bug or reproduction.windowsaffects Windows-specific behavior

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions