githubnext/ace2Public

Ace: a collaborative coding environment on the team's own machines

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

Mergediamnbutlermerged 4 commits intomainfromrefs/pull/141/head
  1. IA

    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: #8, #106. This proves the composer case; other #106 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 #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 #8.

  2. iamnbutlerready-for-reviewlast month on GitHub

  3. iamnbutlermerged ad31506695d6last month on GitHub

  4. iamnbutlerclosedlast month on GitHub

  5. iamnbutlerreferenced this in [Meta] Complete native computer use in Ace #8last month on GitHub

  6. iamnbutlerreferenced this in Focus and paste into WebKit composers with native desktop tools #106last month on GitHub