@alteriom/painlessmesh 1.8.14 → 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 +89 -1
  3. package/CONTRIBUTING.md +79 -0
  4. package/README.md +70 -143
  5. package/docs/README.md +1 -0
  6. package/docs/api/shared-gateway.md +1207 -0
  7. package/docs/troubleshooting/common-issues.md +28 -0
  8. package/docs/troubleshooting/faq.md +113 -12
  9. package/examples/basic/test/simulator/CMakeLists.txt +40 -0
  10. package/examples/basic/test/simulator/README.md +149 -0
  11. package/examples/basic/test/simulator/firmware/basic_firmware.hpp +117 -0
  12. package/examples/basic/test/simulator/scenarios/basic_mesh_test.yaml +81 -0
  13. package/examples/bridge/bridge.ino +17 -4
  14. package/examples/bridge_failover/README.md +81 -0
  15. package/examples/bridge_failover/bridge_failover.ino +51 -6
  16. package/examples/sharedGateway/README.md +235 -0
  17. package/examples/{meshCommandNode → sharedGateway}/platformio.ini +3 -2
  18. package/examples/sharedGateway/sharedGateway.ino +303 -0
  19. package/library.json +3 -22
  20. package/library.properties +1 -1
  21. package/package.json +3 -3
  22. package/src/arduino/wifi.hpp +380 -13
  23. package/src/painlessmesh/gateway.hpp +2120 -0
  24. package/src/painlessmesh/mesh.hpp +1034 -6
  25. package/src/painlessmesh/message_tracker.hpp +311 -0
  26. package/src/painlessmesh/protocol.hpp +6 -0
  27. package/DOCUMENTATION_INDEX.md +0 -146
  28. package/docs/API_DESIGN_GUIDELINES.md +0 -414
  29. package/docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md +0 -331
  30. package/docs/BOOLEAN_NAMING_CONVENTION.md +0 -235
  31. package/docs/BRIDGE_FAILOVER.md +0 -512
  32. package/docs/BRIDGE_HEALTH_MONITORING.md +0 -293
  33. package/docs/CHANNEL_SYNCHRONIZATION.md +0 -209
  34. package/docs/CREATE_MISSING_RELEASES.md +0 -321
  35. package/docs/DOCUMENTATION_MIGRATION_PLAN.md +0 -176
  36. package/docs/FAQ_VERSION_NUMBERS.md +0 -152
  37. package/docs/IMPLEMENTATION_PLAN_MESH_TOPOLOGY.md +0 -1062
  38. package/docs/MESH_TOPOLOGY_GUIDE.md +0 -992
  39. package/docs/MESH_TOPOLOGY_PROGRESS.md +0 -422
  40. package/docs/MQTT_BRIDGE_COMMANDS.md +0 -894
  41. package/docs/MQTT_BRIDGE_IMPLEMENTATION_SUMMARY.md +0 -324
  42. package/docs/MQTT_COMMAND_SCHEMA_PROPOSAL.md +0 -576
  43. package/docs/MQTT_SCHEMA_COMPLIANCE.md +0 -340
  44. package/docs/MQTT_SCHEMA_PROPOSALS.md +0 -446
  45. package/docs/MQTT_SCHEMA_REVIEW.md +0 -690
  46. package/docs/OTA_COMMANDS_REFERENCE.md +0 -554
  47. package/docs/PHASE1_GUIDE.md +0 -349
  48. package/docs/PHASE2_GUIDE.md +0 -543
  49. package/docs/QUICK_REFERENCE_VERSIONING.md +0 -127
  50. package/docs/RELEASE_AGENT_SUMMARY.md +0 -386
  51. package/docs/SCHEMA_VALIDATION_CHECKLIST.md +0 -222
  52. package/docs/VERSION_MANAGEMENT.md +0 -213
  53. package/docs/archive/DOCUSAURUS_DEPLOYMENT.md +0 -166
  54. package/docs/archive/FEATURE_PROPOSALS.md +0 -337
  55. package/docs/archive/LIBRARY_JSON_FIX.md +0 -98
  56. package/docs/archive/LIBRARY_STRUCTURE_FIX.md +0 -215
  57. package/docs/archive/PHASE1_IMPLEMENTATION.md +0 -325
  58. package/docs/archive/PHASE2_IMPLEMENTATION.md +0 -567
  59. package/docs/archive/RELEASE_SUMMARY.md +0 -173
  60. package/docs/archive/SCONS_BUILD_FIX.md +0 -313
  61. package/docs/archive/TRIGGER_RELEASE.md +0 -280
  62. package/docs/archive/VECTOR_INCLUDE_FIX.md +0 -129
  63. package/docs/archive/ota-and-status-enhancements.md +0 -911
  64. package/docs/archive/ota-status-architecture-diagrams.md +0 -658
  65. package/docs/archive/ota-status-quick-reference.md +0 -284
  66. package/docs/design/.gitkeep +0 -1
  67. package/docs/design/STATION_CREDENTIALS_DESIGN.md +0 -182
  68. package/docs/development/ARDUINO_COMPLIANCE_SUMMARY.md +0 -71
  69. package/docs/development/CODE_REFACTORING_RECOMMENDATIONS.md +0 -1011
  70. package/docs/development/DOCKER_TESTING.md +0 -196
  71. package/docs/development/PLATFORMIO_USAGE.md +0 -180
  72. package/docs/development/TESTING_SUMMARY.md +0 -126
  73. package/docs/development/contributing.md +0 -301
  74. package/docs/development/documentation.md +0 -583
  75. package/docs/features/DIAGNOSTICS_API.md +0 -534
  76. package/docs/implementation/BRIDGE_ARCHITECTURE_IMPLEMENTATION.md +0 -340
  77. package/docs/implementation/BRIDGE_HEALTH_MONITORING_IMPLEMENTATION.md +0 -213
  78. package/docs/implementation/BRIDGE_STATUS_FEATURE.md +0 -635
  79. package/docs/implementation/DIAGNOSTICS_API_IMPLEMENTATION.md +0 -232
  80. package/docs/implementation/IMPLEMENTATION_COMPLETE.md +0 -228
  81. package/docs/implementation/IMPLEMENTATION_NTP_TIME_SYNC.md +0 -325
  82. package/docs/implementation/IMPLEMENTATION_SUMMARY.md +0 -316
  83. package/docs/implementation/MESSAGE_QUEUE_IMPLEMENTATION.md +0 -405
  84. package/docs/implementation/MULTI_BRIDGE_IMPLEMENTATION.md +0 -520
  85. package/docs/implementation/NTP_TIME_SYNC_FEATURE.md +0 -392
  86. package/docs/improvements/FUTURE_PROPOSALS.md +0 -1016
  87. package/docs/improvements/IMPLEMENTATION_HISTORY.md +0 -1091
  88. package/docs/improvements/OTA_STATUS_ENHANCEMENTS.md +0 -709
  89. package/docs/improvements/README.md +0 -212
  90. package/docs/internal/CUSTOM_AGENT_ANALYSIS.md +0 -391
  91. package/docs/internal/ISSUE_65_VERIFICATION.md +0 -947
  92. package/docs/internal/ISSUE_66_CLOSURE.md +0 -249
  93. package/docs/internal/ISSUE_66_STATUS.md +0 -316
  94. package/docs/internal/PR_SUMMARY.md +0 -315
  95. package/docs/internal/REVIEW_SUMMARY.md +0 -332
  96. package/docs/multi-bridge-setup.md +0 -1025
  97. package/docs/platformio-publishing.md +0 -255
  98. package/docs/platformio-setup-summary.md +0 -121
  99. package/docs/releases/ANNOUNCEMENT_v1.8.6.md +0 -63
  100. package/docs/releases/ANNOUNCEMENT_v1.8.7.md +0 -113
  101. package/docs/releases/BRIDGE_STATUS_SELF_REGISTRATION_FIX.md +0 -221
  102. package/docs/releases/FEATURE_HISTORY.md +0 -543
  103. package/docs/releases/GITHUB_RELEASE_v1.8.6.md +0 -71
  104. package/docs/releases/GITHUB_RELEASE_v1.8.7.md +0 -90
  105. package/docs/releases/PATCH_v1.7.2.md +0 -262
  106. package/docs/releases/PATCH_v1.7.3.md +0 -262
  107. package/docs/releases/PATCH_v1.7.4.md +0 -219
  108. package/docs/releases/PHASE1_SUMMARY.md +0 -246
  109. package/docs/releases/PHASE2_SUMMARY.md +0 -499
  110. package/docs/releases/PUBLISH_v1.8.0_INSTRUCTIONS.md +0 -163
  111. package/docs/releases/QUICK_START_RELEASES.md +0 -113
  112. package/docs/releases/RELEASE_CHECKLIST_1.8.10.md +0 -331
  113. package/docs/releases/RELEASE_CHECKLIST_1.8.9.md +0 -207
  114. package/docs/releases/RELEASE_CHECKLIST_v1.7.4.md +0 -253
  115. package/docs/releases/RELEASE_CHECKLIST_v1.7.5.md +0 -315
  116. package/docs/releases/RELEASE_CHECKLIST_v1.7.6.md +0 -389
  117. package/docs/releases/RELEASE_CHECKLIST_v1.8.0.md +0 -331
  118. package/docs/releases/RELEASE_CHECKLIST_v1.8.2.md +0 -309
  119. package/docs/releases/RELEASE_NOTES_1.7.0.md +0 -539
  120. package/docs/releases/RELEASE_NOTES_1.8.10.md +0 -239
  121. package/docs/releases/RELEASE_NOTES_1.8.9.md +0 -213
  122. package/docs/releases/RELEASE_NOTES_v1.8.0.md +0 -685
  123. package/docs/releases/RELEASE_NOTES_v1.8.1.md +0 -221
  124. package/docs/releases/RELEASE_NOTES_v1.8.2.md +0 -421
  125. package/docs/releases/RELEASE_NOTES_v1.8.3.md +0 -292
  126. package/docs/releases/RELEASE_NOTES_v1.8.4.md +0 -277
  127. package/docs/releases/RELEASE_NOTES_v1.8.6.md +0 -205
  128. package/docs/releases/RELEASE_NOTES_v1.8.7.md +0 -184
  129. package/docs/releases/RELEASE_PLAN_v1.7.6.md +0 -816
  130. package/docs/releases/RELEASE_SUMMARY_1.8.10.md +0 -193
  131. package/docs/releases/RELEASE_SUMMARY_v1.7.4.md +0 -276
  132. package/docs/releases/RELEASE_SUMMARY_v1.7.5.md +0 -322
  133. package/docs/releases/RELEASE_SUMMARY_v1.7.6.md +0 -436
  134. package/docs/releases/RELEASE_SUMMARY_v1.7.7.md +0 -391
  135. package/docs/releases/RELEASE_SUMMARY_v1.7.8.md +0 -523
  136. package/docs/releases/RELEASE_SUMMARY_v1.7.9.md +0 -542
  137. package/docs/troubleshooting/ARDUINO_IDE_VERSION_FIX_SUMMARY.md +0 -229
  138. package/docs/troubleshooting/ARDUINO_LIBRARY_NAME_FIX.md +0 -197
  139. package/docs/troubleshooting/CRASH_QUICK_REF.md +0 -93
  140. package/docs/troubleshooting/ESP32_C6_COMPATIBILITY.md +0 -157
  141. package/docs/troubleshooting/FREERTOS_ASSERTION_FAILURE.md +0 -288
  142. package/docs/troubleshooting/FREERTOS_FIX_IMPLEMENTATION.md +0 -267
  143. package/docs/troubleshooting/NPM_PUBLISHING_ISSUE_SUMMARY.md +0 -110
  144. package/docs/troubleshooting/PAINLESSMESH_V1.7.4_COMPILATION_ISSUES.md +0 -547
  145. package/docs/troubleshooting/QUICK_FIX_FREERTOS.md +0 -164
  146. package/docs/troubleshooting/SENSOR_NODE_CONNECTION_CRASH.md +0 -264
  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 -96
  197. package/examples/multi_bridge/regular_node.ino +0 -141
  198. package/examples/multi_bridge/secondary_bridge.ino +0 -111
  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,212 +0,0 @@
