Add native text selection and keyboard shortcuts #81
- IA
Adds `desktop_select` for literal text selection and caret placement, with adjacent prefix/suffix matching for repeated text. Extends `desktop_key` with navigation, letters, digits, function keys, and Command/Control/Option/Shift shortcuts while preserving exact observed targets, complete press/release chords, and unsafe-to-replay mutations. Editable controls with an absent AXEnabled flag are accepted; explicitly disabled controls remain refused.
Refs #65 and #8. Closes #66. This extracts the selection and shortcut work from #67 onto merged #63. Literal insertion remains separate work in #65 / #76; this PR adds no insertion or clipboard tool.
Validation: fresh `bun types`, `bun run ci`, `git diff --check`, Ace diff review, and independent source review pass. The unchanged selection/shortcut paths previously passed real signed AppKit checks at `d04c8c4`: contextual UTF-16 selection/caret positioning, ambiguous and disabled refusal, Command+A, Shift+Right, backward/forward delete, and consumed-snapshot refusal. The existing real local pi and hosted-workspace runs also exercised these paths and replayed persisted results/screenshots after restart without repeated input. Those earlier combined-workflow results are reused only for selection and shortcuts; they do not certify the separate literal-insertion implementation. This extracted branch has not yet been rebuilt or launched as a signed app.
### Built in Ace
Dependency installation, checks, Git commits/pushes, and PR creation run through an Ace terminal. The six-file diff was reviewed through Ace's changes/patch APIs. Codex performed source inspection/editing and independent review because native Codex integration (#9) and an Ace file editor (#22) remain open. No new native desktop actions or model runs were performed for this extraction.
iamnbutlerready-for-reviewlast month on GitHub
iamnbutlermerged 9418c8e6dad0last month on GitHub
iamnbutlerreferenced this in Add literal desktop insertion with reserved clipboard ownership #67last month on GitHub
iamnbutlerreferenced this in [Meta] Complete native computer use in Ace #8last month on GitHub
iamnbutlerreferenced this in Validate native text insertion on hosted channels and under interruption #65last month on GitHub
iamnbutlerreferenced this in Do not reject editable text areas when AXEnabled is absent #66last month on GitHub