Skip to content

Bring beta.4 hands-free voice controls to the macOS preview - #3

Merged
aaamosh merged 3 commits into
mainfrom
feat/macos-voice-commands
Oct 5, 2026
Merged

aaamosh merged 3 commits into
mainfrom
feat/macos-voice-commands

Conversation

@aaamosh

@aaamosh aaamosh commented Oct 5, 2026

Copy link
Copy Markdown
Owner

Scope

Integrate the already-published Linux beta.4 voice commands into a verified native macOS release for Apple Silicon and Intel. Base source: 7fc4935a3fdc346197f6f6dd17ebd40a77b31008.

The production listener, command router, cancellation, call controls and UI are already shared with Mac. This change retains that implementation instead of introducing a competing platform-specific command engine. The existing silent AudioContext sink and latencyHint: 0.1 remain unchanged.

Native acceptance

  • A new twelfth required package gate runs the real packaged Python listener, WakeManager and VoiceCommands with generated speech. Seven default commands must emit their exact labels and dispatch; five controls cover ordinary wake, unrelated speech, disabled commands, a custom phrase and rejection of its replaced phrase.
  • This gate injects PCM at the capture callback and dispatches to an isolated state fixture. Existing real Electron PCM pipeline and GUI/media tests remain required; it is not a hardware, TCC or authenticated-call test.
  • Each case requires bounded output, a successful decoder EOF, exact ordered events and clean capture/process teardown. WAV/PCM hashes and the pinned Flite provenance are preserved with the native QA report, including failures.
  • The packaged GUI saves opt-in and a custom phrase, reloads, verifies the controls and captures the Voice page. Bundled CLI tests verify Mac defaults, command persistence and continued opt-out without system Node.
  • Mac regressions cover live phrase changes without reconnecting, selected-input preservation, cancellation and rejection of stale or not-yet-listening commands. Duplicate required gate names are rejected before running, so results cannot overwrite one another.

Publication and compatibility

The one-time write job is restricted to the exact main commit subject Publish macOS beta 4 preview with voice commands. It waits for both native jobs and promotes only their original artifacts to v0.1.0-beta.4-macos-preview.1, with complete inventories, manifests and SHA-256 verification. Ordinary pushes, PRs and manual runs cannot publish. No existing release assets are replaced; prior Mac previews and Linux beta.4 are covered by a preservation regression.

The Mac guide documents opt-in, all seven editable English phrases, local listening versus transmission mute, and the beta.3 rollback requirement: restore pre-upgrade config after beta.4 has saved its additional command fields. Profiles and recordings must not be removed.

Native CI results will be recorded here before merge/publication. Builds remain ad-hoc signed previews without Developer ID/notarization. Physical audio devices, real permission prompts, macOS 13 runtime, sleep/unplug, Login Items and authenticated calls remain hands-on acceptance items.

Retain the shared production implementation and silent PCM capture fix. Add
native recognition-to-routing tests for all seven commands and five controls,
packaged UI/CLI settings checks, upgrade/rollback notes, and a separately gated
beta.4 Mac preview promotion. Preserve previous Mac and Linux releases.

Co-authored-by: ChatGPT <noreply@openai.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

Respect the disabled command inputs while wake is off and exercise all toggle
combinations without enabling capture. Supply a fixed one-second silent tail
for finite speech while keeping speech bytes and model thresholds unchanged.
Preserve same-WAV half/one-second native comparisons separately from the twelve
mandatory recognition-to-routing cases.

Co-authored-by: ChatGPT <noreply@openai.com>

aaamosh commented Oct 5, 2026

Copy link
Copy Markdown
Owner Author

The first native run (37373456930) failed on two acceptance-fixture issues, now addressed/instrumented in 40f307bfcbc33c4b59e4f064f82a847f1c7e2c60:

  1. Both architectures correctly disabled command fields while the master wake toggle was off. The GUI smoke incorrectly expected them enabled. It now checks that disabled state and all seven fields under each relevant toggle combination without saving wake-on or acquiring a microphone.
  2. ARM recognized and dispatched the first five commands but did not emit playMissedReplies for its generated Replay messages WAV before fixture EOF. Intel passed all twelve command cases. The two architectures generated different WAV bytes. The finite fixture previously had only 0.5 seconds of trailing silence. The new run retains speech bytes and all model settings, supplies a fixed one-second tail, and records separate fresh-process comparisons of the same WAV with 0.5/1.0-second tails. These observations do not replace any mandatory case or loosen recognition assertions; the cause is not considered established until those native results are inspected.

