diff --git a/apps/desktop/src/app/chat/composer/controls.tsx b/apps/desktop/src/app/chat/composer/controls.tsx
index 5e1e3df6fb0..7fbe9efa4a2 100644
--- a/apps/desktop/src/app/chat/composer/controls.tsx
+++ b/apps/desktop/src/app/chat/composer/controls.tsx
@@ -3,7 +3,7 @@ import { Codicon } from '@/components/ui/codicon'
import { Tip } from '@/components/ui/tooltip'
import { useI18n } from '@/i18n'
import { triggerHaptic } from '@/lib/haptics'
-import { AudioLines, Layers3, Loader2, Square } from '@/lib/icons'
+import { AudioLines, Layers3, Loader2, Square, SteeringWheel } from '@/lib/icons'
import { cn } from '@/lib/utils'
import type { ConversationStatus } from './hooks/use-voice-conversation'
@@ -38,16 +38,19 @@ interface ConversationProps {
export function ComposerControls({
busy,
busyAction,
+ canSteer,
canSubmit,
conversation,
disabled,
hasComposerPayload,
state,
voiceStatus,
- onDictate
+ onDictate,
+ onSteer
}: {
busy: boolean
busyAction: 'queue' | 'stop'
+ canSteer: boolean
canSubmit: boolean
conversation: ConversationProps
disabled: boolean
@@ -55,6 +58,7 @@ export function ComposerControls({
state: ChatBarState
voiceStatus: VoiceStatus
onDictate: () => void
+ onSteer: () => void
}) {
const { t } = useI18n()
const c = t.composer
@@ -68,6 +72,21 @@ export function ComposerControls({
return (
+ {canSteer && (
+
+
+
+ )}
{showVoicePrimary ? (