Share the saved admin password across ESP32 management services

Use the committed node credential for setup WiFi, WebConfig and browser OTA. Add persistent ESP32 WiFi Companion management credentials without changing preferences layouts, revoke stale browser sessions on rotation, retain scoped save receipts, and coordinate credential changes with flash uploads. Keep external-service credentials and trusted TCP protocol compatibility independent. Update live join QR codes, failure handling and documentation.

Validated 51 native cases, 158 related host and browser methods, and serial Full V4 Companion, Station G3 Repeater, ESP32-C6 Room Server and V4 Sensor firmware builds.
This commit is contained in:
mikecarper committed 2026-10-18 13:09:48 -07:00
1 parent a6a3cb5ebc
commit cd02e55824
58 files changed
+5749 -2439

No files matched your search

+14
View File
@@ -11903,6 +11903,20 @@ void MyMesh::handleCommand(uint32_t sender_timestamp, ClientInfo* sender, char *
// same over LoRa and serial. Keep leading whitespace intact until after the
// region-load handler because it encodes region hierarchy indentation.
char* command_end = command + strlen(command);
#ifdef ESP_PLATFORM
// Password bytes are significant, including spaces and invalid line breaks
// that the ESP32 setter must reject rather than silently remove.
const char* password_command = command;
while (*password_command == ' ') password_command++;
if (strlen(password_command) > 4 && password_command[2] == '|') {
password_command += 3;
}
char command_verb[10];
strncpy(command_verb, password_command, sizeof(command_verb) - 1);
command_verb[sizeof(command_verb) - 1] = 0;
mesh::cli::normalizeCommandVerb(command_verb);
if (strcmp(command_verb, "password ") != 0)
#endif
while (command_end > command
&& (command_end[-1] == ' ' || command_end[-1] == '\t'
|| command_end[-1] == '\r' || command_end[-1] == '\n')) {