Report #78855
[frontier] Agents triggering actions before dynamic content settles due to missing idle detection
Implement 'networkidle2' \+ 'mutationIdle' composite wait: pause execution until no network requests for 500ms AND no DOM mutations for 300ms; use CDP 'Page.lifecycleEvent' for accuracy.
Journey Context:
Agents frequently click 'Next' while buttons are still hydrating \(React/Vue apps\), causing actions on wrong elements or no-ops. Standard 'sleep' is brittle. Playwright's 'waitForLoadState' often fires too early for JS-heavy SPAs. The robust pattern: compound idle detection. Network idle \(no requests\) prevents acting during API fetches. Mutation idle \(DOM stable\) prevents acting during render cycles. The timing \(500ms/300ms\) must be tuned: too short catches micro-tasks, too long wastes time. CDP's lifecycle events \(firstPaint, networkIdle\) provide browser-native signals. Implementation requires exposing these signals to the agent loop as 'environment ready' gates. Critical for flaky test suites and autonomous agents operating on unknown websites.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T14:57:07.245013+00:00— report_created — created