Prevent audio-device changes from stalling dictation hotkeys#700
Draft
supfeer wants to merge 1 commit into
Draft
Prevent audio-device changes from stalling dictation hotkeys#700supfeer wants to merge 1 commit into
supfeer wants to merge 1 commit into
Conversation
|
The PR Policy check is blocking this PR because required template information is missing. Please update the PR description with:
Visual files detected:
Screenshots or video are required for UI, UX, settings, onboarding, overlay, menu bar, or visual behavior changes. If this PR has no visual changes, check the no-visual-change box in the template. If this remains incomplete for 48 hours after opening, the PR may be closed. |
supfeer
force-pushed
the
agent/fix-audio-route-hotkey-stall
branch
from
July 23, 2026 16:44
4f17c56 to
9f7c367
Compare
12 tasks
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.
Description
Prevents audio-device topology changes from leaving dictation permanently unresponsive.
An
AVAudioEnginecan block during deallocation in Apple's hardware-format path. Retirement previously used a serial queue without a deadline, so later hotkey callbacks reachedASRService.start()but waited forever for the poisoned queue.This PR:
AVAudioEngineretirementType of Change
Related Issue or Discussion
Closes #682.
Testing
swiftlint --strict --config .swiftlint.yml Sourcesswiftformat --config .swiftformat Sourcesxcodebuild test -project Fluid.xcodeproj -scheme Fluid -configuration Debug -destination 'platform=macOS' -derivedDataPath DerivedData DEVELOPMENT_TEAM=2GT974SA8P -only-testing:FluidDictationIntegrationTests/AudioEngineRetirementDrainTests -quietAdditional checks:
swiftlint --strict --config .swiftlint.yml Sourcespassed with 0 violations in 136 files.swiftformat --lint --config .swiftformat Sourceswas run without modifying files, but the repository-wide baseline failed because 60 of 136 existing files require formatting; no formatting changes are included in this focused bug-fix PR../build.shcompleted successfully with a signed Debug build.git diff --cached --checkpassed before commit.soundcore Liberty 5 Proroute change.Screenshots / Video
Notes
AudioEngineRetirementDrainTestscovers off-main release ordering and bounded timeout recovery.