MeshChat for Windows v0.2.0-alpha
Pre-release
Pre-release
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.