Skip to content

v0.20.10

Latest

Choose a tag to compare

@thymikee thymikee released this 24 Aug 07:04
· 196 commits to main since this release

Highlights

  • AI SDK and MCP integrations: A first-party agent-device/ai-sdk tool set makes agent-device available to AI SDK applications, while compact MCP instructions and an MCP-only help tool reduce setup and discovery overhead. #1804, #1839
  • More accurate iOS snapshots: Private-AX scroll visibility is unified, offscreen subtree leaks and clamped descendants are removed, snapshot presentation becomes an explicit seam, and transition snapshots derive from the visible capture. #1798, #1807, #1811, #1845, #1831, #1848, #1850, #1851
  • Better Android visibility and gestures: Covering siblings hide only the content they actually cover, snapshot scope resolves once with the API 23 evidence gap disclosed, and saturated scroll gestures stay below the status bar. #1808, #1846, #1820
  • Web hover automation: The new hover command supports hover-gated menus, tooltips, and other web UI that cannot be exercised with click or touch alone. #1786, #1817
  • Safer sessions, devices, and cloud runs: Invalid path-like session names are rejected, sessionless mutations enforce device claims, remote diagnostics reach the caller, and WebDriver cloud creation has a bounded budget without leaking billed sessions. #1815, #1809, #1814, #1782
  • Lean, more trustworthy CI: Native lanes skip docs-only changes, parked suites are dispatch-only, nightly iOS runs the full XCTest suite, transient comment failures no longer fail bundle-size checks, and redundant or cascading jobs are removed. #1791, #1794, #1789, #1795, #1787, #1822

Release breakdown

  • 46 commits
  • 44 merged pull requests
  • 1 contributor

What's Changed

  • ci: drop duplicate nightly-macos replay job (#1781 A2) by @thymikee in #1787
  • fix: unify private AX scroll visibility by @thymikee in #1798
  • chore: restore unreleased version by @thymikee in #1805
  • fix: prevent private AX subtree leaks at source by @thymikee in #1807
  • ci: skip device lanes for root-level docs-only changes (#1781 A9) by @thymikee in #1791
  • test(android): restore full-tier lifecycle and observability scenarios (#1781 A1) by @thymikee in #1793
  • ci: move parked device replay suites to a dispatch-only workflow (#1781 A1) by @thymikee in #1794
  • test: assert the specific error code instead of any failure (#1781 B4) by @thymikee in #1790
  • chore(format): ignore .claude/** in oxfmt so a main-checkout format can't sweep worktrees by @thymikee in #1803
  • fix: hide clamped descendants of offscreen iOS rows by @thymikee in #1811
  • feat(web): add hover command for hover-gated UI (#1783) by @thymikee in #1786
  • ci: keep Bundle Size job green on transient GitHub comment failures by @thymikee in #1795
  • fix(daemon): reject '.', '..' and empty session names so session artifacts stay under sessions/ by @thymikee in #1815
  • feat(ai-sdk): add agent-device/ai-sdk tool set and document the MCP zero-code path by @thymikee in #1804
  • fix: reject selector-shaped wait arguments instead of reading them as text by @thymikee in #1813
  • ci(ios): run the full XCTest suite nightly and check the PR test list (#1781 A7) by @thymikee in #1789
  • fix(ios-runner): reject CGRect.infinite in navigation frame guards by @thymikee in #1816
  • fix: declare frameworkTier on the hover descriptor by @thymikee in #1817
  • fix: enforce device claims for sessionless device mutations (#1799) by @thymikee in #1809
  • fix(scroll): keep saturated scroll gestures out of the status bar; gate Android replays from android/emulator (#1781 A1) by @thymikee in #1820
  • fix(android): let a covering sibling hide only what its content covers by @thymikee in #1808
  • fix: report real claim results from daemon stop by @thymikee in #1818
  • fix: read replay scripts on the caller and ship them with the request by @thymikee in #1810
  • chore(test): remove the contention retry (0 fires since 07-29) and shrink the subprocess-stub project to its 3 real spawners (#1781 A4) by @thymikee in #1827
  • chore(layering): document R12/R18/R19, retire R8, make R9 shrink mandatory (#1781 A6) by @thymikee in #1825
  • fix: serve remote daemon request diagnostics to the caller by @thymikee in #1814
  • fix(webdriver): give cloud session creation its own budget and stop leaking billed sessions by @thymikee in #1782
  • refactor: migrate snapshot to device runtime by @thymikee in #1779
  • refactor: split the test-suite command out of the replay handler by @thymikee in #1826
  • fix(layering): keep the snapshot interactor seam out of the type cycle by @thymikee in #1838
  • refactor(ios): establish snapshot presentation seam by @thymikee in #1845
  • ci: park perf-nightly to dispatch and stop the coverage-gate cascade double-red (#1781 A3, A5) by @thymikee in #1822
  • chore(mutation): shrink to report-only — drop the ratchet, baseline and graduation (#1457, #1781) by @thymikee in #1828
  • test: prune abandoned test-run tmp directories at run setup by @thymikee in #1834
  • feat(mcp): compact server instructions in both eras + MCP-only help tool by @thymikee in #1839
  • fix: derive iOS transition snapshots from visible presentation by @thymikee in #1831
  • refactor(ios): route snapshot backends through presentation by @thymikee in #1848
  • docs(agents): ADR 0019 unit checklist, owning-seam mock rule, worktree and rebase guidance by @thymikee in #1836
  • fix(android): resolve snapshot scope once and disclose the API 23 occlusion-scan gap (#1832 C1/C2) by @thymikee in #1846
  • feat(ios): unify snapshot eligibility by @thymikee in #1850
  • refactor: migrate diff to request-bound runtime by @thymikee in #1847
  • test: pin test files over 1,000 lines at their exact length so they can only shrink by @thymikee in #1843
  • test(ratchet): pin snapshot-handler.test.ts at main's 2654 lines by @thymikee in #1860
  • fix: derive transition backend from capture by @thymikee in #1851

Contributors

Full Changelog: v0.20.9...v0.20.10