Skip to content

fix(desktop): focus editable fields at click points - #141

Merged
iamnbutler merged 4 commits into
mainfrom
codex/composer-coordinate-check
Oct 5, 2026
Merged

iamnbutler merged 4 commits into
mainfrom
codex/composer-coordinate-check

Conversation

@iamnbutler

@iamnbutler iamnbutler commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Fix coordinate clicks on editable Accessibility fields so they use the same verified keyboard-focus path as element clicks. A point click on Ace's own composer previously returned unknown and left it unfocused. The raw hit test now runs on the existing bounded read lane, and process generation, exact window bounds, and element ownership are rechecked immediately before mutation. Positional AXPress retains native ownership until its actual return; no retry or post-dispatch fallback is added.

Related: githubnext/ace2#8, githubnext/desktop-tools#5. This proves the composer case; other githubnext/desktop-tools#5 cases remain open. Keyboard focus does not promise click-to-character caret positioning.

Validation at 75f20cc:

  • bun types, bun run ci, GitHub CI, ordered patch checks, Swift compilation, and the signed desktop build pass. Strict app/client/library/launcher signatures and independent source review pass.
  • Preserved baseline: one actual-Ace point click returned unknown, leaving the public ace draft unchanged and unfocused. After the fix, one point click returned completed with native confirmed_change, background accessibility_value delivery, and exactly one unit. Fresh inspection confirmed focus, the same draft, and collapsed caret offset 4.
  • Empty channel history and zero model calls, tool calls, and submissions remained unchanged across two different workers. The unchanged tool schema and routing did not require a new provider run; this check directly exercised the native self-target regression.
  • All 10 owned processes exited; the temporary channel, project, catalog, preferences, port, and desktop socket were cleaned up. No clipboard or text input was used.

Built in Ace

Used Codex's direct filesystem, terminal, and review tools under the user's explicit exception to finish githubnext/ace2#8 faster. The regression is Ace controlling its own composer (#106), which prevented relying on Ace's computer-use flow for this fix. Validation used Ace's signed desktop bridge and a disposable Ace channel. See #5 and githubnext/ace2#8.

@iamnbutler
iamnbutler marked this pull request as ready for review October 5, 2026 23:32
@iamnbutler
iamnbutler merged commit ad31506 into main Oct 5, 2026
1 check passed
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