-
Notifications
You must be signed in to change notification settings - Fork 84
Open
4 / 44 of 4 issues completedOpen
4 / 44 of 4 issues completed
Copy link
Labels
Description
| # | Feature | Status | Notes |
|---|---|---|---|
| 1 | Executor Framework | Skipped | Not needed in rclnodejs. Each Node already has its own background thread via ShadowNode/Executor. Multiple node.spin() calls work independently. Node.js is single-threaded so all JS callbacks are inherently serialized — callback groups are meaningless. |
| 2 | Callback Groups | Skipped | Depends on Executor Framework. Node.js single-threaded model means all callbacks are already mutually exclusive by design. |
| 3 | waitForMessage() Utility |
Implemented | PR #1444. Creates a temporary subscription, resolves on first message, auto-cleans up. Uses TimeoutError for timeout rejection. Extracted to lib/wait_for_message.js. |
| 4 | Parameter Event Handler | Implemented | PR #1438. ParameterEventHandler class with per-parameter and event-level callbacks. Refactored ParameterWatcher to use it internally. All Copilot review comments addressed. |
| 5 | QoS Overriding via Parameters | Skipped | Narrow use case in Node.js. ROS parameter override mechanism (--ros-args -p ...) is rarely used in JS apps. Users configure QoS in code via config files/env vars. Low effort-to-value ratio. |
| 6 | Better spin() API / spinUntilFutureComplete |
Dropped | Implemented in PR #1442, then evaluated as syntactic sugar with minimal value. In rclnodejs spin() is non-blocking (unlike rclpy where it blocks), so spin/await/stop is already trivial. Decided to drop in favor of documenting the idiomatic pattern. |
| 7 | Signal Handler Guard Condition | Skipped | Not needed. Node.js delivers SIGINT via the libuv event loop to the main thread immediately. The existing process.on('SIGINT') + shutdownAll() mechanism already provides clean, immediate shutdown. The background rcl_wait() thread is woken via StopWaitingHandles(). A guard condition would add complexity without observable benefit. |
| 8 | Message Metadata (MessageInfo) | Implemented | PR #1440. Native rclTakeWithInfo binding, MessageInfo class, auto-detection via callback.length >= 2. TypeScript types updated. Copilot review comments addressed. |
Reactions are currently unavailable