You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* fix(voice): add cross-platform microphone permission handling (tinyhumansai#489)
Voice dictation in release DMG silently fails because the macOS hardened
runtime enforces entitlements and the sidecar plist lacked the audio-input
entitlement. This adds the entitlement, NSMicrophoneUsageDescription for
the system permission prompt, and cross-platform microphone permission
detection (CPAL device probe) with clear error messages on macOS, Windows,
and Linux.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(permissions): use plist file for infoPlist and fix cross-platform warnings (tinyhumansai#489)
- infoPlist expects a file path, not inline JSON — create Info.plist with
NSMicrophoneUsageDescription and reference it as a string
- Move Microphone permission request out of macOS-only cfg block since
request_microphone_access() is cross-platform (fixes unused import warning on Linux CI)
- Treat persistent Unknown mic permission as Denied per CodeRabbit review
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Cyrus Gray <144336577+graycyrus@users.noreply.github.com>
/// Returns a platform-specific user-facing message when microphone permission is denied.
233
+
pubfnmicrophone_denied_message() -> String{
234
+
#[cfg(target_os = "macos")]
235
+
{
236
+
"Microphone permission denied. Grant access in System Settings > Privacy & Security > Microphone, then restart the app.".to_string()
237
+
}
238
+
#[cfg(target_os = "windows")]
239
+
{
240
+
"Microphone access unavailable. Check Settings > Privacy & Security > Microphone and ensure the app is allowed. If no microphone is connected, plug one in.".to_string()
241
+
}
242
+
#[cfg(target_os = "linux")]
243
+
{
244
+
"No microphone device available. Check your audio settings and ensure a microphone is connected. If running in a Flatpak sandbox, grant microphone access via Flatseal or system settings.".to_string()
0 commit comments