MeshCore Ninja Alpha
Sestriere

Sestriere · Releases

from GitHub · updated 2026-06-23

4 releases

  1. v1.8 # 3 months ago · 2026-03-15 22:33 UTC

    Sestriere 1.8.0

    Native MeshCore LoRa mesh client for Haiku OS.

    New features

    • Voice messages — push-to-talk via Codec2, compatible with meshcore-sar (Alphaaaaa)
    • Image sharing — color WebP over LoRa with chunked transfer and drag-and-drop
    • SAR markers — search and rescue pin display in chat and geographic map
    • Line-of-Sight analysis — terrain profile between nodes via Open-Meteo elevation API
    • Multi-companion support — switch radios without mixing data, DB partitioned per device
    • Contact groups and muting — organize sidebar, silence notifications per contact/channel
    • Serial Monitor — CLI terminal for repeaters and standalone devices

    Improvements

    • Telemetry dashboard redesigned with card-based layout
    • Mission Control: Ping All, Trace Route quick actions
    • Geographic map: zoom/pan/tile state persisted across sessions
    • Deskbar replicant: lightweight add-on with Send Advert shortcut
    • Inline emoji rendering via Twemoji
    • Tile cache: corrupt PNG auto-recovery, 50 MB LRU eviction
    • Database: incremental vacuum after pruning, WAL fallback for Haiku compatibility
    • 56 automated tests (make test)

    Bug fixes

    • Fixed thread safety in child window access and database singleton
    • Fixed protocol compliance: full 32-byte pubkeys, frequency in kHz, V3 SNR offsets
    • Fixed GIF cache miss, image buffer overread, delivery status tracking
    • Fixed memory leaks in BMessageRunner and GIF picker threads
    • Replaced VLAs and non-reentrant libc calls (localtime_r, strlcpy)
  2. v1.7 # 4 months ago · 2026-03-06 20:49 UTC

    Sestriere 1.7 "Marconi"

    Native MeshCore LoRa mesh client for Haiku OS

    Sestriere is a native Haiku application for communicating over LoRa mesh networks via MeshCore-compatible radios. It provides a Telegram-style interface with real-time messaging, network visualization, telemetry dashboards, and a Wireshark-style packet analyzer — all built with the Be API.

    What's new in 1.7

    GIF Sharing — Send and receive animated GIFs via GIPHY. The built-in picker shows animated thumbnails in a grid, and only the short GIF ID travels over LoRa (zero overhead). Fully compatible with meshcore-open (Flutter).

    Emoji Rendering — Unicode emoji displayed as color PNG sprites with proper alpha blending over chat bubbles.

    Image Sharing — Send photos over LoRa using chunked transfer. Images are compressed, transmitted in fragments, auto-fetched on the receiving end, and displayed inline in the chat.

    SAR Markers — Search and Rescue markers (meshcore-sar protocol) parsed and displayed in chat and on the geographic map.

    OpenStreetMap Tiles — The geographic map now shows real OSM tiles with offline caching, plus world coastline rendering.

    Delivery Queue — Messages now use a FIFO queue with automatic retry and clear status (Pending, Sent, Confirmed, Failed).

    Ping All — Ping every contact in one click to check who's online.

    UI Polish — Compact default layout, flexible panel resizing, contact filter state (Chat/Repeater/Room) persisted across restarts.

    Requirements

    • Haiku OS R1/beta5 or later (x86_64)
    • MeshCore-compatible LoRa radio with USB serial
    • pkgman install mosquitto sqlite curl giflib

    Feedback and bug reports welcome!

  3. v1.4 # 4 months ago · 2026-02-22 13:41 UTC

    Solid as Alpine granite — a stability and code quality release.

    No flashy new features this time. Instead, we went deep under the hood to rebuild the foundations for what comes next.

    Architecture

    • Protocol parsing extracted from MainWindow into a dedicated ProtocolHandler class
    • Common utilities consolidated into Utils.h: FormatUptime, FormatTimeAgo, ParseHexPrefix, FormatContactKey
    • All magic numbers replaced with named constants across the entire codebase
    • Dead code removed: legacy MqttSettingsWindow, StatusBarView, unused message codes

    Security

    • Hardcoded credentials removed from source
    • All database queries migrated to parameterized prepared statements
    • User input validated before all protocol operations
    • Bounds checks on every incoming protocol frame

    Thread Safety

    • DatabaseManager singleton protected with mutex
    • Child window access guarded by new _LockIfVisible() helper
    • MQTT connect/disconnect race condition fixed
    • BMessageRunner lifecycle hardened: always NULL after delete, no use-after-free

    Protocol Bug Fixes

    • CMD_REMOVE_CONTACT and CMD_RESET_PATH now send full 32-byte public key (was 6-byte, causing silent failures)
    • CMD_SET_RADIO_PARAMS sends frequency in kHz as V3 spec requires (was Hz)
    • Packet Analyzer V3 message text offsets corrected
    • localtime() replaced with reentrant localtime_r() throughout
    • strtok() replaced with thread-safe strtok_r()
    • Blocking snooze() removed from LoginWindow UI thread

    UX Polish

    • All windows centered on screen (or on parent) instead of hardcoded pixel positions
    • Mission Control cards gracefully truncate long text in narrow windows
    • MQTT password field with show/hide toggle
    • Theme-aware Stats Window using system colors
    • Reduced minimum sizes for Telemetry and Packet Analyzer to fit smaller screens
    • Unified battery percentage formula across all views
  4. v1.3 # 4 months ago · 2026-02-19 23:19 UTC

    Mission Control Dashboard (Cmd+Shift+D)
    A unified real-time dashboard consolidating all device, radio, and network metrics into a single window:

    • Device status card with battery gauge, uptime, and pulsing connection indicator
    • Radio health card showing RSSI, SNR, noise floor, TX power, frequency, and bandwidth
    • Composite health score arc (0–100) based on connection, battery, signal quality, and contacts
    • Dual-axis SNR/RSSI rolling chart (200 points) with color-coded quality zones
    • TX/RX packet rate histogram (60 bars, auto-scaling)
    • Contact heatmap grid with per-contact signal quality coloring
    • Mini network topology with radial node layout and SNR sparklines
    • Session timeline showing event markers since connection
    • Alert banner for critical conditions (disconnect, low battery, poor signal)
    • Quick action buttons: Send Advert, Sync Contacts, Refresh Stats
    • Color-coded activity feed with timestamped event log
    • Dashboard icon in the toolbar for quick access

    Protocol Coverage 11 new MeshCore V3 commands implemented: trace path, raw data exchange, device time read/write, radio tuning parameters, contact sharing, custom variables, advert path query, binary requests, control data, and device PIN.

    Admin Panel Repeater/room administration integrated directly into the contact info panel with a tabbed CLI console supporting remote commands (ver, neighbors, clock, clear stats, set name, password) and remote telemetry.

    Bug Fixes

    • Statistics window now correctly parses and displays all V3 fields: battery voltage, noise floor, SNR (no longer incorrectly divided by 4), and proper flood/direct packet breakdown.