From 27914fbd62d3bb2dd1ae9b82f9dcd962f721328a Mon Sep 17 00:00:00 2001 From: you Date: Sat, 21 Mar 2026 17:45:51 +0000 Subject: [PATCH] fix: cap max hop distance at 300km, link to node detail not analytics MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 1000km filter was too generous for LoRa (record ~250km) - Uhuru kwa watu 📡 ↔ Bay Area hops at 880km were obviously wrong - Node links in leaderboard now go to #/nodes/:pk (detail) not /analytics --- public/analytics.js | 4 ++-- public/index.html | 4 ++-- server.js | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/public/analytics.js b/public/analytics.js index 1d32335e..32d9665d 100644 --- a/public/analytics.js +++ b/public/analytics.js @@ -1352,8 +1352,8 @@ html += `

🏆 Top 20 Longest Hops

`; const top20 = data.topHops.slice(0, 20); top20.forEach((h, i) => { - const fromLink = h.fromPk ? `${esc(h.fromName)}` : esc(h.fromName || '?'); - const toLink = h.toPk ? `${esc(h.toName)}` : esc(h.toName || '?'); + const fromLink = h.fromPk ? `${esc(h.fromName)}` : esc(h.fromName || '?'); + const toLink = h.toPk ? `${esc(h.toName)}` : esc(h.toName || '?'); const snr = h.snr != null ? h.snr + ' dB' : ''; const pktLink = h.hash ? `${esc(h.hash.slice(0, 12))}…` : '—'; html += ``; diff --git a/public/index.html b/public/index.html index f57c63a5..e5502570 100644 --- a/public/index.html +++ b/public/index.html @@ -88,11 +88,11 @@ - + - + diff --git a/server.js b/server.js index 0b84baec..6ee8e02a 100644 --- a/server.js +++ b/server.js @@ -1722,7 +1722,7 @@ app.get('/api/analytics/distance', (req, res) => { for (let i = 0; i < chain.length - 1; i++) { const a = chain[i], b = chain[i + 1]; const dist = haversine(a.lat, a.lon, b.lat, b.lon); - if (dist > 1000) continue; // sanity: skip > 1000km (likely bad GPS) + if (dist > 300) continue; // sanity: skip > 300km (LoRa record ~250km) const aRep = isRepeater(a), bRep = isRepeater(b); let type;
#FromToDistance (km)TypeSNRPacket
${i+1}${fromLink}${toLink}${h.dist}${esc(h.type)}${snr}${pktLink}