TransFlow v1.6.2
Fix translation and speaker-diarization toggles to take effect immediately without needing to switch languages or restart listening.
Bug Fixes
- Translation toggle now works reliably mid-session — Previously, turning translation ON during an active transcription would silently drop all translations until the user switched source language. Root cause:
.translationTaskwasn't re-firing because equivalentTranslationSession.Configurationvalues were coalesced by SwiftUI. Now usesConfiguration.invalidate()(Apple's documented re-trigger mechanism) and keeps the configuration alive across toggle off/on cycles. - Speaker diarization toggle now works mid-session — Toggling "Speaker Diarization" during listening used to only flip the setting; the diarization service is instantiated at
startListeningtime, so the new value had no effect until a full restart. The toggle now restarts the pipeline when active. - Switching translation target language now restarts the pipeline — Ensures the new language pair is fully ready before the next utterance, matching the behavior of switching the source language.
Improvements
- Centralized translation and diarization toggle flows in the view model (
enableTranslation,disableTranslation,setTranslationTargetLanguage,setDiarizationEnabled), eliminating concurrent-Task races across the UI, global hotkeys, and command bar. - More informative logs around translation configuration lifecycle (
Invalidating existing configuration/Creating new configuration) for easier diagnosis.
System Requirements
- macOS 15.0 or later
- Apple Silicon (arm64) or Intel (x86_64)