Pre-release preview of the MeshCore per-source effort (slices 1–4 of the per-node-source rework).
Supersedes v4.4.0-alpha1 — alpha1's Release Pipeline / Desktop Release jobs failed because src/db/migrations.test.ts had stale assertions that didn't account for migration 057. Fixed in #2959 and rolled into this build.
What's in it
- Per-source MeshCoreManager + registry — singleton replaced by
Map<sourceId, MeshCoreManager> - Schema — migration 056 adds
sourceIdtomeshcore_nodes/meshcore_messages(legacy rows backfilled to a default source) - Source config — companion-USB v1:
{ transport: 'usb', port, deviceType: 'companion', pubkey? }; identity keyed by handshake pubkey, not port path - AutoConnect — MeshCore companions now wired into the source autoConnect path
- Routes — nested under
/api/sources/:id/meshcore/* - Permissions — global
meshcoreresource collapsed (migration 057) into the per-source set (connection,configuration,nodes,nodes_private,messages); migration mirrors what 033 did for Meshtastic - Frontend — per-source MeshCore UI
Out of scope (v1 / not in this build)
- BLE / TCP transports for MeshCore companions
- Repeater text-CLI source path (Phase 5, deferred)
- Standalone MeshCore tab is still present; will be dropped once parity is validated
- Per-channel
mc_channel_Npermission resources
Status
Preview only — no production PR open yet. Use for validation against real companion-USB hardware before the combined PR lands.
🚀 MeshMonitor v4.4.0-alpha2
📦 Installation
Docker (recommended):
docker run -d \
--name meshmonitor \
-p 8080:3001 \
-v meshmonitor-data:/data \
ghcr.io/Yeraze/meshmonitor:4.4.0-alpha2🧪 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.