Skip to content

Releases: hardcoreerik/OrcMesh

MeshChat for Windows v0.2.0-alpha

Pre-release

Choose a tag to compare

@hardcoreerik hardcoreerik released this 06 Aug 05:05

What's new in v0.2.0

Auto-reconnect with saved profiles (Phase 1)

MeshChat now automatically reconnects when the radio link drops, and remembers your last-used connection so you don't have to retype it every launch.

Auto-reconnect

  • When a connected radio goes away (power cycle, USB unplug, network hiccup), MeshChat detects the loss and retries in the background using exponential backoff: 2 s → 5 s → 15 s → 30 s → 60 s, then every 60 s until it succeeds or you press Disconnect
  • The status bar shows Reconnecting… (attempt N) while retrying — no modal dialogs
  • Auto-retry only fires after a radio was successfully connected at least once this session, so a mistyped host or unpaired BLE device doesn't trigger a retry loop
  • Pressing Disconnect at any point cancels the retry immediately

Saved connection profiles

  • Your last-used transport, host/port, BLE address, or COM port is persisted to the local database and pre-filled in the connection bar on the next launch
  • No separate settings screen needed — it just works from the normal connect flow

Under the hood

  • New ConnectionSupervisor class wires the backoff timer, profile persistence, and controller signal handling together cleanly
  • The RECONNECTING connection state (defined since v0.1.0 but never emitted) is now active — the status indicator and connection bar reflect it correctly
  • app_settings SQLite table (present since v0.1.0, never used) is now the persistent store for all key/value settings

Stability improvements (Phase 0, shipped since v0.1.1)

Write-queue durability (#16)

  • Each database write is now isolated in its own SAVEPOINT — a bad row can't roll back the rest of a batch
  • Transient SQLite lock errors are retried with bounded backoff; truly unrecoverable failures are tracked and reported, not silently dropped
  • Fixed an outermost-transaction bug where batch efficiency was being destroyed by incorrect SAVEPOINT/BEGIN ordering

Schema migrations (#17)

  • Database schema is now versioned with PRAGMA user_version
  • Upgrades from any previous schema version run automatically at startup with a pre-migration backup and post-migration integrity check
  • Safe to update without losing existing data

DB maintenance tools (#18)

  • check_integrity() — runs SQLite's integrity check on the live database
  • backup() — flushes all pending writes, checkpoints the WAL, and copies the DB to a timestamped file
  • vacuum_async() — reclaims disk space after pruning, queued through the writer thread

Chat history & zero-value fixes (#15)

  • Chat history now loads the 200 most-recent messages on startup (was loading all, then rendering all; large histories caused a slow start)
  • Fixed node_num == 0 being treated as falsy in several places — Meshtastic radio 0 is a valid node

Known issues

  • Bluetooth on Heltec V4: Windows requires the device to be paired in Settings → Bluetooth before MeshChat can connect. Try PIN 123456 if prompted. See #19 for details and workarounds.

Upgrade

Close the previous version and run the new one — the database upgrades automatically on first launch.

MeshChat for Windows v0.1.1-alpha

Pre-release

Choose a tag to compare

@hardcoreerik hardcoreerik released this 05 Aug 22:01

What's new since v0.1.0-alpha

Fixed: the VERSION ImportError crash that broke Help → About, the diagnostic-summary copy, and session export — this fix has been on main since PR #2, but v0.1.0-alpha's published binary predates it and still crashed on those paths in the downloaded build. It's now actually in this release.

New: a proper Windows installer. MeshChat-Setup-0.1.1.exe installs to Program Files with a Start Menu shortcut, optional desktop icon, and a standard uninstaller (Windows "Apps & features"). The portable zip is still provided for anyone who prefers no-install.

Map: permanent node-name labels on every pin, zoom-based clustering (individual pins separate out as you zoom in), click-to-inspect wired up end to end, and — new this release — clicking a node anywhere on the Monitor page (map pin, ranking row, or "Show on map") now visually highlights it everywhere it appears, kept in sync across all three.

Monitor page: Node Inspector moved to the top of the right column so it's visible without scrolling.

Correctness fixes:

  • Several Qt signal/slot paths carrying Meshtastic node_num/packet_id were declared as 32-bit signed int, silently wrapping real (32-bit unsigned) values negative — this broke node lookups and left sent chat messages stuck showing "Sending…" forever even when the radio accepted them. Fixed throughout, and the chat-status matching now correlates by a stable client-generated id instead of guessing.
  • The packet log's row model was O(n) per rendered cell (not just per row) once it filled up, and its capacity eviction silently desynced from what the table view believed — both fixed.
  • The packet-type breakdown panel miscounted encrypted/undecoded packets and several known port types due to a classification mismatch — fixed to use the single canonical classifier.
  • The hop-efficiency chart had off-by-one bucket boundaries (a value exactly at 25/50/75% displayed one bucket low) — fixed.
  • A SQLite upsert path could regress a node's packet count/last-heard timestamp backward on a stale write — fixed with proper monotonic merging.
  • Chat message persistence now records the correct session id instead of leaving it blank.

Install

Recommended: download MeshChat-Setup-0.1.1.exe, run it, and follow the wizard. This is a new, unsigned installer — Windows SmartScreen may show an "unrecognized publisher" warning ("More info" → "Run anyway") until it builds up download reputation.

Portable: download MeshChat-v0.1.1-alpha-win64.zip, extract anywhere, and run MeshChat.exe — no install required.

Windows x64. No Python needed either way.

v0.1.0-alpha

v0.1.0-alpha Pre-release
Pre-release

Choose a tag to compare

@hardcoreerik hardcoreerik released this 05 Aug 06:29

First alpha release. Expect rough edges — this is early software.

Install

Download the zip, extract anywhere, and run MeshChat.exe. No installer,
no Python required. Windows x64 only.

What works

Chat — channel messaging, direct messages to any reachable node, and local
message history that survives restarts.

Network Monitor — live KPI dashboard, sortable rankings (last heard, most
packets, nearby/farthest, signal, messages sent), packet log, distribution
panels for packet type / channel / role / hardware, and a Leaflet map with
light and dark basemaps.

Nodes — full sortable node table with search, a node inspector showing
identity/activity/signal/hops/telemetry, and right-click actions: message,
show on map, request position, request telemetry, traceroute, favorite, and
remove from the radio's node database.

Spectrum (optional) — RTL-SDR waterfall showing raw RF energy in the LoRa
ISM bands. Requires an RTL-SDR dongle plus the pyrtlsdr package and native
librtlsdr driver. It shows that activity is happening and where in the band;
it does not decode LoRa packets. The app runs normally without any SDR.

Connecting

Transport Notes
USB / Serial Most reliable — pick the COM port and connect.
Bluetooth Pair the radio in Windows Settings first. Meshtastic radios require OS-level pairing before any app can reach them.
Wi-Fi / TCP Enter the radio's hostname or IP.

Known limitations

  • Windows x64 only
  • Connects to one radio at a time
  • Spectrum view needs SDR hardware that has not been verified against this build
  • MeshCore networks are not supported yet

License

GPL-3.0-only — MeshChat links the official Meshtastic Python package, which is
GPL-3.0 copyleft.