-
Notifications
You must be signed in to change notification settings - Fork 11.7k
feat: Add voice input with pluggable backend (Gemini zero-install + Whisper) #18499
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
fayerman-source
wants to merge
63
commits into
google-gemini:main
Choose a base branch
from
fayerman-source:feat/voice-input-clean
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
63 commits
Select commit
Hold shift + click to select a range
8b7d0ef
feat(cli): add native local-first voice input via whisper
fayerman-source 0507561
fix(voice): Resolve code review issues for voice input feature
fayerman-source a5b1345
fix(voice): Update status text to show correct Alt+R key binding
fayerman-source 07ae122
fix(voice): implement event-based architecture to eliminate infinite …
fayerman-source c1eb102
test(voice): add comprehensive test suite for voice input feature
fayerman-source 7fe8ce8
fix(voice): enable auto language detection for multilingual support
fayerman-source 6899ba4
fix: race condition protection, transcribing indicator, and voice hel…
fayerman-source e229bf3
Merge upstream main with shortcuts help feature and voice input
fayerman-source ce4b23c
security: fix command injection vulnerability in voice input
fayerman-source c6a9409
fix: resolve merge conflicts with upstream main
fayerman-source 5881c3e
fix: resolve merge conflicts with upstream main
fayerman-source c6c7329
fix: resolve merge conflicts with upstream main
fayerman-source f9a71af
feat(voice): enhance voice input with static config and improved stab…
fayerman-source 6a9196d
chore: merge latest changes from main
fayerman-source ede0c6a
fix(voice): resolve resource leak and portability issues
fayerman-source 0777cc0
fix(cli): resolve spurious startup warnings and false-positive infini…
fayerman-source b86b1a1
Merge branch 'main' into feat/voice-input-clean
fayerman-source 9b97b2e
Merge remote-tracking branch 'upstream/main' into feat/voice-input-clean
fayerman-source 56fa659
Merge remote-tracking branch 'upstream/main' into feat/voice-input-…
fayerman-source 0eeeea4
Merge remote-tracking branch 'upstream/main' into feat/voice-input-clean
fayerman-source c26c427
Merge remote-tracking branch 'upstream/main' into feat/voice-input-clean
fayerman-source f531123
Merge remote-tracking branch 'upstream/main' into feat/voice-input-clean
fayerman-source acea2bb
Merge remote-tracking branch 'upstream/main' into feat/voice-input-clean
fayerman-source 70d9507
Merge remote-tracking branch 'upstream/main' into feat/voice-input-clean
fayerman-source d65996a
Merge branch 'main' into feat/voice-input-clean
fayerman-source b82d070
Merge remote-tracking branch 'upstream/main' into feat/voice-input-clean
fayerman-source f21adc7
Merge branch 'feat/voice-input-clean' of https://github.com/fayerman-…
fayerman-source 8a10207
Merge branch 'main' into feat/voice-input-clean
fayerman-source 07d633a
Merge remote-tracking branch 'upstream/main' into feat/voice-input-clean
fayerman-source a45968f
Merge branch 'feat/voice-input-clean' of https://github.com/fayerman-…
fayerman-source caea370
Merge remote-tracking branch 'upstream/main' into feat/voice-input-clean
fayerman-source db85b26
Merge branch 'main' into feat/voice-input-clean
fayerman-source 51e55fa
Merge branch 'main' into feat/voice-input-clean
fayerman-source b2f5d00
Merge branch 'main' into feat/voice-input-clean
fayerman-source f44fabc
Merge remote-tracking branch 'upstream/main' into feat/voice-input-clean
fayerman-source 3ead9fe
Merge branch 'feat/voice-input-clean' of https://github.com/fayerman-…
fayerman-source e840625
fix(voice): remove stale reference to deleted VOICE_INFINITE_LOOP_ANA…
fayerman-source 690859d
feat(voice): add voice.enabled setting to toggle voice input
fayerman-source e8e67e3
feat(voice): pluggable backend with zero-install Gemini transcription
fayerman-source 0f00455
refactor(voice): move backends to packages/core, use coreEvents for t…
fayerman-source 5bfaeae
fix(voice): resolve TypeScript compile errors in voice backends
fayerman-source 7fccefb
fix(voice): fix AppContainer voiceConfig type for TypeScript strict n…
fayerman-source c569b7a
fix(voice): address three UX bugs found in manual testing
fayerman-source 668530f
refactor(voice): make /voice a pure settings command; fix transcripti…
fayerman-source b749764
fix(voice): force Ink render before Gemini API call to show transcrib…
fayerman-source eeaf709
fix(voice): remove duplicate emoji from voice state placeholders
fayerman-source 7fabd02
feat(voice): add configurable silence threshold for whisper-level sen…
fayerman-source dda2251
feat(voice): add subcommand autocomplete hints to /voice
fayerman-source 9ae2e64
docs(voice): document all voice settings in settings.md and configura…
fayerman-source 9267ef5
chore: merge upstream/main, resolve keyMatchers.test.ts conflict
fayerman-source 24c91fc
fix(voice): address PR review comments from jacob314
fayerman-source 7d331cf
test(voice): add cancelRecording tests and cancel() to backend mocks
fayerman-source 6e616e9
fix(voice): disable shortcut triggers when voice.enabled is false
fayerman-source 43317a2
fix(voice): suppress key handler and debug noise when voice is disabled
fayerman-source d7cecf7
fix(cli): support quota error fallbacks for all authentication types …
sehoon38 4eabeba
feat(plan): adapt planning workflow based on complexity of task (#20322)
jerop 694e464
feat(voice): style /voice status output with themed VoiceStatus compo…
fayerman-source 5c1552e
Merge remote-tracking branch 'upstream/main' into feat/voice-input-clean
fayerman-source 74fde52
fix(voice): improve error message when sox and arecord are both missing
fayerman-source 32732ee
Merge branch 'main' into feat/voice-input-clean
fayerman-source 2e4231b
feat(voice): polish recording UI with animated spinner and improved s…
fayerman-source 7a57af6
Merge branch 'main' into feat/voice-input-clean
fayerman-source 963d7ff
fix(voice): regenerate settings schema and simplify test mock
fayerman-source File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -766,6 +766,57 @@ const SETTINGS_SCHEMA = { | |
| }, | ||
| }, | ||
|
|
||
| voice: { | ||
| type: 'object', | ||
| label: 'Voice Input', | ||
| category: 'General', | ||
| requiresRestart: false, | ||
| default: {}, | ||
| description: 'Settings for voice input.', | ||
| properties: { | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. need to add showInDialog: false, |
||
| enabled: { | ||
| type: 'boolean', | ||
| label: 'Enable Voice Input', | ||
| category: 'General', | ||
| requiresRestart: false, | ||
| default: false, | ||
| description: 'Enable voice input support.', | ||
| showInDialog: true, | ||
| }, | ||
| provider: { | ||
| type: 'string', | ||
| label: 'Transcription Backend', | ||
| category: 'General', | ||
| requiresRestart: false, | ||
| default: undefined as string | undefined, | ||
| description: | ||
| 'Transcription backend: "gemini" (default, zero-install) or "whisper" (local).', | ||
| showInDialog: true, | ||
| }, | ||
| whisperPath: { | ||
| type: 'string', | ||
| label: 'Whisper Binary Path', | ||
| category: 'General', | ||
| requiresRestart: false, | ||
| default: undefined as string | undefined, | ||
| description: | ||
| 'Path to the whisper executable. Only used when provider is "whisper".', | ||
| showInDialog: true, | ||
| }, | ||
| silenceThreshold: { | ||
| type: 'number', | ||
| label: 'Silence Detection Threshold', | ||
| category: 'General', | ||
| requiresRestart: false, | ||
| default: 80, | ||
| description: | ||
| 'RMS energy threshold (0–1000) below which audio is discarded as silence. ' + | ||
| 'Lower values allow quieter speech such as whispering. 0 disables silence detection.', | ||
| showInDialog: true, | ||
| }, | ||
| }, | ||
| }, | ||
|
|
||
| ide: { | ||
| type: 'object', | ||
| label: 'IDE', | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please revert changes to unrelated files such as plan-mode.md