You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
4.**Fuzzy similarity** — weighted blend: message-type Jaccard (50%), endpoint Jaccard (30%), name similarity (15%), parameter name overlap (5%); requires mutual best match and a minimum margin over the second-best candidate
3.**Normalized/interface-derived match** — compares normalized names and interface structure to catch namespace moves and similar refactors
316
+
4.**Type-composition / interface-composition match** — uses the mix of endpoint types and interface makeup to pair nodes that remain structurally the same even when names changed more substantially
317
+
5.**Fuzzy similarity fallback** — only after the stronger deterministic passes fail, the matcher scores remaining candidates using a weighted combination of name and interface-overlap signals, then requires a mutual best match with sufficient separation from the next-best candidate
317
318
318
-
Nodes matched in pass 1 are not re-examined. Topology changes in shared nodes are always reported.
319
+
Nodes matched in an earlier pass are not reconsidered by later passes. Topology changes in matched nodes are still reported.
319
320
321
+
The exact pass order, scoring weights, and tie-break thresholds are implementation details of `lib/matching.py`; if you need to interpret a borderline match precisely, treat the code as the source of truth rather than the simplified summary above.
320
322
Standard ROS 2 parameter management services (`describe_parameters`, `get_parameters`, etc.) are suppressed from the services diff when the node itself was renamed, since those renames are purely derivative.
0 commit comments