github Yeraze/meshmonitor v4.16.1-rc6

pre-release4 hours ago

MeshMonitor v4.16.1-rc6

⚠️ Pre-release. This is a release candidate for testing. Expect rough edges and report problems before 4.16.1 ships.

Summary

This candidate is mostly about scripts and channels. Script authors can now declare a version in their script's mm_meta block, the User Scripts Gallery reads it straight from the author's repository, and Settings → Scripts can ask each script's source which version it publishes. When one is newer an admin sees the offer and presses Update; the replaced file is kept so it can be rolled back. Nothing updates on its own, so third-party code never changes under an operator without a click. Module config sections now follow the device's own excluded_modules bitmask instead of a firmware version guess, so a reduced build no longer offers settings for modules it does not carry. On the channels side, a channel that moved slots no longer leaves its messages behind, edits made in MeshMonitor show up without a restart, and the mobile Channels view gets its own action row and a one-line composer. Saving an MQTT broker source no longer wedges for minutes when clients are connected. The MeshCore admin console now explains itself when a proxy hands back a web page instead of JSON.

Upgrade notes

  • No migration in this candidate.
  • Script updates are opt-in by hand. A script is only checkable when MeshMonitor can tell where it came from: a source: line in its mm_meta, a GitHub path an admin enters in Settings → Scripts, or a gallery entry matched by filename.
  • Updates and rollbacks need settings:write; seeing update status needs settings:read.

Features

  • feat(scripts): check installed scripts for updates, and install one on request (#5255) — #5274
  • feat(scripts): show script versions in the gallery, read from the author's mm_meta (#5255) — #5272
  • feat(config): gate module sections on the device's excluded_modules bitmask (#5065) — #5273
  • feat(channels): give mobile its own action row, collapse the composer to one line (#5265) — #5267

Bug Fixes

  • fix(channels): stop shared-key channels swallowing history; show local edits without a restart (#5183) — #5269
  • fix(mqtt): stop the broker without hanging on connected clients (#5264) — #5266
  • fix(meshcore): surface a clear error when admin console gets HTML instead of JSON (#5268) — #5270

CI/DevOps

  • chore(release): bump to 4.16.1-rc6 — #5278

Issues Resolved

  • #5065 Gate module config sections on DeviceMetadata.excluded_modules instead of firmware version checks
  • #5264 MQTT broker save wedges for ~6 min after repeated saves
  • #5265 Mobile: re-layout Channels header + composer row for better fit
  • #5268 Unexpected token '<', "<!DOCTYPE "... is not valid JSON

Still open: #5255 covers optional auto-update. This candidate ships the manual half only — checking, updating on request, and rollback. Whether MeshMonitor should ever apply an update without a human is still undecided.

Full Changelog: v4.16.1-rc5...v4.16.1-rc6

🚀 MeshMonitor v4.16.1-rc6

📦 Installation

Docker (recommended):

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

🧪 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.