Background
hiroz-msgs uses a single canonical crates/hiroz-codegen/assets/jazzy/ directory as the bundled IDL source for all non-Humble distros (Jazzy, Rolling, Kilted, Lyrical). The build script (hiroz-msgs/build.rs) hardcodes this path regardless of which distro feature flag is active.
Type hashes (RIHS01_…) are derived from the IDL definitions. If any bundled package's .msg/.srv/.action files differ between Jazzy and a newer distro, hiroz and a native C++ node on that distro will compute different hashes, land on different Zenoh key expressions, and silently fail to connect.
What needs checking
For every package vendored in assets/jazzy/, confirm that the IDL files are byte-for-byte identical (or hash-equivalent) on Kilted and Lyrical live installations:
diff /opt/ros/jazzy/share/<pkg>/msg/ /opt/ros/kilted/share/<pkg>/msg/
diff /opt/ros/jazzy/share/<pkg>/srv/ /opt/ros/kilted/share/<pkg>/srv/
diff /opt/ros/jazzy/share/<pkg>/action/ /opt/ros/kilted/share/<pkg>/action/
Priority packages (added in PR #195, not previously verified against newer distros):
tf2_msgs, visualization_msgs, diagnostic_msgs, shape_msgs, stereo_msgs, trajectory_msgs, rosgraph_msgs, statistics_msgs, composition_interfaces, std_srvs, rosbag2_interfaces
Proposed fix
If any divergence is found, either:
- Add
assets/kilted/ (and assets/lyrical/) with the correct IDL snapshots and update build.rs to select the right directory per distro feature flag, or
- Add a CI step that computes type hashes from the live
/opt/ros/<distro>/ installation and asserts they match what hiroz generates from assets/jazzy/
The CI approach is more sustainable long-term since it catches future drift automatically.
Background
hiroz-msgsuses a single canonicalcrates/hiroz-codegen/assets/jazzy/directory as the bundled IDL source for all non-Humble distros (Jazzy, Rolling, Kilted, Lyrical). The build script (hiroz-msgs/build.rs) hardcodes this path regardless of which distro feature flag is active.Type hashes (
RIHS01_…) are derived from the IDL definitions. If any bundled package's.msg/.srv/.actionfiles differ between Jazzy and a newer distro, hiroz and a native C++ node on that distro will compute different hashes, land on different Zenoh key expressions, and silently fail to connect.What needs checking
For every package vendored in
assets/jazzy/, confirm that the IDL files are byte-for-byte identical (or hash-equivalent) on Kilted and Lyrical live installations:Priority packages (added in PR #195, not previously verified against newer distros):
tf2_msgs,visualization_msgs,diagnostic_msgs,shape_msgs,stereo_msgs,trajectory_msgs,rosgraph_msgs,statistics_msgs,composition_interfaces,std_srvs,rosbag2_interfacesProposed fix
If any divergence is found, either:
assets/kilted/(andassets/lyrical/) with the correct IDL snapshots and updatebuild.rsto select the right directory per distro feature flag, or/opt/ros/<distro>/installation and asserts they match what hiroz generates fromassets/jazzy/The CI approach is more sustainable long-term since it catches future drift automatically.