Commit graph

5 commits

Author SHA1 Message Date
Lahfir
a349bd9bc0 docs: rewrite README with AX-first interaction chains and inline menu capture 2026-02-21 15:41:28 -08:00
Lahfir
4616c8f65f feat: smart AX-first click chain + macOS crate restructure
Restructure crates/macos/src/ from flat files into tree/, actions/,
input/, system/ subfolders. No file exceeds 400 LOC.

Add actions/activate.rs with a 10-step discovery-based activation chain:
steps 1-9 are pure AX (AXPress, AXConfirm, AXOpen, AXPick, AXSelected,
AXSelectedRows on parent, focus+retry, child walk, parent walk),
step 10 falls back to CGEvent only when every AX path fails.

Wire smart_activate() into Click/DoubleClick/RightClick/TripleClick/Toggle.
Add AXDisclosing attribute fallback for Expand/Collapse.
Rewrite README with full command reference.
2026-02-20 23:53:05 -08:00
Claude
ad9256d888
docs: add performance benchmarks section documenting 6s → 0.3s snapshot speedup
Documents the root cause (sequential AX IPC calls per node), the fix
(AXUIElementCopyMultipleAttributeValues batch fetching), measured wall-time
benchmarks across TextEdit/Finder/System Settings/Xcode, and the secondary
optimisations: FxHashSet cycle detection, streaming JSON serialisation, and
per-element messaging timeout.
2026-02-20 16:45:59 +00:00
Lahfir
6dc567a4ae fix: align error codes with spec (APP_NOT_FOUND, PERM_DENIED) and add -i shorthand 2026-02-19 11:49:17 -08:00
Lahfir
fb34600448 docs: add professional README with full command reference and architecture guide 2026-02-19 11:44:28 -08:00