v2.10.9 - Channel Validation & Audit Logging Improvements
This release includes critical bug fixes for channel data corruption and improvements to audit logging.
๐ Bug Fixes
Channel Data Integrity (#338)
Fixed critical channel data corruption bug that could cause Channel 0 to be incorrectly set as DISABLED. This release implements multiple defensive layers to ensure channel role integrity:
-
Channel Role Validation: Added three-layer defensive checks to enforce:
- Channel 0 must always be PRIMARY (role=1), never DISABLED (role=0)
- Channels 1-7 can only be SECONDARY (role=2) or DISABLED (role=0), never PRIMARY (role=1)
- Validation applied at: protobuf processing, database upsert, and default channel creation layers
-
Fixed upsertChannel Name Collision Bug: Resolved critical bug where channels 3-7 (with empty names) were overwriting Channel 0 data
- Root cause:
upsertChannelwas using name-based fallback lookup when ID lookup failed - Multiple channels with empty names would all match and update Channel 0
- Solution: Only use name-based lookup when no channel ID is provided (for legacy backward compatibility)
- Root cause:
Fixes: #330 - Channel 0 disabled
PR: #338 - Prevent channel name and role corruption for unnamed channels
Audit Logging for Packet Management (#337)
Added missing audit log entries for the "Clear All Packets" action in the Mesh Traffic Monitor.
- Ensures all administrative actions are properly logged for security and troubleshooting
- Maintains audit trail consistency across all packet management operations
Fixes: #336 - Mesh Traffic Monitor "Clear All Packets" Button has no Function
PR: #337 - Add audit log entry for packet clearing action
๐งช Testing Improvements
- Updated system-tests.sh to use
--no-cacheflag for Docker builds to ensure latest code changes are always compiled - Added configuration verification test (Test 13) to all three system test suites:
- Quick Start deployment test
- Reverse Proxy production test
- Reverse Proxy + OIDC integration test
- Tests now verify:
- Modem preset configuration (Medium Fast)
- Frequency slot configuration (0)
- Channel 0 is PRIMARY and unnamed
- Channel 2 is SECONDARY and named "gauntlet"
All system tests passing with the new validation checks.
๐ฆ What's Changed
- Fix channel name and role corruption for unnamed channels (#338) by @Yeraze in #338
- Add audit log entry for packet clearing action (#337) by @Yeraze in #337
Full Changelog: v2.10.7...v2.10.9
๐ MeshMonitor v2.10.9
๐ฆ Installation
Docker (recommended):
docker run -d \
--name meshmonitor \
-p 8080:3001 \
-v meshmonitor-data:/data \
ghcr.io/Yeraze/meshmonitor:v2.10.9๐งช 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.