You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the new chat agent/model picker, agents are shown as an icon-only row, with no name while choosing
Several agents share the same icon (native Claude plus custom Claude agents with iconId "claude"), so I can't tell which agent each icon is
The agent's name only appears in the composer chip after I've picked it, so finding the right one is trial and error
Today
The row at the top of the picker (star, then one icon per agent) has no label and no tooltip on hover. The selected icon shows only an underline. My row has three identical Claude icons.
Only after selecting an agent does its label show, in the composer chip:
Proposal
Show the agent's label on hover (tooltip) in the icon row, and/or
Show the hovered/selected agent's label inside the picker (e.g. a header above the model list)
Related: #9262 (same problem on mobile for agents that share a preset)
This looks plausible and is mostly a UX gap, not a crash. In the composer's model picker, the agent row at the top shows one icon per agent and no visible name. Custom agents can reuse the claude icon, so several identical icons can appear side by side. The only label is a native title attribute, which the reporter says they never saw. The selected tab gets only an underline, and the composer pill shows the agent's icon next to the model name, never the agent's name. So nothing on screen says which Claude-iconed agent is active.
pillLabel is currentLabel(model) ?? model?.label ?? currentAgentLabel ?? …. The agent's label is used only when there is no model option, which is rare.
The pill's title (:160) holds only the labels hidden at narrow footer widths, never the agent.
Where the icons come from:
New-workspace composer: NewWorkspaceScreen.tsx:711-730 builds agents from v2Agents with iconId: agent.iconId ?? agent.presetId, so custom agents that pick the Claude icon look the same as native Claude.
Live chat pane: AcpChatPane.tsx:353-369 builds agents with no iconId, keyed by presetId and deduplicated with new Set.
Root cause
The only hover text is a native HTML title (ModelPanel.tsx:265). Native tooltips appear after the OS delay (about 1 s on macOS), are easy to miss inside a fast dropdown, and may not show at all over the menu. The reporter says there is no tooltip in 2.0.5. I could not confirm whether title was already in that build. It is in main now.
The selected tab is marked only by the underline (:258-259). There is no visible text naming the selected agent, either in the panel or in the composer pill. The pill favors the model label (ModelPicker.tsx:109-113).
Nothing makes agents that share an icon look different, such as a label, a badge or a monogram.
Reproduction
Under Settings → Agents, create two custom agents and choose the Claude icon for both, so iconId: "claude".
Open the new-workspace composer (or a chat), then open the model picker pill.
You get the star tab and then three identical Claude icons. Click any of them: the underline moves, but no name appears. Close the picker: the pill shows the Claude icon and a model name only.
A bun:test sketch: render ModelPanel with an agentSwitcher holding two agents that both have iconId: "claude" and different labels. Assert that each agent's label is visible as text, or in a tooltip that opens on hover or focus, and not only in aria-label or title. That assertion fails today.
Suggested fix
Tooltips: wrap each tab button in the shared Radix tooltip (packages/ui/src/components/ui/tooltip.tsx) with a short delay, and drop the native title.
Selected agent name: show the selected tab's label in the panel, for example a small caption at the end of the tab row or above the search field. Tooltips alone don't help keyboard users or touch devices.
Composer pill: when agentSwitcher has more than one agent with the same icon, include the agent name, e.g. ${currentAgentLabel} · ${modelLabel} (the reporter's "Claude (Medieval) · Opus 5.5"). At the narrow footer tiers, add it to the pill's title / sr-only text (ModelPicker.tsx:114-120).
Optional: if two tabs resolve to the same icon, add a monogram badge built from entry.label so they look different without hovering.
Live chat pane:AcpChatPane.tsx:361 should pass iconId from agentConfigs so it matches NewWorkspaceScreen.
i18n: any new caption text needs Lingui macros and new catalog entries (bun run check:i18n).
Related: #9262 reports the same shared-icon problem on mobile.
Activity
github-actions commentedon Nov 5, 2026
This looks plausible and is mostly a UX gap, not a crash. In the composer's model picker, the agent row at the top shows one icon per agent and no visible name. Custom agents can reuse the
claudeicon, so several identical icons can appear side by side. The only label is a nativetitleattribute, which the reporter says they never saw. The selected tab gets only an underline, and the composer pill shows the agent's icon next to the model name, never the agent's name. So nothing on screen says which Claude-iconed agent is active.Affected code
apps/desktop/src/renderer/routes/_authenticated/components/AgentComposer/components/ModelPicker/components/ModelPanel/ModelPanel.tsx:241-287getPresetIcon(entry.iconId ?? entry.presetId)(:251) as an<img alt="">(:273-280).aria-labeland a nativetitle={entry.label}(:254,:265).entry.label.slice(0, 2)(:282) is used only when no icon resolves. Custom agents withiconId: "claude"always resolve one.apps/desktop/src/renderer/routes/_authenticated/components/AgentComposer/components/ModelPicker/ModelPicker.tsx:80-88, 108-113, 164-177pillLabeliscurrentLabel(model) ?? model?.label ?? currentAgentLabel ?? …. The agent's label is used only when there is no model option, which is rare.title(:160) holds only the labels hidden at narrow footer widths, never the agent.NewWorkspaceScreen.tsx:711-730buildsagentsfromv2AgentswithiconId: agent.iconId ?? agent.presetId, so custom agents that pick the Claude icon look the same as native Claude.AcpChatPane.tsx:353-369buildsagentswith noiconId, keyed bypresetIdand deduplicated withnew Set.Root cause
title(ModelPanel.tsx:265). Native tooltips appear after the OS delay (about 1 s on macOS), are easy to miss inside a fast dropdown, and may not show at all over the menu. The reporter says there is no tooltip in 2.0.5. I could not confirm whethertitlewas already in that build. It is inmainnow.:258-259). There is no visible text naming the selected agent, either in the panel or in the composer pill. The pill favors the model label (ModelPicker.tsx:109-113).Reproduction
iconId: "claude".A
bun:testsketch: renderModelPanelwith anagentSwitcherholding two agents that both haveiconId: "claude"and different labels. Assert that each agent's label is visible as text, or in a tooltip that opens on hover or focus, and not only inaria-labelortitle. That assertion fails today.Suggested fix
packages/ui/src/components/ui/tooltip.tsx) with a short delay, and drop the nativetitle.labelin the panel, for example a small caption at the end of the tab row or above the search field. Tooltips alone don't help keyboard users or touch devices.agentSwitcherhas more than one agent with the same icon, include the agent name, e.g.${currentAgentLabel} · ${modelLabel}(the reporter's "Claude (Medieval) · Opus 5.5"). At the narrow footer tiers, add it to the pill'stitle/sr-onlytext (ModelPicker.tsx:114-120).entry.labelso they look different without hovering.AcpChatPane.tsx:361should passiconIdfromagentConfigsso it matchesNewWorkspaceScreen.bun run check:i18n).Related: #9262 reports the same shared-icon problem on mobile.