@alteriom/painlessmesh 1.7.2 → 1.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +58 -4
  2. package/README.md +17 -3
  3. package/docs/README.md +62 -10
  4. package/docs/archive/DOCUSAURUS_DEPLOYMENT.md +166 -0
  5. package/docs/archive/LIBRARY_JSON_FIX.md +98 -0
  6. package/docs/archive/LIBRARY_STRUCTURE_FIX.md +215 -0
  7. package/docs/archive/RELEASE_SUMMARY.md +173 -0
  8. package/docs/archive/SCONS_BUILD_FIX.md +313 -0
  9. package/docs/archive/TRIGGER_RELEASE.md +280 -0
  10. package/docs/archive/VECTOR_INCLUDE_FIX.md +129 -0
  11. package/docs/development/ARDUINO_COMPLIANCE_SUMMARY.md +71 -0
  12. package/docs/development/CODE_REFACTORING_RECOMMENDATIONS.md +1011 -0
  13. package/docs/development/DOCKER_TESTING.md +196 -0
  14. package/docs/development/PLATFORMIO_USAGE.md +180 -0
  15. package/docs/development/TESTING_SUMMARY.md +126 -0
  16. package/docs/development/contributing.md +301 -0
  17. package/docs/development/documentation.md +583 -0
  18. package/docs/improvements/FUTURE_PROPOSALS.md +1016 -0
  19. package/docs/improvements/IMPLEMENTATION_HISTORY.md +1091 -0
  20. package/docs/improvements/OTA_STATUS_ENHANCEMENTS.md +709 -0
  21. package/docs/improvements/README.md +171 -46
  22. package/docs/releases/FEATURE_HISTORY.md +543 -0
  23. package/docs/releases/PATCH_v1.7.3.md +262 -0
  24. package/docs/releases/PHASE1_SUMMARY.md +246 -0
  25. package/docs/releases/PHASE2_SUMMARY.md +499 -0
  26. package/docs/releases/RELEASE_NOTES_1.7.0.md +539 -0
  27. package/docs/troubleshooting/debugging.md +455 -0
  28. package/library.json +1 -1
  29. package/library.properties +1 -1
  30. package/package.json +1 -1
  31. package/src/painlessmesh/router.hpp +35 -19
  32. /package/docs/{improvements → archive}/FEATURE_PROPOSALS.md +0 -0
  33. /package/docs/{improvements → archive}/PHASE1_IMPLEMENTATION.md +0 -0
  34. /package/docs/{improvements → archive}/PHASE2_IMPLEMENTATION.md +0 -0
  35. /package/docs/{improvements → archive}/ota-and-status-enhancements.md +0 -0
  36. /package/docs/{improvements → archive}/ota-status-architecture-diagrams.md +0 -0
  37. /package/docs/{improvements → archive}/ota-status-quick-reference.md +0 -0
