Skip to content

v0.19.0

Choose a tag to compare

@thymikee thymikee released this 07 Jul 11:19

Highlights

  • Act and observe in one step: --settle now returns a settled diff with fresh refs, backed by wait stable and optional --verify evidence.
  • Safer refs, selectors, and taps: tap aliases press, stale/out-of-viewport refs get warnings, non-hittable targets include hints, and MCP can auto-pin snapshot refs.
  • Cleaner snapshot verification: snapshot output deduplicates inherited labels/identifiers, and diff snapshot is promoted for compact before/after checks.
  • Better diagnostics for agents: typed errors, ADB timeout hints, stderr excerpts, and the new capabilities command make failures and platform support easier to act on.
  • More reliable iOS automation: capture stalls are bounded, runner recovery preserves sessions, text entry is faster, and main-thread timeout hints are clearer.
  • More durable artifacts and recordings: artifacts have semantic types and deterministic downloads, and Android recordings can recover after daemon restarts.

What's Changed

  • fix: hint @ref when a bare snapshot ref is passed as interaction target by @thymikee in #1039
  • Surface targetHittable/hint for non-hittable press/fill targets (#1037) by @thymikee in #1040
  • fix: report unknown command before flag-support validation by @thymikee in #1038
  • feat: accept tap as an alias of press by @thymikee in #1053
  • refactor: add shared TTL memo reset registry by @thymikee in #1060
  • docs: document conservative revisit triggers by @thymikee in #1056
  • refactor: centralize known CLI command checks by @thymikee in #1057
  • fix: clarify prepare ios-runner timing overlap by @thymikee in #1058
  • refactor: split runner xctestrun module by @thymikee in #1062
  • feat(help): document behavioral guarantees in help workflow by @thymikee in #1054
  • refactor: split oversized session and apple app files by @thymikee in #1061
  • perf: smaller minified output and a lighter eager CLI startup path by @thymikee in #1065
  • feat(snapshot): dedup inherited labels/identifiers in output; promote diff snapshot by @thymikee in #1063
  • fix: surface stderr excerpts from hand-rolled exec failure wraps by @thymikee in #1072
  • fix: make artifact inventory consumption deterministic on download by @thymikee in #1073
  • fix: surface typed error codes for metro, MCP, and batch validation failures by @thymikee in #1070
  • fix: accept selector-first is form and print find action confirmations by @thymikee in #1068
  • feat: add wait stable settle primitive by @thymikee in #1059
  • fix: report expired daemon resources as expiry, not INVALID_ARGS by @thymikee in #1069
  • feat(interaction): opt-in --verify evidence for press/click/fill by @thymikee in #1064
  • feat: tag daemon artifacts with semantic types by @sjchmiela in #1066
  • feat: classify adb failures with actionable hints at the executor level by @thymikee in #1067
  • fix(errors): close call-site and consumer gaps around the central error system by @thymikee in #1071
  • refactor: harden exec failure wrapping end to end by @thymikee in #1074
  • fix: honor wait budgets, preserve the daemon on polling timeouts, refuse off-screen selector taps by @thymikee in #1075
  • RFC: ADR 0011 — interaction guarantee contract (path × guarantee matrix) by @thymikee in #1080
  • feat: preflight native-ref fast path with shared interaction guards (ADR 0011) by @thymikee in #1082
  • refactor: single construction site for interaction responses (ADR 0011 Layer 2) by @thymikee in #1083
  • refactor: declare command timeout policy on descriptors (ADR 0011) by @thymikee in #1084
  • feat: warn on out-of-viewport coordinate taps (ADR 0011) by @thymikee in #1085
  • feat: golden tap-point parity table for TS and the iOS runner (ADR 0011) by @thymikee in #1086
  • build: migrate the library build from rslib to tsdown (Rolldown) by @thymikee in #1087
  • chore: delete dead tap-by-text runner arm and settledAfterMs; hint on tiny stable trees by @thymikee in #1089
  • feat: actionable hint for adb timeouts by @thymikee in #1090
  • test: interaction contract suite with registry-driven coverage gate (ADR 0011 Layer 3) by @thymikee in #1092
  • ci: drop duplicate unit-test run, cache Size base dist, typecheck with tsgo by @thymikee in #1094
  • feat: direct iOS selector falls back to tree resolution on semantic failures (ADR 0011) by @thymikee in #1091
  • feat: warn when @refs outlive the session snapshot they came from by @thymikee in #1093
  • docs: native-ref dispatch path is web-only in production by @thymikee in #1095
  • docs: refocus AGENTS.md on principles and enforcement gates by @thymikee in #1097
  • test: slow-test ratchet and speed rules from measured experiments by @thymikee in #1099
  • feat: versioned snapshot refs with MCP auto-pinning by @thymikee in #1096
  • build: drop tsc entirely and fix sandbox-hostile tests by @thymikee in #1100
  • test: split the args.test.ts aggregation along source topology by @thymikee in #1102
  • docs: tighten agent operating guide by @thymikee in #1104
  • fix: bound iOS capture stalls and make runner recovery session-preserving (#1105) by @thymikee in #1107
  • build: support packaged CLI on Node 22.12 by @thymikee in #1116
  • test: split interaction runtime tests by @thymikee in #1113
  • ci: deepen Node 22 packaged CLI smoke by @thymikee in #1125
  • fix: name split declaration chunks by @thymikee in #1127
  • test: split the Android platform test aggregation and share the scripted adb stub by @thymikee in #1103
  • fix: harden apple runner recovery by @thymikee in #1126
  • build: strip runner unit-test blocks from package by @thymikee in #1128
  • fix: recover Android recordings after daemon restart by @thymikee in #1129
  • fix: reap managed web browser orphans by @thymikee in #1112
  • refactor: extract host process primitives by @thymikee in #1134
  • feat: add capabilities command by @thymikee in #1133
  • feat: --settle returns the settled diff in the interaction response (#1101) by @thymikee in #1106
  • refactor: derive command exposure lists from descriptors by @thymikee in #1137
  • fix: speed up iOS text entry by @thymikee in #1139
  • fix: hint on iOS runner main-thread timeouts by @thymikee in #1140
  • fix: simplify Android recording recovery by @thymikee in #1135
  • fix: normalize interaction response wire shapes by @thymikee in #1114
  • fix: recover completed Android recording from pending-only manifest by @thymikee in #1141

New Contributors

Full Changelog: v0.18.3...v0.19.0