Skip to content

amipilot v0.2

Choose a tag to compare

@sidick sidick released this 05 Aug 16:17
· 60 commits to main since this release
8caadd9

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-model walker behind a genuine public ARexx port. See the
    ARexx Reference.
  • TREE/CLICK/TYPE/GETTEXT/QUIT — locate a window by title,
    click a gadget by GA_ID through a real input.device event (the
    documented IECLASS_NEWPOINTERPOS/IESUBCLASS_PIXEL mechanism, not
    a coordinate hack), type text into it via genuine IECLASS_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 from docs/implementation-plan.md, now an automated
    make test-target check under Copperline.
  • AmiInspect's gadget-tree output gains a value= 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/RELBOTTOM convention —
    needed for CLICK/TYPE to land on a BOOPSI gadget at all.
  • Both binaries now embed a standard $VER: cookie — check with the
    Shell's Version command.
  • amipilot.lha ships both AmiInspect and AmiPilotServer.

Known gaps, tracked as real follow-up work, not silently accepted:

  • STRING_KIND and INTEGER_KIND GadTools gadgets still aren't
    distinguished from each other (both report as string) — 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 click that 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-target needs a machine-specific Workbench install CI
    doesn't have.

See the full changelog
for more detail.