1
- # painlessMesh Improvements Documentation
2
-
3
- This directory contains documentation for improvements made to painlessMesh, including completed features (Phases 1-2) and proposed enhancements (Phase 3+).
4
-
5
- ---
6
-
7
- ## Overview
8
-
9
- The improvements focus on four key areas:
10
-
11
- 1. **Performance Optimization** - Memory management and processing efficiency
12
- 2. **Security & Robustness** - Input validation and attack prevention
13
- 3. **Monitoring & Diagnostics** - Performance metrics and health monitoring
14
- 4. **OTA & Status Enhancements** - Advanced firmware distribution and monitoring
15
-
16
- ---
17
-
18
- ## Documentation Structure
19
-
20
- ### 📋 Current State
21
-
22
- **[OTA_STATUS_ENHANCEMENTS.md](OTA_STATUS_ENHANCEMENTS.md)** - Complete reference guide
23
- - ✅ **Phase 1 (v1.6.x):** Compressed OTA + Enhanced Status Package
24
- - ✅ **Phase 2 (v1.7.0):** Broadcast OTA + MQTT Status Bridge
25
- - 📋 **Phase 3 (Future):** Progressive rollout, P2P distribution, telemetry streams
26
- - Decision matrices, architecture diagrams, performance expectations
27
- - Quick reference for choosing implementation options
28
-
29
- ### 🔧 Technical Details
30
-
31
- **[IMPLEMENTATION_HISTORY.md](IMPLEMENTATION_HISTORY.md)** - Implementation details for Phases 1-2
32
- - Technical specifications and code changes
33
- - Performance analysis and benchmarks
34
- - Testing documentation (80 assertions passing)
35
- - Files modified and API changes
36
- - Memory impact and scalability analysis
37
-
38
- ### 🚀 Future Roadmap
39
-
40
- **[FUTURE_PROPOSALS.md](FUTURE_PROPOSALS.md)** - Proposed Phase 3+ features
41
- - Progressive Rollout OTA (Option 1B) - Zero-downtime updates
42
- - Peer-to-Peer Distribution (Option 1C) - Viral propagation for 100+ nodes
43
- - MQTT-Integrated OTA (Option 1D) - Cloud-based management
44
- - Mesh Status Service (Option 2B) - RESTful API for status queries
45
- - Telemetry Stream (Option 2C) - Real-time monitoring with delta encoding
46
- - Health Dashboard (Option 2D) - Web-based management interface
47
-
48
- ---
49
-
50
- ## Completed Features
51
-
52
- ### Core Library Improvements
53
-
54
- **1. Input Validation & Security (`validation.hpp`)**
55
- - JSON schema validation and field type checking
56
- - Per-node rate limiting to prevent spam
57
- - Hardware-based secure random number generation
58
- - Node ID validation
59
-
60
- **2. Performance Metrics & Monitoring (`metrics.hpp`)**
61
- - Message statistics (throughput, latency, error tracking)
62
- - Memory monitoring (heap tracking, peak usage, alerts)
63
- - Network topology (connection stability, hop analysis)
64
- - JSON reports for integration with monitoring systems
65
-
66
- **3. Memory Management Optimization (`memory.hpp`)**
67
- - Object pooling to minimize allocation overhead
68
- - Pre-allocated string buffers
69
- - Memory statistics and leak detection
70
-
71
- **4. Protocol Improvements**
72
- - Issue #521 resolution (protocol::Variant copy operations)
73
- - Move semantics for efficient operations
74
- - Enhanced zero-copy buffer operations
75
-
76
- ### OTA & Status Features (Phases 1-2)
77
-
78
- **Phase 1 (v1.6.x):**
79
- - ✅ Compressed OTA infrastructure (40-60% bandwidth reduction)
80
- - ✅ Enhanced StatusPackage (18 comprehensive fields)
81
-
82
- **Phase 2 (v1.7.0):**
83
- - ✅ Broadcast OTA (98% traffic reduction for 50-node mesh)
84
- - ✅ MQTT Status Bridge (Grafana/InfluxDB integration)
85
-
86
- ---
87
-
88
- ## Performance Impact
89
-
90
- **Core Improvements:**
91
- - Memory usage: 10-20% reduction in fragmentation
92
- - Message processing: 5-15% faster validation
93
- - Network efficiency: Reduced retransmissions
94
- - CPU usage: More efficient algorithms
95
-
96
- **OTA Improvements (Phase 1-2):**
97
- - Update speed: 75% faster (Phase 2 broadcast mode)
98
- - Network bandwidth: 50% reduction (Phase 1 compression) + 98% reduction (Phase 2 broadcast)
99
- - Scalability: Proven up to 50-100 nodes
100
- - Memory overhead: +7-13KB total
101
-
102
- ---
103
-
104
- ## Testing & Quality
105
-
106
- - ✅ **100% Test Pass Rate**: All existing and new tests pass
107
- - ✅ **80 Assertions**: Comprehensive Phase 1-2 test coverage
108
- - ✅ **No Regressions**: Backward compatibility maintained
109
- - ✅ **Static Analysis**: Code passes all checks
110
- - ✅ **Memory Testing**: No leaks detected
111
-
112
- ---
113
-
114
- ## Quick Start
115
-
116
- ### "How do I use the new OTA features?"
117
-
118
- **Phase 1-2 are available now in v1.7.0:**
119
-
120
- ```cpp
121
- // Enable compressed + broadcast OTA (both Phase 1 and 2 features)
122
- mesh.offerOTA("sensor", "ESP32", md5, parts, false, true, true);
123
- // ^^^^^ ^^^^ ^^^^
124
- // forced bcast compress
125
- ```
126
-
127
- **See:** [OTA_STATUS_ENHANCEMENTS.md](OTA_STATUS_ENHANCEMENTS.md) for decision guide
128
-
129
- ### "How do I use the new status monitoring?"
130
-
131
- **Enhanced StatusPackage (Phase 1):**
132
-
133
- ```cpp
134
- #include "examples/alteriom/alteriom_sensor_package.hpp"
135
-
136
- alteriom::EnhancedStatusPackage status;
137
- status.uptime = millis() / 1000;
138
- status.freeMemory = ESP.getFreeHeap() / 1024;
139
- status.nodeCount = mesh.getNodeList().size();
140
- mesh.sendBroadcast(status.toJsonString());
141
- ```
142
-
143
- **MQTT Bridge (Phase 2):**
144
-
145
- ```cpp
146
- #include "examples/bridge/mqtt_status_bridge.hpp"
147
-
148
- MqttStatusBridge bridge(mesh, mqttClient);
149
- bridge.setPublishInterval(30000); // 30 seconds
150
- bridge.begin();
151
- ```
152
-
153
- **See:** [OTA_STATUS_ENHANCEMENTS.md](OTA_STATUS_ENHANCEMENTS.md) for detailed usage
154
-
155
- ---
156
-
157
- ## Examples
158
-
159
- **Core Improvements:**
160
- - `examples/alteriom/improved_sensor_node.ino` - Demonstrates validation and metrics
161
-
162
- **Phase 1-2 Features:**
163
- - `examples/alteriom/phase1_features.ino` - Compressed OTA + Enhanced Status
164
- - `examples/alteriom/phase2_features.ino` - Broadcast OTA + MQTT Bridge
165
- - `examples/bridge/mqtt_bridge_example.ino` - MQTT integration example
166
- - `examples/otaSender/otaSender.ino` - OTA sender implementation
167
- - `examples/otaReceiver/otaReceiver.ino` - OTA receiver implementation
168
-
169
- ---
170
-
171
- ## Related Documentation
172
-
173
- ### User Documentation
174
- - [Feature History](../releases/FEATURE_HISTORY.md) - User-facing docs, migration guides, usage patterns
175
- - [Phase 1 Guide](../PHASE1_GUIDE.md) - Complete Phase 1 usage guide (if exists)
176
- - [Phase 2 Guide](../PHASE2_GUIDE.md) - Complete Phase 2 usage guide (if exists)
177
-
178
- ### API Documentation
179
- - [Core API Reference](../api/core-api.md) - API documentation
180
- - [Metrics API](../../src/painlessmesh/metrics.hpp) - Performance metrics
181
- - [Validation API](../../src/painlessmesh/validation.hpp) - Input validation
182
- - [Alteriom Packages](../../examples/alteriom/alteriom_sensor_package.hpp) - Package definitions
183
-
184
- ### Architecture
185
- - [Mesh Architecture](../architecture/mesh-architecture.md) - Core architecture
186
- - [Plugin System](../architecture/plugin-system.md) - Plugin architecture
187
-
188
- ---
189
-
190
- ## Contributing
191
-
192
- Interested in implementing Phase 3 features or improving existing ones?
193
-
194
- 1. Review [FUTURE_PROPOSALS.md](FUTURE_PROPOSALS.md) for detailed specifications
195
- 2. Check [GitHub Issues](https://github.com/Alteriom/painlessMesh/issues) for discussions
196
- 3. Read [Contributing Guide](../development/contributing.md) for workflow
197
- 4. Open an issue to discuss your implementation plan
198
- 5. Submit a pull request with implementation and tests
199
-
200
- ---
201
-
202
- ## Questions & Support
203
-
204
- - **GitHub Issues:** <https://github.com/Alteriom/painlessMesh/issues>
205
- - **Discussions:** <https://github.com/Alteriom/painlessMesh/discussions>
206
- - **Documentation:** <https://alteriom.github.io/painlessMesh/>
207
-
208
- ---
209
-
210
- **Last Updated:** October 2025
211
- **Current Version:** v1.7.0
212
- **Status:** Phases 1-2 Complete ✅ | Phase 3 Proposed 📋
@@ -1,391 +0,0 @@
1
- # Custom Agent Visibility Analysis
2
-
3
- ## Question
4
-
5
- "why I don't see the custom agent in the list in GitHub?"
6
-
7
- ## Investigation Summary
8
-
9
- The `.github/agents/` directory contains documentation files, not GitHub Copilot custom agent configurations.
10
-
11
- ## Current State
12
-
13
- ### What Exists in the Repository
14
-
15
- #### 1. Agent Documentation Directory
16
-
17
- ```
18
- .github/agents/
19
- ├── README.md - Documentation index for release processes
20
- └── release-agent.md - Release agent specification (328 lines)
21
- ```
22
-
23
- #### 2. Release Agent Script
24
-
25
- ```
26
- scripts/release-agent.sh - Executable shell script (290 lines)
27
- ```
28
-
29
- #### 3. Supporting Documentation
30
-
31
- ```
32
- .github/copilot-instructions.md
33
- .github/copilot-quick-reference.md
34
- .github/copilot-troubleshooting.md
35
- ```
36
-
37
- ### What These Files Are
38
-
39
- **Purpose:** Documentation and automation tools
40
-
41
- 1. **release-agent.md** - Human-readable specification
42
- - Pre-release validation checklist
43
- - Release process workflow
44
- - Error recovery procedures
45
- - Configuration requirements
46
-
47
- 2. **release-agent.sh** - Automated validation script
48
- - Checks version consistency
49
- - Validates CHANGELOG entries
50
- - Verifies git state
51
- - Tests build system
52
-
53
- 3. **Documentation files** - Context for developers
54
- - Coding guidelines
55
- - Project conventions
56
- - Troubleshooting guides
57
-
58
- ### What These Files Are NOT
59
-
60
- ❌ **GitHub Copilot Custom Agents**
61
- - Not AI assistants
62
- - Not available in GitHub UI
63
- - Not executable by Copilot directly
64
-
65
- ❌ **GitHub Actions Workflows**
66
- - Not automated CI/CD (though used by workflows)
67
- - Not triggered by GitHub events directly
68
-
69
- ❌ **Copilot Extensions/Plugins**
70
- - Not MCP servers
71
- - Not tool extensions
72
-
73
- ## Understanding GitHub Copilot Agents
74
-
75
- ### Types of "Agents" in Context
76
-
77
- #### 1. GitHub Copilot Custom Agents (Enterprise Feature)
78
-
79
- **What they are:**
80
- - AI assistants with specialized knowledge
81
- - Available in GitHub Copilot Chat
82
- - Require GitHub Enterprise Cloud + Copilot for Business
83
- - Configured at organization level
84
-
85
- **How they're created:**
86
- - Organization admins create agents
87
- - Define agent purpose and instructions
88
- - Specify knowledge sources
89
- - Available to all org members
90
-
91
- **Example:**
92
- ```
93
- @my-org/release-agent - "Help with release processes"
94
- @my-org/security-agent - "Security review assistant"
95
- ```
96
-
97
- **Visibility:**
98
- - Appear in Copilot Chat agent list
99
- - Prefixed with `@organization-name/agent-name`
100
- - Available in GitHub UI, VS Code, etc.
101
-
102
- **Requirements:**
103
- - GitHub Enterprise Cloud subscription
104
- - Copilot for Business license
105
- - Organization admin access to create
106
- - Specific configuration format
107
-
108
- #### 2. GitHub Copilot Instructions (Repository Context)
109
-
110
- **What they are:**
111
- - Markdown files in `.github/` directory
112
- - Provide context to Copilot
113
- - Guide Copilot's responses
114
- - Available in current repository
115
-
116
- **How they work:**
117
- - Copilot reads these files automatically
118
- - Uses content as context for suggestions
119
- - No explicit "agent" invocation needed
120
- - Scoped to repository
121
-
122
- **Example files:**
123
- ```
124
- .github/copilot-instructions.md
125
- .github/instructions/testing.instructions.md
126
- ```
127
-
128
- **Visibility:**
129
- - Not visible in agent list
130
- - Automatically used by Copilot
131
- - Influence all Copilot suggestions in repo
132
-
133
- #### 3. Documentation "Agents" (This Repository)
134
-
135
- **What they are:**
136
- - Documentation about processes
137
- - Specifications for manual procedures
138
- - Reference guides for humans
139
-
140
- **Purpose:**
141
- - Document release procedures
142
- - Provide checklists
143
- - Guide manual processes
144
-
145
- **The `.github/agents/` directory in this repository:**
146
- - Documentation ABOUT agent-like processes
147
- - Not actual AI agents
148
- - For human reference primarily
149
-
150
- ## Why the Custom Agent Isn't Visible
151
-
152
- ### Possible Interpretations
153
-
154
- #### Interpretation 1: Expecting GitHub Copilot Enterprise Agent
155
-
156
- **If you expected to see:**
157
- ```
158
- @Alteriom/release-agent
159
- ```
160
-
161
- **Why it's not visible:**
162
- 1. **Not configured as Copilot Agent** - The release-agent.md is documentation, not an agent configuration
163
- 2. **Requires Enterprise** - Copilot custom agents need GitHub Enterprise Cloud
164
- 3. **Organization-level setup** - Must be created by org admins in GitHub settings
165
- 4. **Wrong location** - Agents aren't created by committing markdown to `.github/agents/`
166
-
167
- **How to check if available:**
168
- 1. Open GitHub Copilot Chat
169
- 2. Type `@` to see available agents
170
- 3. Look for `@Alteriom/...` agents
171
-
172
- #### Interpretation 2: Expecting Documentation Visibility
173
-
174
- **If you expected to see:**
175
- - Agent documentation in some GitHub UI
176
- - List of available "agents" (processes)
177
-
178
- **Why it might not be visible:**
179
- 1. **It's just documentation** - Files in `.github/agents/` are markdown docs
180
- 2. **No special GitHub UI** - GitHub doesn't render `.github/agents/` specially
181
- 3. **Manual navigation needed** - Browse to `.github/agents/` to see files
182
-
183
- **How to access:**
184
- 1. Navigate to `.github/agents/` in repository
185
- 2. Read README.md for index
186
- 3. Open release-agent.md for specifications
187
-
188
- #### Interpretation 3: Expecting Tool/Script Availability
189
-
190
- **If you expected:**
191
- - Automated tool in CI/CD
192
- - Executable agent in workflows
193
-
194
- **Where they actually are:**
195
- 1. **Script:** `scripts/release-agent.sh` (executable)
196
- 2. **Workflows:** `.github/workflows/validate-release.yml`
197
- 3. **Run manually:** `./scripts/release-agent.sh`
198
-
199
- ## How to Make a "Custom Agent" Visible
200
-
201
- ### Option 1: Create GitHub Copilot Enterprise Agent (Recommended if Enterprise)
202
-
203
- **Requirements:**
204
- - GitHub Enterprise Cloud account
205
- - Copilot for Business subscription
206
- - Organization admin privileges
207
-
208
- **Steps:**
209
- 1. Go to organization settings
210
- 2. Navigate to Copilot settings
211
- 3. Create new custom agent
212
- 4. Name it `release-agent`
213
- 5. Provide instructions from `.github/agents/release-agent.md`
214
- 6. Specify knowledge sources (this repository)
215
- 7. Make available to organization
216
-
217
- **Result:**
218
- - `@Alteriom/release-agent` appears in Copilot Chat
219
- - All org members can use `@Alteriom/release-agent` for help
220
- - Agent has knowledge of release processes
221
-
222
- ### Option 2: Move to Copilot Instructions (Easier, Works Now)
223
-
224
- **Benefit:**
225
- - Available immediately
226
- - No Enterprise required
227
- - Works in any repository with Copilot
228
-
229
- **Steps:**
230
- 1. Move key content from `.github/agents/release-agent.md`
231
- 2. Add to `.github/copilot-instructions.md`
232
- 3. Format as instructions for Copilot
233
-
234
- **Example addition to copilot-instructions.md:**
235
- ```markdown
236
- ## Release Agent Instructions
237
-
238
- When asked about releases or deployment:
239
- - Check version consistency across library.properties, library.json, package.json
240
- - Verify CHANGELOG.md has entry for version
241
- - Ensure all tests pass
242
- - Validate git status (no uncommitted changes)
243
- - Run ./scripts/release-agent.sh for validation
244
- - Follow checklist in .github/agents/release-agent.md
245
- ```
246
-
247
- **Result:**
248
- - Copilot automatically uses this context
249
- - No special syntax needed
250
- - Works for all repository contributors
251
-
252
- ### Option 3: Keep as Documentation (Current State)
253
-
254
- **Benefit:**
255
- - Already working
256
- - Clear documentation
257
- - Human-readable
258
- - Works with scripts
259
-
260
- **Usage:**
261
- 1. Developers read `.github/agents/release-agent.md`
262
- 2. Run `./scripts/release-agent.sh` for validation
263
- 3. Follow documented procedures
264
-
265
- **Visibility:**
266
- - In repository file structure
267
- - Linked from README if desired
268
- - Available in git
269
-
270
- ## Recommendations
271
-
272
- ### Immediate Action: Clarify Use Case
273
-
274
- **Please specify what you need:**
275
-
276
- 1. **GitHub Copilot Enterprise Agent?**
277
- - Question: Do you have GitHub Enterprise Cloud?
278
- - Question: Do you want `@Alteriom/release-agent` in Copilot Chat?
279
- - Action: If yes, create through GitHub organization settings
280
-
281
- 2. **Improve Copilot Context?**
282
- - Question: Do you want Copilot to know about release processes?
283
- - Action: Move content to `.github/copilot-instructions.md`
284
-
285
- 3. **Better Documentation Visibility?**
286
- - Question: Should agents be easier to find?
287
- - Action: Add links to README, update documentation
288
-
289
- 4. **Automated Tool Integration?**
290
- - Question: Should agents run in CI/CD automatically?
291
- - Action: Already done - `.github/workflows/validate-release.yml`
292
-
293
- ### Suggested Improvements (Any Scenario)
294
-
295
- #### 1. Add Link to README
296
-
297
- **In main README.md:**
298
- ```markdown
299
- ## Development
300
-
301
- - [Release Agent Documentation](.github/agents/release-agent.md)
302
- - Run release validation: `./scripts/release-agent.sh`
303
- ```
304
-
305
- #### 2. Enhance Copilot Instructions
306
-
307
- **Add to .github/copilot-instructions.md:**
308
- ```markdown
309
- ## Release Process
310
-
311
- For release-related questions:
312
- 1. Consult .github/agents/release-agent.md
313
- 2. Run validation: ./scripts/release-agent.sh
314
- 3. Follow documented checklist
315
- ```
316
-
317
- #### 3. Create Agent Index
318
-
319
- **New file: `.github/AGENTS.md`:**
320
- ```markdown
321
- # Available Agents and Tools
322
-
323
- ## Release Agent
324
- - **Documentation:** [release-agent.md](agents/release-agent.md)
325
- - **Script:** `scripts/release-agent.sh`
326
- - **Workflow:** `.github/workflows/validate-release.yml`
327
- ```
328
-
329
- ## Current Status
330
-
331
- ### What Works Now ✅
332
-
333
- 1. **Documentation accessible:**
334
- - Files in `.github/agents/` directory
335
- - Readable markdown
336
- - Clear specifications
337
-
338
- 2. **Scripts executable:**
339
- - `scripts/release-agent.sh` works
340
- - Validates releases
341
- - Integrated with CI/CD
342
-
343
- 3. **Workflows active:**
344
- - validate-release.yml runs automatically
345
- - Uses release agent logic
346
-
347
- 4. **Copilot context available:**
348
- - Repository instructions present
349
- - Copilot reads `.github/` files
350
- - Provides contextual help
351
-
352
- ### What Doesn't Work ❌
353
-
354
- 1. **No explicit agent list in GitHub UI**
355
- - `.github/agents/` not special to GitHub
356
- - No automatic agent registry
357
-
358
- 2. **Not GitHub Copilot Enterprise agents**
359
- - Can't invoke with `@Alteriom/release-agent`
360
- - Not in Copilot Chat agent list
361
-
362
- 3. **Manual discovery needed**
363
- - Must browse to `.github/agents/`
364
- - Not advertised in UI
365
-
366
- ## Conclusion
367
-
368
- The "custom agent" documentation exists and works, but isn't visible as a GitHub Copilot enterprise agent because:
369
-
370
- 1. **It's documentation, not a configured agent**
371
- 2. **GitHub Copilot agents require Enterprise + organization setup**
372
- 3. **No automatic agent registry in GitHub for markdown files**
373
-
374
- ### Next Steps Needed
375
-
376
- Please clarify what type of visibility you need:
377
- 1. GitHub Copilot Enterprise agent (`@Alteriom/release-agent`)?
378
- 2. Better documentation navigation?
379
- 3. Enhanced Copilot context?
380
- 4. Something else?
381
-
382
- Based on your answer, I can:
383
- - Set up Enterprise agent (if you have access)
384
- - Improve documentation visibility
385
- - Enhance Copilot instructions
386
- - Add README links
387
-
388
- ---
389
-
390
- **Analysis Date:** November 10, 2024
391
- **Status:** Awaiting clarification on visibility requirements