Skip to content

Releases: RikoDEV/litescope

liteScope v1.0.2

Choose a tag to compare

@RikoDEV RikoDEV released this 20 Jun 21:31

Highlights

  • Added map heatmaps, scope-region overlays, and direct-link analytics.
  • Added Spotlight Search for faster navigation.
  • Added node activity, observation fanout, and payload-mix analytics.
  • Added duplicate-message stacking and region filtering to Channels.
  • Added configurable history retention with retentionDays.
  • Refined home statistics and live observer status.

Performance

  • Batched SQLite writes and reduced ingestor CPU usage.
  • Improved analytics caching and query bounds.
  • Added route code splitting, response compression, and React compiler optimizations.
  • Reduced RF analytics response sizes.

Fixes and security

  • Fixed packet-filter pagination.
  • Fixed observer and node-detail links.
  • Fixed channel-list jumping while filters load.
  • Improved IATA validation, flags, decoding, and Polish translations.
  • Added API limit protections and XSS safeguards.
  • Improved light-mode contrast and map rendering reliability.

Deployment

  • Added optional VITE_SITE_URL support for generated robots.txt and sitemap.xml.
  • Existing installations remain compatible; new settings are optional.

Full changelog: [v1.0.1…v1.0.2](v1.0.1...v1.0.2)

liteScope v1.0.1

Choose a tag to compare

@RikoDEV RikoDEV released this 07 Jun 19:22

Update focused on geographic filtering, analytics, and richer channel messages.

🌍 Geographic & region filtering

  • Region filter on Packets, Map, and Analytics - a country → IATA cascade chip selector with multi-select.
  • Strict geo-locking by node position. A new embedded country-border dataset (Natural Earth 1:50m) resolves each node's real country from its coordinates, so filtering to e.g. PL shows only nodes physically in Poland - not foreign nodes that merely propagated into a Polish observer.
  • "Local only" mode on Packets - show only packets heard exclusively within the selected region (excludes long-distance propagation caught by local observers).

📊 Analytics

  • Global region + time-window filter applied across every tab (Overview, RF, SNR, Nodes, Observers, Channels, Hashes, Scope, Distance) - not just Activity.
  • Time windows: 24h / 3d / 7d (the misleading "All" option was removed).
  • Top Nodes adverts ⇄ retransmits toggle added to the Analytics → Nodes tab (#3).

💬 Channels

  • Contact-share cards — messages containing pubkey:type:name now render as a contact card (avatar, name, hash) with a Show QR button that generates a meshcore://contact/add?... deep link to scan into the MeshCore app.
  • Location-share cards — coordinates like 51.977430,20.060091 render as a tiny inline map with an OpenStreetMap link.
  • Live propagation — a message's observation and hop counts now climb in real time as more observers report the same packet.

🗺️ Nodes & Map

  • Unified node-type symbols across the whole app (◆ repeater, ● companion, ⬡ room, ▲ sensor) - the Live Map now uses the same shapes/colors as the main map and node lists.
  • Node details now track more than adverts — packets a node relayed are included, so the payload-type breakdown reflects real activity instead of only ADVERT.
  • Color-coded payload types in node "Recent packets".

🐛 Fixes & housekeeping

  • Multiple geo-filter correctness fixes.
  • Removed a duplicate/orphaned file.
  • Reverted Live Map markers to canvas rendering (preferCanvas) to keep zoom smooth.

liteScope v1.0.0 🎉

Choose a tag to compare

@RikoDEV RikoDEV released this 04 Jun 18:40

The first stable release of liteScope — a lightweight, self-hosted dashboard for monitoring MeshCore networks. It ingests MQTT telemetry from one or more brokers, stores it in SQLite, and serves a real-time React UI with live packet feeds, node analytics, channel decryption, maps, and observer stats.


✨ Highlights

  • Real-time everything — live packet feed over WebSocket, animated packet-trace playback, and a live node map.
  • Deep packet inspection — colored hex dump with per-section highlighting, per-observer raw bytes and routing paths, and field-by-field decoded payloads.
  • Network analytics — RF stats, activity timelines, hop/distance analysis, geographic coverage, and a new Hash Usage Matrix for spotting node-prefix collisions.
  • Channel decryption — add AES-128 keys or derive them from a passphrase, then browse decrypted message history.
  • Self-hosted & private — runs entirely on your infrastructure; nothing leaves your network.

🚀 Features

Live monitoring

  • Live packet feed — filter by type, route, channel, or minimum observer count; pause/resume; expandable per-observation sub-rows with per-observer hex and path data.
  • Packet detail sidebar — colored hex dump with byte offsets and section hover-highlighting, field breakdown table, and field-specific decoded rendering. Click any observation to switch to that observer's perspective.
  • Live map — animated packet-trace playback with VCR controls (pause, replay, speed, timeline) and theme-aware tiles.

Nodes & observers

  • Node explorer — per-node RF analytics (RSSI / SNR distributions), last-heard filters, role tabs, and a full-height location map.
  • Observer dashboard — per-observer packet timelines, SNR charts, and packet-type breakdowns.

Channels

  • Channel decryption — AES-128 keys or SHA-256-derived passphrase keys; decrypted message history; deep-linked channel URLs with working back navigation.

Analytics

  • Network analytics — overview cards, activity heatmap, RF stats, top nodes/observers, packet-type distribution; deep-linked tabs (/analytics/rf, /analytics/scope, …).
  • Hash size & adoption — 1/2/3-byte hash distribution over time and multi-byte adopters.
  • Hash Usage Matrix — a 16×16 first-byte prefix grid with a 1/2/3-byte collision selector, per-cell node tooltips, and a click-through detail panel for inspecting prefix collisions.
  • Distance / hop analytics — link-type breakdown, hop distribution, longest paths, and pairwise geographic coverage.

Maps & UX

  • Node map — Leaflet markers with role-colored SVG icons, type-aware clustering, byte-size filter, and hash-prefix labels; theme-aware tiles (OSM light / CARTO dark).
  • Decoder — paste raw hex packets for one-off decoding.
  • Material 3 Expressive light/dark theme, persisted per browser.
  • i18n — English, Polish, and German (auto-detected, persisted), with the rest of the UI ready for more.
  • Fully responsive — charts, maps, and panels adapt from mobile to desktop.

🔧 Reliability & performance

  • Concurrency-safe store — decoded payloads are computed once under the write lock, eliminating a data race on hot read paths.
  • Faster analytics — version-keyed result caching for heavy endpoints, an index-aware node RF lookup, and bounded memory for pairwise geographic distance.
  • Live node indexing — node packet lists and RF stats now reflect packets ingested after startup, not just those present at boot.
  • Configurable origins — new allowedOrigins setting drives CORS and WebSocket origin checks (defaults to ["*"]).