Opus finding
ChannelSelector indexes CHANNEL_ICONS by def.icon for real channels but by tab.id for virtual tabs (inconsistent and likely wrong)
- app/src/components/channels/ChannelSelector.tsx:16-23
- app/src/components/channels/ChannelSelector.tsx:86-88
- app/src/components/channels/ChannelSelector.tsx:105-107
The CHANNEL_ICONS map keys are channel ids (telegram/discord/web/mcp). For real channels the code looks up by `def.icon` (an icon name from the definition), not by the channel id. If `def.icon` happens to differ from the id (e.g., 'telegram-plane', 'paper-plane', or empty), the icon silently falls back to '' rather than rendering. Meanwhile, virtual tabs look up by `tab.id`. The two paths use different key spaces against the same map, suggesting either the comment/map is wrong or the real-channel path should use `def.id`.
Recommendation
Decide on a single key — either store icon emojis keyed by `def.icon` (and ensure backend uses those keys) or index by channel id consistently. Add a fallback emoji.