gemini-cli - ✅(Solved) Fix [Voice] Enhance `/voice-model` Menu Navigation [1 pull requests, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
google-gemini/gemini-cli#25492Fetched 2026-04-16 07:05:41
View on GitHub
Comments
0
Participants
1
Timeline
4
Reactions
0
Participants
Timeline (top)
labeled ×3cross-referenced ×1

In the /voice-model menu, pressing Return should select the model and close the menu. Currently, users have to press Return and then Esc to exit, which feels unconfirmed and adds friction.

Root Cause

In the /voice-model menu, pressing Return should select the model and close the menu. Currently, users have to press Return and then Esc to exit, which feels unconfirmed and adds friction.

PR fix notes

PR #25519: fix: improve voice model selection flow

Description (problem / solution / changelog)

Addresses #24591 and #25492

Also addresses #25491.

Summary

  • show a one-time Gemini Live cloud-processing notice before first-time selection
  • persist the acknowledgement in settings so repeat selections skip the notice
  • close the voice model dialog immediately after successful Gemini Live selection
  • close the voice model dialog immediately after selecting an installed Whisper model
  • keep the dialog open while downloading a Whisper model, then close it after success
  • make Esc return to backend selection from the Gemini Live notice and Whisper model list

Note

  • this branch was originally based on the earlier voice-mode branch associated with #24174, so the PR commit history may show prior voice-related commits that are not part of the intended review scope
  • the intended review scope for this PR is the /voice-model dialog flow change described above

Testing

  • npx vitest run packages/cli/src/ui/components/VoiceModelDialog.test.tsx --reporter=basic

Changed files

  • .gemini/settings.json (modified, +2/-1)
  • docs/cli/settings.md (modified, +10/-0)
  • docs/reference/configuration.md (modified, +28/-0)
  • docs/reference/keyboard-shortcuts.md (modified, +1/-0)
  • integration-tests/voice-mode.test.ts (added, +76/-0)
  • packages/cli/src/config/config.ts (modified, +1/-0)
  • packages/cli/src/config/settingsSchema.ts (modified, +89/-0)
  • packages/cli/src/services/BuiltinCommandLoader.test.ts (modified, +2/-0)
  • packages/cli/src/services/BuiltinCommandLoader.ts (modified, +5/-0)
  • packages/cli/src/test-utils/render.tsx (modified, +3/-0)
  • packages/cli/src/ui/AppContainer.tsx (modified, +24/-0)
  • packages/cli/src/ui/commands/types.ts (modified, +2/-0)
  • packages/cli/src/ui/commands/voiceCommand.ts (added, +18/-0)
  • packages/cli/src/ui/commands/voiceModelCommand.ts (added, +19/-0)
  • packages/cli/src/ui/components/DialogManager.tsx (modified, +4/-0)
  • packages/cli/src/ui/components/InputPrompt.test.tsx (modified, +407/-0)
  • packages/cli/src/ui/components/InputPrompt.tsx (modified, +388/-14)
  • packages/cli/src/ui/components/VoiceModelDialog.test.tsx (added, +241/-0)
  • packages/cli/src/ui/components/VoiceModelDialog.tsx (added, +298/-0)
  • packages/cli/src/ui/components/shared/CircularProgress.tsx (added, +47/-0)
  • packages/cli/src/ui/contexts/UIActionsContext.tsx (modified, +3/-0)
  • packages/cli/src/ui/contexts/UIStateContext.tsx (modified, +2/-0)
  • packages/cli/src/ui/hooks/slashCommandProcessor.test.tsx (modified, +2/-0)
  • packages/cli/src/ui/hooks/slashCommandProcessor.ts (modified, +6/-0)
  • packages/cli/src/ui/hooks/useVoiceModelCommand.ts (added, +31/-0)
  • packages/cli/src/ui/key/keyBindings.ts (modified, +8/-3)
  • packages/cli/src/ui/noninteractive/nonInteractiveUi.ts (modified, +1/-0)
  • packages/core/src/config/config.ts (modified, +7/-0)
  • packages/core/src/index.ts (modified, +9/-0)
  • packages/core/src/utils/binaryCheck.ts (added, +14/-0)
  • packages/core/src/voice/audioRecorder.ts (added, +102/-0)
  • packages/core/src/voice/geminiLiveTranscriptionProvider.ts (added, +182/-0)
  • packages/core/src/voice/transcriptionFactory.ts (added, +41/-0)
  • packages/core/src/voice/transcriptionProvider.ts (added, +33/-0)
  • packages/core/src/voice/whisperModelManager.ts (added, +86/-0)
  • packages/core/src/voice/whisperTranscriptionProvider.test.ts (added, +31/-0)
  • packages/core/src/voice/whisperTranscriptionProvider.ts (added, +170/-0)
  • schemas/settings.schema.json (modified, +60/-0)
RAW_BUFFERClick to expand / collapse

Description

In the /voice-model menu, pressing Return should select the model and close the menu. Currently, users have to press Return and then Esc to exit, which feels unconfirmed and adds friction.

Requirements

  • Modifying the VoiceModelDialog or related UI components so that selection via Return automatically dismisses the dialog.

Epic: #24175

extent analysis

TL;DR

Modify the VoiceModelDialog to automatically dismiss when a selection is made via the Return key.

Guidance

  • Review the event handling for the Return key press in the VoiceModelDialog to ensure it triggers both selection and dialog dismissal.
  • Verify that the current implementation requires pressing Esc after Return to close the dialog, and identify the code responsible for this behavior.
  • Investigate if there's an existing method or function in the VoiceModelDialog or related UI components that can be called to dismiss the dialog programmatically when a selection is made.
  • Consider adding a callback or event listener to the selection event that also triggers the dialog dismissal.

Example

No specific code example can be provided without more context, but the solution might involve modifying an event handler similar to onSelectionMade or onReturnKeyPress to include a call to dismissDialog or a similar method.

Notes

The exact implementation details depend on the underlying UI framework and the structure of the VoiceModelDialog component, which are not specified in the issue.

Recommendation

Apply a workaround by modifying the VoiceModelDialog's event handling to automatically dismiss the dialog when a selection is made via Return, as this directly addresses the reported issue and improves user experience.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

gemini-cli - ✅(Solved) Fix [Voice] Enhance `/voice-model` Menu Navigation [1 pull requests, 1 participants]