Skip to content

Releases

adbrent 0.4.5

Choose a tag to compare

@iammosab iammosab released this 11 Nov 16:14
v0.4.5
0951215

Faster

  • Plain adb on a session's device is as fast as naming the serial. A session that holds one device no longer asks adb what is connected on every command; it checks again every half minute. On a real phone this took plain adb from about 9.5 ms of overhead to about 2.3 ms.
  • The in-use check and the on-rent command waste less time waiting. They are polled from 1 ms upward instead of every 10 or 20 ms.

Fixed

  • Log lines could mix. Two commands finishing at the same moment could write their log lines into each other, leaving lines adbrent log and the report skipped. Each line is now written in one piece.

Changed behaviour

  • If a session's device is unplugged, its plain adb gets adb's own "device not found" for up to half a minute before adbrent gives it another device. Before, it moved to another device on the next command.
  • The shortcut is not used with -d, -e, -t, -H, -P, -L, or when ANDROID_ADB_SERVER_PORT, ANDROID_ADB_SERVER_ADDRESS or ADB_SERVER_SOCKET is set.

Tested

30 tests pass. Benchmarked on an Apple Silicon Mac against a real phone, and with 40 sessions taking 8 devices at once. Not tested on Linux; the Intel Mac binary was only started under Rosetta.

adbrent 0.4.4

Choose a tag to compare

@iammosab iammosab released this 11 Nov 09:39
v0.4.4
bbbd5e8
  • Fair waiting line. Agents waiting with adbrent rent --wait are served first come, first served. A device that comes free goes to whoever has waited longest; an agent that arrives later is told others are first. adbrent status and the status page list who is waiting.
  • Commands on rent and release. adbrent on rent '<command>' and adbrent on release '<command>' run a shell command of yours each time a device changes hands, with the device in $ADBRENT_SERIAL and the real adb in $ADB.
  • Clearer report. adbrent report no longer says sessions "ran into something" when nothing was rented or refused.

Not tested on Linux for this release; the changes are not platform-specific.

adbrent 0.4.3

Choose a tag to compare

@iammosab iammosab released this 10 Nov 16:00
v0.4.3
19a37fd

Debug mode on the status page (adbrent serve):

  • A badge and a Debug mode panel show whether debug is on, with a button to switch it.
  • The panel carries the same summary as adbrent report, including what is worth a look.
  • With debug on, a Commands view lists every adb and adbrent command agents ran, with the ones adbrent stopped marked.
  • adbrent report --json prints the report as data.

Update: cargo install adbrent --force && adbrent install, or in Claude Code /plugin marketplace update adbrent and /plugin update adbrent@adbrent. Then restart your sessions.

adbrent 0.4.2

Choose a tag to compare

@iammosab iammosab released this 10 Nov 15:54
v0.4.2
09d9d2d

Fixes for updating.

  • A session that has been open since before an update still runs the older plugin script. That script replaced a newer binary with its own older one the next time the session started or compacted. It now fetches only when the installed binary is missing or older.
  • adbrent install now updates an already installed Claude Code plugin. Before, the plugin stayed at its old version.

Update: cargo install adbrent --force && adbrent install, or in Claude Code /plugin marketplace update adbrent and /plugin update adbrent@adbrent. Then restart your sessions.

adbrent 0.4.1

Choose a tag to compare

@iammosab iammosab released this 10 Nov 15:46
v0.4.1
71d228b

A normal install now logs problems only: refusals, forced rentals, errors and agent feedback.

The fuller record added in 0.4.0 (rentals, releases, hold times, waits, shared devices, and the trace of every command) is for development and debugging, and is recorded only while adbrent debug on is set. adbrent report still works with it off, covering problems only.

Update: /plugin marketplace update adbrent in Claude Code and restart sessions, or cargo install adbrent --force && adbrent install.

adbrent 0.4.0

Choose a tag to compare

@iammosab iammosab released this 10 Nov 15:41
v0.4.0
b044be1

See how agents get on with adbrent, so you can fix what gets in their way.

  • adbrent report sums up the last 24 hours and points out patterns worth fixing: an agent going back to a device it was just refused, forcing its way on after a refusal, repeated refusals for use outside adbrent, running out of devices, waits that gave up, errors, and what agents reported.
  • A fuller log: rentals and releases with how long each device was held, waits, shared devices and errors, alongside refusals and feedback. adbrent log -f prints entries as they happen.
  • adbrent debug on adds a trace of every adb and adbrent command agents run: who, which device, passed or stopped, and the time spent in adbrent. About 0.15 ms per command. Off by default, because command lines can contain what agents type into apps.
  • The status page now separates problems from routine activity.

Nothing here is shown to agents, and nothing leaves your machine.

Update: /plugin marketplace update adbrent in Claude Code and restart sessions, or cargo install adbrent --force && adbrent install.

adbrent 0.3.3

Choose a tag to compare

@iammosab iammosab released this 10 Nov 14:41
v0.3.3
e149052

A redesigned status page for adbrent serve:

  • A one-line summary at the top ("2 of 5 devices rented"), and each device's state explained in words.
  • The feed of what agents ran into can be narrowed to agent feedback.
  • A take-back is confirmed in place, not through a browser dialog.
  • It redraws only when something changed, so keyboard focus is kept, and durations tick on their own.
  • Light and dark themes; still loads nothing from the network.

Update: /plugin marketplace update adbrent in Claude Code and restart sessions, or cargo install adbrent --force && adbrent install.

adbrent 0.3.2

Choose a tag to compare

@iammosab iammosab released this 10 Nov 14:01
v0.3.2
8a0ed07
  • New: adbrent watch [SERIAL...] [--once] prints a line each time a device is rented or released.
  • Waiting in the background: refusals now tell the agent to run adbrent rent --wait as a background command, so it is told the moment it has a device. Waiting no longer asks every device once a second.
  • No context cost at session start: the plugin adds nothing to a session's context. A session hears from adbrent in one line when it first rents a device (about 30 tokens), and after that only when refused.
  • Shorter messages, a short section for agents in adbrent help, and records of crashed sessions are cleaned up.

Update: /plugin marketplace update adbrent in Claude Code and restart sessions, or cargo install adbrent --force && adbrent install.

adbrent 0.3.1

Choose a tag to compare

@iammosab iammosab released this 10 Nov 13:41
v0.3.1
ebd942d

Important fix. Update from any earlier version.

With two copies of adbrent on one PATH (for example two installs with different ADBRENT_HOME folders), each copy took the other for the real adb and they started each other without end, until the user account ran out of processes. adbrent now skips every adbrent stand-in when it looks for the real adb, and a stand-in that is reached as someone's "real adb" stops with an error instead of handing off again.

Also: a take-back from the status page is now logged as done by you.

Update: /plugin marketplace update adbrent in Claude Code and restart sessions, or cargo install adbrent --force && adbrent install.

adbrent 0.3.0

Choose a tag to compare

@iammosab iammosab released this 10 Nov 12:40
v0.3.0
595e0ae
  • Live status page: adbrent serve shows devices, who rents them, what is using a device outside adbrent, and recent activity, with a take-back button. Served to your own machine only.
  • Share a device with a helper session: adbrent share in the renter, adbrent join <code> in the helper.
  • Keep a device away from agents: adbrent exclude <serial>.
  • Phones first: plain adb hands out phones and tablets before TVs, watches and car units.
  • Sandboxed sessions: a command whose rental cannot be recorded is stopped, with the fix in the message, instead of running unprotected.

Update: /plugin marketplace update adbrent in Claude Code and restart sessions, or cargo install adbrent --force && adbrent install.