agent-desktop/crates/macos
Lahfir 07db5ceafb fix: ProcessState liveness classification and non-fatal enrichment
Reshape ProcessState to the plan's {Running, Exited{code}, Crashed,
Unresponsive} contract instead of the ad hoc {Responsive, Unresponsive,
Unknown}. macOS now does a kill(pid,0)-style liveness check before
probing AX at all, and only classifies Unresponsive after a second
consecutive kAXErrorCannotComplete, so one transient AX blip on a
healthy-but-busy app no longer hard-fails the action. The classification
threshold is isolated behind a pure, platform-independent classify() fn.

ensure_process_responsive was an unconditional preflight hard-gate that
could turn a would-succeed action into a failure and propagated a
transient probe error as the terminal error. Replace it with
enrich_with_process_state: best-effort, terminal-only enrichment that
runs exactly once (never per auto-wait tick), never converts a success
into a failure, attaches details.process_state on STALE_REF/APP_NOT_FOUND,
and only surfaces APP_UNRESPONSIVE when the process is genuinely
classified Unresponsive.

Add the missing retry_token_for_code arm for AppUnresponsive.
2026-07-02 23:48:02 -07:00
..
examples fix: harden agent-desktop reliability (#54) 2026-06-20 15:43:42 -04:00
src fix: ProcessState liveness classification and non-fatal enrichment 2026-07-02 23:48:02 -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!: over-engineering audit cleanup (#64) 2026-06-24 14:31:17 -07:00