From 2046f52fa8168291025d6b41f41e79eecf7a1126 Mon Sep 17 00:00:00 2001 From: pedro ernesto Date: Fri, 19 Jun 2026 15:09:57 -0300 Subject: [PATCH 1/2] chore: bump version to 2.0.0 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 06c3ce7..9c2aa0c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ GROUP=dev.mobile -VERSION_NAME=1.2.10 +VERSION_NAME=2.0.0 POM_DESCRIPTION=A library to communicate directly with Android devices over ADB without an ADB server POM_URL=https://github.com/mobile-dev-inc/dadb POM_SCM_URL=https://github.com/mobile-dev-inc/dadb From 8346badae3a0058e8ead0964f71b7bf49a511960 Mon Sep 17 00:00:00 2001 From: pedro ernesto Date: Fri, 19 Jun 2026 15:24:17 -0300 Subject: [PATCH 2/2] Complete the 2.0.0 changelog The 2.0.0 entry only covered the error-model redesign (#101). Add the other changes shipping since v1.2.10: the localId-collision fix (#102), the bounded socket write timeout (#99), and the parked-reader wakeup fix (#100). --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5822684..e419713 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ * **Breaking:** a connection dropped mid-stream now throws `AdbConnectionClosedException` instead of presenting as a clean end-of-stream. * **Breaking:** a read or write that exceeds its timeout now throws `AdbTimeoutException` instead of a raw `SocketTimeoutException`. * `pmInstall` (the non-`cmd` install path) now checks the `pm install` result instead of ignoring it. +* Fixed stream local-id collisions that surfaced as `Not listening for localId` and could tear down a live stream's state; stream ids are now sequential, like AOSP's adb client. +* Socket writes are now bounded by a write timeout, so a wedged device fails fast instead of blocking a write indefinitely; the connection is rebuilt on the next operation. +* A stream read parked in `MessageQueue.take()` no longer hangs when the connection closes or a read fails; it now wakes with the relevant `AdbException`. * Added opt-in result helpers — `onSuccess`/`onFailure`/`orThrow` on each `…Result` type. `orThrow` raises `AdbOperationFailedException`, which is **not** an `AdbException`, so a transport-level `catch (AdbException)` won't catch an opted-in operation-failure throw. ### 1.2.10