[BUG] Global hotkey event tap becomes disabled and drops Function-key presses
Los mantenedores suelen responder en 1 día
@altic-dev ya está trabajando en esto.
Desde el 21/7/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
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
- Configure Function as the primary dictation shortcut.
- Start recording.
- Continue using FluidVoice until the global event tap becomes disabled.
- Press and release Function repeatedly while recording.
- Observe that recording continues.
- Wait for the health check to recreate the event tap.
- 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.
- Lenguaje dominante
- Swift
- Estrellas
- 11.9k
- Forks
- 863
- Merge medio
- 1 d 12 h
- PR fusionados (30 d)
- 27
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de altic-dev/FluidVoice
-
[BUG] File transcription skips audio chunks shorter than one secondPosiblemente ocupada @sabbah13 la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
altic-dev/FluidVoice#1161 ·
Los mantenedores suelen responder en 1 día
-
[BUG]Abiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
altic-dev/FluidVoice#1171 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
altic-dev/FluidVoice#1170 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
altic-dev/FluidVoice#1169 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
altic-dev/FluidVoice#1168 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de altic-dev/FluidVoice
Issues similares
-
Ace: adopt desktopToolRules()Abiertoace documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
githubnext/desktop-tools#104 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
type: cleanup
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
googleapis/google-cloud-swift#1477 ·
Los mantenedores suelen responder en 1 día
-
🐛 Bug Report: Console `/join` shows an endless spinner for invited users who are not signed inAbiertoproduct / auth product / console product / databases product / messaging product / self-hosted product / sites product / storage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
P1 status: first-line-handled status: needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
a2ui-project/a2ui#3282 · 1 comentario ·
Los mantenedores suelen responder en 2 días