Skip to content

v0.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 17 Sep 00:58
· 1 commit to main since this release

Aster Droid 0.2.0

Fewer round trips, shorter waits, and a phone that speaks up on its own.

Experimental. arm64-v8a only. Most of the time a phone task takes is the model thinking between steps, not the phone. This release cuts the number of steps and the time spent waiting between them.


Update

Download asterdroid-0.2.0.apk from the assets below and open it on the phone, or:

adb install -r asterdroid-0.2.0.apk

It installs over 0.1.0 and keeps your settings, keys, sessions and memory. Open the app afterwards and press start if the agent is not running, so it picks up the new instructions.

Fewer model round trips

  • Tap by text. tap Wi-Fi reads the screen as the tap runs and taps the element that says it. An exact match wins over a partial one. If the text is on several elements, the reply lists them and asks for an index instead of guessing.
  • Several steps in one call. do tap Network & internet; tap Internet; tap Wi-Fi runs the steps on the phone, prints one line per step and ends with the final screen. It stops at the first step that errors or changes nothing, and says which steps it did not run. The agent is told to send a known route this way.
  • Shorter receipts. When a screen changes in place, a receipt lists only the rows that changed, and says the rest keep their numbers. A new screen still comes back as the whole map. A tap that changes nothing no longer resends the map.

Waits that fit the phone

  • Learned per app. The service times how long each app takes to react to a touch and to go still, and sizes both waits from that. Apps with little history use the phone's figures. The first few actions after an update use the old fixed waits, so nothing starts out faster than it can back up.
  • A late answer is never lost. A shorter wait can call a slow app's reaction "no change". If the app then changes the screen, the next command is held instead of run, and the reply shows the real screen with held:. This stops a message or a payment from going through twice. The late timing also lengthens that app's wait.
  • pace prints the current waits for the app in front. pace reset forgets them.
  • wait <text> checks again as soon as the screen moves, instead of every half second.

Faster reads on canvas screens

  • capture on starts the screen capture the mirror uses, with nobody watching. ocr, locate, aim and blind taps then take frames from it instead of rate-limited screenshots. It shows the recording indicator, and stops after 30 idle minutes or with capture off.
  • Without a capture, the service learns how far apart the system allows screenshots and waits that long, instead of being refused and retrying.
  • Actions on blind screens wait until the pixels stop changing, instead of a fixed second and a half.

Alerts in the chat

  • Battery. The phone posts to the chat when it runs low, at 20% and 10% by default, once per level per discharge. Ask the agent to change the levels or turn it off (alerts battery 30,15, alerts battery off).
  • Notifications. Ask the agent to forward an app's notifications (alerts add whatsapp) and they arrive in the chat as they come in. Repeated updates of the same notification are sent once. alerts lists what is on.

Alerts are posted as notices, so they do not start an agent turn.

Settings

  • Settings is a full page instead of a sheet.
  • Every key in the agent's .env is shown, including keys for providers other than the current one, which used to look lost.
  • The whole .env can be edited as text, for names no row covers. Saving restarts the agent.

Consent

The agent's instructions are stricter about two kinds of action. Spending money and reaching another person as you (a message, a call, a post) always stop for a yes, with what it is, what it costs and who it reaches. A yes covers the step it was asked about, not the next one. Everything that stays on the phone still just happens.

Known limits

  • The wait timings, text taps and capture frames are new in this release. Report a held: that should not have happened, or a canvas read that got slower after capture on.
  • A screen with a ticking clock or counter can occasionally hold a command after a tap that really did nothing. It costs one extra step.
  • Everything listed under 0.1.0 still applies: text input into views without an input connection, PIN and pattern locks, no start after reboot, arm64-v8a only.