tapline-host 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tapline-host",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "description": "Tapline host: lets AI agents see and drive your own React Native / Expo app on a test phone on the same Wi-Fi (MCP server and CLI).",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: tapline
3
- description: Use when testing, exploring or driving the user's own React Native or Expo app on their real phone through Tapline (MCP tools such as look, tap, type_text, run, audit, inspect, wait_for, open_url, app_command, logs, crash, performance), when asked for QA, an accessibility check, a UI check or a bug hunt on that app, when asked where in the code a screen element comes from, when setting Tapline up for a user or adding its SDK to an app, or when a Tapline call answers not_connected, in_background, not_actionable, not_allowed, not_answering or reconnecting.
3
+ description: Use when testing, exploring or driving the user's own React Native or Expo app on their real phone through Tapline (MCP tools such as look, tap, type_text, run, audit, inspect, wait_for, open_url, app_command, logs, crash, performance, session_report), when asked for QA, an accessibility check, a UI check or a bug hunt on that app, when asked where in the code a screen element comes from, when setting Tapline up for a user or adding its SDK to an app, or when a Tapline call answers not_connected, in_background, not_actionable, not_allowed, not_answering or reconnecting.
4
4
  license: MIT
5
5
  compatibility: Needs the Tapline MCP server (`tapline mcp`, Node.js 20 or later) on the user's computer, and a development or TestFlight build of the app with Tapline's SDK switched on. Works from Windows, macOS or Linux.
6
6
  metadata:
@@ -65,6 +65,38 @@ run {"steps": [
65
65
  Ran 3 of 3 steps in 1.2 s.
66
66
  ```
67
67
 
68
+ The common shapes, each one call:
69
+
70
+ ```
71
+ Choose from a sheet, save, check:
72
+ run {"steps": [
73
+ {"tool": "tap", "target": {"id": "currency-row"}, "expect": {"text": "Choose a currency"}},
74
+ {"tool": "tap", "target": {"text": "QAR"}},
75
+ {"tool": "tap", "target": {"id": "save"}, "expect": {"text": "Choose a currency", "gone": true}}]}
76
+
77
+ Fill a form, submit, wait for the confirmation:
78
+ run {"steps": [
79
+ {"tool": "type_text", "target": {"id": "name"}, "text": "Test User"},
80
+ {"tool": "type_text", "target": {"id": "note"}, "text": "Window seat", "submit": true},
81
+ {"tool": "tap", "target": {"id": "submit"}, "expect": {"text": "Booking confirmed", "timeout": 8}}]}
82
+
83
+ Tour the tabs and check each looks as before:
84
+ run {"steps": [
85
+ {"tool": "tap", "target": {"label": "Trips"}, "expect": {"matches": "trips"}},
86
+ {"tool": "tap", "target": {"label": "Saved"}, "expect": {"matches": "saved"}},
87
+ {"tool": "tap", "target": {"label": "Profile"}, "expect": {"matches": "profile"}}]}
88
+ ```
89
+
90
+ **Spend fewer calls.** Each of these is a call you don't need:
91
+ - Read the change list in the answer instead of calling `look` after an action.
92
+ - Target by `id` the first time. After a `not_found`, the answer's `Closest:` names what is there.
93
+ - Don't scroll to hunt for something. An action on an element that is in the list but off screen scrolls to
94
+ it and acts in the same call, and `scroll` with `to: "target"` brings one into view.
95
+ - Put steps you are sure of in one `run`.
96
+ - Set language, text size and the network with `app_command` (`language`, `text_size`, `network`), not
97
+ through the phone's Settings.
98
+ - After a long session, `session_report` shows where the calls went and which ones were wasted.
99
+
68
100
  Name the element with one of, in this order of preference: `id` (the app's own identifier,
69
101
  React Native's `testID`), `ref` (from your last list, like `e3`), `label`, `text`. Use `x`
70
102
  and `y` only for things with no element.