reticle_act clicks, fills, types, selects, drags. It does exactly one thing and makes exactly one promise: the event was dispatched.
Example
The
effect block only lists what is worth knowing. Fields sitting at their uninformative default
are omitted, so a clean action collapses to its consequence. An absent dispatched,
targetMatched, visible or enabled means true; an absent occluded, scrolledIntoView,
valueChanged or defaultPrevented means false; an absent focusMoved or occludedBy means
null. Do not read a missing field as a failure.Actions
click · dblclick · hover · focus · blur · fill · type · clear · select · check · uncheck · submit · press · upload · scrollIntoView · drag · webmcp
Reading the effect block
This is whereact earns its place even though it proves nothing.
valueChanged: true. The field actually took the value.falseon afillusually means the input is controlled and rejected it, or it’s readonly.focusMoved: "null->e104", focus went where you expected.domMutatedWithin: 9, something re-rendered within 9ms. Afillthat mutates nothing often means no handler is attached.defaultPrevented. A handler calledpreventDefault(), which is why your form didn’t submit.occluded/occludedBy. The click landed on something else. This is the answer to at least half of all “the button doesn’t work” reports.
settled: false is not a failure
settled: true with settleReason: null, as above, means a real frame flushed before Reticle stopped watching. settled: false with settleReason: "timeout" means the page was still busy. On a fill that’s normal and uninteresting. On a click you expected to complete something, it’s a hint that you wanted act_and_wait with an explicit until. A settle timeout never fails the tool.
inputMode tells you how real the input was
synthetic means Reticle dispatched events programmatically. real means native CDP input, available under reticle drive. Synthetic input is fine for the overwhelming majority of apps; a few drag-and-drop and pointer-gesture libraries only respond to the real thing.
inputModeReason explains any choice Reticle made on your behalf, so it is never silent. not-a-pointer-action above means a fill has no pointer path to take, not that real input was unavailable. Clicks default to the occlusion-honest synthetic path even when CDP is configured; pass args.native: true to force a trusted native click for file pickers and clipboard access.