Skip to content

fix(menubar): a take on Today's mic shows on the Models section's Dictation row - #636

Merged
spokvulcan merged 1 commit into
mainfrom
claude/friendly-cori-a44a6d
Oct 11, 2026
Merged

spokvulcan merged 1 commit into
mainfrom
claude/friendly-cori-a44a6d

Conversation

@spokvulcan

Copy link
Copy Markdown
Owner

Summary

The menu's Models section reads the Dictation row's Listening and Transcribing from the container's Voice Inputs. Its hand-written list, written in #604, missed Today's, added in #624.

 a take on Today's mic        Dictation row
-  holding the mic            Idle
+  holding the mic            Listening
   Whisper decoding           Transcribing     (read from the shared engine, already right)
-  the Proofread Pass         Idle
+  the Proofread Pass         Transcribing

Every Voice Input in the container now comes from one factory, which registers it:

 DependencyContainer
+  makeVoiceInput()     a Voice Input on the shared mic, Whisper and Proofread Pass, added to voiceInputs
   agentVoiceInput    = makeVoiceInput()
   captureVoiceInput  = makeVoiceInput()
   panelVoiceInput    = makeVoiceInput()
   todayVoiceInput    = makeVoiceInput()

 modelActivity(), the Dictation row
-  [agentVoiceInput, captureVoiceInput, panelVoiceInput]
+  voiceInputs

The four Voice Inputs take the same arguments as before. modelActivity() no longer creates the lazy ones it reads on the menu's first open: it reads only those made.

Not in this PR: the onboarding's Dictation chapter builds its own Voice Input in its view, outside the container. It has no Proofread Pass, and its Whisper decode shows through the shared engine.

Evidence

  • Before: Today's Voice Input built directly, as on main. Both new tests in MenuModelsSectionTests fail:
    FAILED theContainerBuildsEveryPushToTalkInOnePlace()
        count of "AgentVoiceInputController(" in DependencyContainer*.swift → 2, expected 1
    FAILED theDictationRowHearsEveryPushToTalk()
        container.voiceInputs.contains { $0 === container.todayVoiceInput } → false
    
    After: MenuModelsSectionTests and LoadedModelsTests: 8 passed. Whole target: 3,631 passed, 0 failed, 7 skipped. scripts/check.sh passes.
  • Not checked in the running app: the mic is a mouse hold, so the menu can't be open while it records.

Merge Danger

Door: two-way

Wiring only: no stored data, settings or API. A revert puts the list back.

Blast Radius: menu

The Models section's Dictation row. The four Voice Inputs are built with the same arguments, now in one place.

…tation row

The Dictation row read its takes from a hand-written list of the
container's Voice Inputs. Today's composer got its own in #624, after the
list was written in #604, and never joined it: a take held on Today's mic
read as Idle, and so did its Proofread Pass after release.

The container now builds every Voice Input with makeVoiceInput(), which
registers it in voiceInputs, and modelActivity() reads that. A
source-shape test fails if the container builds one anywhere else.
@claude

claude Bot commented Oct 11, 2026

Copy link
Copy Markdown

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

@spokvulcan
spokvulcan merged commit 95e51b1 into main Oct 11, 2026
9 checks passed
@spokvulcan
spokvulcan deleted the claude/friendly-cori-a44a6d branch October 11, 2026 01:17
spokvulcan pushed a commit that referenced this pull request Oct 11, 2026
🤖 I have created a release *beep* *boop*
---


##
[1.19.0](v1.18.0...v1.19.0)
(2026-10-11)


### Features

* **companion:** Today marks the step under way, shortens links, and
lets Inbox items be ticked off
([#632](#632))
([0e838bf](0e838bf))
* **companion:** Today's Chat shows the day's moments as cards you can
act on ([#635](#635))
([9e64c6b](9e64c6b))


### Bug Fixes

* **companion:** a repeating must-do ticked off counts as done, in its
slot ([#634](#634))
([011778a](011778a))
* **companion:** Today's Tomorrow keeps a task's time, and Later and
Move to Today leave a repeating series alone
([#637](#637))
([d3f38c6](d3f38c6))
* **menubar:** a take on Today's mic shows on the Models section's
Dictation row
([#636](#636))
([95e51b1](95e51b1))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant