2.1.0 development validation

Historical candidate: 2.1.0-test3, tested October 23–24, 2026 on one verified XIAO ESP32-S3 with the XIAO 60-pixel matrix. The results and remaining work below describe that candidate at the time of testing. See release validation for the subsequent 2.1.0 builds and checks.

Observed failures and fixes

The first USB recording contained 13,937 received disconnect frames, no disconnect queue drops, and zero confirmed floods. Strong short bursts were visible, but requiring three uninterrupted seconds for one AP and clearing state at every hop prevented confirmation. The new implementation retains completed strong evidence for the same AP across channel changes for 30 seconds. Isolated bursts and evidence from different APs cannot complete that history. New live deauth validation is still pending; host regression tests pass.

The user then confirmed that their BLE "spam all" traffic was running. All four pairing formats were received, but the existing address-churn requirement did not confirm them. A new, separate identity-change rule detected a source cycling through at least eight advertised identities. Qualifying six-second windows in the live log included 56–65 advertisements and 16–19 identity changes.

After the test3 update, the device activated the BLE alert and the user confirmed seeing blue flashes. USB telemetry recorded repeated alert sequences separated by the cooldown. BLE queue drops remained zero. The sequence duration is four seconds, followed by at least 30 seconds of cooldown; a new qualifying window must arrive before another sequence can start. These were live RF detections, not manual output tests. Confirmation counters count qualifying windows, not distinct transmitters or attacks.

After the traffic stopped, the recording showed over 60 seconds without new pairing observations or confirmations. The light returned to the nightlight, the cooldown reached zero without retriggering, and heap remained stable at 118,592 bytes during this interval.

Firmware and tests

Remaining validation

Live deauth confirmation with the new history remains unverified. Continuous Axon behavior is host-tested; no physical Axon device was present for this run. Other hardware variants were not flashed in this session. The early C6 build attempt failed while resolving framework headers; it is not a verified candidate build. Do not package mixed candidate and old build outputs or publish the candidate before validating the intended release profiles.

One radio cannot monitor all Wi-Fi channels at once. Connecting to the device's AP pauses surveying on the current channel; USB diagnostics avoid that constraint. The identity-change detector still cannot prove intent or cover every spam mode. See detection policy for thresholds and limitations.

Reproducing passive diagnostics

python tools/capture_detection.py PORT --seconds 600 --output private/session.jsonl

The script only reads detector status. --survey enables survey temporarily on older settings; it does not write saved preferences. USB commands are status, monitor on, monitor off, survey on, survey off, test deauth, and test ble. The two test commands exercise lights only and bypass the RF classifier.

Recordings, flash backups and build logs remain outside Git in ignored folders.