Add a stop button to the plan's call, and show when the microphone is muted
Merged
CH
15d ago+260+260+012345678901234567890123456789-27-27-01234567890123456789
Summary
- Stop button. A red stop sits at the right end of the Plans microphone row, in the panel and the desktop window, while a call about the open plan is in progress. It is separate from the microphone, so a mute never hangs up.
- Where Luke is speaking, the host is told to stop first, so his voice does not run on through the graceful close (which can wait up to 15s).
- The microphone closes, and the call is let go of at once, so the view reads no call before the close finishes behind it.
- The next microphone press opens a new call. The host only reopens a session by itself for briefings, so a stopped plan call stays stopped.
- Path: a new
end-callvoice command, forwarded by main to the voice window, which drives the newLiveVoiceOrchestrator.stopCall().
- Muted state. While the plan's call stands with the developer unheard, the microphone button draws a struck-through glyph on the danger tint, reads "Unmute the microphone", and sets
aria-pressed. Before, it looked the same as a call not yet begun. - The stop ends the voice call only. Planner or notetaker work already running on the service still finishes, so the plan can still change after a stop.
Evidence
./scripts/check.sh: exit 0.- New tests, each failing without the change:
- orchestrator: the stop tells the host to stop Luke before it mutes, ends the call, the view reads idle with no plan, and the next press opens a new call;
microphoneButton: the plan's own call muted or speaking unheard is muted; connecting or another plan's call is not;MicrophoneRow: muted presses the button and draws the stop; no call draws no stop;usePlansTab: the stop press sends the voice command.
- CI could not verify the Plans tab.
./scripts/verify.shwas not run, because this work was done on Linux. It needs a Mac run before this lands.
š¤ Generated with Claude Code