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
2 changes: 1 addition & 1 deletion .agents/skills/kane-cli/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ When the user's request involves a browser — or writing test cases:
- You need the full NDJSON event schema (rare — §5's summary covers 90% of cases) → Read `references/parsing.md`
- Compare / evaluate / justify kane-cli against another tool or approach (cost, tokens, effort, ROI) → Read `references/fair-evaluation.md` first — comparisons are only honest like-for-like across the test lifecycle
- **Mobile**: drive a native app on a real Android/iOS device, or a virtual Android emulator / iOS simulator, instead of the browser → Read `references/mobile.md` first. Desktop (the browser) stays the **default** target; mobile is opt-in via `--target` and always drives an app you provide (`--app <build|APPid>`), never a URL.
- **Real devices** (`--target android|ios`) run from **any machine** — `run`, `testmd run`, `testrun run`, and `--remote` — with only `kane-cli login`. They need **KaneAI Max** (one real device) or **KaneAI credits + Real Device Plus Automation Cloud**; read `references/mobile.md` §Real devices for the plan rules before running one.
- **Real devices** (`--target android|ios`) run from **any machine** — `run`, `testmd run`, `testrun run`, and `--remote` — with only `kane-cli login` (`--remote` also needs the remote-execution plugin and a HyperExecute plan). They need **KaneAI Max** (one real device) or **KaneAI credits + Real Device Plus Automation Cloud**; read `references/mobile.md` §Real devices for the plan rules before running one.
- **Emulator/simulator** (`--target emulator|simulator`): local runs need macOS Apple Silicon. From any other machine, run saved `_test.md` files on the cloud grid with `kane-cli testrun run <paths> --remote --device-name "<grid device>" --os-version <v> < /dev/null` (HyperExecute macOS runners).
- Never tell a non-Mac user mobile is impossible: offer a real device, or `--remote`.

Expand Down
8 changes: 4 additions & 4 deletions .agents/skills/kane-cli/references/mobile.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Desktop (the browser) is the **default** target and the primary use of kane-cli.

| Where the device runs | Host | Commands |
|---|---|---|
| **Real device** (`android` / `ios`, in the TestMu AI cloud) | **Any machine**, no mobile tooling — only `kane-cli login`. Needs **KaneAI Max** or **KaneAI credits + Real Device Plus Automation Cloud** (§Real devices) | `run --target android\|ios`, `testmd run`, `testrun run`, `testrun run --remote` |
| **Real device** (`android` / `ios`, in the TestMu AI cloud) | **Any machine**, no mobile tooling — only `kane-cli login` (`--remote` also needs the remote-execution plugin and a HyperExecute plan). Needs **KaneAI Max** or **KaneAI credits + Real Device Plus Automation Cloud** (§Real devices) | `run --target android\|ios`, `testmd run`, `testrun run`, `testrun run --remote` |
| **Local** (a simulator/emulator on this machine) | **macOS on Apple Silicon (arm64) only** — not Intel Macs, Linux, or Windows | `run --target …`, `testmd run`, `testrun run` |
| **Cloud grid** (a virtual device on a HyperExecute macOS host) | **Any machine** — no Xcode / Android Studio needed. The account needs a HyperExecute plan with macOS runners | `testrun run <paths> --remote … < /dev/null` — see §Remote below |

Expand Down Expand Up @@ -158,13 +158,13 @@ The account needs one of these ([pricing](https://www.testmuai.com/pricing/)):
| **KaneAI Max** | **One** real device: one real-device session at a time. |
| **KaneAI credits + Real Device Plus Automation Cloud** | As many at once as the automation plan's parallel tests. Credits are account-wide, so credits from any KaneAI plan qualify. |

A session beyond the plan's devices **queues for up to 10 minutes**; if a device frees up it runs, otherwise the run fails with `failed to open the mobile hub session: <reason>`. An account with neither plan fails the same way.
A session beyond the plan's devices **queues for up to 15 minutes**; if a device frees up it runs, otherwise the run fails with `failed to open the mobile hub session: <reason>`. An account with neither plan fails the same way.

How to act on it:

- **Before suggesting a real-device run**, if the user hasn't said which plan they have, mention the requirement once in a sentence. Do not block on it or quiz them.
- **On `failed to open the mobile hub session: …`**: stop. Do not retry. Show the hub's reason and tell the user a real-device run needs KaneAI Max or KaneAI credits + Real Device Plus Automation Cloud, and that a session over the plan's devices queues for 10 minutes before failing. Link the pricing page.
- **On KaneAI Max (one device)**: never pass `--parallel` above 1 for real-device members, and never start a second real-device run while one is open (including a TUI session the user left open) — the second one just queues and can fail after 10 minutes.
- **On `failed to open the mobile hub session: …`**: stop. Do not retry. Show the hub's reason and tell the user a real-device run needs KaneAI Max or KaneAI credits + Real Device Plus Automation Cloud, and that a session over the plan's devices queues for up to 15 minutes before failing. Link the pricing page.
- **On KaneAI Max (one device)**: never pass `--parallel` above 1 for real-device members, and never start a second real-device run while one is open (including a TUI session the user left open) — the second one just queues and can fail after 15 minutes.
- **On Real Device Plus Automation Cloud**: `--parallel N` is fine up to the plan's parallel tests.

### Running
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/kane-cli/references/testrun.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
- One test → `kane-cli testmd run` (`references/testmd.md`).
- Multiple ad-hoc `run` objectives (not saved tests) → `references/parallel.md` still applies.
- A **mobile** `_test.md` (Android emulator / iOS simulator) is a normal member (0.8.7+): locally it needs a mac-arm64 host with the mobile setup and `--device-name`/`--os-version` (or the file's `device_name:`/`os_version:`); with `--remote` it runs on a grid emulator/simulator **from any machine**. Read `references/mobile.md` (§Remote) for the device catalog and app rules.
- A **real-device** `_test.md` (`target: android|ios`) runs from **any machine**, locally or with `--remote`. Each member opens its own hub session, so `--parallel` is allowed — but only up to the account's real devices (KaneAI Max = **one**: keep `--parallel 1`; extra sessions queue 10 min, then fail). With `--remote` it is a HyperExecute job on **Linux** runners. Read `references/mobile.md` §Real devices.
- A **real-device** `_test.md` (`target: android|ios`) runs from **any machine**, locally or with `--remote`. Each member opens its own hub session, so `--parallel` is allowed — but only up to the account's real devices (KaneAI Max = **one**: keep `--parallel 1`; extra sessions queue up to 15 min, then fail). With `--remote` it is a HyperExecute job on **Linux** runners. Read `references/mobile.md` §Real devices.
- The user wants the suite on the **cloud grid** (no local Chrome, or a mobile suite from a non-Mac / a Mac without Xcode or Android Studio) → `kane-cli testrun run … --remote < /dev/null` (§Remote below).

## Command
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/kane-cli/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ When the user's request involves a browser — or writing test cases:
- You need the full NDJSON event schema (rare — §5's summary covers 90% of cases) → Read `references/parsing.md`
- Compare / evaluate / justify kane-cli against another tool or approach (cost, tokens, effort, ROI) → Read `references/fair-evaluation.md` first — comparisons are only honest like-for-like across the test lifecycle
- **Mobile**: drive a native app on a real Android/iOS device, or a virtual Android emulator / iOS simulator, instead of the browser → Read `references/mobile.md` first. Desktop (the browser) stays the **default** target; mobile is opt-in via `--target` and always drives an app you provide (`--app <build|APPid>`), never a URL.
- **Real devices** (`--target android|ios`) run from **any machine** — `run`, `testmd run`, `testrun run`, and `--remote` — with only `kane-cli login`. They need **KaneAI Max** (one real device) or **KaneAI credits + Real Device Plus Automation Cloud**; read `references/mobile.md` §Real devices for the plan rules before running one.
- **Real devices** (`--target android|ios`) run from **any machine** — `run`, `testmd run`, `testrun run`, and `--remote` — with only `kane-cli login` (`--remote` also needs the remote-execution plugin and a HyperExecute plan). They need **KaneAI Max** (one real device) or **KaneAI credits + Real Device Plus Automation Cloud**; read `references/mobile.md` §Real devices for the plan rules before running one.
- **Emulator/simulator** (`--target emulator|simulator`): local runs need macOS Apple Silicon. From any other machine, run saved `_test.md` files on the cloud grid with `kane-cli testrun run <paths> --remote --device-name "<grid device>" --os-version <v> < /dev/null` (HyperExecute macOS runners).
- Never tell a non-Mac user mobile is impossible: offer a real device, or `--remote`.

Expand Down
8 changes: 4 additions & 4 deletions .claude/skills/kane-cli/references/mobile.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Desktop (the browser) is the **default** target and the primary use of kane-cli.

| Where the device runs | Host | Commands |
|---|---|---|
| **Real device** (`android` / `ios`, in the TestMu AI cloud) | **Any machine**, no mobile tooling — only `kane-cli login`. Needs **KaneAI Max** or **KaneAI credits + Real Device Plus Automation Cloud** (§Real devices) | `run --target android\|ios`, `testmd run`, `testrun run`, `testrun run --remote` |
| **Real device** (`android` / `ios`, in the TestMu AI cloud) | **Any machine**, no mobile tooling — only `kane-cli login` (`--remote` also needs the remote-execution plugin and a HyperExecute plan). Needs **KaneAI Max** or **KaneAI credits + Real Device Plus Automation Cloud** (§Real devices) | `run --target android\|ios`, `testmd run`, `testrun run`, `testrun run --remote` |
| **Local** (a simulator/emulator on this machine) | **macOS on Apple Silicon (arm64) only** — not Intel Macs, Linux, or Windows | `run --target …`, `testmd run`, `testrun run` |
| **Cloud grid** (a virtual device on a HyperExecute macOS host) | **Any machine** — no Xcode / Android Studio needed. The account needs a HyperExecute plan with macOS runners | `testrun run <paths> --remote … < /dev/null` — see §Remote below |

Expand Down Expand Up @@ -158,13 +158,13 @@ The account needs one of these ([pricing](https://www.testmuai.com/pricing/)):
| **KaneAI Max** | **One** real device: one real-device session at a time. |
| **KaneAI credits + Real Device Plus Automation Cloud** | As many at once as the automation plan's parallel tests. Credits are account-wide, so credits from any KaneAI plan qualify. |

A session beyond the plan's devices **queues for up to 10 minutes**; if a device frees up it runs, otherwise the run fails with `failed to open the mobile hub session: <reason>`. An account with neither plan fails the same way.
A session beyond the plan's devices **queues for up to 15 minutes**; if a device frees up it runs, otherwise the run fails with `failed to open the mobile hub session: <reason>`. An account with neither plan fails the same way.

How to act on it:

- **Before suggesting a real-device run**, if the user hasn't said which plan they have, mention the requirement once in a sentence. Do not block on it or quiz them.
- **On `failed to open the mobile hub session: …`**: stop. Do not retry. Show the hub's reason and tell the user a real-device run needs KaneAI Max or KaneAI credits + Real Device Plus Automation Cloud, and that a session over the plan's devices queues for 10 minutes before failing. Link the pricing page.
- **On KaneAI Max (one device)**: never pass `--parallel` above 1 for real-device members, and never start a second real-device run while one is open (including a TUI session the user left open) — the second one just queues and can fail after 10 minutes.
- **On `failed to open the mobile hub session: …`**: stop. Do not retry. Show the hub's reason and tell the user a real-device run needs KaneAI Max or KaneAI credits + Real Device Plus Automation Cloud, and that a session over the plan's devices queues for up to 15 minutes before failing. Link the pricing page.
- **On KaneAI Max (one device)**: never pass `--parallel` above 1 for real-device members, and never start a second real-device run while one is open (including a TUI session the user left open) — the second one just queues and can fail after 15 minutes.
- **On Real Device Plus Automation Cloud**: `--parallel N` is fine up to the plan's parallel tests.

### Running
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/kane-cli/references/testrun.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
- One test → `kane-cli testmd run` (`references/testmd.md`).
- Multiple ad-hoc `run` objectives (not saved tests) → `references/parallel.md` still applies.
- A **mobile** `_test.md` (Android emulator / iOS simulator) is a normal member (0.8.7+): locally it needs a mac-arm64 host with the mobile setup and `--device-name`/`--os-version` (or the file's `device_name:`/`os_version:`); with `--remote` it runs on a grid emulator/simulator **from any machine**. Read `references/mobile.md` (§Remote) for the device catalog and app rules.
- A **real-device** `_test.md` (`target: android|ios`) runs from **any machine**, locally or with `--remote`. Each member opens its own hub session, so `--parallel` is allowed — but only up to the account's real devices (KaneAI Max = **one**: keep `--parallel 1`; extra sessions queue 10 min, then fail). With `--remote` it is a HyperExecute job on **Linux** runners. Read `references/mobile.md` §Real devices.
- A **real-device** `_test.md` (`target: android|ios`) runs from **any machine**, locally or with `--remote`. Each member opens its own hub session, so `--parallel` is allowed — but only up to the account's real devices (KaneAI Max = **one**: keep `--parallel 1`; extra sessions queue up to 15 min, then fail). With `--remote` it is a HyperExecute job on **Linux** runners. Read `references/mobile.md` §Real devices.
- The user wants the suite on the **cloud grid** (no local Chrome, or a mobile suite from a non-Mac / a Mac without Xcode or Android Studio) → `kane-cli testrun run … --remote < /dev/null` (§Remote below).

## Command
Expand Down
2 changes: 1 addition & 1 deletion docs/user-guide/mobile/real-device.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ A real-device run needs one of these on your TestMu AI account (see [pricing](ht
| **KaneAI Max** | **One real device.** One real-device session runs at a time. |
| **KaneAI credits + Real Device Plus Automation Cloud** | Real devices from the automation plan, as many at once as its parallel tests allow. Credits are account-wide, so credits from any KaneAI plan qualify. |

When you start more real-device sessions than your plan allows (for example `--parallel 2` on KaneAI Max), the extra session **queues for up to 10 minutes**. If a device frees up in that time, it runs. Otherwise the run fails with `failed to open the mobile hub session: <reason>`.
When you start more real-device sessions than your plan allows (for example `--parallel 2` on KaneAI Max), the extra session **queues for up to 15 minutes**. If a device frees up in that time, it runs. Otherwise the run fails with `failed to open the mobile hub session: <reason>`.

A run on an account with neither plan fails the same way, with the hub's reason after the colon.

Expand Down
2 changes: 1 addition & 1 deletion docs/user-guide/remote-execution.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ The two platforms bind the device differently:

`target: android` / `target: ios` tests run on real devices in the TestMu AI cloud. The job runs on a **HyperExecute Linux runner**, and each member opens its own device session, so:

- `--parallel N` runs N members at once, up to the real devices your plan allows. A session beyond that queues for up to 10 minutes (see [Plan requirements](./mobile/real-device.md#plan-requirements)).
- `--parallel N` runs N members at once, up to the real devices your plan allows. A session beyond that queues for up to 15 minutes (see [Plan requirements](./mobile/real-device.md#plan-requirements)).
- Android and iOS real-device members can share one job.
- A job can't mix real-device members with web, emulator, or simulator members (`mobile_remote_mixed`).

Expand Down
2 changes: 1 addition & 1 deletion docs/user-guide/testrun.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ A `_test.md` with a mobile [`target:`](./testmd/overview.md#mobile-target) (`emu

- **Locally**, the suite drives the emulators and simulators on this machine, so the host must be macOS Apple Silicon with the [mobile setup](./mobile/overview.md) done. Pick the device with `--device-name` / `--os-version` as `kane-cli devices list --target emulator|simulator` prints it, or set `device_name:` / `os_version:` in the file.
- **On the cloud grid** (`--remote`), the suite runs on a virtual device on a HyperExecute macOS host, so it works **from any machine** — Linux, Windows, or a Mac with no Xcode or Android Studio. Pick the device from `kane-cli devices list --target emulator|simulator --remote`. One grid job runs one platform (emulator members on one Android version, simulator members on one HyperExecute pool), and a member's local build is uploaded from your machine before dispatch and handed to the grid as an `APP…` id. Everything else is in [Remote runs](./remote-execution.md).
- **Real devices** (`target: android` / `target: ios`) run from **any machine**, locally or with `--remote`. Each member opens its own device session in the TestMu AI cloud, so `--parallel` works, up to the real devices your plan allows (extra sessions queue for up to 10 minutes). Each member needs an `app:` in its file (`testrun` has no `--app`). With `--remote`, the suite runs as a HyperExecute job on Linux runners. See [Real devices](./mobile/real-device.md).
- **Real devices** (`target: android` / `target: ios`) run from **any machine**, locally or with `--remote`. Each member opens its own device session in the TestMu AI cloud, so `--parallel` works, up to the real devices your plan allows (extra sessions queue for up to 15 minutes). Each member needs an `app:` in its file (`testrun` has no `--app`). With `--remote`, the suite runs as a HyperExecute job on Linux runners. See [Real devices](./mobile/real-device.md).

```bash
kane-cli testrun run --match '^tests/app/' --device-name "Pixel 7 API 35" --os-version 15 # local emulators
Expand Down
Loading
Loading