Promotes the 2.2.0-beta.0 baseline to stable and adds automatic WebSocket reconnection to the rclnodejs/web Browser SDK, plus new ROS 2 action-graph query APIs.
Web runtime — reconnect-on-close
RosClient's reconnect option is now implemented (#1569). A dropped WebSocket reopens automatically with exponential backoff (500ms–30s, half-jitter) and replays active subscriptions — existing Subscription handles keep working with no extra code.
import { connect } from 'rclnodejs/web';
const ros = await connect('ws://localhost:9000', { reconnect: true });
ros.on('disconnected', () => console.log('connection lost'));
ros.on('reconnecting', ({ attempt, delay }) => console.log(`retry ${attempt} in ${delay}ms`));
ros.on('reconnected', () => console.log('back online'));Web runtime — OpenAPI 3.1 export and Swagger UI
Carried over from 2.2.0-beta.0 (#1565, #1566): rclnodejs-web openapi turns your expose allow-list into an OpenAPI 3.1 document, viewable via the JavaScript demo's swagger-ui.html.
Action graph — endpoint counts and metadata
Node.countActionClients/countActionServers and per-endpoint metadata via a new ActionEndpointInfo type (JS + TS) (#1571).
Maintenance
- Simplify root README (#1573)
Full Changelog: 2.1.1...2.2.0