openclaw/apps
Peter Steinberger 3d53ed7ed8
fix(android): keep cold-start gateway auto-connect from overriding explicit intents (#101799)
* fix(android): keep cold-start gateway auto-connect from overriding explicit intents

NodeRuntime's init-time auto-connect now atomically claims the first gateway
lifecycle intent (CAS 0->1) and stands down permanently when any explicit
connect/disconnect/switch intent already exists, so a late discovery emission
can no longer override a user decision. This was also the root cause of the
CI-only flakes in GatewayBootstrapAuthTest (refreshGatewayConnection_* at
:616/:627 and switchToUndiscoveredGateway* on PRs #101002/#101387/#101396).

GatewaySession.Connection.sendRequestFrame now starts its response watcher
with CoroutineStart.ATOMIC: disconnect teardown cancels connectionJob right
after failPending(), and a DEFAULT-start watcher still queued for dispatch was
cancelled without running, silently dropping the terminal UNAVAILABLE onError
owed to fire-and-forget callers (root cause of the flaky
GatewaySessionInvokeTest.disconnectReportsUnknownOutcomeForFireAndForgetRpc).

Tests neutralize runtime background work (cancel+join the runtime scope)
before arming the registry and scripting lifecycle steps, and add regression
coverage for the auto-connect intent claim.

Proof: refresh flake reproduced at iteration 1 under taskset -c 0,1 on a
Blacksmith Linux box; post-fix 3 pinned stress rounds (120/150 looped
iterations) plus full :app:testPlayDebugUnitTest (109 classes, 0 failures)
and :app:ktlintCheck green on the same box.

* chore(i18n): resync native inventory line positions after NodeRuntime edits
2026-07-07 18:51:46 +01:00
..
.i18n fix(android): keep cold-start gateway auto-connect from overriding explicit intents (#101799) 2026-07-07 18:51:46 +01:00
android fix(android): keep cold-start gateway auto-connect from overriding explicit intents (#101799) 2026-07-07 18:51:46 +01:00
ios fix(ios): serialize screen recording finalization (#101550) 2026-07-07 11:13:46 +01:00
macos feat(macos): unify About links with iOS/Android (Website, Docs, GitHub, Discord) 2026-07-07 02:20:02 -07:00
macos-mlx-tts
shared/OpenClawKit fix(shared): skip app-group identity migration when OPENCLAW_STATE_DIR is overridden (#101779) 2026-07-07 18:48:21 +01:00
swabble chore(swabble): stop tracking Package.resolved clobbered by Xcode resolution (#100961) 2026-07-06 15:58:47 +01:00