Releases: hardcoreerik/OrcMesh
Release list
MeshChat for Windows v0.2.0-alpha
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
ConnectionSupervisorclass wires the backoff timer, profile persistence, and controller signal handling together cleanly - The
RECONNECTINGconnection state (defined since v0.1.0 but never emitted) is now active — the status indicator and connection bar reflect it correctly app_settingsSQLite 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/BEGINordering
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 databasebackup()— flushes all pending writes, checkpoints the WAL, and copies the DB to a timestamped filevacuum_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 == 0being 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
123456if 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
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_idwere declared as 32-bit signedint, 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
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.