@@ -0,0 +1,539 @@
1
+ # AlteriomPainlessMesh v1.7.0 Release Notes
2
+
3
+ **Release Date:** October 15, 2025
4
+ **Schema Version:** @alteriom/mqtt-schema v0.5.0
5
+ **GitHub Release:** https://github.com/Alteriom/painlessMesh/releases/tag/v1.7.0
6
+
7
+ ---
8
+
9
+ ## 🎉 What's New in v1.7.0
10
+
11
+ Version 1.7.0 brings **Phase 2 features** to AlteriomPainlessMesh with a focus on scalability, professional monitoring, and production-ready stability. This release is 100% backward compatible with v1.6.x while adding powerful new capabilities for enterprise IoT deployments.
12
+
13
+ ### 🚀 Major Features
14
+
15
+ #### 1. Broadcast OTA Distribution
16
+
17
+ The most significant feature in v1.7.0 is **Broadcast OTA mode**, which enables efficient firmware updates for large mesh networks (50-100+ nodes).
18
+
19
+ **Key Benefits:**
20
+ - **98% Network Traffic Reduction** for 50-node mesh
21
+ - **Parallel Distribution** - All nodes receive chunks simultaneously
22
+ - **Scales to 100+ Nodes** efficiently
23
+ - **Simple API** - One parameter enables broadcast mode
24
+
25
+ **Example:**
26
+ ```cpp
27
+ // Enable broadcast mode for efficient large-mesh updates
28
+ mesh.offerOTA("sensor", "ESP32", md5, parts, false, true, true);
29
+ // ^^^^ ^^^^
30
+ // broadcast compress
31
+ ```
32
+
33
+ **Performance Comparison:**
34
+ - **10 nodes:** 90% traffic reduction, ~10x faster
35
+ - **50 nodes:** 98% traffic reduction, ~50x faster
36
+ - **100 nodes:** 99% traffic reduction, ~100x faster
37
+
38
+ **Memory Impact:** +2-5KB per node (chunk tracking buffer)
39
+
40
+ 📖 **Documentation:** [docs/PHASE2_GUIDE.md](docs/PHASE2_GUIDE.md)
41
+
42
+ ---
43
+
44
+ #### 2. MQTT Status Bridge
45
+
46
+ Professional monitoring solution that publishes comprehensive mesh status to MQTT topics, enabling integration with enterprise monitoring tools.
47
+
48
+ **Key Features:**
49
+ - **5 MQTT Topic Streams:**
50
+ - `mesh/status/topology` - Complete mesh structure JSON
51
+ - `mesh/status/metrics` - Performance statistics
52
+ - `mesh/status/nodes` - Node list with count
53
+ - `mesh/status/alerts` - Active alert conditions
54
+ - `mesh/status/node/{id}` - Per-node detailed status
55
+
56
+ **Tool Integration Ready:**
57
+ - ✅ Grafana - Dashboard visualization
58
+ - ✅ InfluxDB - Time-series storage
59
+ - ✅ Prometheus - Metrics collection
60
+ - ✅ Home Assistant - Home automation
61
+ - ✅ Node-RED - Custom flows
62
+
63
+ **Example:**
64
+ ```cpp
65
+ #include "examples/bridge/mqtt_status_bridge.hpp"
66
+
67
+ MqttStatusBridge bridge(mesh, mqttClient);
68
+ bridge.setPublishInterval(30000); // 30 seconds
69
+ bridge.enableTopology(true);
70
+ bridge.enableMetrics(true);
71
+ bridge.enableAlerts(true);
72
+ bridge.begin();
73
+ ```
74
+
75
+ **Memory Impact:** +5-8KB (root node only)
76
+
77
+ 📖 **Documentation:** [docs/PHASE2_GUIDE.md](docs/PHASE2_GUIDE.md)
78
+
79
+ ---
80
+
81
+ #### 3. Mesh Topology Visualization Guide
82
+
83
+ Complete 980-line guide with working examples for building web dashboards to visualize mesh topology in real-time.
84
+
85
+ **Includes:**
86
+ - 🎨 **D3.js Force-Directed Graph** (200+ lines) - Interactive network visualization
87
+ - 🕸️ **Cytoscape.js Network View** (150+ lines) - Advanced graph rendering
88
+ - 🔴 **Node.js + Express + Socket.IO Dashboard** - Real-time updates
89
+ - 🐍 **Python Console Monitor** - Rich library for terminal visualization
90
+ - 🔄 **Node-RED Flow JSON** - Drag-and-drop flow programming
91
+ - 🛠️ **Troubleshooting Guide** - Common issues and performance tuning
92
+
93
+ All examples are **copy-paste ready** and production-tested.
94
+
95
+ 📊 **Documentation:** [docs/MESH_TOPOLOGY_GUIDE.md](docs/MESH_TOPOLOGY_GUIDE.md)
96
+
97
+ ---
98
+
99
+ ### 🐛 Critical Bug Fixes
100
+
101
+ #### Fixed: Missing `#include <vector>` Compilation Error
102
+
103
+ **Impact:** HIGH - All users including painlessMesh.h
104
+
105
+ **Symptom:**
106
+ ```
107
+ error: 'vector' in namespace 'std' does not name a template type
108
+ std::vector<ConnectionInfo> getConnectionDetails()
109
+ ^~~~~~
110
+ ```
111
+
112
+ **Fix:** Added `#include <vector>` to `src/painlessmesh/mesh.hpp` (line 4)
113
+
114
+ **Affected Code:**
115
+ - `getConnectionDetails()` function (line 386)
116
+ - `latencySamples` member variable (line 594)
117
+
118
+ **Documentation:** [VECTOR_INCLUDE_FIX.md](VECTOR_INCLUDE_FIX.md)
119
+
120
+ ---
121
+
122
+ #### Fixed: PlatformIO SCons Build Errors
123
+
124
+ **Impact:** HIGH - All PlatformIO users
125
+
126
+ **Symptom:**
127
+ ```
128
+ Error: Cannot resolve directory for painlessMeshSTA.cpp
129
+ UnboundLocalError: cannot access local variable 'dir'
130
+ ```
131
+
132
+ **Fixes Applied:**
133
+ 1. Added explicit `"srcDir": "src"` to library.json
134
+ 2. Added explicit `"includeDir": "src"` to library.json
135
+ 3. Removed conflicting `"export": {"include": "src"}` section
136
+ 4. Fixed header reference in library.properties (painlessMesh.h)
137
+
138
+ **Validation:** Created automated validation script with 8 checks (100% passing)
139
+
140
+ **Documentation:**
141
+ - [LIBRARY_STRUCTURE_FIX.md](LIBRARY_STRUCTURE_FIX.md)
142
+ - [PLATFORMIO_USAGE.md](PLATFORMIO_USAGE.md)
143
+ - [SCONS_BUILD_FIX.md](SCONS_BUILD_FIX.md)
144
+
145
+ ---
146
+
147
+ #### Fixed: npm Link Errors
148
+
149
+ **Impact:** MEDIUM - Users consuming library via npm
150
+
151
+ **Symptom:**
152
+ ```
153
+ UnboundLocalError: cannot access local variable 'dir' (Python error during npm link)
154
+ ```
155
+
156
+ **Fix:** Renamed npm scripts to prevent auto-execution:
157
+ - `"build"` → `"dev:build"`
158
+ - `"prebuild"` → `"dev:prebuild"`
159
+
160
+ **Reason:** npm automatically runs `build` and `prebuild` scripts during `npm link`, which triggered cmake/ninja builds causing Python errors.
161
+
162
+ ---
163
+
164
+ ### 📚 New Documentation (7 Files)
165
+
166
+ 1. **[docs/MESH_TOPOLOGY_GUIDE.md](docs/MESH_TOPOLOGY_GUIDE.md)** (980 lines)
167
+ - Complete visualization guide with 5 working examples
168
+ - D3.js, Cytoscape.js, Node.js, Python, Node-RED
169
+ - Performance considerations and troubleshooting
170
+
171
+ 2. **[docs/PHASE2_GUIDE.md](docs/PHASE2_GUIDE.md)** (~500 lines)
172
+ - Complete Phase 2 API reference
173
+ - Usage examples and performance benchmarks
174
+ - Integration guides for Grafana, InfluxDB, Prometheus
175
+ - Migration guide from Phase 1
176
+
177
+ 3. **[docs/improvements/PHASE2_IMPLEMENTATION.md](docs/improvements/PHASE2_IMPLEMENTATION.md)** (~600 lines)
178
+ - Technical architecture and implementation details
179
+ - MQTT topic schema documentation
180
+ - Performance analysis and testing strategy
181
+
182
+ 4. **[LIBRARY_STRUCTURE_FIX.md](LIBRARY_STRUCTURE_FIX.md)**
183
+ - PlatformIO library structure improvements
184
+ - Validation checklist and testing guide
185
+ - Root cause analysis and solutions
186
+
187
+ 5. **[PLATFORMIO_USAGE.md](PLATFORMIO_USAGE.md)**
188
+ - Quick start guide for PlatformIO users
189
+ - Common issues and solutions
190
+ - Example platformio.ini configurations
191
+
192
+ 6. **[SCONS_BUILD_FIX.md](SCONS_BUILD_FIX.md)**
193
+ - Comprehensive troubleshooting for PlatformIO builds
194
+ - Step-by-step diagnostic procedures
195
+ - Fix verification instructions
196
+
197
+ 7. **[VECTOR_INCLUDE_FIX.md](VECTOR_INCLUDE_FIX.md)**
198
+ - Documentation of missing C++ header fix
199
+ - Testing and verification instructions
200
+ - Impact analysis
201
+
202
+ ---
203
+
204
+ ### 🛠️ New Tools
205
+
206
+ #### Library Structure Validation Script
207
+
208
+ **File:** `scripts/validate_library_structure.py` (250+ lines)
209
+
210
+ **Features:**
211
+ - 8 comprehensive validation checks
212
+ - Automated PlatformIO compliance verification
213
+ - Detects common configuration issues
214
+ - Provides actionable recommendations
215
+
216
+ **Usage:**
217
+ ```bash
218
+ python scripts/validate_library_structure.py
219
+ ```
220
+
221
+ **Output:**
222
+ ```
223
+ ✓ Library JSON Exists (srcDir: src | includeDir: src)
224
+ ✓ Library Properties Valid (Primary header: painlessMesh.h)
225
+ ✓ Source Directory Structure (3 .cpp, 4 .h, 0 .hpp files)
226
+ ✓ No Root Source Files (No .cpp files in root)
227
+ ✓ No Duplicate Metadata (Single library.json at: library.json)
228
+ ✓ Header Files Present (Found: painlessMesh.h, AlteriomPainlessMesh.h)
229
+ ✓ Examples Directory (Found 20 example sketches)
230
+ ✓ PlatformIO Compliance (All 5 structure checks passed)
231
+
232
+ ════════════════════════════════════════════════════
233
+ VALIDATION SUMMARY: ✅ ALL CHECKS PASSED (8/8)
234
+ ════════════════════════════════════════════════════
235
+ ```
236
+
237
+ ---
238
+
239
+ ### 📊 Performance Improvements
240
+
241
+ #### Broadcast OTA Performance
242
+
243
+ | Mesh Size | Unicast Transmissions | Broadcast Transmissions | Traffic Reduction | Speed Improvement |
244
+ |-----------|----------------------|------------------------|-------------------|-------------------|
245
+ | 10 nodes | 1,500 | 150 | 90% | ~10x faster |
246
+ | 50 nodes | 7,500 | 150 | 98% | ~50x faster |
247
+ | 100 nodes | 15,000 | 150 | 99% | ~100x faster |
248
+
249
+ **Example:** 150-chunk firmware update (typical 512KB firmware)
250
+ - **Unicast:** Sequential per node = O(N × F) = 50 × 150 = 7,500 transmissions
251
+ - **Broadcast:** Parallel to all = O(F) = 150 transmissions
252
+ - **Savings:** 98% reduction (7,350 fewer transmissions)
253
+
254
+ #### Memory Impact
255
+
256
+ | Feature | Memory Usage | Impact |
257
+ |---------|-------------|--------|
258
+ | Broadcast OTA | +2-5KB per node | Chunk tracking buffer |
259
+ | MQTT Bridge | +5-8KB (root only) | Bridge state and buffers |
260
+ | Total (both features) | +7-13KB | Acceptable for ESP32, tight on ESP8266 |
261
+
262
+ ---
263
+
264
+ ### ⚠️ Breaking Changes
265
+
266
+ **NONE** - This release is 100% backward compatible with v1.6.x
267
+
268
+ - All Phase 1 APIs unchanged
269
+ - Broadcast OTA defaults to `false` (unicast mode)
270
+ - MQTT bridge is optional add-on
271
+ - Existing sketches work without modification
272
+ - No recompilation required unless adopting new features
273
+
274
+ ---
275
+
276
+ ### 🔄 Migration Guide
277
+
278
+ #### No Migration Required
279
+
280
+ Existing v1.6.x code works without changes. To adopt new features:
281
+
282
+ #### Option 1: Enable Broadcast OTA
283
+
284
+ ```cpp
285
+ // v1.6.x code (continues to work)
286
+ mesh.offerOTA(role, hw, md5, parts, false, false, true);
287
+
288
+ // v1.7.0 - add broadcast parameter
289
+ mesh.offerOTA(role, hw, md5, parts, false, true, true);
290
+ // ^^^^ enable broadcast
291
+ ```
292
+
293
+ #### Option 2: Add MQTT Status Bridge
294
+
295
+ ```cpp
296
+ // Include the bridge header
297
+ #include "examples/bridge/mqtt_status_bridge.hpp"
298
+
299
+ // In your setup(), create and configure bridge
300
+ MqttStatusBridge bridge(mesh, mqttClient);
301
+ bridge.setPublishInterval(30000); // 30 seconds
302
+ bridge.enableTopology(true);
303
+ bridge.enableMetrics(true);
304
+ bridge.enableAlerts(true);
305
+ bridge.begin();
306
+
307
+ // In your loop(), keep mesh and MQTT alive
308
+ void loop() {
309
+ mesh.update();
310
+ mqttClient.loop();
311
+ }
312
+ ```
313
+
314
+ #### Option 3: Use Both Features
315
+
316
+ ```cpp
317
+ // Phase 1: Compressed OTA
318
+ // Phase 2: Broadcast distribution
319
+ mesh.offerOTA(role, hw, md5, parts, false, true, true);
320
+
321
+ // Phase 2: MQTT Status Bridge
322
+ MqttStatusBridge bridge(mesh, mqttClient);
323
+ bridge.begin();
324
+ ```
325
+
326
+ ---
327
+
328
+ ### 🎯 When to Use Each Feature
329
+
330
+ #### Broadcast OTA
331
+
332
+ ✅ **Use when:**
333
+ - Mesh has 10+ nodes
334
+ - All nodes need same firmware
335
+ - Network bandwidth is limited
336
+ - Fast distribution is critical
337
+ - Large-scale deployments (50+ nodes)
338
+
339
+ ❌ **Skip when:**
340
+ - Small meshes (<5 nodes) - unicast is sufficient
341
+ - Different firmware per node - use unicast with role filtering
342
+ - Highly unstable networks - unicast is more reliable
343
+
344
+ #### MQTT Status Bridge
345
+
346
+ ✅ **Use when:**
347
+ - Production deployments
348
+ - Remote monitoring requirements
349
+ - Integration with existing tools (Grafana, InfluxDB)
350
+ - Cloud-connected systems
351
+ - Enterprise environments
352
+ - Automated alerting needs
353
+
354
+ ❌ **Skip when:**
355
+ - Development/testing (use Serial monitor)
356
+ - Pure offline meshes (no external network)
357
+ - Resource-constrained root nodes
358
+ - No MQTT infrastructure available
359
+
360
+ ---
361
+
362
+ ### 🔐 Security Considerations
363
+
364
+ #### MQTT Bridge Security
365
+
366
+ - **Recommendation:** Use TLS/SSL for MQTT connections in production
367
+ - **Authentication:** Enable MQTT broker authentication (username/password)
368
+ - **Network Isolation:** Consider VLANs or firewall rules for MQTT traffic
369
+ - **Topic ACLs:** Configure topic access control lists on broker
370
+
371
+ **Example (secure MQTT):**
372
+ ```cpp
373
+ wifiClient.setCACert(ca_cert); // TLS certificate
374
+ mqttClient.setServer(broker, 8883); // Secure port
375
+ mqttClient.connect("bridge", mqtt_user, mqtt_pass);
376
+ ```
377
+
378
+ #### OTA Security
379
+
380
+ - **Firmware Signing:** MD5 verification included (consider SHA256 for higher security)
381
+ - **Role-Based Updates:** Use role filtering to target specific device types
382
+ - **Test First:** Always test OTA on small subset before full mesh rollout
383
+
384
+ ---
385
+
386
+ ### 📋 Compatibility Matrix
387
+
388
+ | Component | v1.6.x | v1.7.0 | Compatible |
389
+ |-----------|--------|--------|------------|
390
+ | Basic OTA | ✅ | ✅ | ✅ Yes |
391
+ | Compressed OTA | ✅ | ✅ | ✅ Yes |
392
+ | Broadcast OTA | ❌ | ✅ | ✅ Yes (new) |
393
+ | Basic Status Packages | ✅ | ✅ | ✅ Yes |
394
+ | Enhanced Status Packages | ✅ | ✅ | ✅ Yes |
395
+ | MQTT Bridge | ❌ | ✅ | ✅ Yes (new) |
396
+ | Custom Packages (200-203) | ✅ | ✅ | ✅ Yes |
397
+ | Mesh Topology | ❌ | ✅ | ✅ Yes (new) |
398
+
399
+ **Platform Support:**
400
+ - ✅ ESP32 (all variants)
401
+ - ✅ ESP8266 (with memory considerations)
402
+ - ✅ Arduino IDE 2.x
403
+ - ✅ PlatformIO 6.x
404
+ - ✅ espressif32 platform
405
+ - ✅ espressif8266 platform
406
+
407
+ **Dependencies:**
408
+ - ArduinoJson ^7.4.2
409
+ - TaskScheduler ^4.0.0
410
+ - AsyncTCP ^3.4.7 (ESP32)
411
+ - ESPAsyncTCP ^2.0.0 (ESP8266)
412
+ - @alteriom/mqtt-schema v0.5.0 (dev)
413
+
414
+ ---
415
+
416
+ ### 🧪 Testing Recommendations
417
+
418
+ #### Before Upgrading
419
+
420
+ 1. **Backup Current Firmware**
421
+ - Keep v1.6.x binaries for rollback
422
+ - Document current mesh configuration
423
+
424
+ 2. **Review Changes**
425
+ - Read [CHANGELOG.md](CHANGELOG.md)
426
+ - Review [PHASE2_GUIDE.md](docs/PHASE2_GUIDE.md)
427
+ - Check [LIBRARY_STRUCTURE_FIX.md](LIBRARY_STRUCTURE_FIX.md)
428
+
429
+ 3. **Test in Development**
430
+ - Deploy to test mesh (2-5 nodes)
431
+ - Verify compilation succeeds
432
+ - Test existing functionality
433
+
434
+ #### After Upgrading
435
+
436
+ 1. **Verify Compilation**
437
+ ```bash
438
+ pio run --target clean
439
+ pio run
440
+ ```
441
+
442
+ 2. **Test Basic Mesh**
443
+ - Nodes connect successfully
444
+ - Messages route correctly
445
+ - Time sync works
446
+
447
+ 3. **Test New Features (Optional)**
448
+ - Broadcast OTA on small mesh (2-3 nodes)
449
+ - MQTT bridge with local broker
450
+ - Topology visualization
451
+
452
+ #### Production Rollout
453
+
454
+ 1. **Pilot Phase**
455
+ - Deploy to 10% of mesh (5-10 nodes)
456
+ - Monitor for 24-48 hours
457
+ - Check logs for errors
458
+
459
+ 2. **Gradual Rollout**
460
+ - Expand to 50% of mesh
461
+ - Monitor performance metrics
462
+ - Verify stability
463
+
464
+ 3. **Full Deployment**
465
+ - Complete mesh upgrade
466
+ - Enable advanced features as needed
467
+ - Document configuration
468
+
469
+ ---
470
+
471
+ ### 🐛 Known Issues
472
+
473
+ #### None Currently Identified
474
+
475
+ All known issues from v1.6.x have been resolved in v1.7.0. If you encounter any problems:
476
+
477
+ 1. Check [SCONS_BUILD_FIX.md](SCONS_BUILD_FIX.md) for compilation issues
478
+ 2. Review [docs/troubleshooting/common-issues.md](docs/troubleshooting/common-issues.md)
479
+ 3. Run validation: `python scripts/validate_library_structure.py`
480
+ 4. Open issue: https://github.com/Alteriom/painlessMesh/issues
481
+
482
+ ---
483
+
484
+ ### 📖 Complete Documentation
485
+
486
+ | Topic | Document | Description |
487
+ |-------|----------|-------------|
488
+ | **Release Overview** | RELEASE_NOTES_1.7.0.md | This document |
489
+ | **Changelog** | [CHANGELOG.md](CHANGELOG.md) | Detailed change history |
490
+ | **Phase 2 Features** | [docs/PHASE2_GUIDE.md](docs/PHASE2_GUIDE.md) | Complete API and usage guide |
491
+ | **Implementation Details** | [docs/improvements/PHASE2_IMPLEMENTATION.md](docs/improvements/PHASE2_IMPLEMENTATION.md) | Technical architecture |
492
+ | **Visualization Guide** | [docs/MESH_TOPOLOGY_GUIDE.md](docs/MESH_TOPOLOGY_GUIDE.md) | Dashboard examples |
493
+ | **Bug Fixes** | [VECTOR_INCLUDE_FIX.md](VECTOR_INCLUDE_FIX.md) | Compilation fix details |
494
+ | **Library Structure** | [LIBRARY_STRUCTURE_FIX.md](LIBRARY_STRUCTURE_FIX.md) | PlatformIO fixes |
495
+ | **Build Troubleshooting** | [SCONS_BUILD_FIX.md](SCONS_BUILD_FIX.md) | Comprehensive diagnostics |
496
+ | **PlatformIO Usage** | [PLATFORMIO_USAGE.md](PLATFORMIO_USAGE.md) | Quick start guide |
497
+ | **MQTT Commands** | [docs/MQTT_BRIDGE_COMMANDS.md](docs/MQTT_BRIDGE_COMMANDS.md) | Command reference |
498
+
499
+ ---
500
+
501
+ ### 🙏 Acknowledgments
502
+
503
+ This release includes contributions from:
504
+ - **Phase 2 Implementation Team** - Broadcast OTA and MQTT bridge design
505
+ - **Community Bug Reports** - Compilation and build system issues
506
+ - **Documentation Contributors** - Comprehensive guides and examples
507
+ - **Testing Team** - Validation and quality assurance
508
+
509
+ Special thanks to all users who reported issues and provided feedback during development.
510
+
511
+ ---
512
+
513
+ ### 🚀 What's Next: Phase 3
514
+
515
+ According to [docs/improvements/FEATURE_PROPOSALS.md](docs/improvements/FEATURE_PROPOSALS.md), Phase 3 will include:
516
+
517
+ - **Progressive Rollout OTA (Option 1B)** - Phased deployment with health checks
518
+ - **Real-time Telemetry Streams (Option 2C)** - Continuous metrics streaming
519
+ - **Proactive Alerting System** - Automated anomaly detection
520
+ - **Large-Scale Optimization** - Support for 200+ node meshes
521
+
522
+ Follow development: https://github.com/Alteriom/painlessMesh/projects
523
+
524
+ ---
525
+
526
+ ### 📞 Support
527
+
528
+ **Documentation:** https://alteriom.github.io/painlessMesh/
529
+ **Issues:** https://github.com/Alteriom/painlessMesh/issues
530
+ **Discussions:** https://github.com/Alteriom/painlessMesh/discussions
531
+ **Email:** support@alteriom.com
532
+
533
+ ---
534
+
535
+ **Released:** October 15, 2025
536
+ **Version:** 1.7.0
537
+ **Schema:** @alteriom/mqtt-schema v0.5.0
538
+ **Status:** ✅ Production Ready
539
+ **Compatibility:** 100% backward compatible with v1.6.x