Skip to content

feat(dictation): add optional voice input to Guild Wars chat - #340

Open
Mat4m0 wants to merge 5 commits into
mainfrom
feat/dictation
Open

feat(dictation): add optional voice input to Guild Wars chat#340
Mat4m0 wants to merge 5 commits into
mainfrom
feat/dictation

Conversation

@Mat4m0

@Mat4m0 Mat4m0 commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Dictating into Guild Wars chat was not available even though macOS makes voice input a core writing workflow. A first integration also showed why a generic paste path was unsafe: it could insert unrelated clipboard contents, and a screen-fixed microphone could drift away from the movable chat panel.

This adds optional, disabled-by-default on-device dictation for macOS 26 and newer. Setup is explicit in Settings and lets Apple install the selected language model before the feature is enabled. The microphone appears only beside a certified, active Guild Wars chat input. Apple Speech partial results update the existing blue status bubble, while the final transcript stays in Main only long enough to enter the draft through complete trusted key sequences. The feature never reads or changes the clipboard and never sends Return.

The final simplification pass removed model-download progress plumbing, renderer exposure of final transcripts, duplicate geometry ownership, and unused compatibility fields. One canonical certified geometry feed now drives skill overlays, readiness reporting, and the movable chat anchor.

Invariants

  • Dictation is opt-in and requests no model or microphone access while disabled.
  • Password, email, number, stale, inactive, and uncertified text proxies never show the microphone.
  • Final text enters only the focused owning Guild Wars window through bounded trusted key events.
  • No audio or transcript enters diagnostics, storage, the network, or the clipboard.
  • Generic unpackaged Electron hosts cannot touch Apple Speech privacy APIs or prepare speech assets.

Verification

  • pnpm check — 1,437 unit tests, 185 policy tests, and 141 Tools tests passed
  • pnpm build
  • 72 integration tests passed
  • 26 release tests passed
  • 42 Tools end-to-end tests passed
  • Electron suite: 169 passed and 1 live-client test skipped
  • Feature-specific Electron proofs passed for trusted dictation input and chat-bound microphone visibility
  • pnpm package
  • pnpm test:packaged
  • Rebasing onto Cartography PR feat(cartography): guide map completion on native maps #339 preserved its renderer settings boundary, map target observation, declarations, defaults, and tests; the combined suites passed
  • Nuclear/YAGNI code-quality review completed with no remaining blocker

Live QA and rollout risk

Matthias confirmed live dictation insertion in Guild Wars during development. That test happened before the final simplification commit, so the exact PR head still needs one Developer Build smoke test for speech start/stop, live partial feedback, chat movement, and final insertion.

This changes native speech, entitlements, certified client observation, and the renderer input boundary. Include it in the next Beta train after that Developer Build check; do not send it directly to Stable.

Attribution

Implemented and reviewed with Codex. The repository unit, native, Electron, and packaged-app harnesses provide the automated evidence.

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