amipilot v0.2
The act side of object-level GUI automation: a server commodity, driven
by ARexx, with no host machine involved.
What's in 0.2:
AmiPilotServer: a commodity hosting the action engine and the
intuition-modelwalker behind a genuine public ARexx port. See the
ARexx Reference.TREE/CLICK/TYPE/GETTEXT/QUIT— locate a window by title,
click a gadget byGA_IDthrough a realinput.deviceevent (the
documentedIECLASS_NEWPOINTERPOS/IESUBCLASS_PIXELmechanism, not
a coordinate hack), type text into it via genuineIECLASS_RAWKEY
events paced to approximate human typing, and read state back.- Proven end to end by driving a real ARexx script against the test
fixture: type into a field, read the value back over the port,
click a button, confirm the window closed — the phase 0.2 release
gate fromdocs/implementation-plan.md, now an automated
make test-targetcheck under Copperline. AmiInspect's gadget-tree output gains avalue=field for string
and integer gadgets — their live editable contents, not just their
label.- BOOPSI/ReAction gadget geometry (
GA_Left/GA_Top/GA_Width/
GA_Height) is now read correctly, including the classic
GFLG_RELWIDTH/RELHEIGHT/RELRIGHT/RELBOTTOMconvention —
needed forCLICK/TYPEto land on a BOOPSI gadget at all. - Both binaries now embed a standard
$VER:cookie — check with the
Shell'sVersioncommand. amipilot.lhaships bothAmiInspectandAmiPilotServer.
Known gaps, tracked as real follow-up work, not silently accepted:
STRING_KINDandINTEGER_KINDGadTools gadgets still aren't
distinguished from each other (both report asstring) — carried
over from 0.1.- No wire protocol yet — ARexx only reaches scripts running on the
same Amiga. Serial.device and a host Python client are phase 0.3
scope. - No wait/expectation primitives yet (a
clickthat waits for an
expected change, timeouts) — a script has to add its own
Wait/polling for now. - No public CI on-target run yet, same reason as 0.1:
make test-targetneeds a machine-specific Workbench install CI
doesn't have.
See the full changelog
for more detail.