PTT (VOICE-13) is dead — hotkey unbound at launch; pttDown/pttUp never reach VoiceController #87

Closed
opened 2026-05-12 19:31:26 +00:00 by KofTwentyTwo · 1 comment
KofTwentyTwo commented 2026-05-12 19:31:26 +00:00 (Migrated from github.com)

Summary

The push-to-talk path is fully implemented but completely unwired in production. `VoiceController.pttDown()` / `pttUp()` are public actor methods, `PushToTalk.bind(keyCode:)` exists in `packages/Voice/Sources/Voice/Control/PushToTalk.swift`, but `App/AppDelegate.swift:1015` doesn't bind a PTT key at launch — the hotkey slot is empty and the actor never receives a press event.

VOICE-13 is a v1 requirement: "Push-to-talk variant: hold-to-talk hotkey pathway activates STT without wake word (privacy / reliability fallback for wake-word false-negatives)."

Evidence

  • `packages/Voice/Sources/Voice/VoiceController.swift:190` — `pttDown()` DEAD
  • `packages/Voice/Sources/Voice/VoiceController.swift:206` — `pttUp()` DEAD
  • `packages/Voice/Sources/Voice/Control/PushToTalk.swift:43,58,114,125` — `PushToTalk.bind / unbind` DEAD
  • `App/AppDelegate.swift:1015` — PTT remains unbound at launch
  • INVENTORY.md:116-117, 143 — all three marked DEAD
  • REQUIREMENTS.md VOICE-13

Gap classification

"working but not wired" — implementation is correct; the production caller / hotkey registration doesn't exist.

Recommended action

File standalone (no M-phase; this is a v1 requirement that slipped). Pattern:

  1. Add a default PTT hotkey to first-launch wizard (or default-config.json with a safe combo).
  2. Wire `PushToTalk.bind(keyCode:)` in `installVoice` against the configured key.
  3. Route `PushToTalk` events to `voiceController.pttDown()` / `pttUp()` via the existing actor seam.

Cross-references

  • REQUIREMENTS.md VOICE-13 (Pending)
  • INVENTORY.md §Voice
  • Related: #28 (wake-word path) — but PTT is independent
## Summary The push-to-talk path is fully implemented but completely unwired in production. \`VoiceController.pttDown()\` / \`pttUp()\` are public actor methods, \`PushToTalk.bind(keyCode:)\` exists in \`packages/Voice/Sources/Voice/Control/PushToTalk.swift\`, but \`App/AppDelegate.swift:1015\` doesn't bind a PTT key at launch — the hotkey slot is empty and the actor never receives a press event. VOICE-13 is a v1 requirement: \"Push-to-talk variant: hold-to-talk hotkey pathway activates STT without wake word (privacy / reliability fallback for wake-word false-negatives).\" ## Evidence - \`packages/Voice/Sources/Voice/VoiceController.swift:190\` — \`pttDown()\` DEAD - \`packages/Voice/Sources/Voice/VoiceController.swift:206\` — \`pttUp()\` DEAD - \`packages/Voice/Sources/Voice/Control/PushToTalk.swift:43,58,114,125\` — \`PushToTalk.bind / unbind\` DEAD - \`App/AppDelegate.swift:1015\` — PTT remains unbound at launch - INVENTORY.md:116-117, 143 — all three marked DEAD - REQUIREMENTS.md VOICE-13 ## Gap classification \"working but not wired\" — implementation is correct; the production caller / hotkey registration doesn't exist. ## Recommended action File standalone (no M-phase; this is a v1 requirement that slipped). Pattern: 1. Add a default PTT hotkey to first-launch wizard (or default-config.json with a safe combo). 2. Wire \`PushToTalk.bind(keyCode:)\` in \`installVoice\` against the configured key. 3. Route \`PushToTalk\` events to \`voiceController.pttDown()\` / \`pttUp()\` via the existing actor seam. ## Cross-references - REQUIREMENTS.md VOICE-13 (Pending) - INVENTORY.md §Voice - Related: #28 (wake-word path) — but PTT is independent
KofTwentyTwo commented 2026-05-13 11:52:14 +00:00 (Migrated from github.com)

Closed by v0.1 cluster merges on 2026-05-13. Develop now at a8c7f1a0.

Closed by v0.1 cluster merges on 2026-05-13. Develop now at `a8c7f1a0`.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/Jarvis#87