agent-desktop/crates/macos
Lahfir 3ad7b2c245 fix: eliminate vacuous AX successes and harden resolution
Dogfooding the binary against a real fixture app surfaced five cases where a
command reported success without producing the effect, or failed with the wrong
error. Each is verified by independent before/after observation in the E2E
harness.

- is_menu_open no longer treats a latent AXMenuBar as an open menu, so select
  and wait --menu-closed stop seeing a permanently-open menu.
- set-value coerces the written AXValue to the element's existing CFNumber/
  CFBoolean/CFString type and verifies numerically, fixing sliders; steppers
  converge via AXIncrement/AXDecrement when AXValue writes are vacuous.
- double-click only claims success when the element advertises AXOpen; otherwise
  it fails closed instead of reporting a non-existent double-click.
- a completed resolution pass that proves a ref absent downgrades a deadline
  TIMEOUT to STALE_REF so removed elements fail with the correct code.
- expand/collapse verify the disclosure state and fall back to a press-toggle
  for press-driven disclosures; press-toggled containers expose EXPAND/COLLAPSE.

roles.rs adds the disclosure expandable role and normalizes textarea/textbox/
searchfield role queries to textfield.
2026-06-17 13:43:19 -07:00
..
examples chore: strip inline comments and enforce docstrings 2026-06-17 13:43:19 -07:00
src fix: eliminate vacuous AX successes and harden resolution 2026-06-17 13:43:19 -07:00
build.rs feat: Phase 1 foundation — workspace scaffold, core engine, macOS adapter, 31 commands 2026-02-19 10:44:38 -08:00
Cargo.toml refactor!: unify command execution contracts 2026-05-19 18:27:08 -07:00