This release adds 2 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
Summary
AI summaryUpdates Bug Fixes, Issues Resolved, and π MeshMonitor v4.9.2 across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Adds drag-and-drop reordering of Sources list on Unified View. Adds drag-and-drop reordering of Sources list on Unified View. Source: llm_adapter@2026-06-06 Confidence: high |
β |
| Feature | Medium |
Introduces MeshCore Notifications tab with inactive-node and new-node alerts. Introduces MeshCore Notifications tab with inactive-node and new-node alerts. Source: llm_adapter@2026-06-06 Confidence: high |
β |
| Bugfix | Medium |
Fixes `migrate-db` table ordering drift and missing tables in schema migration. Fixes `migrate-db` table ordering drift and missing tables in schema migration. Source: llm_adapter@2026-06-06 Confidence: high |
β |
| Bugfix | Medium |
Repairs Channels tab layout on installed iOS PWAs. Repairs Channels tab layout on installed iOS PWAs. Source: llm_adapter@2026-06-06 Confidence: high |
β |
| Bugfix | Medium |
Prevents channel reordering from mixing MeshCore and Meshtastic channels. Prevents channel reordering from mixing MeshCore and Meshtastic channels. Source: llm_adapter@2026-06-06 Confidence: high |
β |
Full changelog
MeshMonitor v4.9.2
A focused follow-up to v4.9.1 that adds drag-and-drop reordering of the Sources list on the Unified View and brings the Notifications experience to MeshCore sources, plus three fixes. Admins can now reorder source cards in the Dashboard sidebar, with the order persisted server-side and shared across all viewers. MeshCore sources gain a dedicated, source-type-aware Notifications tab and now fire inactive-node and new-node alerts. The release also corrects the migrate-db table ordering, repairs the Channels tab layout on installed iOS PWAs, and prevents channel reordering from bleeding channels between MeshCore and Meshtastic sources.
Features
- Reorderable Sources list on the Unified View (#3342) β Admins can drag-and-drop the source cards in the Dashboard / Unified View sidebar to control their order, mirroring the existing channel-reorder UX. The order is stored server-side (new
sources.displayOrdercolumn, migration 081) so it is shared across all viewers; a grab handle only appears for users withsources:write. The Unified aggregate card stays pinned at the top and is not draggable, and new sources append to the end of the list. Resolves #3338. - MeshCore Notifications space + inactive-node & new-node alerts (#3339) β MeshCore sources now have a dedicated, source-type-aware Notifications tab showing only the controls that apply (voltage mV low-battery threshold, inactive-node, new-node, server events, monitored-node picker, Web Push / Apprise). Inactive-node alerts now fire for MeshCore (reading
meshcore_nodes.lastHeardin ms), and "new node discovered" alerts trigger on the first real-time contact advert (de-duplicated per public key, with device-type labels). The Meshtastic notifications page no longer shows the irrelevant mV field. Relates to #3331.
Bug Fixes
- migrate-db TABLE_ORDER out of sync with the schema (#3341) β The SQLite β PostgreSQL/MySQL migration CLI's explicit table ordering had drifted: nine 4.x tables were missing and a stale
key_repair_stateentry referenced a table that never existed. They now have explicit FK-safe positions, the new source-scoped tables participate in thesourceIdbackfill, and a regression test enumerates the Drizzle schema to fail CI if a future table is added without being registered. Resolves #3337. - Channels tab layout broken on installed iOS PWAs (#3336) β On the Channels tab in an installed iOS PWA the message list grew without bound and a large dead-space gap remained below the input. Fixed with iOS-WebKit-specific corrections:
min-height: 0on.app-main, a deterministic measured pixel height for the message list (ResizeObserver), and removal of theposition: stickysend bar that resolved against the safe-area-inset viewport. Regression from the #3307 PWA dead-space fix. - Channel reorder could replace a Meshtastic channel with a MeshCore one (#3335) β The
POST /api/channels/reorderhandler read channels with an unscopedgetAllChannels()and keyed them into a slot-indexed map; since MeshCore and Meshtastic channels share thechannelstable and both use slot ids 0-7, a MeshCore channel could win the lookup and be written to the Meshtastic device. The reorder read and writes are now scoped to the source being edited.
Other
- Translations update from Hosted Weblate (#3244)
Issues Resolved
- #3338 β Reorderable Sources list on the Unified View page
- #3337 β
migrate-db.tsTABLE_ORDER out of sync with the current schema
Full changelog: https://github.com/Yeraze/meshmonitor/compare/v4.9.1...v4.9.2
π MeshMonitor v4.9.2
π¦ Installation
Docker (recommended):
docker run -d \
--name meshmonitor \
-p 8080:3001 \
-v meshmonitor-data:/data \
ghcr.io/Yeraze/meshmonitor:4.9.2
π§ͺ Testing
β
All tests passed (Node 20/22/24/25, SQLite/PostgreSQL/MySQL)
β
TypeScript checks passed
β
Hardware system tests passed
β
Docker images built for linux/amd64, linux/arm64, linux/arm/v7
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Yeraze/meshmonitor
All releases βRelated context
Related tools
Beta — feedback welcome: [email protected]