Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .changeset/agent-device-0-21-25.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/cached-session-expiry.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/cancel-subscription-refresh-wait.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/decision-dismiss-keyboard.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/decision-selected-state.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/decision-stall-clock.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/ios-network-unsupported.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/limrun-agent-device-dependency.md

This file was deleted.

9 changes: 0 additions & 9 deletions .changeset/limrun-provider.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/mobile-android-fold.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/mobile-permissions-explicit-app.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/mobile-published-viewport.md

This file was deleted.

12 changes: 0 additions & 12 deletions .changeset/mobile-selector-parity.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/mobile-typed-session-errors.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/nested-tsconfig-references.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/owned-process-descendants.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/run-watch.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/skill-decision-tree.md

This file was deleted.

10 changes: 10 additions & 0 deletions packages/decision/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# @e2e-dev/decision

## 0.2.1

### Patch Changes

- [#843](https://github.com/tester-army/e2e/pull/843) [`ac657d1`](https://github.com/tester-army/e2e/commit/ac657d1d0c063cd19ee458ee1d645783bf1ef8ce) Thanks [@pvedula7](https://github.com/pvedula7)! - The decision executor offers `dismiss_keyboard` while an on-screen keyboard is showing and the engine can dismiss it. Before, a control the keyboard covered after typing (an iOS number pad over a submit button) could not be reached, and the step failed.

- [#910](https://github.com/tester-army/e2e/pull/910) [`42ce272`](https://github.com/tester-army/e2e/commit/42ce272c9ccc8e59571eaa14122e55ed85554b29) Thanks [@Ashfaqbs](https://github.com/Ashfaqbs)! - The decision executor now forwards an element's `selected` state to the model, the same way it already forwards `checked` and `expanded`. Without it, a tab bar's active tab looked identical to the rest, so the completion check for a tab switch landed near 50/50 and sometimes blocked a step that actually worked, or claimed a step done before anything was tapped.

- [#844](https://github.com/tester-army/e2e/pull/844) [`5e55d7c`](https://github.com/tester-army/e2e/commit/5e55d7c92d67f9b8741c7835ef23de5d62c637c2) Thanks [@pvedula7](https://github.com/pvedula7)! - The decision executor's stall guard now counts an action that errored as no progress, so three actions in a row that failed or changed nothing on screen block the step. It used to look only at whether the page changed, and a ticking timer on screen changes it every time: a tap that failed with `APP_UNREACHABLE` again and again never tripped the guard, and the model could repeat it until it gave up and claimed the step failed. A skipped pick and a rejected `done` or `failed` claim also carry an error in the step's history, so they count toward the three as well.

## 0.2.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/decision/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@e2e-dev/decision",
"version": "0.2.0",
"version": "0.2.1",
"description": "Decision-model executors for e2e",
"license": "Apache-2.0",
"repository": {
Expand Down
18 changes: 18 additions & 0 deletions packages/e2e/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
# e2e

## 0.20.0

### Minor Changes

- [#1068](https://github.com/tester-army/e2e/pull/1068) [`9e2a8bf`](https://github.com/tester-army/e2e/commit/9e2a8bf4c71aae5513a1d8b1b3b610b2cf5b88f4) Thanks [@okwasniewski](https://github.com/okwasniewski)! - `e2e run --watch` (`-w`) runs the tests, then runs again whenever a test file, a source file beside the tests, or the config is saved, or a key asks for it, with vitest's keys: `a` or enter for every test, `r` for the current filters, `f` for the failed ones, `u` to update snapshots, `p` and `t` to filter by file and title, `q` to quit. A key during a run cancels it. Refused in CI and with `--reporter json`.

### Patch Changes

- [#944](https://github.com/tester-army/e2e/pull/944) [`9acaa16`](https://github.com/tester-army/e2e/commit/9acaa16f59db8a484091e53d2a9b6979557169c2) Thanks [@rudycelekli](https://github.com/rudycelekli)! - Reject an expired saved session on later restores even when its state is cached in the worker.

- [#933](https://github.com/tester-army/e2e/pull/933) [`e22d8a0`](https://github.com/tester-army/e2e/commit/e22d8a05512f5ecff73b119ce28c7afd8aa10633) Thanks [@rudycelekli](https://github.com/rudycelekli)! - Respect model-call cancellation while waiting for a shared subscription token refresh.

- [#1052](https://github.com/tester-army/e2e/pull/1052) [`29cd745`](https://github.com/tester-army/e2e/commit/29cd745db3bad6f58d6041c87bd2582e260c355d) Thanks [@rudycelekli](https://github.com/rudycelekli)! - Resolve aliases and compiler settings from nested solution-style TypeScript project references.

- [#932](https://github.com/tester-army/e2e/pull/932) [`7bd0dde`](https://github.com/tester-army/e2e/commit/7bd0dde3b23b72c7e5d689df0e901c08cb7e3138) Thanks [@rudycelekli](https://github.com/rudycelekli)! - Stop surviving app-command descendants on POSIX even when the command leader exits first, preserving the shutdown grace period for the entire process group.

- [#1065](https://github.com/tester-army/e2e/pull/1065) [`d6ab2c5`](https://github.com/tester-army/e2e/commit/d6ab2c582479e67ccc9eed5a493e96091701f2f2) Thanks [@KrzysztofMoch](https://github.com/KrzysztofMoch)! - The bundled agent skill routes faster. `SKILL.md` opens with a table that sends each job to one reference, its description now covers checking a change in the running app over `e2e mcp`, and every reference opens with a list of its sections.

## 0.19.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/e2e/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "e2e",
"version": "0.19.0",
"version": "0.20.0",
"description": "SDK, runner, and CLI for agentic end-to-end testing",
"keywords": [
"e2e",
Expand Down
14 changes: 14 additions & 0 deletions packages/limrun/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# @e2e-dev/limrun

## 0.2.0

### Minor Changes

- [#988](https://github.com/tester-army/e2e/pull/988) [`c807f94`](https://github.com/tester-army/e2e/commit/c807f9480646a13f00d308cdd0a90034908b5543) Thanks [@enesonus](https://github.com/enesonus)! - Add the Limrun device provider with one hosted instance per worker, app
installation, recording through agent-device, and cleanup on run exit.
Renew retained driver leases while other targets run. Keep provider-owned
local daemons isolated from ambient remote-daemon environment settings.

### Patch Changes

- [#1066](https://github.com/tester-army/e2e/pull/1066) [`c4263bd`](https://github.com/tester-army/e2e/commit/c4263bde1786fdf19817eb53441e5460e682f012) Thanks [@okwasniewski](https://github.com/okwasniewski)! - Ship agent-device as a regular dependency pinned to the mobile engine's version instead of an exact peer dependency, so users no longer install it by hand.
2 changes: 1 addition & 1 deletion packages/limrun/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@e2e-dev/limrun",
"version": "0.1.0",
"version": "0.2.0",
"description": "Limrun hosted iOS simulators and Android emulators for e2e mobile tests",
"keywords": [
"e2e",
Expand Down
34 changes: 34 additions & 0 deletions packages/mobile/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,39 @@
# @e2e-dev/mobile

## 0.12.0

### Minor Changes

- [#999](https://github.com/tester-army/e2e/pull/999) [`4bb3e42`](https://github.com/tester-army/e2e/commit/4bb3e42f501e69dce9377a40542993d3c808d3e8) Thanks [@reiidoda](https://github.com/reiidoda)! - Breaking: `device.setNetwork('offline')` and `device.setAirplaneMode(true)` now fail with `UNSUPPORTED_CAPABILITY` on iOS. They previously changed only the simulator's status bar while the app stayed online. Restoring the network with `setNetwork('online')` or `setAirplaneMode(false)` does nothing on iOS, so shared cleanup hooks still work.

Run offline tests on Android with `platforms: ['android']` and `setAirplaneMode(true)` (Android 11+). `setNetwork('offline')` turns off Wi-Fi only; cellular data can keep the app online.

- [#1059](https://github.com/tester-army/e2e/pull/1059) [`e291f09`](https://github.com/tester-army/e2e/commit/e291f09c6a1c78069cd1a7af3b973a3bf8aca9e5) Thanks [@thiagobrez](https://github.com/thiagobrez)! - `device.fold` works on foldable Android emulators. agent-device 0.21.25 sets the emulator console posture and waits for the device state Android commits, so the engine no longer refuses Android before the command; a fold to the cover display also clears the lock screen the emulator raises. Before, `device.fold` on an Android target failed with `UNSUPPORTED_CAPABILITY`.

- [#1023](https://github.com/tester-army/e2e/pull/1023) [`490a97e`](https://github.com/tester-army/e2e/commit/490a97e7ccdaae259a7808ed23c4cf124946a18a) Thanks [@thymikee](https://github.com/thymikee)! - `device.locator()` and the `selector` locator match with agent-device's own term rules (`listSelectorChainMatches`, 0.21.21) instead of the engine's copy of them, which had drifted. A selector can match different nodes than before:

- `role` takes agent-device's kind, the role `agent-device snapshot` prints (`text-field`, `navigation-bar`, `scroll-area`), not the `getByRole` role. `role=textbox` becomes `role=text-field`, `role=navigation` becomes `role=navigation-bar`, `role=search-field` becomes `role=search`, `role=listitem` becomes `role=cell`. Platform type names (`StaticText`, `NavigationBar`) still match through agent-device's deprecated aliases; the docs now use the kind.
- Text terms (`id`, `label`, `value`, `text`) compare case-insensitively.
- `visible` means hittable or a non-empty frame, and `hidden` its opposite.
- `editable` means a fillable type that is enabled; a disabled field is not editable.
- `hittable` matches only a node that reports it; one that doesn't say is no longer counted as hittable.
- `text` reads the first non-empty label, value, or identifier.

### Patch Changes

- [#1025](https://github.com/tester-army/e2e/pull/1025) [`880ae70`](https://github.com/tester-army/e2e/commit/880ae70c9c6ade9d6f69e7d7a17b7f4a6b4056b3) Thanks [@thymikee](https://github.com/thymikee)! - agent-device 0.21.25: `settings permission --app` resolves a display name to the installed app's id and refuses an app that isn't installed ([callstack/agent-device#3386](https://github.com/callstack/agent-device/pull/3386)), and on iOS a canceled request keeps its session until the runner finishes the canceled command ([callstack/agent-device#3385](https://github.com/callstack/agent-device/pull/3385)).

- [#988](https://github.com/tester-army/e2e/pull/988) [`c807f94`](https://github.com/tester-army/e2e/commit/c807f9480646a13f00d308cdd0a90034908b5543) Thanks [@enesonus](https://github.com/enesonus)! - Add the Limrun device provider with one hosted instance per worker, app
installation, recording through agent-device, and cleanup on run exit.
Renew retained driver leases while other targets run. Keep provider-owned
local daemons isolated from ambient remote-daemon environment settings.

- [#1025](https://github.com/tester-army/e2e/pull/1025) [`880ae70`](https://github.com/tester-army/e2e/commit/880ae70c9c6ade9d6f69e7d7a17b7f4a6b4056b3) Thanks [@thymikee](https://github.com/thymikee)! - Permissions are set on the app by name, with agent-device's `settings permission --app` (0.21.21, with display names resolved since 0.21.25). `device.setPermission()` and the permissions a launch presets no longer open the app first to put agent-device's session on it, so a permission goes in before the app's first launch with no foreground open. `device.setPermission()` always acts on the pinned app, as documented, not on whichever app the session last opened. The warm-up in `prepare` still opens the pinned app, and a worker no longer lists agent-device's sessions at start.

- [#1026](https://github.com/tester-army/e2e/pull/1026) [`62d5524`](https://github.com/tester-army/e2e/commit/62d55249c1348446d5f536ad9474383016075bb1) Thanks [@thymikee](https://github.com/thymikee)! - The mobile engine measures an observation in the viewport agent-device publishes with each snapshot (0.21.21), and infers it from the tree's largest window or rect extent only for a snapshot that publishes none. On a snapshot that publishes one, a tree that doesn't reach the screen's edges no longer shrinks the viewport, so a system panel above the bottom of the screen is no longer taken for the navigation bar.

- [#1024](https://github.com/tester-army/e2e/pull/1024) [`9065cf8`](https://github.com/tester-army/e2e/commit/9065cf8d36ec5616b18c842b577e8bf0ffd6740d) Thanks [@thymikee](https://github.com/thymikee)! - A missing agent-device session is recognized by agent-device's `SESSION_NOT_FOUND` code and its `session_or_device_selector_required` reason (0.21.21) instead of a pattern over the message, so a reworded message can no longer change whether a failure reports as `APP_NOT_OPEN`.

## 0.11.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/mobile/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@e2e-dev/mobile",
"version": "0.11.0",
"version": "0.12.0",
"description": "Mobile engine (iOS and Android) for e2e agentic end-to-end testing, built on agent-device",
"keywords": [
"e2e",
Expand Down
Loading