From 38f2b08aa73e0df21b1560cc0af133ccb3b30d33 Mon Sep 17 00:00:00 2001 From: Randall Hand Date: Tue, 24 Mar 2026 13:17:59 -0400 Subject: [PATCH] =?UTF-8?q?chore:=20release=20v3.10.0=20=E2=80=94=20major?= =?UTF-8?q?=20database=20refactoring=20&=20channel=20management?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 (1M context) --- desktop/package.json | 2 +- desktop/src-tauri/tauri.conf.json | 2 +- docs/public/news.json | 11 ++++++++++- helm/meshmonitor/Chart.yaml | 4 ++-- package-lock.json | 4 ++-- package.json | 2 +- 6 files changed, 17 insertions(+), 8 deletions(-) diff --git a/desktop/package.json b/desktop/package.json index 0e7a1e025..50e2ee47e 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -1,7 +1,7 @@ { "name": "meshmonitor-desktop", "private": true, - "version": "3.10.0-RC8", + "version": "3.10.0", "type": "module", "scripts": { "tauri": "tauri", diff --git a/desktop/src-tauri/tauri.conf.json b/desktop/src-tauri/tauri.conf.json index 938981c7b..841f7ad40 100644 --- a/desktop/src-tauri/tauri.conf.json +++ b/desktop/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "MeshMonitor", - "version": "3.10.0-RC8", + "version": "3.10.0", "identifier": "org.meshmonitor.desktop", "build": { "beforeBuildCommand": "", diff --git a/docs/public/news.json b/docs/public/news.json index 5ef9913c5..1199e5c30 100644 --- a/docs/public/news.json +++ b/docs/public/news.json @@ -1,7 +1,16 @@ { "version": "1", - "lastUpdated": "2026-03-15T18:00:00Z", + "lastUpdated": "2026-03-24T20:00:00Z", "items": [ + { + "minVersion": "3.10.0", + "id": "news-2026-03-24-v3.10.0-database-refactor", + "title": "MeshMonitor v3.10.0 — Major Database Refactoring & Channel Management", + "content": "MeshMonitor v3.10.0 is a major release featuring a comprehensive database architecture overhaul — **5,672 lines of code removed** across 278 files while adding new features and fixing dozens of bugs.\n\n## New Features\n\n- **Channel drag-and-drop reorder** — Rearrange device channel slots with automatic message history migration so your chat history follows the channel\n- **Dead nodes report** — New Security tab section showing nodes not heard from in 7+ days with bulk delete capability\n- **Rsyslog server setting** — Configure remote syslog server in Device Configuration > Network\n- **Polar grid map overlay** — Visual polar grid overlay for directional analysis\n- **Configurable default map center** — Set your preferred starting map location\n- **Auto responder environment variables** — Expose auto responder tokens as environment variables for external scripts\n- **Millisecond packet timestamps** — Sub-second precision in packet monitor with dedicated date column\n- **OIDC retry on failure** — Authentication no longer permanently disables if OIDC provider is temporarily unavailable\n\n## Database Architecture Improvements\n\n- **Full async migration** — All synchronous database calls replaced with async equivalents across all three backends\n- **Repository pattern** — Monolithic DatabaseService decomposed into domain-specific repositories (nodes, messages, telemetry, channels, etc.)\n- **Centralized migration registry** — Clean v3.7 baseline with standardized migration system\n- **N+1 query elimination** — Bulk queries replace per-node loops in security scanner, neighbor info, and node listing\n- **Cross-database helpers** — New `col()`, `upsert()`, `insertIgnore()`, and `getAffectedRows()` helpers eliminate backend-specific branching\n\n## Bug Fixes\n\n- Channel database no longer shadows device channels with the same PSK\n- PostgreSQL connection pool exhaustion with large meshes (200+ nodes)\n- Local node no longer self-flags security warnings or bounces link quality\n- Key mismatch warnings now properly clear after resolution on all backends\n- Traceroute race conditions and duplication issues resolved\n- Admin keys no longer show as [object Object] in security config\n- MQTT detection and visual distinction in traceroutes improved\n- Packet monitor shows node names instead of hex IDs on PostgreSQL", + "date": "2026-03-24T20:00:00Z", + "category": "release", + "priority": "important" + }, { "minVersion": "3.9.4", "id": "news-2026-03-15-distance-delete-traceroute", diff --git a/helm/meshmonitor/Chart.yaml b/helm/meshmonitor/Chart.yaml index 5f09c5f3d..d382a04f6 100644 --- a/helm/meshmonitor/Chart.yaml +++ b/helm/meshmonitor/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: meshmonitor description: A Helm chart for MeshMonitor - Web application for monitoring Meshtastic mesh networks type: application -version: 3.10.0-RC8 -appVersion: "3.10.0-RC8" +version: 3.10.0 +appVersion: "3.10.0" home: https://github.com/Yeraze/meshmonitor sources: - https://github.com/Yeraze/meshmonitor diff --git a/package-lock.json b/package-lock.json index d2687a58b..3eade44ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "meshmonitor", - "version": "3.10.0-RC8", + "version": "3.10.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "meshmonitor", - "version": "3.10.0-RC8", + "version": "3.10.0", "license": "BSD-3-Clause", "dependencies": { "@dnd-kit/core": "^6.3.1", diff --git a/package.json b/package.json index bb2a255e7..387047d6e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "meshmonitor", - "version": "3.10.0-RC8", + "version": "3.10.0", "description": "Web application for monitoring Meshtastic nodes over IP", "license": "BSD-3-Clause", "private": true,