[Bug]: Desktop becomes unresponsive after activating microphone on macOS arm64 (0.1.9)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- electron, typescript
- Área
- audio-video-rtc, desktop
Línea de trabajo
Start in apps/desktop and inspect the voice input path, especially the installed bundle’s useEnvironmentSpeechInput-C8qzzg6U.js, which sequences backend preparation, microphone access, and AudioWorklet setup. Try to identify which startup stage can remain pending and how it can be reproduced; the report does not establish a root cause or name source files or tests. Done means isolating the freeze and restoring responsiveness or showing an actionable error, with a reproducible check.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
T3 desktop becomes unresponsive after activating microphone (macOS arm64, 0.1.9)
Area
apps/desktop (voice input)
Steps to reproduce (user-reported; not independently reproduced)
- Use the T3 Code desktop app on an Apple Silicon iMac.
- Activate microphone/voice input.
- The user reports that T3 becomes unresponsive immediately afterwards.
This incident was reported on 2026-11-12 around 07:51 UTC. The exact click time, selected audio device, voice destination/provider, duration, and whether the entire window or only the voice/composer controls stopped responding are not established. No deliberate reproduction or microphone recording was performed during diagnosis.
Expected behavior
Voice input starts, or shows an actionable error; the app remains responsive and the operation can be cancelled.
Actual behavior / impact
User-reported freeze after enabling the microphone, interrupting interaction. Root cause is not established.
Version and environment
- T3 Code (Beta) 0.1.9, packaged commit 24e77473ecf4.
- macOS 15.3.1 (24D70), arm64.
- Bundled Electron framework CFBundleVersion: 44.10.1.
- Main and renderer processes had been running since approximately 23:03 local time the previous evening, about 9 hours 49 minutes at sampling.
- Approximately 44 GiB free on the data volume at diagnosis.
Read-only observations
- Main, renderer and backend processes were still alive. Server traces continued to be written. This does not prove that the UI or voice operation was responsive.
- No T3/Electron-named crash or hang report was found in the user or system DiagnosticReports directories.
- Two-second samples of the existing main and renderer processes, taken approximately 07:52:44 and 07:52:47 UTC, mainly show event-loop waits rather than a CPU-bound loop. They do not establish a deadlock or exclude an unresolved asynchronous operation.
- Sanitized main-thread stack excerpt:
NSApplication run -> CFRunLoopRunSpecific -> __CFRunLoopServiceMachPort -> mach_msg -> mach_msg2_trap. - Renderer main thread: 1482 of 1483 sampled paths end in
mach_msg2_trap; stripped Electron symbols limit interpretation. - Desktop trace window 07:45–07:52 UTC contains 100 spans and zero Failure exits. Server failures exist, but no causal link to voice was established. No voice-specific runtime error was found in the inspected trace records; there is no confirmed error message to quote.
Voice path inspected in the installed bundle
useEnvironmentSpeechInput-C8qzzg6U.js prepares the transcription backend, then uses navigator.mediaDevices.getUserMedia, AudioContext, audioWorklet.addModule, and AudioWorkletNode("t3-pcm-capture") for capture. The startup path sets phase preparing before awaiting preparation/permission/capture.
Hypothesis only: an unresolved startup promise (backend preparation, media access, or AudioWorklet initialization) could leave voice controls pending without a busy native main thread. In the inspected getUserMedia wrapper, cancellation is wired through AbortSignal, but no explicit local timeout is visible. This is a suggested investigation point, not a demonstrated cause or a proposed confirmed fix. The selected backend and the precise stalled stage remain unknown.
Previous report / duplicate search
The account's confirmed previous report in this repository is #33235 (CLI delegated subagents), which is unrelated. Searches of authored/involved issues and microphone/freeze/dictation-hang issues did not identify a matching earlier microphone-freeze report. The user recalls an earlier T3 report; its identity could not be established, so this is not asserted to be a regression of a particular issue.
Raw logs, process sample files, conversation content, audio, user filesystem paths, credentials and device identifiers are intentionally not attached. No app restart/termination, permission change or configuration change was performed.
- Lenguaje dominante
- TypeScript
- Estrellas
- 24.8k
- Forks
- 6.4k
- Merge medio
- 4 h 16 min
- PR fusionados (30 d)
- 352
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
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 pingdotgg/t3code
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
Todos los issues de pingdotgg/t3code
Issues similares
-
Autocomplete still accepts an option after becoming disabledPosiblemente ocupada @Xapollon430 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
reduxjs/react-redux#2416 · 1 comentario ·