fix(vscode): wait for microphone capture readiness - #11738
fix(vscode): wait for microphone capture readiness#11738marius-kilocode wants to merge 3 commits into
Conversation
| } | ||
|
|
||
| const click = () => { | ||
| if (props.speech.state() === "starting") return |
There was a problem hiding this comment.
WARNING: Starting state cannot be cancelled from the button
The new state machine and tests explicitly support cancelling a pending microphone startup, but this early return swallows the only user action while the spinner is shown. If opening the capture device hangs for a few seconds or the permission flow stalls, the user has to wait for timeout or for the recording to become ready before they can recover. Letting the second click call speech.cancel() would preserve the new readiness indicator without removing the escape hatch.
| if (props.speech.state() === "starting") return | |
| if (props.speech.state() === "starting") return props.speech.cancel() |
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
Code Review SummaryStatus: 1 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
Files Reviewed (32 files)
Fix these issues in Kilo Cloud Previous Review Summary (commit b51b16e)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit b51b16e)Status: 1 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
Files Reviewed (32 files)
Reviewed by gpt-5.4-20260305 · Input: 81.2K · Output: 11.9K · Cached: 437.2K Review guidance: REVIEW.md from base branch |
Run the prewarm child from webview-ui so JSX resolves via solid-js instead of falling back to react/jsx-dev-runtime, which only resolved when react happened to be hoisted nearby and otherwise failed the spawn at ~80ms. Assert on an explicit PASS/FAIL sentinel: real prewarm-logic failures surface immediately while transient spawn failures retry.
|
To stay organized pull requests are automatically closed after 30 days of inactivity. If the pull request is still relevant please reopen it or create a fresh new one. |
Speech input currently appears to be recording as soon as the microphone button is clicked, even though FFmpeg and the operating system may still be opening the capture device. Speech during that gap is not recorded, which is especially noticeable on the first recording after startup.
Introduce an explicit microphone-starting state and keep the loading indicator visible until the extension confirms that audio capture is ready. The recording indicator now marks the actual point when users can begin speaking.
Prewarm only FFmpeg binary discovery for users who have Kilo speech access, without opening the microphone or prompting for permission. Signed-out users and users with Kilo disabled do not run the prewarm, and failed discovery remains retryable when recording starts.