Highlights
- Verify browser downloads with signed catalogs; Native and ESPHome require signed OTA updates.
- Build all first-party frontends against extracted SDK bundles through
ESPECTRE_SDK_ROOT. - Select CSI capture profiles at build time and try experimental
wifi_rawtraffic on supported chips. - Read selected diagnostics over Direct HTTP and MQTT, including frontend loop timing.
Firmware and sensing
- Native OTA uses the shared firmware catalog; rolling firmware and SDK manifests use channel names.
- Reject invalid CSI and report stale sensing as unavailable, preserving raw CSI framing.
- Add
auto,lltf, andht-vhtcapture profiles; 5 GHz detection remains uncharacterized. See CSI.md. wifi_rawrequiresautoorlltfand is disabled on ESP32-C6;pingremains the default.- Allow custom IPv4 destinations for internal traffic generators. See SDK.md.
- Default station TX rates to 6.5 Mbps on classic ESP32 and Auto elsewhere, independently of sensing.
- Resume CSI after reassociation or roaming with retained IPv4 state, without requiring another
GOT_IPevent. - Pin CPU clocks per target, reclaim Native IRAM, and save 6 KiB in the C++ raw CSI queue.
SDK and diagnostics
- Derive SDK versions from packaged metadata or integrator overrides, independently of firmware versions; missing or incomplete metadata uses
0.0.0. - Move Improv Serial support outside the SDK and share command validators with ESPHome controls.
- Micro-ESPectre Direct validates JSON and parameters; non-empty bodies require the JSON media type.
- Share
csi_hw_error_ppsacross C++ and MicroPython, and expose C++ frontend loop duration asloop_time_ms.
Web tools, builds, and maintenance
- Show the newest Release or Preview firmware on the home badge, and suggest replacement routes on 404 pages.
- Reduce benchmark HTTP traffic, recover stale SSE readiness, and report setup failures with diagnostic evidence.
- Update ESPHome to
2026.9.0, host dependencies, and website packages, including the Rollup security fix. - Add dependency audits and quality reports; block releases on license violations, scanner failures, and applicable high, critical, or unscored CVEs.
- Store build packages, caches, and audit output under
.cache/.
Breaking changes and migration
- Diagnostics without
fieldsreturn a catalog; use explicit fields or["*"]for values. Upgrade clients and firmware together. See API.md. - OTA services, version comparison, release catalogs, and OTA types move from the SDK runtime to shared frontend code.
- Replace
RuntimeFrontendController::quiesce_for_ota()withquiesce(); replaceespectre_firmware_version()calls by supplying the application version through runtime interfaces. - Remove
RuntimeDiagnosticsSample::csi_classified_ppsandcsi_provenance_rejected_pps, plus diagnosticscsi_classified_totalandcsi_estimate_length_mismatch_total. - Remove
TemporalCsiSamplercountersduplicate_packets,missing_timestamp_packets, andgap_resets. - Convert
CONFIG_ESPECTRE_WIFI_TX_RATE_MBPSoverrides to strings"0","6", or"6.5", or remove them to adopt target defaults. - Update saved
CONFIG_ESPECTRE_DIRECT_HTTPD_TASK_PRIORITYoverrides to adopt the new default of1. - Rebuild and flash Micro-ESPectre firmware before deploying the application, which now requires
espectre_native_wifi. - Use USB when switching between unsigned personal builds and signed official firmware. Matter still has no OTA. See SETUP.md.