Skip to content

rclnodejs v1.8.1 Release (2026-01-22)

Latest

Choose a tag to compare

@minggangw minggangw released this 22 Jan 05:11
· 134 commits to develop since this release

We are pleased to announce rclnodejs v1.8.1! This patch release focuses on improving stability, fixing critical bugs related to concurrency and Electron compatibility, and significantly enhancing test coverage and reliability.

🐛 Bug Fixes

Critical Race Condition Fix (#1372)

  • Resolved a crash (SIGABRT / "pure virtual method called") that occurred when calling setContentFilter() while the node was spinning.
  • Solution: The fix enforces a thread-safe pattern. Users should stop the node before modifying content filters and restart it afterwards.

Electron Compatibility (#1375, #1379)

  • File System Operations: Replaced fs.access() with fs.stat() for file existence checks. This ensures compatibility with Electron's ASAR packaging system, where fs.access can sometimes fail.
  • Demo Updates: Updated Electron demos to use Electron v40.0.0 and fixed type issues in the turtle_tf2 demo by using BigInt for timer periods.

Message Type Correctness (#1371)

  • Time.toMsg(): Corrected the return type of Time.toMsg(). It now returns JavaScript numbers instead of BigInts for sec and nanosec fields, aligning correctly with the ROS 2 builtin_interfaces/msg/Time specification.

Stability Improvements

  • Content Filtering: Fixed memory allocation bugs (using wrong size calculation) and improved error handling in content filter operations (#1369).
  • Flaky Tests: Resolved test flakiness in type-description-service and content filtering tests (#1367, #1369).

🧪 Enhancements & Infrastructure

  • Test Coverage: Major effort to improve unit test coverage. Added comprehensive tests for core modules like utils.js, client.js, logging.js, and timer.js, achieving >80% coverage (#1363).
  • Windows CI: Fixed GitHub Actions failures on Windows by explicitly configuring Python 3.11 (#1376).
  • Dependencies: Updated globals package to v17.0.0 (#1365).

Full Changelog: 1.8.0...1.8.1