adb-ready 0.6.0 → 0.8.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 CHANGED
@@ -9,6 +9,42 @@ breaking changes.
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [0.8.0] - 2026-09-29
13
+
14
+ ### Added
15
+
16
+ - Add deterministic, offline shell completion generation for Bash, zsh, fish,
17
+ PowerShell, and Nushell, covering both `adb-ready` and `adbr` without loading
18
+ project configuration or contacting ADB.
19
+
20
+ ## [0.7.0] - 2026-09-27
21
+
22
+ ### Added
23
+
24
+ - Add a maintained, commit-pinned GitHub Actions emulator workflow and public
25
+ fixture that exercise one target-locked finite run and retain normalized
26
+ results, JUnit, screenshot, and diagnostic evidence on success or failure.
27
+ - Add a manual, commit-pinned self-hosted physical-device recipe with explicit
28
+ runner routing, serial selection, local target leasing, read-only preflight,
29
+ portable execution, and retained failure evidence.
30
+ - Add a Gradle Managed Devices handoff that discovers declared virtual-device
31
+ and group tasks, previews exact execution, preserves Gradle lifecycle
32
+ ownership, supports explicit sharding and server rendering, and normalizes
33
+ current JUnit, report, timeout, cancellation, assertion, and infrastructure
34
+ evidence.
35
+ - Add an explicit Firebase Test Lab adapter for live catalog validation,
36
+ instrumentation and Robo matrices, stable provider outcome categories,
37
+ bounded native artifact retention, local-observer timeouts that leave remote
38
+ work running, and separately confirmed matrix cancellation.
39
+ - Add explicit local, existing-AVD, remote-ADB, and Firebase target pools with
40
+ bounded fan-out, required/optional members, fail-fast submission policy,
41
+ owner-recorded lease queueing, deterministic cancellation and stale-owner
42
+ recovery, and aggregate results that preserve every isolated member run.
43
+ - Add a bounded read-only protocol preflight for every explicit ADB server
44
+ command, with distinct route, invalid-endpoint, timeout, cancellation, and
45
+ version-mismatch failures that stop before upstream ADB can terminate a
46
+ mismatched shared server.
47
+
12
48
  ## [0.6.0] - 2026-09-27
13
49
 
14
50
  ### Added
@@ -471,7 +507,9 @@ breaking changes.
471
507
  explainable configuration precedence.
472
508
  - Human, plain, JSON, and NDJSON output across Node, Bun, and Deno entrypoints.
473
509
 
474
- [Unreleased]: https://github.com/Adam014/adb-ready/compare/v0.6.0...HEAD
510
+ [Unreleased]: https://github.com/Adam014/adb-ready/compare/v0.8.0...HEAD
511
+ [0.8.0]: https://github.com/Adam014/adb-ready/compare/v0.7.0...v0.8.0
512
+ [0.7.0]: https://github.com/Adam014/adb-ready/compare/v0.6.0...v0.7.0
475
513
  [0.6.0]: https://github.com/Adam014/adb-ready/compare/v0.5.1...v0.6.0
476
514
  [0.5.1]: https://github.com/Adam014/adb-ready/compare/v0.5.0...v0.5.1
477
515
  [0.5.0]: https://github.com/Adam014/adb-ready/compare/v0.4.1...v0.5.0
package/COMPATIBILITY.md CHANGED
@@ -23,8 +23,19 @@ claims move to the CI tier only after they have a reproducible test environment.
23
23
  - Node.js 22 or newer is the installation baseline.
24
24
  - `adb` remains an external dependency and can be supplied through `PATH`, an
25
25
  Android SDK location, or `--adb PATH`.
26
+ - Firebase Test Lab workflows delegate to the current Google Cloud CLI supplied
27
+ through `PATH` or `--gcloud PATH`. Provider access, billing, quotas, catalog
28
+ availability, and Cloud Storage permissions remain Google Cloud project
29
+ capabilities rather than host-runtime guarantees.
26
30
  - USB and wireless visibility depend on what the selected ADB server can access.
27
31
  Remote servers are supported through `--adb-host` and `--adb-port`.
32
+ - Explicit ADB server endpoints receive a bounded read-only `host:version`
33
+ safety preflight before every upstream ADB command. Route loss, endpoint
34
+ replacement, invalid protocol responses, and client/server protocol mismatch
35
+ fail without asking upstream ADB to kill or restart the shared server.
36
+ - Target-pool leases coordinate processes sharing one host-local per-user state
37
+ directory. They are not a cross-runner distributed lock; multi-host labs need
38
+ explicit runner routing or an external coordination backend.
28
39
  - npm, pnpm, Yarn, and Bun consumers use the same package and the same
29
40
  `adb-ready`/`adbr` entrypoint.
30
41
 
@@ -43,3 +54,23 @@ Recorded physical acceptance:
43
54
  Physical USB, emulator, wireless, VPN, container, WSL, and remote-server claims
44
55
  must be recorded as tested only after they pass on that real environment. ADB
45
56
  Ready never treats a fixture as proof of hardware compatibility.
