Add band-aware saved WiFi profile management - #1443
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #1443 +/- ##
==========================================
- Coverage 0.40% 0.36% -0.04%
==========================================
Files 20 21 +1
Lines 17176 18773 +1597
Branches 11 11
==========================================
Hits 69 69
- Misses 17103 18700 +1597
Partials 4 4
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
43ae4ba to
1ac96ed
Compare
There was a problem hiding this comment.
Pull request overview
This PR adds multi-profile, band-aware WiFi credential management (supporting the same SSID on different bands) and updates the UI/CLI connection flows and serial logging to better protect secrets while joining/forgetting/resetting saved networks.
Changes:
- Introduces
WiFiProfileStoreto persist multiple WiFi profiles (SSID + band/channel) and manage lifecycle operations (remember/forget/reset/migration). - Extends
WiFiScan::joinWiFi()to support targeted joins via channel/BSSID and preferred band selection, and persists credentials via both legacy settings and the profile store. - Updates GUI menus and CLI join command to select/join saved profiles (including hidden SSID handling) and redact sensitive values in serial output.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| esp32_marauder/WiFiScan.h | Extends joinWiFi API to accept channel/BSSID/preferred band parameters. |
| esp32_marauder/WiFiScan.cpp | Implements band-aware/targeted join behavior, credential persistence to the new store, and additional UI acknowledgement flows. |
| esp32_marauder/WiFiProfileStore.h | Adds the public interface and data structures for multi-profile WiFi storage. |
| esp32_marauder/WiFiProfileStore.cpp | Implements profile persistence, recovery/upgrade logic, and legacy migration handling. |
| esp32_marauder/settings.h | Adds saveWiFiCredentials() API for updating legacy stored SSID/password together. |
| esp32_marauder/settings.cpp | Adds settings generation recovery logic and redacts sensitive settings when printing diagnostics. |
| esp32_marauder/MenuFunctions.h | Adds menus/helpers for saved profile selection, forget/reset confirmation, and hidden SSID prompting. |
| esp32_marauder/MenuFunctions.cpp | Implements saved WiFi profile UI flows and redacts passwords in join diagnostics. |
| esp32_marauder/esp32_marauder.ino | Initializes the WiFi profile store during boot after SD setup. |
| esp32_marauder/CommandLine.h | Updates join command help text to include -e for hidden SSIDs. |
| esp32_marauder/CommandLine.cpp | Redacts join passwords in logged commands and supports hidden SSID joins via -e. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
All 22 firmware matrix builds and the Native Unity tests pass on this head. The remaining red statuses are limited to the repository-wide Codecov policy addressed separately in #1448. |
Stack
Summary
Testing
Limitations