mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-22 21:11:14 +00:00
* fix(android): stop killing long chat runs with hardcoded timeouts Two independent timeouts made any agent turn longer than ~2 minutes fail when started from the Android app, while the same turn worked over Telegram (#106863): - chat.send hardcoded timeoutMs=30000, which the gateway turns into the server-side run expiry; the maintenance sweep then aborts longer runs ("CLI run aborted" / "Embedded agent failed before reply"). Omit the override so app runs get the configured default like other channels. - armPendingRunTimeout declared a timeout after 120s even when the refreshed history snapshot confirmed the run was still in flight, showing a spurious error and dropping the optimistic bubble mid-run. Re-arm the timer in that case; terminal events and the server-side expiry remain the liveness backstop. Fixes #106863 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * chore(i18n): sync native inventory after ChatController line shifts Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * test(android): run ChatController on backgroundScope in reconnect tests The pending-run watchdog now re-arms while a run is confirmed in flight, so reconnect scenarios that end with a restored in-flight run keep a timer coroutine alive. Launch the controller on runTest's backgroundScope so that timer is cancelled at test end instead of failing the suite with UncompletedCoroutinesError. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(android): bound pending-run watchdog recovery Distinguish applied, superseded, and failed history refreshes so recovered runs neither expire during a newer authoritative load nor rearm forever after refresh failure. Co-authored-by: Léandre Chamberland-Dozois <lchamberland-dozois@hotmail.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Peter Steinberger <steipete@gmail.com>