Programmatic scroll jump with no wheel/scroll-key input

bh.scroll_teleport  ·  corroborates

behaviorallayer
behavioralcategory

What it catches

FP-Agent (arXiv 2605.01247, radar G14): DOM browser agents jump the viewport with scrollIntoView()/scrollTo() — an instant programmatic scroll, never the incremental wheel/trackpad scroll a human produces. The collector (demo.py authoritative + collect.ts + livepage probes.ts) tracks the max single scroll-event delta and the wheel-event count and emits behavioral.scroll_teleport=true when a >=800px jump lands in one scroll event with ZERO wheel events, no scroll-causing keydown (PageDown/Space/arrows excluded), on a non-touch session (finger-scroll fires no wheel but is real input). 800px is far above a wheel notch (~100px) or a trackpad swipe per event. GROUNDED confirm-evades-first 2026-06-28: a Playwright window.scrollTo(0,3000) through the live edge fires the boolean and the rule; a mouse.wheel scroll (many small deltas, wheelCount>0) does NOT. Behavioral/corroborating + experimental: the residual FP is a human clicking an in-page anchor link (instant jump, no wheel) or dragging the scrollbar, so it never convicts alone; calibrate-clean (browserforge has no scroll timeline, so the signal is absent).

Signals it reads

behavioral.scroll_teleport

How it fires

present

← all detections