Two bugs in the v0.6.3-esp32 release, both reported in #505:
1. **4 MB binary boot-loops with Tmr Svc stack overflow.** The
adaptive_controller fast loop runs emit_feature_state() (lwIP
sendto via stream_sender) AND apply_decision() (which can call
rv_mesh_send_anomaly — another sendto) inside the FreeRTOS Timer
Svc callback. The previous fix (a426ae386) bumped from the 2 KiB
IDF default to 8 KiB; that absorbs the steady-state fast tick but
not the worst case where a state transition fires the anomaly
emit on top of an already-stacked feature_state emit. Bump to
16 KiB across both sdkconfig.defaults.template (8 MB build) and
sdkconfig.defaults.4mb so the two release variants stay in sync.
2. **All v0.6.3 binaries reported `App version: 0.6.2`.** version.txt
was never bumped at the v0.6.3-esp32 tag. CMake reads version.txt
into project(VERSION ...) which feeds esp_app_get_description()->
version. Bump to 0.6.4 to match the new release tag.
Verified on ESP32-S3 (COM8, MAC d0:cf:13:44:01:84):
- 4 MB build flashed clean, 853 KiB binary, 54 % flash free
- Boot banner now reports `App version: 0.6.4`
- 70 s soak, 71 medium ticks, 0 stack overflow, 0 reboots
- 5 Hz feature_state emit confirmed (seq=299 at ~60 s)
- CSI capture active throughout (motion=1.00, presence=4-20)
Closes#505.
Co-Authored-By: claude-flow <ruv@ruv.net>
version.txt → 0.6.2.
firmware-ci.yml: matrix-build both 8MB (sdkconfig.defaults) and 4MB
(sdkconfig.defaults.4mb) variants, uploading variant-named artifacts
(esp32-csi-node.bin / esp32-csi-node-4mb.bin, partition-table.bin /
partition-table-4mb.bin). Unblocks 6-binary releases from CI alone,
no local ESP-IDF required.
CHANGELOG: promote [Unreleased] ADR-081 work into [v0.6.2-esp32],
plus Fixed entries for Timer Svc stack overflow and the
fast_loop_cb → emit_feature_state implicit-decl compile error.
Validation: 30 s run on ESP32-S3 (MAC 3c:0f:02:e9:b5:f8), 149
rv_feature_state emissions, no stack overflow, HEALTH mesh packet sent.
Co-Authored-By: claude-flow <ruv@ruv.net>
- Add version.txt (0.6.0) read by CMakeLists.txt so
esp_app_get_description()->version matches the release tag
- Log firmware version on boot: "v0.6.0 — Node ID: X"
- Remove stale Kconfig help text (said default 2.0, actual is 15.0)
Fixes the version mismatch reported in #354 where flashing v0.5.3
binaries showed v0.4.3 because PROJECT_VER was never set.
Co-Authored-By: claude-flow <ruv@ruv.net>