chore(ui): replace emoji with Material icons across chat UI (#944)

* chore(ui): replace emoji with Material icons across chat UI

Removes emoji glyphs and swaps them for real Material icons / plain text:

- ToolSchemaRegistry: iconEmoji String -> ImageVector icon for all ~35 tools;
  summaryPrefix emoji stripped (terminal keeps '$ '); consumer renders Icon().
- ToolBubble: collapsed summary now shows Icon(config.icon) instead of an emoji
  Text prefix; web-search url drops the link emoji; warning badge uses
  Icons.Filled.Warning instead of a '⚠' Text glyph.
- ChatBubble SelfImprovementReviewCard: 🛠/🧠 String -> Build/Psychology Icon.
- ChatViewModel / ChatWsEventReducer: drop ⚠️/✅ prefixes from user-facing
  status/error messages (severity already conveyed by color/styling).
- SubagentInspectionSheet: ✅/🔄/❌/⭕ status markers -> CheckCircle/Autorenew/
  Cancel/RadioButtonUnchecked (tinted); ElectricBolt section headers ->
  FormatListBulleted + Groups.
- strings.xml (en/zh/ko): drop '✓' from the Copied label.

ktlint clean; compileDebugKotlin SUCCESSFUL. Remaining chat files
(ToolViewBuilder, ChatComposer, MessageCards, ChatReactions, ComposerToolbar,
FullBleedAgentMessage) tracked in follow-up commits on this branch.

* test: align unit tests with emoji-free summary + status messages

composeToolSummaryLines dropped the emoji parameter and no longer prepends
an emoji glyph to the collapsed summary line, so update ToolSummaryLinesTest
call sites + expected strings accordingly.

SlashCommandDispatchRpcTest asserted the old '⚠️ /cmd: ...' error messages;
those prefixes were removed in the UI cleanup, so drop them from the
expected strings.

ChatWsEventReducerTest emoji usages are model-output fixtures, not assertions
on changed code paths — left untouched.
This commit is contained in:
M57 authored and GitHub committed 2026-08-21 00:07:37 +03:00
1 parent fad49b7b66
commit 4549410a45
11 files changed
+148 -108

No files matched your search

+1 -1
View File
@@ -643,7 +643,7 @@
<string name="profiles_action_auto_describe">Auto-Describe</string>
<string name="profiles_action_setup_command">Setup Command</string>
<string name="profiles_action_copy">Copy</string>
<string name="profiles_action_copied">Copied ✓</string>
<string name="profiles_action_copied">Copied</string>
<string name="profiles_title_rename">Rename Profile: %1$s</string>
<string name="profiles_title_delete">Delete Profile: %1$s</string>
<string name="profiles_title_setup_command">Setup Command: %1$s</string>