feat(dictation): add optional voice input to Guild Wars chat - #340
Open
Mat4m0 wants to merge 5 commits into
Open
feat(dictation): add optional voice input to Guild Wars chat#340Mat4m0 wants to merge 5 commits into
Mat4m0 wants to merge 5 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
Verification
pnpm check— 1,437 unit tests, 185 policy tests, and 141 Tools tests passedpnpm buildpnpm packagepnpm test:packagedLive 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.