57
+
58
+ Firebase Test Lab command construction, catalog parsing, official exit-code
59
+ normalization, bounded evidence collection, cancellation, and failure paths are
60
+ covered by deterministic fixtures. The current Google Cloud CLI has also been
61
+ used to verify the real unauthenticated failure boundary. A paid remote matrix
62
+ has not yet been recorded for this release, so successful provider execution is
63
+ not presented as observed acceptance evidence.
64
+
65
+ Target-pool scheduling, bounded concurrency, fail-fast submission, queue
66
+ cancellation, stale-owner recovery, and aggregate semantics are covered by
67
+ deterministic fixtures. Cross-host contention and paid provider fan-out remain
68
+ outside the observed acceptance boundary until suitable infrastructure is
69
+ available.
70
+
71
+ Remote-server safety is exercised against real loopback TCP fixtures carrying
72
+ the ADB framing protocol, including connection refusal, timeout, cancellation,
73
+ malformed/rejected responses, matching versions, and server replacement. This
74
+ does not claim that every WSL, container, VPN, or remote lab route has been
75
+ observed; those environments remain upstream-capable until recorded on the real
76
+ host network.
package/README.md CHANGED
@@ -82,7 +82,8 @@ to reveal an action.
82
82
  - [**Run the project**](./docs/dev-sessions.md) — select one target, prepare
83
83
  ports, launch the framework, and keep the session healthy.
84
84
  - [**Connect the device**](./docs/targets-and-wireless.md) — discover, pair,
85
- reconnect, and deterministically bind a physical device or emulator.
85
+ reconnect, and deterministically bind a physical device, emulator, or
86
+ protected remote ADB server without silently restarting shared infrastructure.
86
87
  - [**Operate the app**](./docs/apps-and-evidence.md#app-lifecycle) — resolve,
87
88
  install, launch, restart, deep-link, and inspect the project app.
88
89
  - [**Verify the UI**](./docs/ui-automation.md) — find semantic elements, act
@@ -95,6 +96,12 @@ to reveal an action.
95
96
  - [**Automate a real device**](./docs/automation.md#run-one-bounded-verification)
96
97
  — gate a finite command on readiness and return stable results, reports, and
97
98
  artifacts.
99
+ - [**Run cloud device matrices**](./docs/firebase-test-lab.md) — validate live
100
+ Firebase dimensions, run instrumentation or Robo tests, and retain normalized
101
+ provider evidence without storing cloud credentials.
102
+ - [**Fan out across explicit targets**](./docs/target-pools.md) — run the same
103
+ bounded check on named local, AVD, remote-ADB, or Firebase pools while each
104
+ target keeps an isolated lease, session, result, and cleanup boundary.
98
105
 
99
106
  ## Choose how you work
100
107
 
@@ -201,6 +208,12 @@ adb-ready sessions list --status failed --since 24h --limit 5
201
208
 
202
209
  [Build a readiness-gated device job →](./docs/automation.md)
203
210
 
211
+ Need a hosted target first? Start from the maintained
212
+ [GitHub Actions emulator workflow](./examples/ci-emulator/), which runs one
213
+ bounded target-locked job and preserves evidence even when verification fails.
214
+ For a dedicated real device, use the manual-only
215
+ [self-hosted physical-device recipe](./examples/ci-physical/).
216
+
204
217
  ## One target. One verified loop.
205
218
 
206
219
  ```text
@@ -271,6 +284,7 @@ Android transport backend.
271
284
  | Guide | Start here when you want to… |
272
285
  | --- | --- |
273
286
  | [Getting started](./docs/getting-started.md) | Reach the first ready development session. |
287
+ | [Shell completion](./docs/completions.md) | Enable command discovery in Bash, zsh, fish, PowerShell, or Nushell. |
274
288
  | [Development sessions](./docs/dev-sessions.md) | Configure frameworks, commands, ports, readiness, and cleanup. |
275
289
  | [Targets and Wireless debugging](./docs/targets-and-wireless.md) | Pair, connect, recover, or explicitly select a target. |
276
290
  | [Apps and evidence](./docs/apps-and-evidence.md) | Control the app and capture screenshots or recordings. |
@@ -278,6 +292,9 @@ Android transport backend.
278
292
  | [Logs and AI context](./docs/logs-and-context.md) | Diagnose a failure with bounded, redacted evidence. |
279
293
  | [AI agent integration](./docs/agent-integration.md) | Connect an MCP-capable coding agent. |
280
294
  | [Automation](./docs/automation.md) | Use readiness, exit codes, JSON, NDJSON, JUnit, and CI artifacts. |
295
+ | [Gradle Managed Devices](./docs/gradle-managed-devices.md) | Run build-owned virtual-device and group tests with normalized evidence. |
296
+ | [Firebase Test Lab](./docs/firebase-test-lab.md) | Run explicit remote instrumentation or Robo matrices with bounded evidence. |
297
+ | [Target pools and fan-out](./docs/target-pools.md) | Bound parallel verification across an explicit target set. |
281
298
  | [Configuration](./docs/configuration.md) | Share project presets, hooks, aliases, and policies. |
282
299
  | [Troubleshooting](./docs/troubleshooting.md) | Resolve a known setup, target, UI, or session problem. |
283
300
  | [Compatibility](./COMPATIBILITY.md) | Check hosts, runtimes, package managers, and support tiers. |