Skip to content

Add Windows microphone permission onboarding#991

Merged
cjpais merged 2 commits intocjpais:mainfrom
ferologics:feat/windows-mic-permission-onboarding-main
Mar 13, 2026
Merged

Add Windows microphone permission onboarding#991
cjpais merged 2 commits intocjpais:mainfrom
ferologics:feat/windows-mic-permission-onboarding-main

Conversation

@ferologics
Copy link
Copy Markdown
Contributor

Summary

Adds a Windows microphone-permission onboarding flow.

What this does

  • checks Windows microphone privacy state during onboarding / startup
  • routes Windows users to the permissions screen when microphone access is blocked
  • opens Privacy & security -> Microphone from the onboarding button
  • forces the main window visible on startup when Windows microphone permissions are denied for a returning user, even if start_hidden is enabled
  • cleans up Rust/build warning noise touched during implementation

Context

This is a follow-up to the Windows mic startup crash fix that was merged in:

Local verification

Tested locally on Windows:

  • with microphone privacy toggles disabled, Handy shows the permissions screen
  • the settings button opens Windows microphone privacy settings
  • re-enabling the toggles while Handy is open unblocks the flow into the main app

Checks

  • bun run lint
  • bun run build
  • cargo check

@cjpais
Copy link
Copy Markdown
Owner

cjpais commented Mar 10, 2026

I will test this at the same time as #985 and likely pull both in, thank you!

DylanBricar added a commit to DylanBricar/Phonara that referenced this pull request Mar 11, 2026
Implemented PRs:
- cjpais#991: Windows mic permission onboarding (registry + UI)
- cjpais#381: Local file transcription (WAV, file picker, 16kHz resampling)
- cjpais#704: LLM template variables ($time_local, $date, $language)
- cjpais#455: Text replacements (exact find/replace, case-sensitive, 7 tests)
- cjpais#874: Custom recordings directory (folder picker + validation)
- cjpais#768: Custom audio feedback sounds (wav/mp3/ogg/flac)
- cjpais#997: Model loading failure toast notifications (17 locales)
- cjpais#996: Russian translation improvements (48 corrections)

Fixed issues:
- cjpais#199: Whisper initial prompt option (settings + pass-through)
- cjpais#858: Partial downloads (stale cleanup + Content-Range validation)
- cjpais#921: Clipboard images preserved during paste-via-clipboard
- cjpais#502: Clipboard race condition (write-verify-retry + delays)
- cjpais#434: Admin window freeze (Windows SendInput replaces enigo)

Review fixes:
- App.tsx: missing `t` from useTranslation() (runtime crash)
- commands/transcription.rs: State<TranscriptionManager> -> State<Arc<TranscriptionManager>>
- settings.rs: missing #[serde(default)] on external_script_path
- bindings.ts: missing whisper_initial_prompt in AppSettings
- settingsStore.ts: missing settingUpdaters for text_replacements, whisper_initial_prompt
- shortcut/mod.rs: added update_text_replacements, change_whisper_initial_prompt_setting commands
- TextReplacements.tsx: hardcoded "(delete)" -> i18n key
- TranscribeFile.tsx: hardcoded "Audio Files" -> i18n key
- input.rs: fixed warn macro scope, removed duplicate import
- Eliminated all compiler warnings (overlay.rs, signal_handle.rs, shortcut/mod.rs)
- Fixed lazy_close_gen race condition in audio manager

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@ferologics ferologics force-pushed the feat/windows-mic-permission-onboarding-main branch from 5aa2dc7 to 0742321 Compare March 12, 2026 15:05
@github-actions
Copy link
Copy Markdown

🧪 Test Build Ready

Build artifacts for PR #991 are available for testing.

Download artifacts from workflow run

Artifacts expire after 30 days.

@cjpais
Copy link
Copy Markdown
Owner

cjpais commented Mar 13, 2026

Tested this earlier and it builds clean, merged

@cjpais cjpais merged commit dfd445d into cjpais:main Mar 13, 2026
5 checks passed
@ferologics ferologics deleted the feat/windows-mic-permission-onboarding-main branch March 14, 2026 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants