github Yeraze/meshmonitor v4.0.2

5 hours ago

MeshMonitor v4.0.2

Summary

This release is a follow-up to the v4.0.1 hotfix and continues hardening the new multi-source architecture introduced in 4.0. It fixes a Postgres upgrade failure where migration 028 left a legacy single-column UNIQUE constraint on user_notification_preferences.userId that blocked saving notification preferences on any non-default source. It scopes several remaining tabs and queries to the active source — Notifications, Settings, the Virtual Node info panel, and the latest-telemetry-value rollup — fixing cases where users on Source 2+ saw default-source data. It resolves an upgrade-time crash on MySQL where migration 037 attempted to recreate a foreign key with a duplicate name, plus a startup crash in the packet-log retention timer. The unified channel/messages experience now correctly saves channel names, routes cross-source actions to the right node, and stops the source picker from drifting. The Messages composer now supports multi-line input (Enter sends, Shift+Enter inserts a newline). On the database side, composite indexes back the hot per-source query patterns and the default Postgres/MySQL pool size has been raised to keep up with per-source polling fan-out.

Bug Fixes

  • fix(notifications): scope channels per-source + drop legacy unique constraint (#2843)
  • fix(settings): scope per-source reads to per-source namespace only (#2842)
  • fix(upgrade): MySQL migration 037 FK + packet-log timer crash (#2838)
  • fix(unified): channel-name save, cross-source routing, picker drift (#2837)
  • fix(info): show per-source admin commands status in Virtual Node panel (#2835)
  • fix(telemetry): scope getLatestTelemetryValueForAllNodes by sourceId (#2834)
  • fix(sources): remove FE virtualNode port == source port block (#2832)

Features

  • feat(messages): multi-line compose — Enter sends, Shift+Enter inserts a newline (#2841)

Performance

  • perf(db): composite indexes for hot query patterns + raise default PG/MySQL pool size (#2833)

Release

  • chore(release): bump version to 4.0.2 (#2844)

Issues Resolved

  • #2836 — v4.0.1 hotfix: migration 32/33 hang on MySQL upgrade
  • #2768 — Incorrect value on last-traced time
  • #2723 — v4.0.0-beta5: all connected nodes use the same script settings

Upgrade Notes

  • PostgreSQL users who saw duplicate key value violates unique constraint "user_notification_preferences_userId_key" when saving notification preferences on a secondary source: this is fixed by new migration 051, which runs automatically at startup and drops the legacy single-column UNIQUE.
  • MySQL users upgrading from 3.12 → 4.0 who hit the migration 037 foreign-key error or a server crash from the packet-log timer: this is fixed by #2838 and the upgrade should now complete cleanly.
  • No manual action required for either fix — both are covered by the automatic migration runner on startup.

Full Changelog: v4.0.1...v4.0.2

🚀 MeshMonitor v4.0.2

📦 Installation

Docker (recommended):

docker run -d \
  --name meshmonitor \
  -p 8080:3001 \
  -v meshmonitor-data:/data \
  ghcr.io/Yeraze/meshmonitor:4.0.2

🧪 Testing

✅ All tests passed
✅ TypeScript checks passed
✅ Docker images built for linux/amd64, linux/arm64, linux/arm/v7

📋 Changes

See commit history for detailed changes.

Don't miss a new meshmonitor release

NewReleases is sending notifications on new releases.