adb-ready 0.4.0 → 0.5.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/CHANGELOG.md +78 -1
- package/README.md +30 -11
- package/dist/cli.js +3810 -847
- package/docs/agent-integration.md +4 -1
- package/docs/automation.md +66 -1
- package/docs/dev-sessions.md +49 -16
- package/docs/logs-and-context.md +18 -1
- package/docs/targets-and-wireless.md +6 -0
- package/docs/troubleshooting.md +2 -0
- package/docs/ui-automation.md +7 -0
- package/examples/README.md +2 -0
- package/examples/automation/README.md +24 -0
- package/package.json +1 -1
- package/schema/agent-tools-v1.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,81 @@ breaking changes.
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [0.5.0] - 2026-09-21
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- Adapt the interactive home to terminal height with full, compact, and minimal
|
|
17
|
+
layouts so every action remains visible in short panes.
|
|
18
|
+
- Derive interactive-home numeric shortcut hints from the visible choices so
|
|
19
|
+
every numbered action is accurately discoverable.
|
|
20
|
+
- Honor plain, JSON, and NDJSON output for both the `version` command and
|
|
21
|
+
`--version` shortcut while preserving conventional bare human output.
|
|
22
|
+
- Compile every `dev` and `run` dry run offline, including explicit device,
|
|
23
|
+
transport, remembered-target, interactive-selection, artifact, and AVD
|
|
24
|
+
inputs, so planning cannot inspect or mutate an Android target.
|
|
25
|
+
- Show autonomous target inspection, artifact selection, and verified app
|
|
26
|
+
deployment as live run steps, then preserve their compact result in human and
|
|
27
|
+
plain summaries without exposing local artifact paths.
|
|
28
|
+
- Restrict stable-identity probes to an explicitly selected serial, alias, or
|
|
29
|
+
transport ID so target-aware commands do not query unrelated visible Android
|
|
30
|
+
devices before operating on the requested target.
|
|
31
|
+
- Label port mappings by explicit host and device roles and show their actual
|
|
32
|
+
direction, including listener-specific removal plans, instead of presenting
|
|
33
|
+
distinct endpoints as an ambiguous bidirectional pair.
|
|
34
|
+
- Reconcile running session summaries from their complete persisted events so
|
|
35
|
+
session lists, details, and AI context show current counts, timestamps, and
|
|
36
|
+
the resolved preset before finalization without per-log manifest rewrites.
|
|
37
|
+
- Scope development-session crash diagnostics to a verified Android package
|
|
38
|
+
UID or PID, retarget Expo logs after its resolved launch, and keep unrelated
|
|
39
|
+
target-process crashes out of application problems and below attributed
|
|
40
|
+
evidence in prioritized AI context.
|
|
41
|
+
- Serialize Android UI hierarchy capture per target across CLI and MCP
|
|
42
|
+
processes, preventing concurrent read-only automation from racing the
|
|
43
|
+
platform's single active UI Automation service, without taking a mutation
|
|
44
|
+
lease for read-only UI queries.
|
|
45
|
+
- Replace non-functional framework shortcut claims with ADB Ready-owned Expo
|
|
46
|
+
reload and developer-menu controls over a verified local Expo channel, and
|
|
47
|
+
advertise them only after the interactive control input is active.
|
|
48
|
+
- Verify Expo's canonical project identity before attaching to an existing
|
|
49
|
+
Metro server, preventing a development session from silently reusing another
|
|
50
|
+
project's server on the same port.
|
|
51
|
+
- Support Expo and other localhost services that listen only on IPv6 by
|
|
52
|
+
creating a session-owned IPv4 loopback bridge for `adb reverse`, then close
|
|
53
|
+
that bridge during ownership-safe cleanup.
|
|
54
|
+
|
|
55
|
+
### Added
|
|
56
|
+
|
|
57
|
+
- Model optional Android tooling as typed `supported`, `unavailable`,
|
|
58
|
+
`incompatible`, or `unverified` capabilities and build deterministic,
|
|
59
|
+
non-mutating plans for autonomous target, deployment, verifier, evidence,
|
|
60
|
+
and owned-resource cleanup workflows.
|
|
61
|
+
- Reuse or start one exact existing Android virtual device, prove ADB, boot,
|
|
62
|
+
package-manager, and unlock readiness, and stop only emulator processes that
|
|
63
|
+
the active workflow owns.
|
|
64
|
+
- Resolve explicit or framework build artifacts from bounded Android output
|
|
65
|
+
metadata, keep ABI variants separate, select only proven target-compatible
|
|
66
|
+
APKs, and reject stale, ambiguous, incomplete, or unsafe candidates.
|
|
67
|
+
- Deploy APK and split APK artifacts through one target-scoped ADB transport,
|
|
68
|
+
build and install AAB or APK Set inputs with explicit bundletool, verify the
|
|
69
|
+
installed package, version, and launch activity, and clean only owned
|
|
70
|
+
temporary output.
|
|
71
|
+
- Compose existing-AVD startup, deterministic artifact deployment, project
|
|
72
|
+
readiness, one bounded external verifier, normalized evidence, and
|
|
73
|
+
ownership-safe cleanup in the existing `run` command with a mutation-free
|
|
74
|
+
dry-run plan.
|
|
75
|
+
- Preserve bounded, redacted native verifier stdout and stderr in every run
|
|
76
|
+
evidence bundle, including structured preparation failures after cleanup.
|
|
77
|
+
|
|
78
|
+
## [0.4.1] - 2026-09-16
|
|
79
|
+
|
|
80
|
+
### Fixed
|
|
81
|
+
|
|
82
|
+
- Resolve Expo Go and development-client launch URLs through Expo's supported
|
|
83
|
+
`/_expo/link` redirect without probing an unhandled route that could consume
|
|
84
|
+
the request timeout, and report distinct timeout, connection, response, and
|
|
85
|
+
unsafe-redirect failures.
|
|
86
|
+
|
|
12
87
|
## [0.4.0] - 2026-09-15
|
|
13
88
|
|
|
14
89
|
### Added
|
|
@@ -331,7 +406,9 @@ breaking changes.
|
|
|
331
406
|
explainable configuration precedence.
|
|
332
407
|
- Human, plain, JSON, and NDJSON output across Node, Bun, and Deno entrypoints.
|
|
333
408
|
|
|
334
|
-
[Unreleased]: https://github.com/Adam014/adb-ready/compare/v0.
|
|
409
|
+
[Unreleased]: https://github.com/Adam014/adb-ready/compare/v0.5.0...HEAD
|
|
410
|
+
[0.5.0]: https://github.com/Adam014/adb-ready/compare/v0.4.1...v0.5.0
|
|
411
|
+
[0.4.1]: https://github.com/Adam014/adb-ready/compare/v0.4.0...v0.4.1
|
|
335
412
|
[0.4.0]: https://github.com/Adam014/adb-ready/compare/v0.3.5...v0.4.0
|
|
336
413
|
[0.3.5]: https://github.com/Adam014/adb-ready/compare/v0.3.4...v0.3.5
|
|
337
414
|
[0.3.4]: https://github.com/Adam014/adb-ready/compare/v0.3.3...v0.3.4
|
package/README.md
CHANGED
|
@@ -71,8 +71,9 @@ them or require an ADB Ready account, hosted service, or model API key.
|
|
|
71
71
|
|
|
72
72
|
Running `adb-ready` without a command opens the interactive workflow home.
|
|
73
73
|
`adbr` is the shorter alias for the same CLI.
|
|
74
|
-
The home and its focused menus adapt to the detected terminal width,
|
|
75
|
-
narrow split panes, without relying on
|
|
74
|
+
The home and its focused menus adapt to the detected terminal width and height,
|
|
75
|
+
including narrow split panes and short terminals, without relying on scrolling
|
|
76
|
+
to reveal an action.
|
|
76
77
|
|
|
77
78
|
## What ADB Ready does
|
|
78
79
|
|
|
@@ -145,16 +146,20 @@ variables are discovered with Expo's own development environment resolution.
|
|
|
145
146
|
ADB Ready safely adds their ports to the selected target and verifies the host
|
|
146
147
|
services before calling the session ready. Explicit port configuration always
|
|
147
148
|
wins, and `--no-auto-reverse-localhost` disables discovery when required.
|
|
149
|
+
IPv4 and IPv6 loopback listeners are supported; when ADB cannot reach an
|
|
150
|
+
IPv6-only service directly, ADB Ready creates and cleans a local session bridge.
|
|
148
151
|
|
|
149
|
-
In an interactive Expo
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
redirected output
|
|
152
|
+
In an interactive Expo session that ADB Ready owns, the ready state activates
|
|
153
|
+
verified `r` reload, `m` developer-menu, `?` help, and `Ctrl+C` cleanup controls.
|
|
154
|
+
ADB Ready advertises only actions it can execute; attached Metro servers keep
|
|
155
|
+
their controls in the original terminal, while automation and redirected output
|
|
156
|
+
stay prompt-free. [See live-session behavior →](./docs/dev-sessions.md#live-terminal-controls)
|
|
153
157
|
|
|
154
158
|
If Expo or React Native Metro is already running, ADB Ready verifies its
|
|
155
|
-
standard status endpoint and
|
|
156
|
-
owning that server.
|
|
157
|
-
|
|
159
|
+
standard status endpoint and project identity before attaching the Android
|
|
160
|
+
session without restarting or owning that server. A Metro server from another
|
|
161
|
+
project—or an unrelated process on the same port—is reported as a clear
|
|
162
|
+
conflict instead of being reused.
|
|
158
163
|
|
|
159
164
|
[Reach your first ready session →](./docs/getting-started.md)
|
|
160
165
|
|
|
@@ -167,9 +172,18 @@ its exit code, and clean only resources created by the run:
|
|
|
167
172
|
npx adb-ready run -- npm run test:e2e
|
|
168
173
|
```
|
|
169
174
|
|
|
175
|
+
Or make the target and deployment part of the same bounded job:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
npx adb-ready run --avd Pixel_9_API_36 --deploy --variant debug -- \
|
|
179
|
+
maestro '--device={target.serial}' test .maestro/smoke.yaml
|
|
180
|
+
```
|
|
181
|
+
|
|
170
182
|
Each executed run retains a redacted evidence bundle with its result,
|
|
171
|
-
timeline, problems, focused logcat, AI context, JUnit
|
|
172
|
-
summary.
|
|
183
|
+
timeline, problems, focused logcat, native verifier output, AI context, JUnit
|
|
184
|
+
XML, and GitHub step summary. Existing matching emulators are reused; only an
|
|
185
|
+
emulator started by that run is stopped. Scripts also get deterministic JSON
|
|
186
|
+
and NDJSON contracts:
|
|
173
187
|
|
|
174
188
|
```bash
|
|
175
189
|
adb-ready devices --json --non-interactive
|
|
@@ -230,7 +244,12 @@ Android transport backend.
|
|
|
230
244
|
- Pairing codes never enter command-line arguments.
|
|
231
245
|
- Session data is bounded, redacted, private to the local user, and never
|
|
232
246
|
uploaded by ADB Ready.
|
|
247
|
+
- Crash diagnostics are promoted only after ADB Ready verifies the application
|
|
248
|
+
package on the selected target; unrelated device-process failures remain
|
|
249
|
+
explicitly unattributed evidence.
|
|
233
250
|
- Stale UI references are rejected before input is sent.
|
|
251
|
+
- UI hierarchy capture is serialized per target across CLI and MCP processes,
|
|
252
|
+
while independent targets remain parallel.
|
|
234
253
|
- Field replacement verifies values without confusing a declared Android hint
|
|
235
254
|
for user-entered text.
|
|
236
255
|
- Screen recordings require a readable MP4 and a real multi-frame timeline;
|