Skip to content

fix(desktop): replace review emoji with bundled icon - #81037

Open
Antikythera wants to merge 1 commit into
NousResearch:mainfrom
Antikythera:fix/desktop-self-improvement-status-icon
Open

fix(desktop): replace review emoji with bundled icon#81037
Antikythera wants to merge 1 commit into
NousResearch:mainfrom
Antikythera:fix/desktop-self-improvement-status-icon

Conversation

@Antikythera

@Antikythera Antikythera commented Aug 7, 2026

Copy link
Copy Markdown

What does this PR do?

Hermes Desktop now renders the 💾 Self-improvement review: … system notification with the bundled save Codicon instead of asking Chromium to render the literal floppy-disk emoji.

On Linux/Electron, the small inline system-message typography could render 💾 as a tofu box even when Noto Color Emoji was installed. The message is structured application chrome, so a bundled UI icon is more reliable and visually consistent than depending on host color-emoji fallback.

The original message text is preserved; only the emoji prefix is replaced at render time. CLI and other output paths are unchanged.

Root cause

agent/background_review.py emits a plain-text notification beginning with U+1F4BE (💾). Desktop rendered the complete string through the generic SystemMessage text path. Chromium's Linux color-font fallback did not resolve that codepoint in this compact inline surface, producing the visible missing-glyph box.

This is separate from the private-use Nerd Font fallback in #81013: U+1F4BE is an emoji, not a Nerd Font PUA character. Expanding the Nerd Font fallback cannot correctly solve it.

Implementation

  • Recognize the structured self-improvement notification in SystemMessage.
  • Strip only its known emoji prefix.
  • Render the existing bundled Codicon save glyph alongside the unchanged notification text.
  • Leave unrelated system messages on the existing generic path.

Related Issue

Follow-up found while visually validating #81013. It intentionally remains separate because this is a structured-message rendering fix rather than font fallback.

Type of change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Other (please describe):

How Has This Been Tested?

Check Result
npm run test:ui -- src/components/assistant-ui/thread/system-message.test.ts 2 passed
npm run typecheck Passed
npm run lint -- --quiet Passed
hermes desktop --build-only on a local integration branch containing #81013 and this commit Passed; Electron 40.10.2 Linux package produced

The regression test verifies that the structured notification is recognized, its text is retained without the emoji prefix, and unrelated system messages are ignored.

Screenshots / Logs

Before

Self-improvement notification showing a tofu box before its text

After

image

Checklist

  • My code follows the project's code style
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
    • Not applicable: this is an internal rendering correction with no user-facing API or setting.
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have run pytest tests/ -q and all tests pass
    • Not run: the change is isolated to desktop TypeScript/React; the focused UI test, desktop typecheck, lint, and packaged build passed.
  • Any dependent changes have been merged and published

Platform Information

  • OS: Bazzite Linux / KDE Plasma / Wayland
  • Electron: 40.10.2

@Antikythera

Copy link
Copy Markdown
Author

Packaged-app runtime validation passed on Electron 40.10.2 / Linux:

  • Injected a synthetic review.summary event through the renderer's existing gateway event path.
  • The compact system message appeared in the active thread.
  • DOM verification: containsEmoji: false, hasSaveCodicon: true.
  • Rendered text remained Self-improvement review: Visual validation — bundled save icon should appear here.

This exercises the real packaged renderer rather than only the parser unit test.

@alt-glitch alt-glitch added type/bug Something isn't working comp/desktop Electron desktop app (apps/desktop/*) P3 Low — cosmetic, nice to have labels Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/desktop Electron desktop app (apps/desktop/*) P3 Low — cosmetic, nice to have type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants