Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[BUG] Global hotkey event tap becomes disabled and drops Function-key presses

Aperta
#657 3 commenti 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@altic-dev ci sta già lavorando.

Dal 21/7/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

Describe the bug

The global hotkey CGEventTap can become disabled without the tap-disabled callback restoring it. While disabled, physical Function-key presses are not delivered to GlobalHotkeyManager, so an active recording cannot be stopped with the configured Function shortcut. The existing periodic health check eventually detects and recreates the tap, but its 30-second interval leaves the shortcut unresponsive for a noticeable period.

This was reproduced in both Automatic and Toggle activation modes.

Reproduction steps
  1. Configure Function as the primary dictation shortcut.
  2. Start recording.
  3. Continue using FluidVoice until the global event tap becomes disabled.
  4. Press and release Function repeatedly while recording.
  5. Observe that recording continues.
  6. Wait for the health check to recreate the event tap.
  7. Press Function again and observe that recording stops immediately.

The failure is intermittent, but occurred repeatedly in one session.

Expected behavior

The Function shortcut remains available throughout recording. If macOS disables the event tap, FluidVoice detects and restores it immediately or within a very short bounded interval.

Actual behavior

Multiple physical Function presses were absent from the application log while ASR remained active. The log then reported a failed event-tap health check, successfully recreated the tap, and the next Function press stopped recording.

App Version

1.6.4 development build

macOS Version

macOS 26.3 (25D125)

Architecture

Apple Silicon

Logs or crash report
[20:42:14.057] [INFO] [ASRService] START() called - beginning recording session
# Multiple physical Function taps occurred here, with no GlobalHotkeyManager entries
[20:42:57.941] [WARN] [GlobalHotkeyManager] Health check failed, attempting to recover
[20:42:57.941] [INFO] [GlobalHotkeyManager] Event tap successfully created and enabled
[20:42:57.941] [INFO] [GlobalHotkeyManager] Health check recovery successful
[20:42:59.224] [INFO] [GlobalHotkeyManager] Hotkey route | pressed=dictate(mod) | active=dictate | asrRunning=true | action=stop
[20:42:59.226] [INFO] [ASRService] STOP() called - beginning shutdown sequence

Only one FluidVoice process was running. A local mitigation reduces the fallback health-check interval from 30 seconds to 2 seconds and adds detection/recovery timing diagnostics. A durable fix may require reducing work in the event-tap callback or safely moving event processing off the main run loop.

Possibly related: #104 reports push-to-talk getting stuck after key release, and #401 documents latency in the same global event-tap callback.

Lingua principale
Swift
Stelle
11.9k
Fork
863
Merge medio
1g 12h
PR unite (30g)
27

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di altic-dev/FluidVoice

Tutte le issue di altic-dev/FluidVoice

Issue simili

Altre issue su Swift

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.