cmux NEXT Settings > Chief: a Voice input row on home.voiceInput (builds with Debug Settings)
Summary
In builds with Debug Settings (DEV and NIGHTLY), Settings > Chief has a Voice input row: "The mic in the message box dictates into it, on this Mac. Off shows the waveform instead." Its switch is the Debug toggle home.voiceInput itself. There is no new setting and no new default: the switch stays on, as Leo set it on 10-20. Release has no Debug Settings, so it shows no row and keeps the code default.
ChiefVoiceInputPageRoute(cmux.settings.voice_input.set {on}):- writes the tunable to
TunableStore.shared; - refuses while the store is inactive;
- only takes the person's own click on the Settings page, like the Mobile ops.
- writes the tunable to
- The host lists carry
voice_input:{on}, ornullwithout the tunable. Reading it registers the tunable's Observation dependency, so a change made in Debug Settings reaches the page. SettingsPageLayout.Card.voiceInput, after the Chief Pet card.VoiceInputCard.tsxdraws nothing whenvoice_inputis null.- Two
settingsWindow.chief.voiceInput.*strings in all 21 locales. settings-schema.jsonis generated; the PR autofix regenerates the export'spage.- Chief read-aloud is out of scope.
No capture: one web settings row, which shows in the gallery's pages.settings Chief state once the schema regenerates (the mock is a DEV host).
Tests
webviews/src/pages/settings/chiefVoiceInput.test.tsx:- with
voice_input: null, there is no row; - with
{on: true}, the switch is checked, and clicking it sendscmux.settings.voice_input.set {on: false}and unchecks it.
- with
ChiefVoiceInputPageRouteTests:- an inactive store gives
nulland refuses the write; - an active store reads on by default and writes off, then on;
- a call without a gesture, from another page, or without
onis refused and leaves the tunable on.
- an inactive store gives
ChiefSettingsPageTests: the Chief lead is chiefs, chiefPet, voiceInput.
Observed / Not run
- At a33ee1b6cb6 (red), the web test fails with "Received: undefined" for the row title.
- At the head, with the export's Chief
leadpatched by hand as the regeneration will write it, the voice, categories, chiefPet, chiefs, mockProvider and hostCards tests pass: 37 pass.scripts/web-lint.shandprepush-gate.pypass. - Not run locally: the Swift tests (no local Swift); CI and a fleet compile check run them.
Changelog
- Added: Settings > Chief has a Voice input switch for the message box's mic in DEV and NIGHTLY builds.
Agent session: huge-blue
🤖 Generated with Claude Code
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Adds a Voice input row to Settings > Chief that toggles the cmux message box mic's home.voiceInput tunable directly, in builds with Debug Settings.
- The switch reads and writes the existing
home.voiceInputtunable; there is no new setting, and it starts on, matching the default Leo set. - Release builds have no Debug Settings, so they show no row and keep the code default.
- Writes are accepted only from the person's own click on the Settings page while the tunable store is active.
- Includes the Swift page route, web settings card, localized strings, regenerated settings exports, and tests for both.