v0.5.0
What's Changed
Changed
- Slim node capabilities — node now advertises only
location.get+system.runto the gateway (was 29 individual commands); all 34 handlers remain available viasystem.runmeta-dispatch, reducing handshake payload and simplifying capability negotiation - Explicit
send_connected()lifecycle —node.connectedevent is now sent explicitly afterconnect_with_backoff()and after successful reconnection, replacing the implicit first-frame trigger; CLI callers show a warning if the lifecycle event fails while the connection itself succeeded send_connected()returns bool — callers can now detect lifecycle event failure; bothopenclaw bridgeandservecommands display a yellow warning when the event fails to send- Separated reconnect error handling —
_maybe_reconnect()now handles connection failure and lifecycle event failure independently; a failednode.connectedno longer incorrectly doubles the reconnect backoff timer
Added
on_reconnectgateway callback —GatewayClientaccepts anon_reconnectcallback invoked after the receive loop successfully reconnects, ensuringnode.connectedis sent on every reconnection (not just the initial connect)system.runactivity logging — dispatcher logs the resolved inner method when routing throughsystem.run, so operational logs showsystem.run → door.lockinstead of justsystem.run
Fixed
send_connected()false-positive logging — no longer logs "Sent node.connected event" when the gateway is disconnected (the event was being silently dropped bysend_event())OpenClawPipeline.dispatchertyping — changed fromAnytoCommandDispatcherfor static analysis support
Full Changelog: v0.4.0...v0.5.0