From a18207ab87f2023d6f08f5e5febff36963ab4008 Mon Sep 17 00:00:00 2001 From: Rohith Mone Date: Thu, 15 Oct 2026 18:09:44 +0530 Subject: [PATCH] docs: real-device queue is 15 minutes; --remote needs the plugin - A real-device session over the plan's devices queues for up to 15 minutes (the Appium binding's queueTimeout default, 900 s), not 10. - Real devices from any machine need only kane-cli login, except --remote, which also needs the remote-execution plugin and a HyperExecute plan. Co-Authored-By: Claude Opus 5.5 --- .agents/skills/kane-cli/SKILL.md | 2 +- .agents/skills/kane-cli/references/mobile.md | 8 ++++---- .agents/skills/kane-cli/references/testrun.md | 2 +- .claude/skills/kane-cli/SKILL.md | 2 +- .claude/skills/kane-cli/references/mobile.md | 8 ++++---- .claude/skills/kane-cli/references/testrun.md | 2 +- docs/user-guide/mobile/real-device.md | 2 +- docs/user-guide/remote-execution.md | 2 +- docs/user-guide/testrun.md | 2 +- integrations/kiro-powers/steering/kane-cli-mobile.md | 8 ++++---- skill-installer/skills/SKILL.md | 2 +- skill-installer/skills/references/mobile.md | 8 ++++---- skill-installer/skills/references/testrun.md | 2 +- 13 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.agents/skills/kane-cli/SKILL.md b/.agents/skills/kane-cli/SKILL.md index 09da19a..1937ed9 100644 --- a/.agents/skills/kane-cli/SKILL.md +++ b/.agents/skills/kane-cli/SKILL.md @@ -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 `), 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 --remote --device-name "" --os-version < /dev/null` (HyperExecute macOS runners). - Never tell a non-Mac user mobile is impossible: offer a real device, or `--remote`. diff --git a/.agents/skills/kane-cli/references/mobile.md b/.agents/skills/kane-cli/references/mobile.md index b69ed84..f5f2e18 100644 --- a/.agents/skills/kane-cli/references/mobile.md +++ b/.agents/skills/kane-cli/references/mobile.md @@ -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 --remote … < /dev/null` — see §Remote below | @@ -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: `. 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: `. 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 diff --git a/.agents/skills/kane-cli/references/testrun.md b/.agents/skills/kane-cli/references/testrun.md index 59dfad2..e3d9f98 100644 --- a/.agents/skills/kane-cli/references/testrun.md +++ b/.agents/skills/kane-cli/references/testrun.md @@ -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 diff --git a/.claude/skills/kane-cli/SKILL.md b/.claude/skills/kane-cli/SKILL.md index 09da19a..1937ed9 100644 --- a/.claude/skills/kane-cli/SKILL.md +++ b/.claude/skills/kane-cli/SKILL.md @@ -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 `), 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 --remote --device-name "" --os-version < /dev/null` (HyperExecute macOS runners). - Never tell a non-Mac user mobile is impossible: offer a real device, or `--remote`. diff --git a/.claude/skills/kane-cli/references/mobile.md b/.claude/skills/kane-cli/references/mobile.md index b69ed84..f5f2e18 100644 --- a/.claude/skills/kane-cli/references/mobile.md +++ b/.claude/skills/kane-cli/references/mobile.md @@ -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 --remote … < /dev/null` — see §Remote below | @@ -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: `. 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: `. 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 diff --git a/.claude/skills/kane-cli/references/testrun.md b/.claude/skills/kane-cli/references/testrun.md index 59dfad2..e3d9f98 100644 --- a/.claude/skills/kane-cli/references/testrun.md +++ b/.claude/skills/kane-cli/references/testrun.md @@ -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 diff --git a/docs/user-guide/mobile/real-device.md b/docs/user-guide/mobile/real-device.md index 03abf84..deee32b 100644 --- a/docs/user-guide/mobile/real-device.md +++ b/docs/user-guide/mobile/real-device.md @@ -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: `. +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: `. A run on an account with neither plan fails the same way, with the hub's reason after the colon. diff --git a/docs/user-guide/remote-execution.md b/docs/user-guide/remote-execution.md index 6b79eba..c7bf33c 100644 --- a/docs/user-guide/remote-execution.md +++ b/docs/user-guide/remote-execution.md @@ -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`). diff --git a/docs/user-guide/testrun.md b/docs/user-guide/testrun.md index da8748b..e2eaa2a 100644 --- a/docs/user-guide/testrun.md +++ b/docs/user-guide/testrun.md @@ -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 diff --git a/integrations/kiro-powers/steering/kane-cli-mobile.md b/integrations/kiro-powers/steering/kane-cli-mobile.md index 99b677c..04b976f 100644 --- a/integrations/kiro-powers/steering/kane-cli-mobile.md +++ b/integrations/kiro-powers/steering/kane-cli-mobile.md @@ -10,7 +10,7 @@ The single rule that scopes this file: **mobile is opt-in.** A run with no `--ta | Where the device runs | Host | Commands | |---|---|---| -| **Real device** — a real Android/iOS device 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** (see "Real devices" below) | `kane-cli run --target android\|ios`, `kane-cli testmd run`, `kane-cli testrun run` (local or `--remote`) | +| **Real device** — a real Android/iOS device 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** (see "Real devices" below) | `kane-cli run --target android\|ios`, `kane-cli testmd run`, `kane-cli testrun run` (local or `--remote`) | | **Local** — a simulator/emulator on this machine | **macOS on Apple Silicon (arm64) only.** Not Intel Macs, Linux, or Windows | `kane-cli run --target …`, `kane-cli testmd run`, `kane-cli testrun run` | | **Cloud grid** — a virtual device on a LambdaTest HyperExecute macOS host | **Any machine**; no Xcode or Android Studio needed. The account needs a HyperExecute plan with macOS runners | `kane-cli testrun run --remote --device-name "" --os-version < /dev/null` — see "Running a mobile suite on the cloud grid" below | @@ -178,13 +178,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: `. 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: `. 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 diff --git a/skill-installer/skills/SKILL.md b/skill-installer/skills/SKILL.md index 09da19a..1937ed9 100644 --- a/skill-installer/skills/SKILL.md +++ b/skill-installer/skills/SKILL.md @@ -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 `), 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 --remote --device-name "" --os-version < /dev/null` (HyperExecute macOS runners). - Never tell a non-Mac user mobile is impossible: offer a real device, or `--remote`. diff --git a/skill-installer/skills/references/mobile.md b/skill-installer/skills/references/mobile.md index b69ed84..f5f2e18 100644 --- a/skill-installer/skills/references/mobile.md +++ b/skill-installer/skills/references/mobile.md @@ -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 --remote … < /dev/null` — see §Remote below | @@ -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: `. 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: `. 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 diff --git a/skill-installer/skills/references/testrun.md b/skill-installer/skills/references/testrun.md index 59dfad2..e3d9f98 100644 --- a/skill-installer/skills/references/testrun.md +++ b/skill-installer/skills/references/testrun.md @@ -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