Skip to content

chore(release): bump version to 4.6.2#3095

Merged
Yeraze merged 1 commit into
mainfrom
release-4.6.2
May 19, 2026
Merged

chore(release): bump version to 4.6.2#3095
Yeraze merged 1 commit into
mainfrom
release-4.6.2

Conversation

@Yeraze

@Yeraze Yeraze commented May 19, 2026

Copy link
Copy Markdown
Owner

Summary

Patch release covering #3089 (MQTT ingest rework + Unified-view source attribution + cross-source dedup), #3093 (channel display-name from modem preset), #3091 (Channel Database moved to Global Settings, dead sourceId column dropped via migration 063), #3094 (Meshcore repeater telemetry), #3086 (SQLITE_CORRUPT recovery), #3088 (Desktop first-run), plus the usual dependency bumps.

Version bumps across all five canonical files: package.json, package-lock.json (regenerated), helm/meshmonitor/Chart.yaml, desktop/package.json, desktop/src-tauri/tauri.conf.json.

What's in here

  • CHANGELOG.md — new [4.6.2] - 2026-05-19 section organized under Features / Fixes / Refactors / Dependencies / Docs. MQTT and channel-rename items called out as the headline changes.
  • CLAUDE.md — migration count 62+63+, latest migration name updated. "Every row carries a sourceId" rule gains an exception note for channel_database (intentionally global since channelDecryptionService tries every enabled row regardless of source).
  • docs/blog/2026-05-19-v4.6.2-release.md — release blog post structured around three "things you'll notice immediately": slot-0 channel rename from "Primary" to modem-preset label, Channel Database moved to Global Settings, MQTT sources now participate in Unified Messages and Unified Telemetry.
  • docs/public/news.json — same content as the blog post compressed into a single news entry at the top, lastUpdated bumped.

Test plan

  • All five version files at 4.6.2
  • Local container reports version: "4.6.2" on /api/health
  • npx tsc --noEmit clean
  • npx vitest run green (15167 / 0 in last full run)
  • JSON validates: jq '.items[0]' docs/public/news.json
  • System tests (tagged with system-test label below)

🤖 Generated with Claude Code

