v0.28.0
Added
-
The experimental real-app controller can opt into
voice-input, exposing a
speak_into_microphoneaction that injects synthetic speech while holding or toggling the
app's record control. Voice scenarios no longer record emulator silence and misreport the
app's correct "nothing heard" response as a product failure. -
Real-app controller results now warn when the current screen belongs to another package,
helping the controller return to the app under test without blocking legitimate system flows
such as document pickers.
Fixed
-
Outcome judges now verify action-result criteria only from the frame produced by that action.
A later recovery action reaching the expected screen can no longer hide the original failure. -
aua record stopno longer fails a recording whose screen never changed at all. A wholly
static window makesscreenrecordemit a single frame, so its media length is exactly 0.0s,
and the aggregate "captured nothing at all" guard fired underneath the per-segment rule that
already excuses stillness: an 8.02s idle recording exited 3 withrecording_coverage_failed
while holding a valid 37 KB MP4. A partly idle window passed and a wholly idle one did not.
Zero media now fails only where nostatic_screen_no_framesgap accounts for it. No segments,
a missing supervisor completion, an unreadable or unfinished segment, a non-zero recorder exit,
and stretches where the encoder was not running all still fail.