LiteScope

LiteScope · Releases

from GitHub · updated 2026-07-05

3 releases

  1. v1.0.2 # 1 month ago · 2026-06-20 21:31 UTC

    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

  2. v1.0.1 # 1 month ago · 2026-06-07 19:22 UTC

    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 (https://github.com/RikoDEV/litescope/issues/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.
  3. v1.0.0 # 2 months ago · 2026-06-04 18:40 UTC

    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 ["*"]).