Skip to content

Releases: statico/meshtastic-cli

v1.13.2

09 Mar 22:36
33ded13

Choose a tag to compare

  • Use alternate screen buffer (like vim/htop) to prevent scroll contamination in tmux
  • Fullscreen connecting splash screen with centered cyberpunk banner
  • Update ink 6.6.0 → 6.8.0 (fixes nested Text wrapping, trailing newline, synchronized output)
  • Treat keycap emoji (e.g. 4⃣) as double-width characters for correct column alignment
  • Ctrl+L now also clears scrollback buffer for cleaner redraws

v1.13.1

09 Mar 21:51
e4b2d3f

Choose a tag to compare

Full Changelog: v1.13.0...v1.13.1

v1.13.0

09 Mar 21:08
af16a40

Choose a tag to compare

  • Fix display scrolling/broken UI under tmux: off-by-one in panel height calculations caused every panel to overflow by 1 line
  • Update ink 6.6.0 → 6.8.0: fixes nested Text wrapping, fullscreen trailing newline, and synchronized output
  • Treat keycap emoji (e.g. 4⃣) as double-width characters for correct column alignment
  • Ctrl+L now also clears scrollback buffer for cleaner redraws in tmux

Full Changelog: v1.12.1...v1.13.0

v1.12.1

09 Mar 05:23
439d5ee

Choose a tag to compare

Fix DM input field rendering below the conversation list panel. Now uses a full border box matching the chat panel's layout approach.

Full Changelog: v1.12.0...v1.12.1

v1.12.0

09 Mar 05:20
9a5c27d

Choose a tag to compare

What's new

  • Cyberpunk nav tabs: Restyled navigation with 1⟩Pkt 2⟩Nod format
  • Ctrl+D/U page navigation in DM conversations and config panel
  • Nodeinfo request (i key) in chat and DM views
  • Triangle accordion indicators in config panel
  • Inline reply indicators (↪ "text") instead of separate lines

Bug fixes

  • Fix n/Enter in packet view jumping to wrong node (was searching unsorted array)
  • Fix node navigation race condition causing wrong node selection
  • Fix packet list missing rows (memo comparison and scroll bounds)
  • Fix DM input field overflowing below conversation list
  • Fix chat not using full height (messages now anchor to bottom)
  • Fix DM messages being truncated (now multi-line with word wrap)
  • Fix chat scrolling (simple Slack-style instead of center-scroll)
  • Fix unread DM markers never clearing
  • Fix emoji rendering through help dialog overlay
  • Fix MeshView invalid dates (use import_time_us)
  • Fix chat "No channel info" after config load
  • Fix nav bar wrapping into border at certain widths
  • Fix crash when protobuf enum is undefined (Docker compatibility)
  • Strip newlines from node names and packet text everywhere
  • Strip variation selectors (U+FE0F) from message text

Full Changelog: v1.11.1...v1.12.0

v1.11.1

08 Mar 04:20
534d1d2

Choose a tag to compare

  • Fix 5 bugs: Logger.warn data loss, falsy value handling, logging flag, boolean upsert, DM query
  • Fix UI bugs and update dependencies (ink 6.8.0, protobufs 2.7.18)
  • Lazy-load config sections instead of loading all at once
  • Refactor nav bar: extract NavBar component with data-driven TABS array

v1.11.0

04 Mar 03:11

Choose a tag to compare

  • Fix log tab: proper column headers, full MM/DD timestamps, newest-first ordering
  • Add Shift+X in nodes view to bulk-remove all unknown nodes

Full Changelog: v1.10.0...v1.11.0

v1.10.0

09 Feb 23:39
c6e9cb1

Choose a tag to compare

Flat config editor, diff-based change tracking, bot mode, and chat/node bug fixes.

  • New flat config editor — Replace hierarchical 2-level config UI with a single flat scrollable list of every config setting. Navigate with j/k, Enter/Space to edit, / to filter, c to commit, C to discard. ConfigPanel.tsx rewritten from 1468 → 152 lines.
  • Diff-based batch edit count — Toggling a value back no longer inflates the edit counter.
  • --bot flag — Auto-reply to ping/test messages with pong/ack including SNR, RSSI, and hop count info.
  • Chat selection fixes — Keep viewport stable when entering selection mode; clamp selectedMessageIndex to prevent selecting past last message.
  • Node navigation fixes — Deterministic sort ordering with tiebreaker; preserve node selection across list updates.

Full Changelog: v1.9.6...v1.10.0

Full Changelog: v1.9.6...v1.10.0

v1.9.6

02 Feb 03:43
e3bf731

Choose a tag to compare

Add MeshView URL to node details panel (clickable link when meshview server is configured)

Full Changelog: v1.9.5...v1.9.6

v1.9.5

30 Jan 17:58
872d7f3

Choose a tag to compare

Bug Fixes

Fixed random quit issue with comprehensive exit tracking and logging

This release addresses the issue where the program would randomly quit after running for hours without explanation. Multiple critical fixes were implemented:

Critical Fixes

  • Synchronous log flushing: All exit and error logs now use fsyncSync() to guarantee logs are written to disk before process exits. Previously, async writes could be lost during unexpected exits.
  • Race condition in quit flow: Fixed issue where process.exit() was called immediately after Ink's exit() without allowing cleanup to complete. Added 100ms delay to ensure proper shutdown.
  • Hung iterator detection: Added automatic cleanup if the transport poll loop exits unexpectedly while still marked as running.

New Exit Tracking

  • Exit log (~/.config/meshtastic-cli/exit.log): Every program exit now logged with reason, uptime, memory usage, and full context
  • Heartbeat system (~/.config/meshtastic-cli/heartbeat.log): Updates every 10 seconds to detect silent crashes
  • beforeExit handler: Catches when event loop becomes empty unexpectedly
  • Process warning handler: Logs Node.js warnings (deprecation, experimental features)

Enhanced Logging

  • Transport async iterator operations (queued outputs, pending promises, done signals)
  • Poll loop lifecycle (start, heartbeat, exit with full context)
  • Emit operations (resolver vs queue tracking)
  • Quit dialog interactions (key presses, confirmations, cancellations)
  • All critical operations now logged with detailed context

Debug Files

  • ~/.config/meshtastic-cli/exit.log - Detailed exit tracking
  • ~/.config/meshtastic-cli/heartbeat.log - Process health monitoring
  • ~/.config/meshtastic-cli/error.log - Error tracking (existing)
  • ~/.config/meshtastic-cli/log - Verbose logging with --enable-logging

See the exit log to diagnose why the program quit. Use heartbeat timestamp to detect silent crashes.