tag:github.com,2008:https://github.com/statico/meshtastic-cli/releasesRelease notes from meshtastic-cli2026-03-09T22:35:39Ztag:github.com,2008:Repository/1119038610/v1.13.22026-03-09T22:38:42Zv1.13.2<ul>
<li>Use alternate screen buffer (like vim/htop) to prevent scroll contamination in tmux</li>
<li>Fullscreen connecting splash screen with centered cyberpunk banner</li>
<li>Update ink 6.6.0 → 6.8.0 (fixes nested Text wrapping, trailing newline, synchronized output)</li>
<li>Treat keycap emoji (e.g. 4⃣) as double-width characters for correct column alignment</li>
<li>Ctrl+L now also clears scrollback buffer for cleaner redraws</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/1119038610/v1.13.12026-03-09T21:51:16Zv1.13.1<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/statico/meshtastic-cli/compare/v1.13.0...v1.13.1"><tt>v1.13.0...v1.13.1</tt></a></p>github-actions[bot]tag:github.com,2008:Repository/1119038610/v1.13.02026-03-09T21:08:42Zv1.13.0<ul>
<li>Fix display scrolling/broken UI under tmux: off-by-one in panel height calculations caused every panel to overflow by 1 line</li>
<li>Update ink 6.6.0 → 6.8.0: fixes nested Text wrapping, fullscreen trailing newline, and synchronized output</li>
<li>Treat keycap emoji (e.g. 4⃣) as double-width characters for correct column alignment</li>
<li>Ctrl+L now also clears scrollback buffer for cleaner redraws in tmux</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/statico/meshtastic-cli/compare/v1.12.1...v1.13.0"><tt>v1.12.1...v1.13.0</tt></a></p>staticotag:github.com,2008:Repository/1119038610/v1.12.12026-03-09T05:23:45Zv1.12.1<p>Fix DM input field rendering below the conversation list panel. Now uses a full border box matching the chat panel's layout approach.</p>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/statico/meshtastic-cli/compare/v1.12.0...v1.12.1"><tt>v1.12.0...v1.12.1</tt></a></p>staticotag:github.com,2008:Repository/1119038610/v1.12.02026-03-09T05:21:21Zv1.12.0<h2>What's new</h2>
<ul>
<li><strong>Cyberpunk nav tabs</strong>: Restyled navigation with <code>1⟩Pkt 2⟩Nod</code> format</li>
<li><strong>Ctrl+D/U page navigation</strong> in DM conversations and config panel</li>
<li><strong>Nodeinfo request</strong> (<code>i</code> key) in chat and DM views</li>
<li><strong>Triangle accordion indicators</strong> in config panel</li>
<li><strong>Inline reply indicators</strong> (<code>↪ "text"</code>) instead of separate lines</li>
</ul>
<h2>Bug fixes</h2>
<ul>
<li>Fix <code>n</code>/Enter in packet view jumping to wrong node (was searching unsorted array)</li>
<li>Fix node navigation race condition causing wrong node selection</li>
<li>Fix packet list missing rows (memo comparison and scroll bounds)</li>
<li>Fix DM input field overflowing below conversation list</li>
<li>Fix chat not using full height (messages now anchor to bottom)</li>
<li>Fix DM messages being truncated (now multi-line with word wrap)</li>
<li>Fix chat scrolling (simple Slack-style instead of center-scroll)</li>
<li>Fix unread DM markers never clearing</li>
<li>Fix emoji rendering through help dialog overlay</li>
<li>Fix MeshView invalid dates (use <code>import_time_us</code>)</li>
<li>Fix chat "No channel info" after config load</li>
<li>Fix nav bar wrapping into border at certain widths</li>
<li>Fix crash when protobuf enum is undefined (Docker compatibility)</li>
<li>Strip newlines from node names and packet text everywhere</li>
<li>Strip variation selectors (U+FE0F) from message text</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/statico/meshtastic-cli/compare/v1.11.1...v1.12.0"><tt>v1.11.1...v1.12.0</tt></a></p>staticotag:github.com,2008:Repository/1119038610/v1.11.12026-03-08T04:33:31Zv1.11.1<ul>
<li>Fix 5 bugs: Logger.warn data loss, falsy value handling, logging flag, boolean upsert, DM query</li>
<li>Fix UI bugs and update dependencies (ink 6.8.0, protobufs 2.7.18)</li>
<li>Lazy-load config sections instead of loading all at once</li>
<li>Refactor nav bar: extract NavBar component with data-driven TABS array</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/1119038610/v1.11.02026-03-04T03:12:14Zv1.11.0<ul>
<li>Fix log tab: proper column headers, full MM/DD timestamps, newest-first ordering</li>
<li>Add Shift+X in nodes view to bulk-remove all unknown nodes</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/statico/meshtastic-cli/compare/v1.10.0...v1.11.0"><tt>v1.10.0...v1.11.0</tt></a></p>staticotag:github.com,2008:Repository/1119038610/v1.10.02026-02-09T23:40:14Zv1.10.0<p>Flat config editor, diff-based change tracking, bot mode, and chat/node bug fixes.</p>
<ul>
<li><strong>New flat config editor</strong> — 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.</li>
<li><strong>Diff-based batch edit count</strong> — Toggling a value back no longer inflates the edit counter.</li>
<li><strong><code>--bot</code> flag</strong> — Auto-reply to ping/test messages with pong/ack including SNR, RSSI, and hop count info.</li>
<li><strong>Chat selection fixes</strong> — Keep viewport stable when entering selection mode; clamp selectedMessageIndex to prevent selecting past last message.</li>
<li><strong>Node navigation fixes</strong> — Deterministic sort ordering with tiebreaker; preserve node selection across list updates.</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/statico/meshtastic-cli/compare/v1.9.6...v1.10.0"><tt>v1.9.6...v1.10.0</tt></a></p>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/statico/meshtastic-cli/compare/v1.9.6...v1.10.0"><tt>v1.9.6...v1.10.0</tt></a></p>staticotag:github.com,2008:Repository/1119038610/v1.9.62026-02-02T03:44:07Zv1.9.6<p>Add MeshView URL to node details panel (clickable link when meshview server is configured)</p>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/statico/meshtastic-cli/compare/v1.9.5...v1.9.6"><tt>v1.9.5...v1.9.6</tt></a></p>staticotag:github.com,2008:Repository/1119038610/v1.9.52026-01-30T17:58:22Zv1.9.5<h2>Bug Fixes</h2>
<p><strong>Fixed random quit issue with comprehensive exit tracking and logging</strong></p>
<p>This release addresses the issue where the program would randomly quit after running for hours without explanation. Multiple critical fixes were implemented:</p>
<h3>Critical Fixes</h3>
<ul>
<li><strong>Synchronous log flushing</strong>: All exit and error logs now use <code>fsyncSync()</code> to guarantee logs are written to disk before process exits. Previously, async writes could be lost during unexpected exits.</li>
<li><strong>Race condition in quit flow</strong>: Fixed issue where <code>process.exit()</code> was called immediately after Ink's <code>exit()</code> without allowing cleanup to complete. Added 100ms delay to ensure proper shutdown.</li>
<li><strong>Hung iterator detection</strong>: Added automatic cleanup if the transport poll loop exits unexpectedly while still marked as running.</li>
</ul>
<h3>New Exit Tracking</h3>
<ul>
<li><strong>Exit log</strong> (<code>~/.config/meshtastic-cli/exit.log</code>): Every program exit now logged with reason, uptime, memory usage, and full context</li>
<li><strong>Heartbeat system</strong> (<code>~/.config/meshtastic-cli/heartbeat.log</code>): Updates every 10 seconds to detect silent crashes</li>
<li><strong>beforeExit handler</strong>: Catches when event loop becomes empty unexpectedly</li>
<li><strong>Process warning handler</strong>: Logs Node.js warnings (deprecation, experimental features)</li>
</ul>
<h3>Enhanced Logging</h3>
<ul>
<li>Transport async iterator operations (queued outputs, pending promises, done signals)</li>
<li>Poll loop lifecycle (start, heartbeat, exit with full context)</li>
<li>Emit operations (resolver vs queue tracking)</li>
<li>Quit dialog interactions (key presses, confirmations, cancellations)</li>
<li>All critical operations now logged with detailed context</li>
</ul>
<h3>Debug Files</h3>
<ul>
<li><code>~/.config/meshtastic-cli/exit.log</code> - Detailed exit tracking</li>
<li><code>~/.config/meshtastic-cli/heartbeat.log</code> - Process health monitoring</li>
<li><code>~/.config/meshtastic-cli/error.log</code> - Error tracking (existing)</li>
<li><code>~/.config/meshtastic-cli/log</code> - Verbose logging with <code>--enable-logging</code></li>
</ul>
<p>See the exit log to diagnose why the program quit. Use heartbeat timestamp to detect silent crashes.</p>statico