diff --git a/src/components/status-bar/AiAgentsBadge.test.tsx b/src/components/status-bar/AiAgentsBadge.test.tsx index 5b8b40e0..3818c4cb 100644 --- a/src/components/status-bar/AiAgentsBadge.test.tsx +++ b/src/components/status-bar/AiAgentsBadge.test.tsx @@ -23,6 +23,30 @@ describe('AiAgentsBadge', () => { vi.clearAllMocks() }) + it('keeps the dropdown trigger off the Radix tooltip popper path', () => { + render( + , + ) + + const trigger = screen.getByTestId('status-ai-agents') + expect(trigger).toHaveAttribute('data-tooltip-mode', 'native-title') + expect(trigger.getAttribute('title')).toContain('Claude Code') + + act(() => { + trigger.focus() + }) + expect(screen.queryByRole('tooltip')).not.toBeInTheDocument() + + act(() => { + fireEvent.keyDown(trigger, { key: 'ArrowDown' }) + }) + expect(screen.getByTestId('status-ai-agents-menu')).toBeInTheDocument() + }) + it('shows the vault guidance summary and restore action', async () => { const onRestoreGuidance = vi.fn() diff --git a/src/components/status-bar/AiAgentsBadge.tsx b/src/components/status-bar/AiAgentsBadge.tsx index d9088519..342dcaff 100644 --- a/src/components/status-bar/AiAgentsBadge.tsx +++ b/src/components/status-bar/AiAgentsBadge.tsx @@ -1,6 +1,5 @@ import { AlertTriangle, ChevronsUpDown } from 'lucide-react' import { Sparkle } from '@phosphor-icons/react' -import { ActionTooltip } from '@/components/ui/action-tooltip' import { Button } from '@/components/ui/button' import { AI_AGENT_DEFINITIONS, @@ -240,6 +239,7 @@ export function AiAgentsBadge({ const selectedAgentReady = isAiAgentInstalled(statuses, defaultAgent) const showWarning = hasAiAgentWarning(statuses, defaultAgent, guidanceStatus) const showSwitcherCue = !showWarning && canShowSwitcherCue(statuses, defaultAgent) + const tooltip = badgeTooltip(locale, statuses, defaultAgent, guidanceStatus) if (isAiAgentsStatusChecking(statuses)) return null @@ -247,24 +247,24 @@ export function AiAgentsBadge({ <> - - - - - + + +