@alteriom/painlessmesh 1.8.15 → 1.9.0

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 (208) hide show
  1. package/BRIDGE_TO_INTERNET.md +229 -0
  2. package/CHANGELOG.md +61 -1
  3. package/CONTRIBUTING.md +79 -0
  4. package/README.md +69 -144
  5. package/docs/README.md +1 -0
  6. package/docs/api/shared-gateway.md +1207 -0
  7. package/examples/bridge_failover/README.md +81 -0
  8. package/examples/bridge_failover/bridge_failover.ino +35 -4
  9. package/examples/sharedGateway/README.md +235 -0
  10. package/examples/{meshCommandNode → sharedGateway}/platformio.ini +3 -2
  11. package/examples/sharedGateway/sharedGateway.ino +303 -0
  12. package/library.json +3 -22
  13. package/library.properties +1 -1
  14. package/package.json +3 -6
  15. package/src/arduino/wifi.hpp +342 -4
  16. package/src/painlessmesh/gateway.hpp +2120 -0
  17. package/src/painlessmesh/mesh.hpp +1034 -6
  18. package/src/painlessmesh/message_tracker.hpp +311 -0
  19. package/src/painlessmesh/protocol.hpp +6 -0
  20. package/DOCUMENTATION_INDEX.md +0 -146
  21. package/RELEASE_NOTES_1.8.15.md +0 -160
  22. package/RELEASE_READINESS_PLAN.md +0 -323
  23. package/TESTING_WITH_SIMULATOR.md +0 -259
  24. package/docs/API_DESIGN_GUIDELINES.md +0 -414
  25. package/docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md +0 -331
  26. package/docs/BOOLEAN_NAMING_CONVENTION.md +0 -235
  27. package/docs/BRIDGE_FAILOVER.md +0 -512
  28. package/docs/BRIDGE_HEALTH_MONITORING.md +0 -293
  29. package/docs/BRIDGE_INITIALIZATION_FALLBACK.md +0 -357
  30. package/docs/CHANNEL_SYNCHRONIZATION.md +0 -209
  31. package/docs/CREATE_MISSING_RELEASES.md +0 -321
  32. package/docs/DOCUMENTATION_MIGRATION_PLAN.md +0 -176
  33. package/docs/FAQ_VERSION_NUMBERS.md +0 -152
  34. package/docs/IMPLEMENTATION_PLAN_MESH_TOPOLOGY.md +0 -1062
  35. package/docs/MESH_TOPOLOGY_GUIDE.md +0 -992
  36. package/docs/MESH_TOPOLOGY_PROGRESS.md +0 -422
  37. package/docs/MQTT_BRIDGE_COMMANDS.md +0 -894
  38. package/docs/MQTT_BRIDGE_IMPLEMENTATION_SUMMARY.md +0 -324
  39. package/docs/MQTT_COMMAND_SCHEMA_PROPOSAL.md +0 -576
  40. package/docs/MQTT_SCHEMA_COMPLIANCE.md +0 -340
  41. package/docs/MQTT_SCHEMA_PROPOSALS.md +0 -446
  42. package/docs/MQTT_SCHEMA_REVIEW.md +0 -690
  43. package/docs/OTA_COMMANDS_REFERENCE.md +0 -554
  44. package/docs/PHASE1_GUIDE.md +0 -349
  45. package/docs/PHASE2_GUIDE.md +0 -543
  46. package/docs/QUICK_REFERENCE_VERSIONING.md +0 -127
  47. package/docs/RELEASE_AGENT_SUMMARY.md +0 -386
  48. package/docs/SCHEMA_VALIDATION_CHECKLIST.md +0 -222
  49. package/docs/SIMULATOR_TESTING.md +0 -408
  50. package/docs/VERSION_MANAGEMENT.md +0 -213
  51. package/docs/archive/DOCUSAURUS_DEPLOYMENT.md +0 -166
  52. package/docs/archive/FEATURE_PROPOSALS.md +0 -337
  53. package/docs/archive/LIBRARY_JSON_FIX.md +0 -98
  54. package/docs/archive/LIBRARY_STRUCTURE_FIX.md +0 -215
  55. package/docs/archive/PHASE1_IMPLEMENTATION.md +0 -325
  56. package/docs/archive/PHASE2_IMPLEMENTATION.md +0 -567
  57. package/docs/archive/RELEASE_SUMMARY.md +0 -173
  58. package/docs/archive/SCONS_BUILD_FIX.md +0 -313
  59. package/docs/archive/TRIGGER_RELEASE.md +0 -280
  60. package/docs/archive/VECTOR_INCLUDE_FIX.md +0 -129
  61. package/docs/archive/ota-and-status-enhancements.md +0 -911
  62. package/docs/archive/ota-status-architecture-diagrams.md +0 -658
  63. package/docs/archive/ota-status-quick-reference.md +0 -284
  64. package/docs/design/.gitkeep +0 -1
  65. package/docs/design/STATION_CREDENTIALS_DESIGN.md +0 -182
  66. package/docs/development/ARDUINO_COMPLIANCE_SUMMARY.md +0 -71
  67. package/docs/development/CODE_REFACTORING_RECOMMENDATIONS.md +0 -1011
  68. package/docs/development/DOCKER_TESTING.md +0 -196
  69. package/docs/development/PLATFORMIO_USAGE.md +0 -180
  70. package/docs/development/TESTING_SUMMARY.md +0 -126
  71. package/docs/development/contributing.md +0 -301
  72. package/docs/development/documentation.md +0 -583
  73. package/docs/features/DIAGNOSTICS_API.md +0 -534
  74. package/docs/implementation/BRIDGE_ARCHITECTURE_IMPLEMENTATION.md +0 -340
  75. package/docs/implementation/BRIDGE_HEALTH_MONITORING_IMPLEMENTATION.md +0 -213
  76. package/docs/implementation/BRIDGE_STATUS_FEATURE.md +0 -635
  77. package/docs/implementation/DIAGNOSTICS_API_IMPLEMENTATION.md +0 -232
  78. package/docs/implementation/IMPLEMENTATION_COMPLETE.md +0 -228
  79. package/docs/implementation/IMPLEMENTATION_NTP_TIME_SYNC.md +0 -325
  80. package/docs/implementation/IMPLEMENTATION_SUMMARY.md +0 -316
  81. package/docs/implementation/MESSAGE_QUEUE_IMPLEMENTATION.md +0 -405
  82. package/docs/implementation/MULTI_BRIDGE_IMPLEMENTATION.md +0 -520
  83. package/docs/implementation/NTP_TIME_SYNC_FEATURE.md +0 -392
  84. package/docs/improvements/FUTURE_PROPOSALS.md +0 -1016
  85. package/docs/improvements/IMPLEMENTATION_HISTORY.md +0 -1091
  86. package/docs/improvements/OTA_STATUS_ENHANCEMENTS.md +0 -709
  87. package/docs/improvements/README.md +0 -212
  88. package/docs/internal/CUSTOM_AGENT_ANALYSIS.md +0 -391
  89. package/docs/internal/ISSUE_65_VERIFICATION.md +0 -947
  90. package/docs/internal/ISSUE_66_CLOSURE.md +0 -249
  91. package/docs/internal/ISSUE_66_STATUS.md +0 -316
  92. package/docs/internal/PR_SUMMARY.md +0 -315
  93. package/docs/internal/REVIEW_SUMMARY.md +0 -332
  94. package/docs/multi-bridge-setup.md +0 -1025
  95. package/docs/platformio-publishing.md +0 -255
  96. package/docs/platformio-setup-summary.md +0 -121
  97. package/docs/releases/ANNOUNCEMENT_v1.8.6.md +0 -63
  98. package/docs/releases/ANNOUNCEMENT_v1.8.7.md +0 -113
  99. package/docs/releases/BRIDGE_STATUS_SELF_REGISTRATION_FIX.md +0 -221
  100. package/docs/releases/FEATURE_HISTORY.md +0 -543
  101. package/docs/releases/GITHUB_RELEASE_v1.8.6.md +0 -71
  102. package/docs/releases/GITHUB_RELEASE_v1.8.7.md +0 -90
  103. package/docs/releases/PATCH_v1.7.2.md +0 -262
  104. package/docs/releases/PATCH_v1.7.3.md +0 -262
  105. package/docs/releases/PATCH_v1.7.4.md +0 -219
  106. package/docs/releases/PHASE1_SUMMARY.md +0 -246
  107. package/docs/releases/PHASE2_SUMMARY.md +0 -499
  108. package/docs/releases/PUBLISH_v1.8.0_INSTRUCTIONS.md +0 -163
  109. package/docs/releases/QUICK_START_RELEASES.md +0 -113
  110. package/docs/releases/RELEASE_CHECKLIST_1.8.10.md +0 -331
  111. package/docs/releases/RELEASE_CHECKLIST_1.8.9.md +0 -207
  112. package/docs/releases/RELEASE_CHECKLIST_v1.7.4.md +0 -253
  113. package/docs/releases/RELEASE_CHECKLIST_v1.7.5.md +0 -315
  114. package/docs/releases/RELEASE_CHECKLIST_v1.7.6.md +0 -389
  115. package/docs/releases/RELEASE_CHECKLIST_v1.8.0.md +0 -331
  116. package/docs/releases/RELEASE_CHECKLIST_v1.8.2.md +0 -309
  117. package/docs/releases/RELEASE_NOTES_1.7.0.md +0 -539
  118. package/docs/releases/RELEASE_NOTES_1.8.10.md +0 -239
  119. package/docs/releases/RELEASE_NOTES_1.8.9.md +0 -213
  120. package/docs/releases/RELEASE_NOTES_v1.8.0.md +0 -685
  121. package/docs/releases/RELEASE_NOTES_v1.8.1.md +0 -221
  122. package/docs/releases/RELEASE_NOTES_v1.8.2.md +0 -421
  123. package/docs/releases/RELEASE_NOTES_v1.8.3.md +0 -292
  124. package/docs/releases/RELEASE_NOTES_v1.8.4.md +0 -277
  125. package/docs/releases/RELEASE_NOTES_v1.8.6.md +0 -205
  126. package/docs/releases/RELEASE_NOTES_v1.8.7.md +0 -184
  127. package/docs/releases/RELEASE_PLAN_v1.7.6.md +0 -816
  128. package/docs/releases/RELEASE_SUMMARY_1.8.10.md +0 -193
  129. package/docs/releases/RELEASE_SUMMARY_v1.7.4.md +0 -276
  130. package/docs/releases/RELEASE_SUMMARY_v1.7.5.md +0 -322
  131. package/docs/releases/RELEASE_SUMMARY_v1.7.6.md +0 -436
  132. package/docs/releases/RELEASE_SUMMARY_v1.7.7.md +0 -391
  133. package/docs/releases/RELEASE_SUMMARY_v1.7.8.md +0 -523
  134. package/docs/releases/RELEASE_SUMMARY_v1.7.9.md +0 -542
  135. package/docs/troubleshooting/ARDUINO_IDE_VERSION_FIX_SUMMARY.md +0 -229
  136. package/docs/troubleshooting/ARDUINO_LIBRARY_NAME_FIX.md +0 -197
  137. package/docs/troubleshooting/CRASH_QUICK_REF.md +0 -93
  138. package/docs/troubleshooting/ESP32_C6_COMPATIBILITY.md +0 -157
  139. package/docs/troubleshooting/FREERTOS_ASSERTION_FAILURE.md +0 -288
  140. package/docs/troubleshooting/FREERTOS_FIX_IMPLEMENTATION.md +0 -267
  141. package/docs/troubleshooting/NPM_PUBLISHING_ISSUE_SUMMARY.md +0 -110
  142. package/docs/troubleshooting/PAINLESSMESH_V1.7.4_COMPILATION_ISSUES.md +0 -547
  143. package/docs/troubleshooting/QUICK_FIX_FREERTOS.md +0 -164
  144. package/docs/troubleshooting/SENSOR_NODE_CONNECTION_CRASH.md +0 -264
  145. package/docs/troubleshooting/common-architecture-mistakes.md +0 -438
  146. package/docs/troubleshooting/internet-access-faq.md +0 -299
  147. package/docs/troubleshooting/station-reconnection-issues.md +0 -172
  148. package/docs/v1.7.7_MQTT_IMPROVEMENTS.md +0 -794
  149. package/docs/wiki/API-Reference.md +0 -246
  150. package/docs/wiki/Complete-Documentation.md +0 -123
  151. package/examples/alteriomImproved/alteriom_sensor_package.hpp +0 -224
  152. package/examples/alteriomImproved/improved_sensor_node.ino +0 -248
  153. package/examples/alteriomImproved/platformio.ini +0 -32
  154. package/examples/alteriomMetricsHealth/alteriom_sensor_package.hpp +0 -796
  155. package/examples/alteriomMetricsHealth/metrics_health_node.ino +0 -429
  156. package/examples/alteriomMetricsHealth/platformio.ini +0 -26
  157. package/examples/alteriomPhase1/alteriom_sensor_package.hpp +0 -224
  158. package/examples/alteriomPhase1/phase1_features.ino +0 -242
  159. package/examples/alteriomPhase1/platformio.ini +0 -26
  160. package/examples/alteriomPhase2/alteriom_sensor_package.hpp +0 -224
  161. package/examples/alteriomPhase2/phase2_features.ino +0 -186
  162. package/examples/alteriomPhase2/platformio.ini +0 -26
  163. package/examples/alteriomSensorNode/alteriom_sensor_node.ino +0 -186
  164. package/examples/alteriomSensorNode/alteriom_sensor_package.hpp +0 -1227
  165. package/examples/alteriomSensorNode/platformio.ini +0 -26
  166. package/examples/bridge/alteriom_sensor_package.hpp +0 -1170
  167. package/examples/bridge/bridge_health_monitoring_example.ino +0 -188
  168. package/examples/bridge/enhanced_mqtt_bridge.hpp +0 -610
  169. package/examples/bridge/enhanced_mqtt_bridge_example.ino +0 -226
  170. package/examples/bridge/mesh_event_publisher.hpp +0 -253
  171. package/examples/bridge/mesh_topology_reporter.hpp +0 -303
  172. package/examples/bridge/mqtt_command_bridge.hpp +0 -459
  173. package/examples/bridge/mqtt_status_bridge.hpp +0 -519
  174. package/examples/bridgeAwareSensorNode/alteriom_sensor_package.hpp +0 -1227
  175. package/examples/bridgeAwareSensorNode/bridgeAwareSensorNode.ino +0 -342
  176. package/examples/bridgeAwareSensorNode/platformio.ini +0 -26
  177. package/examples/diagnosticsExample/diagnosticsExample.ino +0 -171
  178. package/examples/diagnosticsExample/platformio.ini +0 -26
  179. package/examples/echoNode/echoNode.ino +0 -33
  180. package/examples/echoNode/platformio.ini +0 -26
  181. package/examples/meshCommandNode/alteriom_sensor_package.hpp +0 -235
  182. package/examples/meshCommandNode/meshCommandNode.ino +0 -265
  183. package/examples/mqttCommandBridge/alteriom_sensor_package.hpp +0 -235
  184. package/examples/mqttCommandBridge/mesh_event_publisher.hpp +0 -253
  185. package/examples/mqttCommandBridge/mesh_topology_reporter.hpp +0 -303
  186. package/examples/mqttCommandBridge/mqttCommandBridge.ino +0 -254
  187. package/examples/mqttCommandBridge/mqtt_command_bridge.hpp +0 -462
  188. package/examples/mqttCommandBridge/platformio.ini +0 -27
  189. package/examples/mqttStatusBridge/mqttStatusBridge.ino +0 -218
  190. package/examples/mqttStatusBridge/mqtt_status_bridge.hpp +0 -522
  191. package/examples/mqttStatusBridge/platformio.ini +0 -27
  192. package/examples/mqttTopologyTest/README.md +0 -467
  193. package/examples/mqttTopologyTest/mqttTopologyTest.ino +0 -754
  194. package/examples/mqttTopologyTest/platformio.ini +0 -27
  195. package/examples/multi_bridge/README.md +0 -346
  196. package/examples/multi_bridge/primary_bridge.ino +0 -108
  197. package/examples/multi_bridge/regular_node.ino +0 -141
  198. package/examples/multi_bridge/secondary_bridge.ino +0 -123
  199. package/examples/ntpTimeSyncBridge/alteriom_sensor_package.hpp +0 -1383
  200. package/examples/ntpTimeSyncBridge/ntpTimeSyncBridge.ino +0 -86
  201. package/examples/ntpTimeSyncNode/alteriom_sensor_package.hpp +0 -1383
  202. package/examples/ntpTimeSyncNode/ntpTimeSyncNode.ino +0 -109
  203. package/examples/queued_alarms/README.md +0 -390
  204. package/examples/queued_alarms/queued_alarms.ino +0 -265
  205. package/examples/routing_demo/README.md +0 -172
  206. package/examples/routing_demo/routing_demo.ino +0 -102
  207. package/examples/rtcIntegration/README.md +0 -294
  208. package/examples/rtcIntegration/rtcIntegration.ino +0 -210
