Python starts when you choose Run.
The gap between a fresh screenshot and a safe tap
Re-observation narrows the stale-state window. Only an executor-enforced revision check closes it in this timing model.
Scripted temporal-grounding simulator; atomic revision checks are assumed tool contracts, not Android capabilities tested here.
swap_times_ms [125, 25, 25, 125, 25, 25, 525, 75, 75, 125, 275, 125, 525, 125, 525, 25, 525, 275, 275, 275]
delay_ms 0 stale {'correct': 15, 'wrong': 5, 'canceled': 0}
delay_ms 0 refreshed {'correct': 15, 'wrong': 5, 'canceled': 0}
delay_ms 0 guarded {'correct': 15, 'wrong': 0, 'canceled': 5}
delay_ms 100 stale {'correct': 8, 'wrong': 12, 'canceled': 0}
delay_ms 100 refreshed {'correct': 15, 'wrong': 5, 'canceled': 0}
delay_ms 100 guarded {'correct': 15, 'wrong': 0, 'canceled': 5}
delay_ms 250 stale {'correct': 4, 'wrong': 16, 'canceled': 0}
delay_ms 250 refreshed {'correct': 16, 'wrong': 4, 'canceled': 0}
delay_ms 250 guarded {'correct': 16, 'wrong': 0, 'canceled': 4}
delay_ms 500 stale {'correct': 0, 'wrong': 20, 'canceled': 0}
delay_ms 500 refreshed {'correct': 16, 'wrong': 4, 'canceled': 0}
delay_ms 500 guarded {'correct': 16, 'wrong': 0, 'canceled': 4}
Matched schedule audit: 240 records
Python runs locally in this page. Saved results and figures are visible before execution.