1.5.12 fixes and dictation shortcut cleanup#257
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 64822ff552
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| static func isConfigured() -> Bool { | ||
| self.isConfigured(for: .primary) |
There was a problem hiding this comment.
Make default AI gate evaluate both dictation shortcuts
isConfigured() now hardcodes .primary, but several existing call sites still use the no-arg form as a global readiness check (for example onboarding readiness in WelcomeView/ContentView and reprocess flow in ContentView.reprocessDictationText). With the new defaults, users can have primary set to Off while secondary is configured for AI, and these paths will incorrectly report AI as unavailable or skip reprocessing. The no-arg gate should preserve prior “any dictation path is configured” semantics, or those callers should be updated to pass an explicit slot.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 73a9910d5f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| self.preferredInputDeviceUID = payload.preferredInputDeviceUID | ||
| self.preferredOutputDeviceUID = payload.preferredOutputDeviceUID |
There was a problem hiding this comment.
Apply restored audio devices to system defaults
Backup restore only assigns preferredInputDeviceUID/preferredOutputDeviceUID, but this app now hardwires syncAudioDevicesWithSystem to true and follows macOS defaults for actual routing. That means importing a backup reports success while the effective input/output devices remain whatever macOS was already using, so the restored audio-device settings are silently ignored unless the defaults already match.
Useful? React with 👍 / 👎.
| // Check the configured cancel shortcut first. | ||
| if SettingsStore.shared.cancelRecordingHotkeyShortcut.matches(keyCode: keyCode, modifiers: eventModifiers) { |
There was a problem hiding this comment.
Handle modifier-only cancel shortcuts
The configurable cancel shortcut is evaluated only in the keyDown branch, but modifier-only shortcuts (for example Shift/Fn), which the shortcut recorder can produce, arrive as flagsChanged events rather than keyDown. In that configuration, cancel never fires, so users can save a cancel binding that does not work during recording or overlay dismissal.
Useful? React with 👍 / 👎.
Description
This PR rolls up the current 1.5.12 fixes branch into one reviewable stack.
Highlights:
Off,Default, or custom)Type of Change
Related Issues
Testing
swiftlint --strict --config .swiftlint.yml Sourcesswiftformat --config .swiftformat Sourcessh build_incremental.shNotes
Screenshots / Video