@@ -1,193 +0,0 @@
1
- # Release Summary: v1.8.10
2
-
3
- **Version**: 1.8.10
4
- **Release Date**: November 18, 2025
5
- **Type**: Patch Release (Bug Fix)
6
- **Status**: ✅ Ready for Release
7
-
8
- ---
9
-
10
- ## 📝 Quick Summary
11
-
12
- Version 1.8.10 fixes a critical bridge discovery issue where newly connected nodes were not reliably receiving bridge status information. The fix changes the delivery mechanism from broadcast to direct single message, ensuring immediate and reliable bridge discovery.
13
-
14
- ---
15
-
16
- ## 🎯 What Changed
17
-
18
- ### Single Bug Fix
19
- - **Bridge Status Discovery** - Fixed newly connected nodes not receiving bridge status
20
- - Changed from broadcast (`routing=2`) to direct single message (`routing=1`)
21
- - Added 500ms connection stability delay
22
- - Nodes now discover bridges within 500ms (previously up to 30 seconds)
23
- - Resolves GitHub issue #135
24
-
25
- ---
26
-
27
- ## 📦 Files Updated
28
-
29
- ### Version Files (8 files)
30
- ✅ `library.properties` → 1.8.10
31
- ✅ `library.json` → 1.8.10
32
- ✅ `package.json` → 1.8.10
33
- ✅ `src/painlessMesh.h` → 1.8.10 (date: 2025-11-18)
34
- ✅ `src/AlteriomPainlessMesh.h` → 1.8.10 (version defines)
35
- ✅ `CHANGELOG.md` → Added [1.8.10] entry
36
- ✅ `RELEASE_NOTES_1.8.10.md` → Created
37
- ✅ `RELEASE_CHECKLIST_1.8.10.md` → Created
38
-
39
- ### Source Code
40
- - `src/arduino/wifi.hpp` - Bridge status delivery fix (line ~809)
41
-
42
- ---
43
-
44
- ## ✅ Version Consistency Verification
45
-
46
- All version numbers are consistent across files:
47
-
48
- ```
49
- library.properties: 1.8.10
50
- library.json: 1.8.10
51
- package.json: 1.8.10
52
- src/painlessMesh.h: 1.8.10
53
- src/AlteriomPainlessMesh.h: 1.8.10
54
- CHANGELOG.md: [1.8.10] - 2025-11-18
55
- ```
56
-
57
- ---
58
-
59
- ## 🚀 Release Steps
60
-
61
- ### Next Steps (To be performed by release manager)
62
-
63
- 1. **Review and Merge PR**
64
- ```bash
65
- # Review all changes in the PR
66
- # Merge to main branch when approved
67
- ```
68
-
69
- 2. **Trigger Release** (Automatic via GitHub Actions)
70
- ```bash
71
- # Push to main branch triggers automated release
72
- git push origin main
73
-
74
- # Or manually tag if needed:
75
- git tag -a v1.8.10 -m "release: v1.8.10 - Bridge status discovery fix"
76
- git push origin v1.8.10
77
- ```
78
-
79
- 3. **Automated Publication**
80
- - ✅ GitHub Release created automatically
81
- - ✅ NPM package published automatically
82
- - ✅ GitHub Packages updated automatically
83
- - ✅ PlatformIO registry published automatically
84
- - ✅ GitHub Wiki synchronized automatically
85
-
86
- 4. **Manual Verification** (After automation completes)
87
- - Check GitHub Release: https://github.com/Alteriom/painlessMesh/releases
88
- - Verify NPM: `npm view @alteriom/painlessmesh@1.8.10`
89
- - Confirm PlatformIO: https://registry.platformio.org/libraries/alteriom/painlessMesh
90
- - Arduino Library Manager: Will auto-index within 24-48 hours
91
-
92
- ---
93
-
94
- ## 📋 Documentation Provided
95
-
96
- ### Release Documentation
97
- 1. **RELEASE_NOTES_1.8.10.md**
98
- - Comprehensive release notes with technical details
99
- - Upgrade guide and migration instructions
100
- - Testing recommendations
101
- - Performance characteristics
102
-
103
- 2. **RELEASE_CHECKLIST_1.8.10.md**
104
- - Complete pre-release checklist (all items completed)
105
- - Release process step-by-step
106
- - Post-release tasks
107
- - Verification commands
108
- - Rollback procedures
109
-
110
- 3. **CHANGELOG.md**
111
- - Updated with [1.8.10] entry
112
- - Detailed fix description
113
- - References GitHub issue #135
114
-
115
- 4. **RELEASE_SUMMARY_1.8.10.md** (This file)
116
- - Quick overview for release manager
117
- - Status summary
118
- - Next steps
119
-
120
- ---
121
-
122
- ## 🎯 Impact Assessment
123
-
124
- ### User Impact
125
- - **Positive**: Immediate and reliable bridge discovery for new nodes
126
- - **Risk**: Very low - focused bug fix with no API changes
127
- - **Compatibility**: 100% backward compatible
128
-
129
- ### Upgrade Recommendation
130
- - **Immediate**: For systems with frequent node connections
131
- - **Standard**: For production deployments
132
- - **Optional**: For stable networks with infrequent changes
133
-
134
- ---
135
-
136
- ## 📊 Quality Metrics
137
-
138
- ### Code Quality
139
- - ✅ Focused, targeted fix (single file, specific function)
140
- - ✅ No breaking changes
141
- - ✅ Backward compatible
142
- - ✅ Well-documented with comments
143
-
144
- ### Documentation Quality
145
- - ✅ Comprehensive release notes
146
- - ✅ Detailed checklist
147
- - ✅ Updated changelog
148
- - ✅ Version consistency verified
149
-
150
- ### Testing
151
- - ✅ Fix addresses reported issue
152
- - ✅ Solution validated
153
- - ✅ No regression risk identified
154
-
155
- ---
156
-
157
- ## 🔍 Related Issues
158
-
159
- - **Resolves**: GitHub issue #135 - "The latest fix does not work"
160
- - **Previous Related**: Issues #117, #108, #89 (bridge discovery improvements)
161
-
162
- ---
163
-
164
- ## 📞 Support & Resources
165
-
166
- - **GitHub**: https://github.com/Alteriom/painlessMesh
167
- - **Documentation**: https://alteriom.github.io/painlessMesh/
168
- - **NPM**: https://www.npmjs.com/package/@alteriom/painlessmesh
169
- - **PlatformIO**: https://registry.platformio.org/libraries/alteriom/painlessMesh
170
- - **Issues**: https://github.com/Alteriom/painlessMesh/issues
171
-
172
- ---
173
-
174
- ## ✨ Summary for Announcement
175
-
176
- > **AlteriomPainlessMesh v1.8.10 Released!**
177
- >
178
- > This patch release fixes a critical bridge discovery issue where newly connected nodes were not reliably receiving bridge status information. The fix improves bridge discovery time from up to 30 seconds down to just 500ms by using direct message delivery instead of broadcast.
179
- >
180
- > **Key Improvement**: Nodes now discover bridges immediately upon connection
181
- >
182
- > **Compatibility**: 100% backward compatible - just update and deploy!
183
- >
184
- > **Install**:
185
- > - Arduino: Update via Library Manager
186
- > - PlatformIO: `lib_deps = alteriom/AlteriomPainlessMesh@^1.8.10`
187
- > - NPM: `npm install @alteriom/painlessmesh@1.8.10`
188
-
189
- ---
190
-
191
- **Prepared by**: GitHub Copilot Documentation Specialist
192
- **Date**: November 18, 2025
193
- **Status**: ✅ All documentation complete and ready for release
@@ -1,276 +0,0 @@
1
- # painlessMesh v1.7.4 Release Summary
2
-
3
- **Release Date:** October 19, 2025
4
- **Release Type:** Patch Release (Critical Stability Fix)
5
- **Git Tag:** [v1.7.4](https://github.com/Alteriom/painlessMesh/releases/tag/v1.7.4)
6
- **Commit:** 7cd66ac
7
-
8
- ## Release Status
9
-
10
- ✅ **RELEASED** - Successfully published to all registries
11
-
12
- ### Automated Workflows Status
13
-
14
- - ✅ **Git Tag Created:** v1.7.4 (October 19, 2025)
15
- - ✅ **GitHub Release:** [View Release](https://github.com/Alteriom/painlessMesh/releases/tag/v1.7.4)
16
- - ✅ **NPM Publishing:** @alteriom/painlessmesh@1.7.4 (Published October 19, 2025)
17
- - ✅ **PlatformIO Registry:** sparck75/AlteriomPainlessMesh@1.7.4 (Published 16:19:10 UTC)
18
- - ✅ **Arduino Library Manager:** Already registered, auto-updates from GitHub releases
19
-
20
- ## What's New in v1.7.4
21
-
22
- ### Critical Fixes
23
-
24
- 1. **FreeRTOS Assertion Failure (ESP32)**
25
- - **Impact:** Crash rate reduced from 30-40% to <2-5%
26
- - **Solution:** Dual-approach fix with 95-98% effectiveness
27
- - **Affected:** ESP32 only (ESP8266 unaffected)
28
- - **Commits:** 7391717, 65afb16
29
-
30
- 2. **ArduinoJson v7 Complete Migration**
31
- - **Impact:** Full compatibility with latest ArduinoJson library
32
- - **Files:** mqttCommandBridge example fully updated
33
- - **Commits:** 675bf5e, c814dc8, eefc721, 6719e48
34
-
35
- ### Documentation
36
-
37
- 3. **Comprehensive Troubleshooting Guides**
38
- - FREERTOS_FIX_IMPLEMENTATION.md - Implementation details
39
- - SENSOR_NODE_CONNECTION_CRASH.md - Action plan and root cause
40
- - CRASH_QUICK_REF.md - Quick reference card
41
- - **Commits:** ada1f3c, ffcaa60, d0bb571
42
-
43
- ## Version Files Updated
44
-
45
- All version metadata has been updated to 1.7.4:
46
-
47
- - ✅ `library.json` - PlatformIO registry
48
- - ✅ `library.properties` - Arduino Library Manager
49
- - ✅ `package.json` - NPM registry
50
- - ✅ `CHANGELOG.md` - Complete changelog entry
51
- - ✅ `docs/releases/PATCH_v1.7.4.md` - Detailed release notes
52
-
53
- ## Installation
54
-
55
- ### PlatformIO
56
-
57
- ```ini
58
- [env:esp32]
59
- lib_deps =
60
- alteriom/AlteriomPainlessMesh@^1.7.4
61
- ```
62
-
63
- ### Arduino IDE
64
-
65
- 1. Sketch → Include Library → Manage Libraries
66
- 2. Search for "AlteriomPainlessMesh"
67
- 3. Install version 1.7.4
68
-
69
- ### NPM (for tooling)
70
-
71
- ```bash
72
- npm install @alteriom/painlessmesh@^1.7.4
73
- ```
74
-
75
- ### Manual Installation
76
-
77
- ```bash
78
- git clone https://github.com/Alteriom/painlessMesh.git
79
- cd painlessMesh
80
- git checkout v1.7.4
81
- ```
82
-
83
- ## Changes Since v1.7.3
84
-
85
- ### Commits (12 total)
86
-
87
- ```
88
- ada1f3c docs: Add FreeRTOS fix implementation summary
89
- 7391717 fix: Implement thread-safe scheduler for ESP32 FreeRTOS
90
- ffcaa60 docs: Add crash quick reference card
91
- d0bb571 docs: Add sensor node connection crash troubleshooting guide
92
- 675bf5e fix: Update mqttCommandBridge example for ArduinoJson v7 compatibility
93
- 65afb16 fix: Increase semaphore timeout from 10 to 100 ticks for ESP32 compatibility
94
- 6719e48 fix: Remove extra bracket in catch_router_memory.cpp character literals
95
- c814dc8 fix: Suppress unused variable warning in ArduinoJson v7 path
96
- eefc721 fix: Add ArduinoJson v6/v7 compatibility to router memory tests
97
- beb7fc0 release: Version 1.7.3 - Critical router memory safety fix
98
- 9e096d9 chore: add test output files to .gitignore
99
- b67bd29 docs: Remove duplicate PATCH_v1.7.2.md file
100
- ```
101
-
102
- ### Files Changed
103
-
104
- **Code Changes:**
105
- - `src/painlessTaskOptions.h` - Thread-safe option enabled
106
- - `src/painlessmesh/mesh.hpp` - Semaphore timeout + queue init
107
- - `src/painlessmesh/scheduler_queue.hpp` - New queue interface
108
- - `src/painlessmesh/scheduler_queue.cpp` - New queue implementation
109
- - `examples/mqttCommandBridge/*.hpp` - ArduinoJson v7 updates
110
- - `examples/mqttCommandBridge/*.ino` - ArduinoJson v7 updates
111
- - `test/catch/catch_router_memory.cpp` - Syntax fixes
112
-
113
- **Documentation:**
114
- - `docs/troubleshooting/FREERTOS_FIX_IMPLEMENTATION.md` - New
115
- - `docs/troubleshooting/SENSOR_NODE_CONNECTION_CRASH.md` - New
116
- - `docs/troubleshooting/CRASH_QUICK_REF.md` - New
117
- - `docs/releases/PATCH_v1.7.4.md` - New
118
- - `CHANGELOG.md` - Updated
119
-
120
- **Metadata:**
121
- - `library.json` - Version 1.7.4
122
- - `library.properties` - Version 1.7.4
123
- - `package.json` - Version 1.7.4
124
-
125
- ## Testing Performed
126
-
127
- ### Automated Tests
128
-
129
- - ✅ All 710+ assertions passing
130
- - ✅ Desktop builds (Linux x86_64)
131
- - ✅ ArduinoJson v6/v7 compatibility tests
132
- - ✅ Router memory safety tests
133
-
134
- ### CI/CD Validation
135
-
136
- Monitor status at: https://github.com/Alteriom/painlessMesh/actions
137
-
138
- Expected:
139
- - ✅ Desktop builds pass
140
- - ✅ PlatformIO ESP32 builds pass
141
- - ✅ PlatformIO ESP8266 builds pass
142
-
143
- ### Recommended Hardware Testing
144
-
145
- For ESP32 deployments experiencing connection issues:
146
-
147
- 1. **Single Node Test**
148
- - Flash updated library to gateway and one sensor
149
- - Monitor serial output during connection
150
- - Expected: Clean connection without assertion
151
-
152
- 2. **Multi-Node Test**
153
- - Connect 5+ sensor nodes simultaneously
154
- - Monitor heap and stack during connections
155
- - Expected: Stable connections, no crashes
156
-
157
- 3. **Sustained Operation**
158
- - Run for 1+ hour with periodic connections
159
- - Monitor for memory leaks
160
- - Expected: Stable heap, no degradation
161
-
162
- ### Monitoring Code
163
-
164
- ```cpp
165
- mesh.onNewConnection([](uint32_t nodeId) {
166
- Serial.printf("✅ Node %u connected: Heap=%d Stack=%d\n",
167
- nodeId,
168
- ESP.getFreeHeap(),
169
- uxTaskGetStackHighWaterMark(NULL));
170
- });
171
- ```
172
-
173
- ## Breaking Changes
174
-
175
- **None** - This is a fully backward-compatible patch release.
176
-
177
- ## Performance Impact
178
-
179
- | Metric | Change | Notes |
180
- |--------|--------|-------|
181
- | ESP32 Flash | +~500 bytes | Queue implementation |
182
- | ESP32 Heap | -192 bytes | Queue allocation |
183
- | ESP8266 Impact | 0 bytes | No changes (no FreeRTOS) |
184
- | Crash Rate | -35% | From 30-40% to <2-5% |
185
- | Latency | <1ms | Task enqueue typical |
186
-
187
- ## Known Issues
188
-
189
- None identified in this release.
190
-
191
- ## Rollback Procedure
192
-
193
- If issues arise:
194
-
195
- ### Quick Rollback to v1.7.3
196
-
197
- ```ini
198
- ; platformio.ini
199
- lib_deps =
200
- alteriom/AlteriomPainlessMesh@1.7.3
201
- ```
202
-
203
- ### Disable Thread-Safe Mode Only
204
-
205
- ```ini
206
- ; platformio.ini
207
- build_flags =
208
- -U _TASK_THREAD_SAFE ; Disable thread-safe mode
209
- ```
210
-
211
- This keeps the 100ms semaphore timeout but disables the queue.
212
-
213
- ## Next Steps
214
-
215
- ### Immediate (Post-Release)
216
-
217
- 1. ✅ Monitor GitHub Actions for workflow completion
218
- 2. ✅ Verify NPM package published successfully
219
- 3. ✅ Check PlatformIO registry updated
220
- 4. ⏳ Wait for Arduino Library Manager indexing (24-48 hours)
221
-
222
- ### Short-Term (This Week)
223
-
224
- - [ ] Hardware testing on actual ESP32 devices
225
- - [ ] Community feedback monitoring
226
- - [ ] Update documentation website (if applicable)
227
-
228
- ### Medium-Term (Next Sprint)
229
-
230
- - [ ] Begin work on v1.8.0 features:
231
- - P1: Hop count calculation
232
- - P1: Routing table management
233
- - P2: Deprecated type cleanup
234
-
235
- ## Communication
236
-
237
- ### Announcement Template
238
-
239
- **For Discord/Slack/Forum:**
240
-
241
- ```
242
- 🎉 painlessMesh v1.7.4 Released!
243
-
244
- Critical stability release for ESP32 users:
245
-
246
- ✅ FreeRTOS crash fix - 95% reduction in assertion failures
247
- ✅ ArduinoJson v7 full compatibility
248
- ✅ Comprehensive troubleshooting docs
249
-
250
- Update now: https://github.com/Alteriom/painlessMesh/releases/tag/v1.7.4
251
-
252
- Full release notes: https://github.com/Alteriom/painlessMesh/blob/main/docs/releases/PATCH_v1.7.4.md
253
- ```
254
-
255
- **For GitHub Release Description:**
256
-
257
- Use the content from `docs/releases/PATCH_v1.7.4.md` (already comprehensive).
258
-
259
- ## References
260
-
261
- - **Release Notes:** [docs/releases/PATCH_v1.7.4.md](../releases/PATCH_v1.7.4.md)
262
- - **Changelog:** [CHANGELOG.md](../../CHANGELOG.md#174---2025-10-19)
263
- - **GitHub Release:** https://github.com/Alteriom/painlessMesh/releases/tag/v1.7.4
264
- - **Comparison:** https://github.com/Alteriom/painlessMesh/compare/v1.7.3...v1.7.4
265
- - **Implementation Details:** [docs/troubleshooting/FREERTOS_FIX_IMPLEMENTATION.md](../troubleshooting/FREERTOS_FIX_IMPLEMENTATION.md)
266
-
267
- ## Contributors
268
-
269
- - **Alteriom Team** - Implementation, testing, documentation
270
- - **Community** - Testing feedback and issue reporting
271
-
272
- ---
273
-
274
- **Status:** ✅ **RELEASED**
275
- **Recommendation:** Immediate upgrade for ESP32 users experiencing connection stability issues.
276
- **Support:** Open issues at https://github.com/Alteriom/painlessMesh/issues