fix: improve realtime voice wrap-ups and dev startup recovery - #2596
Merged
bobleer merged 2 commits intoAug 28, 2026
Merged
Conversation
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
进展:/Progress:prefixes from realtime task updates.Type and Areas
Type:
Regression fix
Areas:
Rust services, Web UI, desktop development startup, realtime voice, i18n
Motivation / Impact
Realtime voice calls now finish with a useful answer in the call popup instead of a short or repetitive status line. Desktop development no longer remains indefinitely on “正在启动 BitFun…” after a stale dynamic module response: Vite development responses are non-persistent, and recognized module-load failures receive one guarded reload.
Verification
pnpm run fmt:rspnpm --dir src/web-ui exec vitest run src/flow_chat/components/voice/voiceTaskBridge.test.ts src/app/startup/startupModuleRecovery.test.ts src/infrastructure/design-system/DesignSystemViteIntegration.test.ts src/app/startup/startupPerformanceContract.test.ts— 4 files, 67 tests passedcargo test -p bitfun-services-integrations --no-default-features --features speech-realtime --lib speech::realtime::tests::— 4 tests passedpnpm run i18n:audit— passed with 0 warningspnpm run check:web— passed; only existing appearance inventory warnings were reportedpnpm --dir src/web-ui exec eslint src/flow_chat/components/voice/useRealtimeVoiceCall.ts src/flow_chat/components/voice/voiceTaskBridge.ts src/app/App.tsx src/app/startup/startupModuleRecovery.ts vite.config.tscargo build -p bitfun-desktoppnpm run desktop:devlaunches reached the interactive application without opening Web InspectorReviewer Notes
outcome_spokenresult field is additive and tells the realtime model not to repeat a closing brief already delivered by BitFun.Checklist