mirror of
https://github.com/qwibitai/nanoclaw.git
synced 2026-07-12 19:00:58 +08:00
df4929d61d
Improvised `until … do sleep; done` polling loops with no timeout can loop forever when a page condition never becomes true (page fails to load, selector changes, network stalls). This doesn't just fail the command — it wedges the whole agent turn: the runner keeps the model stream open, later messages are pushed in and silently marked complete without a reply, and heartbeat freshness masks it from the host's stuck-detection, so a session can hang for hours. Add a "Waiting for a custom condition — ALWAYS bound it" section to the agent-browser skill: prefer built-in `wait` subcommands, ban unbounded loops, and give a ready pattern capped by both `timeout` and a max-attempts counter that always exits. Treat a timeout as a real failure (snapshot + report), not grounds to re-enter the wait. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>