Commit Graph
103 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 8baa562794 Add a Clock Drift analytics tab
List repeaters and room servers whose advert-derived clock has drifted
past the server threshold, worst first, in a sortable table. It's each
node's latest reading, so there's no time range to pick.
2026-07-24 22:20:49 -04:00
MrAlders0n e6a714aed9 Split top advertisers into flood and direct adverts
Surface each advertiser's flood vs direct advert counts with a per-day
rate for the selected window, as a sortable table on the Talkers tab.
2026-07-24 22:19:24 -04:00
MrAlders0n 7a2d74b7ca Pin overview sparklines to a fixed 24h window
The Observations and Active observers KPI cards show a fixed 24h snapshot
(from /stats/overview), but their sparklines were fed by the range-driven
observations series. Switching to 7d/30d reshaped the sparklines even
though the numbers beside them stayed at 24h, since aggregateByHour drops
empty hours and slice(-24) then spans a different set of hours.

Give the sparklines their own dedicated 24h observations series so the
whole top row is a consistent 24h snapshot; the range selector now only
drives the charts below. React Query dedupes the extra call when the
selector is already on 24h.
2026-07-24 09:47:47 -04:00
MrAlders0n f1a69fa121 Mark each top advertiser with its IATA 2026-07-24 09:11:32 -04:00
MrAlders0n 34bb171429 Lay out Talkers side by side and label advertiser node types 2026-07-24 08:54:23 -04:00
MrAlders0n 45842949d4 Group top advertisers and talkers on the Talkers tab 2026-07-24 08:47:19 -04:00
MrAlders0n e526c08fa4 Send multi-select packet filters to the server 2026-07-24 08:47:19 -04:00
MrAlders0n 98ca904ac2 Refresh stale radio-freq and telemetry comments for current backend 2026-07-24 06:55:24 -04:00
MrAlders0n 948cfa25b0 Fix public-key node search field switching and non-hex input 2026-07-24 06:19:19 -04:00
MrAlders0n badd919e0d Only plot unambiguously-resolved path endpoints on the map 2026-07-24 06:16:51 -04:00
MrAlders0n 913151c610 Show device clock drift on the node detail panel 2026-07-23 23:31:05 -04:00
MrAlders0n 23bacde2b8 Add public key prefix search to the nodes table 2026-07-23 23:10:31 -04:00
MrAlders0n 7bf30da5c1 Add top advertisers to Mesh stats and a Talkers leaderboard tab 2026-07-23 23:05:39 -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 11b06000b5 Back out frontend zero-frame filter; fixing at the source instead 2026-07-15 22:04:42 -04:00
MrAlders0n fb376901f9 Drop empty observer telemetry frames and show airtime as duration 2026-07-15 21:44:11 -04:00
MrAlders0n 1b42e023d8 Restore files clobbered by the main merge 2026-07-14 23:30:50 -04:00
MrAlders0n cfe6a8f0ea Merge branch 'main' into dev
Signed-off-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
2026-07-14 23:17:55 -04:00
MrAlders0n 43ebcd9638 Show loading feedback while packet history loads 2026-07-14 22:57:07 -04:00
MrAlders0n 2e2b845137 Filter packet history on the server when a single type, route or scope is selected 2026-07-14 22:31:50 -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 58016bc773 Keep the packets list static while scrolled down instead of jumping on new packets 2026-07-13 18:51:56 -04:00
MrAlders0n 04f1757daa Add a .env option to skip the load splash 2026-07-13 11:50:57 -04:00
MrAlders0n 8344f3c8d2 Make VITE_ENABLED_THEMES an exclusive theme allowlist 2026-07-13 11:27:46 -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 bda7147741 Add a copy link to node and observer detail panels
Deep-linked ?node/?observer selections now survive load: the region
reset watches the raw selection instead of the async-resolved regionKey,
so slug expansion no longer wipes a restored panel.
2026-07-12 17:12:08 -04:00
MrAlders0n dbb4dcac21 Add a copy button beside node and observer public keys 2026-07-12 07:57:52 -04:00
MrAlders0n c3979326aa Add a name search that spotlights matches and dims the rest of the mesh 2026-07-11 22:19:05 -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 991f501f7c Use a dropdown for the analytics sections on mobile 2026-07-11 20:52:58 -04:00
MrAlders0n bbe404f0c3 Wrap the analytics sub-header so the range stays on-screen on mobile 2026-07-11 20:16:28 -04:00
MrAlders0n 45669d7c26 Focus the neighbour graph into an ego view on click 2026-07-11 19:53:41 -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 26e83e0884 nodes: let the mobile detail panel minimize without deselecting 2026-07-07 23:50:21 -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 653768dcc8 Fix: github workflow + stats tab + add traces vs pings (#10)
* stats: node-types donut, multi-IATA filtering, preset split

 - node-types: new /stats/node-types endpoint + useNodeTypes; donutOption
   replaces the "Coming soon" card with a live donut
 - stats endpoints take iatas[] instead of a single iata, so multi-IATA
   regions filter instead of falling back to all (drops useStatsIata)
 - radio presets keep the node/observer split via stacked presetBarsOption
 - drop client-side telemetry ms-normalization (backend now emits epoch ms
   on both paths); charts pick delta-vs-raw counters off the response interval
 - MeshTab: range-driven charts lead, all-time charts follow; KPI window
   from overview.windowHours instead of a hardcoded 24h
 - ci: docker-publish builds a :dev image on dev-branch pushes

* feat: traces vs pings
feat: SNR for trace path in list
feat: known niehgbour count

* fix: github workflow, post images publically
2026-06-20 13:23:18 -04:00