@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.
- package/BRIDGE_TO_INTERNET.md +229 -0
- package/CHANGELOG.md +89 -1
- package/CONTRIBUTING.md +79 -0
- package/README.md +70 -143
- package/docs/README.md +1 -0
- package/docs/api/shared-gateway.md +1207 -0
- package/docs/troubleshooting/common-issues.md +28 -0
- package/docs/troubleshooting/faq.md +113 -12
- package/examples/basic/test/simulator/CMakeLists.txt +40 -0
- package/examples/basic/test/simulator/README.md +149 -0
- package/examples/basic/test/simulator/firmware/basic_firmware.hpp +117 -0
- package/examples/basic/test/simulator/scenarios/basic_mesh_test.yaml +81 -0
- package/examples/bridge/bridge.ino +17 -4
- package/examples/bridge_failover/README.md +81 -0
- package/examples/bridge_failover/bridge_failover.ino +51 -6
- package/examples/sharedGateway/README.md +235 -0
- package/examples/{meshCommandNode → sharedGateway}/platformio.ini +3 -2
- package/examples/sharedGateway/sharedGateway.ino +303 -0
- package/library.json +3 -22
- package/library.properties +1 -1
- package/package.json +3 -3
- package/src/arduino/wifi.hpp +380 -13
- package/src/painlessmesh/gateway.hpp +2120 -0
- package/src/painlessmesh/mesh.hpp +1034 -6
- package/src/painlessmesh/message_tracker.hpp +311 -0
- package/src/painlessmesh/protocol.hpp +6 -0
- package/DOCUMENTATION_INDEX.md +0 -146
- package/docs/API_DESIGN_GUIDELINES.md +0 -414
- package/docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md +0 -331
- package/docs/BOOLEAN_NAMING_CONVENTION.md +0 -235
- package/docs/BRIDGE_FAILOVER.md +0 -512
- package/docs/BRIDGE_HEALTH_MONITORING.md +0 -293
- package/docs/CHANNEL_SYNCHRONIZATION.md +0 -209
- package/docs/CREATE_MISSING_RELEASES.md +0 -321
- package/docs/DOCUMENTATION_MIGRATION_PLAN.md +0 -176
- package/docs/FAQ_VERSION_NUMBERS.md +0 -152
- package/docs/IMPLEMENTATION_PLAN_MESH_TOPOLOGY.md +0 -1062
- package/docs/MESH_TOPOLOGY_GUIDE.md +0 -992
- package/docs/MESH_TOPOLOGY_PROGRESS.md +0 -422
- package/docs/MQTT_BRIDGE_COMMANDS.md +0 -894
- package/docs/MQTT_BRIDGE_IMPLEMENTATION_SUMMARY.md +0 -324
- package/docs/MQTT_COMMAND_SCHEMA_PROPOSAL.md +0 -576
- package/docs/MQTT_SCHEMA_COMPLIANCE.md +0 -340
- package/docs/MQTT_SCHEMA_PROPOSALS.md +0 -446
- package/docs/MQTT_SCHEMA_REVIEW.md +0 -690
- package/docs/OTA_COMMANDS_REFERENCE.md +0 -554
- package/docs/PHASE1_GUIDE.md +0 -349
- package/docs/PHASE2_GUIDE.md +0 -543
- package/docs/QUICK_REFERENCE_VERSIONING.md +0 -127
- package/docs/RELEASE_AGENT_SUMMARY.md +0 -386
- package/docs/SCHEMA_VALIDATION_CHECKLIST.md +0 -222
- package/docs/VERSION_MANAGEMENT.md +0 -213
- package/docs/archive/DOCUSAURUS_DEPLOYMENT.md +0 -166
- package/docs/archive/FEATURE_PROPOSALS.md +0 -337
- package/docs/archive/LIBRARY_JSON_FIX.md +0 -98
- package/docs/archive/LIBRARY_STRUCTURE_FIX.md +0 -215
- package/docs/archive/PHASE1_IMPLEMENTATION.md +0 -325
- package/docs/archive/PHASE2_IMPLEMENTATION.md +0 -567
- package/docs/archive/RELEASE_SUMMARY.md +0 -173
- package/docs/archive/SCONS_BUILD_FIX.md +0 -313
- package/docs/archive/TRIGGER_RELEASE.md +0 -280
- package/docs/archive/VECTOR_INCLUDE_FIX.md +0 -129
- package/docs/archive/ota-and-status-enhancements.md +0 -911
- package/docs/archive/ota-status-architecture-diagrams.md +0 -658
- package/docs/archive/ota-status-quick-reference.md +0 -284
- package/docs/design/.gitkeep +0 -1
- package/docs/design/STATION_CREDENTIALS_DESIGN.md +0 -182
- package/docs/development/ARDUINO_COMPLIANCE_SUMMARY.md +0 -71
- package/docs/development/CODE_REFACTORING_RECOMMENDATIONS.md +0 -1011
- package/docs/development/DOCKER_TESTING.md +0 -196
- package/docs/development/PLATFORMIO_USAGE.md +0 -180
- package/docs/development/TESTING_SUMMARY.md +0 -126
- package/docs/development/contributing.md +0 -301
- package/docs/development/documentation.md +0 -583
- package/docs/features/DIAGNOSTICS_API.md +0 -534
- package/docs/implementation/BRIDGE_ARCHITECTURE_IMPLEMENTATION.md +0 -340
- package/docs/implementation/BRIDGE_HEALTH_MONITORING_IMPLEMENTATION.md +0 -213
- package/docs/implementation/BRIDGE_STATUS_FEATURE.md +0 -635
- package/docs/implementation/DIAGNOSTICS_API_IMPLEMENTATION.md +0 -232
- package/docs/implementation/IMPLEMENTATION_COMPLETE.md +0 -228
- package/docs/implementation/IMPLEMENTATION_NTP_TIME_SYNC.md +0 -325
- package/docs/implementation/IMPLEMENTATION_SUMMARY.md +0 -316
- package/docs/implementation/MESSAGE_QUEUE_IMPLEMENTATION.md +0 -405
- package/docs/implementation/MULTI_BRIDGE_IMPLEMENTATION.md +0 -520
- package/docs/implementation/NTP_TIME_SYNC_FEATURE.md +0 -392
- package/docs/improvements/FUTURE_PROPOSALS.md +0 -1016
- package/docs/improvements/IMPLEMENTATION_HISTORY.md +0 -1091
- package/docs/improvements/OTA_STATUS_ENHANCEMENTS.md +0 -709
- package/docs/improvements/README.md +0 -212
- package/docs/internal/CUSTOM_AGENT_ANALYSIS.md +0 -391
- package/docs/internal/ISSUE_65_VERIFICATION.md +0 -947
- package/docs/internal/ISSUE_66_CLOSURE.md +0 -249
- package/docs/internal/ISSUE_66_STATUS.md +0 -316
- package/docs/internal/PR_SUMMARY.md +0 -315
- package/docs/internal/REVIEW_SUMMARY.md +0 -332
- package/docs/multi-bridge-setup.md +0 -1025
- package/docs/platformio-publishing.md +0 -255
- package/docs/platformio-setup-summary.md +0 -121
- package/docs/releases/ANNOUNCEMENT_v1.8.6.md +0 -63
- package/docs/releases/ANNOUNCEMENT_v1.8.7.md +0 -113
- package/docs/releases/BRIDGE_STATUS_SELF_REGISTRATION_FIX.md +0 -221
- package/docs/releases/FEATURE_HISTORY.md +0 -543
- package/docs/releases/GITHUB_RELEASE_v1.8.6.md +0 -71
- package/docs/releases/GITHUB_RELEASE_v1.8.7.md +0 -90
- package/docs/releases/PATCH_v1.7.2.md +0 -262
- package/docs/releases/PATCH_v1.7.3.md +0 -262
- package/docs/releases/PATCH_v1.7.4.md +0 -219
- package/docs/releases/PHASE1_SUMMARY.md +0 -246
- package/docs/releases/PHASE2_SUMMARY.md +0 -499
- package/docs/releases/PUBLISH_v1.8.0_INSTRUCTIONS.md +0 -163
- package/docs/releases/QUICK_START_RELEASES.md +0 -113
- package/docs/releases/RELEASE_CHECKLIST_1.8.10.md +0 -331
- package/docs/releases/RELEASE_CHECKLIST_1.8.9.md +0 -207
- package/docs/releases/RELEASE_CHECKLIST_v1.7.4.md +0 -253
- package/docs/releases/RELEASE_CHECKLIST_v1.7.5.md +0 -315
- package/docs/releases/RELEASE_CHECKLIST_v1.7.6.md +0 -389
- package/docs/releases/RELEASE_CHECKLIST_v1.8.0.md +0 -331
- package/docs/releases/RELEASE_CHECKLIST_v1.8.2.md +0 -309
- package/docs/releases/RELEASE_NOTES_1.7.0.md +0 -539
- package/docs/releases/RELEASE_NOTES_1.8.10.md +0 -239
- package/docs/releases/RELEASE_NOTES_1.8.9.md +0 -213
- package/docs/releases/RELEASE_NOTES_v1.8.0.md +0 -685
- package/docs/releases/RELEASE_NOTES_v1.8.1.md +0 -221
- package/docs/releases/RELEASE_NOTES_v1.8.2.md +0 -421
- package/docs/releases/RELEASE_NOTES_v1.8.3.md +0 -292
- package/docs/releases/RELEASE_NOTES_v1.8.4.md +0 -277
- package/docs/releases/RELEASE_NOTES_v1.8.6.md +0 -205
- package/docs/releases/RELEASE_NOTES_v1.8.7.md +0 -184
- package/docs/releases/RELEASE_PLAN_v1.7.6.md +0 -816
- package/docs/releases/RELEASE_SUMMARY_1.8.10.md +0 -193
- package/docs/releases/RELEASE_SUMMARY_v1.7.4.md +0 -276
- package/docs/releases/RELEASE_SUMMARY_v1.7.5.md +0 -322
- package/docs/releases/RELEASE_SUMMARY_v1.7.6.md +0 -436
- package/docs/releases/RELEASE_SUMMARY_v1.7.7.md +0 -391
- package/docs/releases/RELEASE_SUMMARY_v1.7.8.md +0 -523
- package/docs/releases/RELEASE_SUMMARY_v1.7.9.md +0 -542
- package/docs/troubleshooting/ARDUINO_IDE_VERSION_FIX_SUMMARY.md +0 -229
- package/docs/troubleshooting/ARDUINO_LIBRARY_NAME_FIX.md +0 -197
- package/docs/troubleshooting/CRASH_QUICK_REF.md +0 -93
- package/docs/troubleshooting/ESP32_C6_COMPATIBILITY.md +0 -157
- package/docs/troubleshooting/FREERTOS_ASSERTION_FAILURE.md +0 -288
- package/docs/troubleshooting/FREERTOS_FIX_IMPLEMENTATION.md +0 -267
- package/docs/troubleshooting/NPM_PUBLISHING_ISSUE_SUMMARY.md +0 -110
- package/docs/troubleshooting/PAINLESSMESH_V1.7.4_COMPILATION_ISSUES.md +0 -547
- package/docs/troubleshooting/QUICK_FIX_FREERTOS.md +0 -164
- package/docs/troubleshooting/SENSOR_NODE_CONNECTION_CRASH.md +0 -264
- package/docs/troubleshooting/station-reconnection-issues.md +0 -172
- package/docs/v1.7.7_MQTT_IMPROVEMENTS.md +0 -794
- package/docs/wiki/API-Reference.md +0 -246
- package/docs/wiki/Complete-Documentation.md +0 -123
- package/examples/alteriomImproved/alteriom_sensor_package.hpp +0 -224
- package/examples/alteriomImproved/improved_sensor_node.ino +0 -248
- package/examples/alteriomImproved/platformio.ini +0 -32
- package/examples/alteriomMetricsHealth/alteriom_sensor_package.hpp +0 -796
- package/examples/alteriomMetricsHealth/metrics_health_node.ino +0 -429
- package/examples/alteriomMetricsHealth/platformio.ini +0 -26
- package/examples/alteriomPhase1/alteriom_sensor_package.hpp +0 -224
- package/examples/alteriomPhase1/phase1_features.ino +0 -242
- package/examples/alteriomPhase1/platformio.ini +0 -26
- package/examples/alteriomPhase2/alteriom_sensor_package.hpp +0 -224
- package/examples/alteriomPhase2/phase2_features.ino +0 -186
- package/examples/alteriomPhase2/platformio.ini +0 -26
- package/examples/alteriomSensorNode/alteriom_sensor_node.ino +0 -186
- package/examples/alteriomSensorNode/alteriom_sensor_package.hpp +0 -1227
- package/examples/alteriomSensorNode/platformio.ini +0 -26
- package/examples/bridge/alteriom_sensor_package.hpp +0 -1170
- package/examples/bridge/bridge_health_monitoring_example.ino +0 -188
- package/examples/bridge/enhanced_mqtt_bridge.hpp +0 -610
- package/examples/bridge/enhanced_mqtt_bridge_example.ino +0 -226
- package/examples/bridge/mesh_event_publisher.hpp +0 -253
- package/examples/bridge/mesh_topology_reporter.hpp +0 -303
- package/examples/bridge/mqtt_command_bridge.hpp +0 -459
- package/examples/bridge/mqtt_status_bridge.hpp +0 -519
- package/examples/bridgeAwareSensorNode/alteriom_sensor_package.hpp +0 -1227
- package/examples/bridgeAwareSensorNode/bridgeAwareSensorNode.ino +0 -342
- package/examples/bridgeAwareSensorNode/platformio.ini +0 -26
- package/examples/diagnosticsExample/diagnosticsExample.ino +0 -171
- package/examples/diagnosticsExample/platformio.ini +0 -26
- package/examples/echoNode/echoNode.ino +0 -33
- package/examples/echoNode/platformio.ini +0 -26
- package/examples/meshCommandNode/alteriom_sensor_package.hpp +0 -235
- package/examples/meshCommandNode/meshCommandNode.ino +0 -265
- package/examples/mqttCommandBridge/alteriom_sensor_package.hpp +0 -235
- package/examples/mqttCommandBridge/mesh_event_publisher.hpp +0 -253
- package/examples/mqttCommandBridge/mesh_topology_reporter.hpp +0 -303
- package/examples/mqttCommandBridge/mqttCommandBridge.ino +0 -254
- package/examples/mqttCommandBridge/mqtt_command_bridge.hpp +0 -462
- package/examples/mqttCommandBridge/platformio.ini +0 -27
- package/examples/mqttStatusBridge/mqttStatusBridge.ino +0 -218
- package/examples/mqttStatusBridge/mqtt_status_bridge.hpp +0 -522
- package/examples/mqttStatusBridge/platformio.ini +0 -27
- package/examples/mqttTopologyTest/README.md +0 -467
- package/examples/mqttTopologyTest/mqttTopologyTest.ino +0 -754
- package/examples/mqttTopologyTest/platformio.ini +0 -27
- package/examples/multi_bridge/README.md +0 -346
- package/examples/multi_bridge/primary_bridge.ino +0 -96
- package/examples/multi_bridge/regular_node.ino +0 -141
- package/examples/multi_bridge/secondary_bridge.ino +0 -111
- package/examples/ntpTimeSyncBridge/alteriom_sensor_package.hpp +0 -1383
- package/examples/ntpTimeSyncBridge/ntpTimeSyncBridge.ino +0 -86
- package/examples/ntpTimeSyncNode/alteriom_sensor_package.hpp +0 -1383
- package/examples/ntpTimeSyncNode/ntpTimeSyncNode.ino +0 -109
- package/examples/queued_alarms/README.md +0 -390
- package/examples/queued_alarms/queued_alarms.ino +0 -265
- package/examples/routing_demo/README.md +0 -172
- package/examples/routing_demo/routing_demo.ino +0 -102
- package/examples/rtcIntegration/README.md +0 -294
- 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
|