Commit Graph
33 Commits
Author SHA1 Message Date
MrAlders0n 464e701f76 Add a toggleable IATA border layer to the map
Draw each active IATA's GeoJSON region border as an outline over a faint
fill beneath the node markers, behind a Map Settings toggle that's off by
default and shareable via a URL param. IATAs with no border answer 204
and are skipped.
2026-07-24 22:21:12 -04:00
MrAlders0n badd919e0d Only plot unambiguously-resolved path endpoints on the map 2026-07-24 06:16:51 -04:00
MrAlders0n 88ae52bdf4 Show packet source and destination on the path map and analyzer 2026-07-23 22:53:02 -04:00
MrAlders0n 6af9d652aa Keep path map at a fixed height on narrow screens 2026-07-18 22:28:01 -04:00
MrAlders0n 02ec63cc0f Add path-map deep links, per-observer propagation, and tappable nodes 2026-07-18 13:37:42 -04:00
MrAlders0n 2132e78f28 Collapse the path map attribution to a bare (i) by default 2026-07-18 09:55:50 -04:00
MrAlders0n 01b722b5c5 Add 'view path on map' popup to the packet analyzer 2026-07-18 09:16:27 -04:00
MrAlders0n 82a83fd33f Add Map deep-links for camera and settings with a copy-link button 2026-07-14 15:05:49 -04:00
MrAlders0n 8786ef3d0a Add .env options for hiding tabs, MeshMapper themes, app name and a GitHub link 2026-07-13 11:14:34 -04:00
MrAlders0n 6b0486f3f4 Gate the neighbour graph to a region and size labels by busyness 2026-07-11 22:11:16 -04:00
MrAlders0n 25bd3ce30e Add a neighbour graph under the renamed Analytics tab 2026-07-11 18:56:58 -04:00
MrAlders0n 92806faaa4 map: colour a selected node's neighbour lines by obs count and freshness 2026-07-08 09:33:57 -04:00
MrAlders0n 5462c08662 map: dim other nodes to spotlight a selected node and its neighbours 2026-07-08 08:41:00 -04:00
MrAlders0n 8294312ab2 map: fade the live-mode node flash in sync with its packet trail 2026-07-07 23:50:21 -04:00
MrAlders0n dc64382837 map: fade live-mode node markers more so overlaps stay see-through 2026-07-07 23:24:29 -04:00
MrAlders0n 03d7a375a3 map: persist clustering + node-type, default neighbor lines to selected 2026-07-07 23:14:39 -04:00
MrAlders0n c41fe359a6 map: fade live-mode clusters more so dense ones stay see-through 2026-07-07 23:07:53 -04:00
MrAlders0n 105e68ec04 map: rework live mode — packet dot, dashed trail, per-hop flash 2026-07-07 22:49:48 -04:00
MrAlders0n a0736545d8 map: shoot a comet along each packet's route in live mode 2026-07-06 08:13:03 -04:00
MrAlders0n b5e2e5dcac map: live mode dims nodes, flashes each packet's route 2026-07-06 08:00:33 -04:00
MrAlders0n e50501879a feat: discover renderers, neighbor map lines, live packet flow
- Discover packets decoded: DISCOVER_REQ/DISCOVER_RESP render real fields
  (type-filter roles, tag, node-to-node request SNR) instead of a raw dump.
- Neighbor lines on the map: On/Selected/Off control draws links between nodes
  and their known neighbors.
- Live packet flow: a play button animates packets hop-to-hop between repeaters
  in real time (off by default).
2026-07-05 22:08:54 -04:00
MrAlders0n 4d6d76e451 round out the review fixes: chunk reload, spiderfy reset, search debounce
- a failed lazy chunk now offers 'reload' (React.lazy caches the
  rejection, so remounting could never recover Map/Stats)
- an open spiderfy fan closes on region/type-filter change instead of
  showing leaves from the previous dataset
- map settings persistence moved out of the setState updater
- observer search debounces 250ms and shows 'Search failed' instead of
  'No matches' on errors
- packet-detail staleTime drops to 30s so a reopened analyzer picks up
  new observations
- leaving Stats clears its statsTab/observerId/range URL params
- ws types now match the wire (batteryMv omitted not null, scopes can
  be null, lastObservationId isn't sent today); drop the unused
  microToDeg shim now that nothing imports it
2026-06-10 07:08:13 -04:00
MrAlders0n 12d5056e20 map: insert brand-new nodes from their nodeUpdate event
The WS patch only updated nodes already in the paged cache, and with
staleTime Infinity nothing ever refetched — a node that came up after
page load could never appear on the map. The event carries a full
summary, so unknown nodes are appended to the cache directly. The
Nodes table keeps patch-only behavior since its cache is filter-scoped.
2026-06-10 06:59:49 -04:00
MrAlders0n 39756bc0d1 nodes/map: trust the API's decimal-degree coordinates
microToDeg guessed microdegrees from integer values, but api/nodes.go
has always sent *float64 degrees — so a node sitting at an exact whole
degree got divided by 1e6 and rendered at the equator. Drop the shim
from the geojson builder, the nodes table and the detail panel, and fix
the ws.ts comment that repeated the wrong premise.

Also key neighbor rows by id+iata: the neighbors endpoint returns one
row per (neighbor, iata), so id alone collides for nodes heard in
several regions (live React duplicate-key error).
2026-06-10 06:59:49 -04:00
MrAlders0n 84f235a3b4 Mobile support refactor and cleanup 2026-06-08 10:18:17 -04:00
MrAlders0n b8b1f5f27d Feat/scopes routes traces (#7)
* feat: replace getScopeStats with getScopes and update related tests
bug: lastSeen/sentAt was set to string instead of number by mistake

* feat: update timestamp handling and formatting across components

- WS messages carry epoch ms now instead of ISO strings
- new Timestamp component (relative/absolute), used in RouteTable and RouteDetailPanel
- IataChip and ScopeTag chips
- TraceDetailPanel and TraceList for trace drill-down
- tests updated for the timestamp change
2026-06-07 00:19:54 -04:00
MrAlders0n 8e2696b95a feat: loading pill for map and tables
- LoadingPill shows loading/error state in MapView, NodeTable and ObserverTable
- new useInfinitePages hook shares the pagination logic between them
- patchNodeSummary/patchObserverSummary now keep references stable
- tests for loading states, observer updates and infinite paging
2026-06-05 22:59:52 -04:00
MrAlders0n 81bdeec16b feat: implement paginated node fetching and add related tests 2026-06-05 20:23:17 -04:00
MrAlders0n 43ab0dbb3f feat: added region support (#3) 2026-06-04 22:26:05 -04:00
MrAlders0n 811c11db52 Feat/map openfreemap (#2)
* initial map page

* Nodes plotted and map in good shape to be merged
2026-05-31 15:15:06 -04:00
MrAlders0n 4ed88b1be6 Cleaning up UI 2026-05-29 23:18:23 -04:00
MrAlders0n a0caf65a18 added channel & observers 2026-05-27 19:27:48 -04:00
MrAlders0n 8718bf3563 Initial commit 2026-05-23 21:49:14 -04:00