Patch release covering the MQTT-ingest rework (#3089) and follow-on UX
fixes (#3093 channel display-name, #3091 Channel Database move to Global)
plus the usual dependency bumps and minor fixes.

Version bumps across all five canonical files: package.json,
package-lock.json (regenerated), helm/meshmonitor/Chart.yaml,
desktop/package.json, desktop/src-tauri/tauri.conf.json.

CHANGELOG: organized under [4.6.2] with the user-visible MQTT/channel
items called out as the headline changes.

CLAUDE.md:
- Migration count 62+ → 63+ (latest: 063_drop_source_id_from_channel_database)
- "Every row carries a sourceId" rule gains an exception note for
  channel_database — it's intentionally global (decryption service tries
  every enabled row regardless of source) and migration 063 dropped the
  dead sourceId column.

Blog post + news.json: "MeshMonitor v4.6.2 — MQTT in the Unified views & cleaner channel names" — three things users will notice immediately
(slot-0 channel renamed from "Primary" to the modem-preset label,
Channel Database moved to Global Settings, MQTT sources now participate
in Unified Messages and Unified Telemetry) plus action items after
upgrade.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Yeraze Yeraze added the system-test Trigger hardware system tests label May 19, 2026
@github-actions

github-actions Bot commented May 19, 2026

Copy link
Copy Markdown

Claude finished @Yeraze's task —— View job


PR Review: chore(release): bump version to 4.6.2

Todo List:

  • Review version consistency across all 5 canonical files
  • Analyze changelog structure and content
  • Review documentation updates (CLAUDE.md, blog post, news.json)
  • Check for potential issues or inconsistencies
  • Provide comprehensive feedback

Review Summary

This is a well-executed version bump PR with comprehensive documentation updates. The changes are appropriate for a patch release covering MQTT improvements, channel UX, and several bug fixes.

Strengths

  1. Version Consistency: All 5 canonical files properly updated to 4.6.2
  2. High-Quality Changelog: Well-structured, comprehensive, follows Keep a Changelog format
  3. Good Documentation: Clear blog post explaining user-visible changes
  4. Proper JSON Structure: news.json is properly formatted and structured
  5. Migration Documentation: Correctly updated migration count and added helpful exception note
  6. User-Focused Communication: Blog post excellently explains "things you'll notice immediately"

⚠️ Issues Found

Major Issue - Version Inconsistency in CLAUDE.md

  • File: CLAUDE.md:3
  • Issue: Still shows **Version:** 4.6.1 (multi-source architecture) instead of 4.6.2
  • Impact: Documentation claims wrong version, could confuse agents/contributors
  • Fix Required: Update to **Version:** 4.6.2 (multi-source architecture)

Security Assessment

  • No security concerns identified
  • Standard version bump with documentation updates
  • No suspicious code patterns or malicious content

Performance Considerations

  • No performance impact - this is purely a version bump
  • Documentation changes don't affect runtime performance

Code Quality

  • Follows established project conventions
  • Maintains consistency with previous release patterns
  • Proper use of semantic versioning (patch release)

Test Coverage

According to the PR description:

  • TypeScript compilation clean ✓
  • Vitest tests passing (15167/0) ✓
  • Local container health check ✓
  • System tests pending (CI will verify)

Recommendation

CONDITIONAL APPROVAL - Fix the CLAUDE.md version inconsistency before merging. Otherwise this is a solid release PR that properly documents significant improvements to MQTT handling and UX.

The blog post does an excellent job explaining the user-visible changes, particularly the channel renaming from "Primary" to modem preset names and the Channel Database UI reorganization.


Job run

@github-actions

Copy link
Copy Markdown
System Test Results

MeshMonitor System Test Results

Test Run: 2026-05-19 18:31:01 EDT

Test Summary

Test Suite Result
Configuration Import ✅ PASSED
Quick Start Test ✅ PASSED
Security Test ✅ PASSED
V1 API Test ✅ PASSED
Reverse Proxy Test ✅ PASSED
Reverse Proxy + OIDC ✅ PASSED
Virtual Node CLI Test ✅ PASSED
Backup & Restore Test ✅ PASSED
Database Migration Test ✅ PASSED
DB Backing Consistency ✅ PASSED
API Exercise (3 DBs) ✅ PASSED

✅ Overall Result: PASSED

All deployment configurations are working correctly!

Test Details

Configuration Import:

  • Tests configuration import and device reboot cycle
  • Verifies channel roles, PSKs, and LoRa configuration
  • Note: Channel name verification skipped due to architectural limitation

Quick Start Test:

  • Zero-config deployment (no SESSION_SECRET or COOKIE_SECURE required)
  • HTTP access without HSTS
  • Auto-generated admin user with default credentials
  • Session cookies work over HTTP
  • Meshtastic node connection and message exchange verified

Security Test:

  • Verifies Node IP address hidden from anonymous users in API responses
  • Verifies MQTT configuration hidden from anonymous users
  • Verifies Node IP address visible to authenticated users
  • Verifies MQTT configuration visible to authenticated users
  • Verifies protected endpoints require authentication

V1 API Test:

  • Tests v1 REST API endpoints with Bearer token authentication
  • Verifies Bearer token requests bypass CSRF protection
  • Verifies POST/PUT/DELETE work without CSRF token when using Bearer auth
  • Verifies session-based requests still require CSRF token

Reverse Proxy Test:

  • Production deployment with COOKIE_SECURE=true
  • HTTPS-ready configuration
  • Trust proxy enabled for reverse proxy compatibility
  • CORS configured for HTTPS domain
  • Meshtastic node connection and message exchange verified

Reverse Proxy + OIDC Test:

  • OIDC authentication integration
  • Mock OIDC provider health checks
  • Authorization flow and session creation
  • Hybrid mode (OIDC + local auth)
  • Meshtastic node connection verified

Virtual Node CLI Test:

  • Virtual Node Server enabled on TCP port 4404
  • Meshtastic Python client successfully connects
  • Node data download and synchronization verified
  • Test message sent on gauntlet channel (index 3)
  • Message delivery confirmed via Web UI API
  • Virtual Node Server connection logging verified

Backup & Restore Test:

  • System backup created from running dev container
  • New container spun up with RESTORE_FROM_BACKUP env var
  • Data integrity verified (node count, message count, settings)
  • Restore event logged in audit log
  • Dev container unaffected by restore test

Database Migration Test:

  • SQLite to PostgreSQL migration verified
  • SQLite to MySQL migration verified
  • Data integrity confirmed for both target databases
  • Row counts match between source and target

DB Backing Consistency Test:

  • SQLite, PostgreSQL, and MySQL backends tested with same device
  • Node counts within ±10 across all three backends
  • Favorite counts identical across all backends
  • Key station verified as favorite on all backends

@Yeraze Yeraze merged commit 3e6818f into main May 19, 2026
24 checks passed
@Yeraze Yeraze deleted the release-4.6.2 branch May 19, 2026 22:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

system-test Trigger hardware system tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant