M-2: Settings.setWakeWordMuted/setVoiceRunning/setLaunchAtLogin (UQ-4 slim Voice prep) #107

Open
opened 2026-05-12 19:36:57 +00:00 by KofTwentyTwo · 0 comments
KofTwentyTwo commented 2026-05-12 19:36:57 +00:00 (Migrated from github.com)

Goal

Add Settings.setWakeWordMuted, setVoiceRunning, setLaunchAtLogin (UQ-4). Replaces Voice's muteWakeWord/unmuteWakeWord/startVoice/shutdownVoice. Voice surface to be slimmed in M-6.

Scope

  • 3 new Settings commands
  • Each writes to ConfigStore and triggers downstream subsystem reconfigure
  • Voice subsystem listens via settingsChanged rather than direct command (slim Voice per UQ-4)

Files

  • packages/JarvisAPI/Sources/JarvisAPI/Surfaces/Settings+Adapter.swift
  • Voice subsystem subscriber wiring (legacy BusInbound path stays during transition)

Acceptance

  • 3 commands implemented and round-trip
  • Voice subsystem responds to setWakeWordMuted(true) (mute observed)
  • setVoiceRunning(false) shuts down voice subsystem
  • setLaunchAtLogin(true) updates launchd registration

Test

Scenario S-SET-008 covers these three setters round-tripping through both transport modes.

Parent epic

#6

Source

.planning/architecture/JARVIS-API-MIGRATION-PLAN.md §2.3 (M-2.3)
.planning/architecture/JARVIS-API-DESIGN-v0.2.md §5 UQ-4 (Settings is sole config writer)

## Goal Add Settings.setWakeWordMuted, setVoiceRunning, setLaunchAtLogin (UQ-4). Replaces Voice's muteWakeWord/unmuteWakeWord/startVoice/shutdownVoice. Voice surface to be slimmed in M-6. ## Scope - 3 new Settings commands - Each writes to `ConfigStore` and triggers downstream subsystem reconfigure - Voice subsystem listens via `settingsChanged` rather than direct command (slim Voice per UQ-4) ## Files - `packages/JarvisAPI/Sources/JarvisAPI/Surfaces/Settings+Adapter.swift` - Voice subsystem subscriber wiring (legacy `BusInbound` path stays during transition) ## Acceptance - [ ] 3 commands implemented and round-trip - [ ] Voice subsystem responds to `setWakeWordMuted(true)` (mute observed) - [ ] `setVoiceRunning(false)` shuts down voice subsystem - [ ] `setLaunchAtLogin(true)` updates launchd registration ## Test Scenario `S-SET-008` covers these three setters round-tripping through both transport modes. ## Parent epic #6 ## Source `.planning/architecture/JARVIS-API-MIGRATION-PLAN.md` §2.3 (M-2.3) `.planning/architecture/JARVIS-API-DESIGN-v0.2.md` §5 UQ-4 (Settings is sole config writer)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/Jarvis#107