Both original QA archives are preserved. Their SHA-256 values are e869e356a14fbb611407dd4b308c9c91017c2349e4aa24fadca37832d16cb7b5 (ARM) and b05631cb080fd89ae24cd161f6cc5976718389a1eed3cf87326e02db5acc8d79 (Intel). The updated local PCM/event and Mac-manager regressions pass 17/17. Runtime command logic, recognition thresholds, capture deadlines and the existing eleven package gates remain unchanged.

The separate older Linux-main notification refers to cancelled run 37367626839, not a failing test assertion; its job log is unavailable (404 BlobNotFound). No notification settings or published release assets were changed.

Keep wake-only decoding and all acoustic thresholds unchanged. Command mode
has eight configured labels and now retains eight active paths. Add bounded
same-PCM native comparisons of four/eight/sixteen paths and floating-point
encoders to distinguish beam pruning from quantized inference behavior.
The twelve original acceptance cases remain mandatory.

Co-authored-by: ChatGPT <noreply@openai.com>

aaamosh commented Oct 5, 2026

Copy link
Copy Markdown
Owner Author

Native acceptance is now successful for head a90f3418dce555838a2d2fe001db6b85c1d635bc, tested merge source 4454cfe51d7bfe7e3b46ad84490ba755a078c7e0.

  • Linux run 37378782446: success.
  • Native Mac run 37378782473: success on ARM64 and x64, all 12 required package gates and all 12 exact speech/routing cases. Both packaged GUI tests preserve voice settings and complete four fresh wake captures; the real PCM pipeline and its four resume cycles pass.
  • Downloaded only the two QA Actions artifacts for verification (not Release assets). ZIP SHA-256: ARM d9e474c22c5fcee374b0a24afd7cab76114c329a14a6c7f7af9846ba204afc15, Intel be9146e85513b13efceea373268a51ef0e3261305164e2ddc8d8e7bb53e6f702. Their reports match the tested source and contain no failed gate.

The prior silence-tail hypothesis was NOT confirmed: ARM failed the same Replay messages WAV with both 0.5s and 1s tails. The new controlled native comparison uses identical PCM and unchanged acoustic settings: four active paths miss the ARM utterance; eight and sixteen detect the expected command. Eight is therefore retained for command mode, while wake-only mode stays at four. Changing all model components to FP32 did not fix that utterance, so wholesale model replacement was rejected. These results establish a useful fix for the observed case, not a general accuracy claim or a proof of the underlying architecture-dependent numerical cause. Negative, disabled and replaced-phrase controls remain passing on both architectures.

The tested source is ready for the owner-requested macOS preview publication. Existing Mac previews and Linux beta.4 remain outside the publisher's mutation target. Physical-device/TCC/account-call and Developer ID/notarization limitations are unchanged.

@aaamosh
aaamosh merged commit 98a41e0 into main Oct 5, 2026
4 checks passed

aaamosh commented Oct 5, 2026

Copy link
Copy Markdown
Owner Author

Published and verified

The owner-requested macOS hands-free preview is public: https://github.com/aaamosh/DotDial/releases/tag/v0.1.0-beta.4-macos-preview.1

Release source: 98a41e095193c9fd4970e93d70a3232e1270d477. Both original native jobs in run 37382534871 passed all 12 package gates and all 12 exact speech/routing cases. Their QA artifacts were independently read and matched the release source. All seven published asset digests match those original QA checksums, including the deterministically reconstructed combined checksum file. Release-content GETs were not used for this verification.

The first promotion job stopped at immediate new-draft metadata readback, before uploads. Draft 404144028 was subsequently verified against the exact tag, source, title, body, author and empty asset inventory. Only promotion was rerun; job 112011241797 published the original artifacts successfully. The original response fields were not retained, so the precise first-read mismatch is not claimed as proven.

Final main dc001d646d51a893b8e60b4cc75a46690136ff5c updates downloads, retires the completed one-time publication job, and adds bounded read-only retries solely for an absent newly created draft. Visible mismatches and HTTP failures still stop immediately, and no write is automatically repeated. Four new regressions pass; the complete local suite is 431/431 with no skips.

Final-main Linux run 37384070448 and native Mac run 37384070432 are successful on their first attempts. Runtime voice code is unchanged from the release. Earlier macOS Preview 1, Preview 2 and the Linux beta.4 release were compared with the saved metadata baseline: IDs, source targets, notes, asset names, sizes and digests are unchanged.

The release remains an ad-hoc signed preview without Developer ID/notarization. Native synthetic tests do not replace physical microphones, real TCC dialogs, authenticated calls, minimum-macOS runtime, sleep/unplug or Login Items acceptance. Back up config before upgrading; beta.3 rollback needs the earlier config restored after beta.4 writes its command fields.

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