Skip to content

fix(macos): push-to-talk + permission prompts#4

Merged
pango07 merged 1 commit into
masterfrom
bugfix/macos
Apr 30, 2026
Merged

fix(macos): push-to-talk + permission prompts#4
pango07 merged 1 commit into
masterfrom
bugfix/macos

Conversation

@pango07
Copy link
Copy Markdown
Owner

@pango07 pango07 commented Apr 30, 2026

Summary

  • PTT fix. globalShortcut on macOS fires once per press (no key-repeat), so the press-and-hold debounce always stopped recording ~250ms after start — mic indicator popped up and immediately disappeared. Falls back to toggle on darwin (tap to start, tap to stop). Windows/Linux unchanged.
  • Permissions banner. New banner in the panel that surfaces missing macOS microphone / screen-recording grants on launch. Grant buttons trigger the OS prompt when status is not-determined and deeplink to the right System Settings pane when status is denied. Auto-hides on grant via the existing 1.5s permission poll.
  • Dev script. bun run start now sets VITE_DEV_SERVER=1 so Electron loads renderers from the Vite dev server. Added start:prod for the previous file-loading behavior.

Test plan

  • Typecheck passes (bun run typecheck).
  • macOS: press hotkey → recording starts; press again → stops and processes. Verified the OS mic indicator stays on while recording.
  • macOS: with mic or screen perm denied, banner appears with Grant buttons; clicking deeplinks to System Settings.
  • Windows: confirm press-and-hold still works (no behavior change expected).
  • After granting screen recording, verify banner clears on next launch.

🤖 Generated with Claude Code

Push-to-talk was broken on macOS because Electron's globalShortcut fires
exactly once per press there (no key-repeat), so the press-and-hold
debounce stopped recording 250ms after the first fire. Fall back to
toggle behavior on darwin: tap to start, tap to stop. Windows/Linux
keep press-and-hold.

Add a permissions banner in the panel that surfaces missing macOS
microphone and screen-recording grants on launch. Grant buttons either
trigger the OS prompt (when status is not-determined) or deeplink to
the relevant System Settings pane (when denied). Banner auto-hides
once status flips to granted via the existing 1.5s permission poll.

Also: make `bun run start` set VITE_DEV_SERVER=1 so Electron loads
renderers from the Vite dev server in development. Add `start:prod`
for the previous file-loading behavior.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 30, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
flicky Ignored Ignored Apr 30, 2026 6:31pm

Request Review

@pango07 pango07 requested a review from aaddrriann April 30, 2026 18:50
@pango07 pango07 merged commit e3f521b into master Apr 30, 2026
6 checks passed
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.

1 participant