diff --git a/app/packet_processor.py b/app/packet_processor.py index 0d2a218..27a495b 100644 --- a/app/packet_processor.py +++ b/app/packet_processor.py @@ -521,8 +521,10 @@ async def process_raw_packet( if decrypt_result: result.update(decrypt_result) - elif payload_type == PayloadType.ADVERT and is_new_packet: - # Only process new advertisements (duplicates don't add value) + elif payload_type == PayloadType.ADVERT: + # Process all advert arrivals (even payload-hash duplicates) so the + # path-freshness logic in _process_advertisement can pick the shortest + # path heard within the freshness window. await _process_advertisement(raw_bytes, ts, packet_info) elif payload_type == PayloadType.TEXT_MESSAGE: diff --git a/frontend/src/components/PacketVisualizer3D.tsx b/frontend/src/components/PacketVisualizer3D.tsx index 46f7da3..05b230e 100644 --- a/frontend/src/components/PacketVisualizer3D.tsx +++ b/frontend/src/components/PacketVisualizer3D.tsx @@ -1651,7 +1651,11 @@ export function PacketVisualizer3D({ )}