amipilot v0.1
The platform's first object-level GUI automation tool for classic
AmigaOS: an Intuition/BOOPSI walker library and a standalone Shell
command that inspects any window's gadget tree by role, label, and
class, semantically rather than by pixels.
What's in 0.1:
intuition-model: a reusable walker library reading windows and
gadgets under strictLockIBase()discipline (brief holds, copy-out,
no live Intuition pointers, no patching orSetFunction()anywhere).AmiInspect: a standalone on-Amiga Shell command that prints any
window's gadget tree - the platform's first UIA-Inspect/browser
element-picker equivalent. No host or server session required.- GadTools role classification, including officially-sanctioned
GT_GetGadgetAttrsAkind-probing to distinguishBUTTON_KINDfrom
CHECKBOX_KIND(both produce the same plainGTYP_BOOLGADGET, so a
single flag check can't tell them apart). - BOOPSI/ReAction class reading via
OCLASS()- a documented NDK
mechanism, not a hack - correctly identifying real class names
(button.gadget,checkbox.gadget,layout.gadget, and Intuition's
own private system-gadget classes) and mapping known classes to
roles. - Two conformance fixtures (
fixtures/gadtools-app,
fixtures/classact-app) plus a verified pass against a real, stock
AmigaOS Prefs editor (ScreenMode) - not just software built for this
project. - An automated regression check (
make test-target, headless under
Copperline) that boots both fixtures and
asserts AmiInspect's classification output - proven to actually
catch regressions, not just written: a deliberately reintroduced bug
was caught by this check before being reverted. - Honest, documented limits rather than silent gaps:
PLACETEXT_IN
button labels are genuinely unreadable via this tier (GadTools bakes
them into rendered imagery, notGadgetText), and awindow.class
window'slayout.gadgetchildren aren't enumerable on classic OS
3.x - no public API exists for it, and this project doesn't reverse-
engineer private structures to work around that.
Minimum requirements: AmigaOS 2.04 (V37), plain 68000, no FPU.
Recommended/CI-tested: AmigaOS 3.1, 68020, 2 MB chip + 8 MB fast.
See docs/implementation-plan.md
for the full design and phase sequencing, and
CLAUDE.md for
build instructions and architecture notes.
Not on Aminet yet - source only, via this release.