adb-ready 0.4.1 → 0.5.1

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