Repository navigation
stagent v0.12.0
Added
host_screen.list: on a host where stagent runs in Windows' WSL, the
browserandandroidsections havenote: {code: "wsl", message}
(Section<T>gainsnote?), since the browsers and emulators on the
Windows side are not visible from WSL (#675).- Host screen: an Android emulator or iOS simulator that stops no longer
ends the stream. Afterstate: "gone"stagent looks for it every 3
seconds and, once it runs again, connects anew and sendsstate: "live"and frames in the same tab: an emulator by its AVD on any
serial (Targethasavd;grpc.portandgrpc.tokenread again),
a simulator by itsudid(its companion started again).startof
one that is not running answers{}and sendsgone, then waits the
same way; so does an iOSstartwhile simctl fails to list (a
timeout, say), which wasnot_found. Only no Xcode is still
not_found(#662). - Host screen:
host_screen.pauseandhost_screen.resume(no params,
{}) stop and restart capturing while the app does not show the tab
(another tab, the app in the background, the screen off; #634).
pausedrops the frame kept and stops the target's capture: a
browser'sPage.stopScreencast(its WebSocket stays open), an Android
emulator'sstreamScreenshotcut, an iOS simulator's MJPEG video
stream closed (the companion kept, askeddescribeevery 5/3 s so it
does not shut down idle).resumesends one full frame at once, then
streams again. Likeack, both are answered at once, never behind a
slowinput; without a stream →bad_request;pausewhile paused
andresumewhile not paused →{}. Acks are answered while paused
(#651).
Changed
host_screen.inputon an Android emulator pastes everytext, ASCII
too (gRPCsetClipboard, thenKEYCODE_PASTE), instead ofadb shell input text, which a Japanese Gboard typed as romaji to kana ("wifi
test" became "ウィフぃてst").enteralone sends onlyKEYCODE_ENTER
and leaves the clipboard alone (#672).- Host screen: an Android emulator's image with the same pixels as the
last one is dropped before JPEG encoding, so a still display sends no
frame (the emulator sends about 20 a second); an iOS simulator's MJPEG
is quality 0.5 (was 0.7) at scale 0.5 andfps0 (#662). - Host screen: at most 10 frames a second are sent. A frame captured
within 100 ms of the last one sent waits in the place that keeps the
newest frame (the one used while two frames wait for their ack), and
is sent once 100 ms passed (#651).
Fixed
- Host screen, Android: an
emulator-<port>thatadb devicesshows
offlinewithout a discovery file (any process listening on an odd
port of 5555–5585) is no longer listed as ano_grpcemulator, nor
askedemu avd name(which heldhost_screen.listup ~2 s);
host_screen.startfinds no emulator there. Booting emulators (offline
with a file) and ones without a file in thedevicestate are still
listed (#673). host_screen.listlists browsers on Linux (WSL too): Chromium writes
its command line over its arguments as one space-joined string, so no
browser's--remote-debugging-port/--remote-debugging-pipewas
found and none was listed. Such a command line is now read for its
executable and switches (split at--; a--user-data-dirwith
spaces is found, child processes with--type=are still left out);
NUL-separated command lines read as before (#671).
stagent 0.12.0 — server binary for SSH Term. Built from this tag (0eb7f98) with go1.27.1 via scripts/release.sh (reproducible: CGO_ENABLED=0, -trimpath, no VCS stamp, empty build id); verify downloads against SHA256SUMS.