The analyzer drawer and path-map restore both read the live ?hash and
fetch by hash directly, independent of whether the packet is in the
loaded list. Deleting the param once the first page settles without a
match unmounts the drawer and can drop path-map restores, for any
shared link more than a couple of minutes old.
- Stop resetting selectedObservationId when opening the analyzer, so picking an
observation inside an expanded row lands the drawer on it instead of observations[0]
- Disable View path on map in the expanded row when the detail has no resolvable path,
matching the drawer's existing button
- Strip a ?hash deep link once the first page has loaded and it matches no packet
- fresh-row highlights leaked under a steady stream (each new batch
cancelled the previous batch's clear timer); per-batch timers in a
small useFreshHashes hook now
- closing the analyzer drops ?hash and the row selection, so the same
row reopens on the next click and a closed analyzer stays closed
after reload/share
- sf=path / sf=payload from the URL fall back to hash search (only
field matchesFilters implements; the UI options were already disabled)
- remove the summary preview line no backend path ever populates
- channel message rows key on packetHash (live WS messages carry no id)