Replace fine_hits_to_physical with fine_hits_to_edge_frame (patch cell-edge frame, coarse centers at I+1/2, as FixedPatchStepper uses) and edge_to_node_frame (Simulation integer-node frame, shift -1/2). Test one physical circle through both frames: fine hits converted to node frame lie on the Simulation circle and one node-frame Jet selects the same arc on coarse and fine links; relabelling without conversion is detected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>