v0.5.1-esp32

ruvnet/RuViewv0.5.1-esp32Mar 27, 2026by ruvnet

AI Summary

Addresses watchdog crashes on busy networks and fixes edge detection issues, while adding a Python package wrapper for easier integration.

Key Highlights

  • Watchdog crash fix on busy LANs (batch-limited tasks)
  • Fixed edge vitals detection on sensing server
  • Added Python package `wifi_densepose` with WiFiDensePose facade
  • All 11 QEMU CI jobs passing

New Features

  • Python package wrapper for WiFiDensePose
  • Watchdog task management improvements
  • Edge vitals detection logic fix

Full Release Notes

## What's Changed

### Bug Fixes

**Firmware: Watchdog crash on busy LANs (#321)**
- `edge_dsp` task now batch-limits to 4 frames before a 20ms yield
- Fixed idle-path busy-spin where `pdMS_TO_TICKS(5)==0` at 100Hz tick rate
- Added ring buffer drop counter (`drops=N` in serial log) for diagnostics
- **QEMU validated**: All 11 CI jobs pass (7 configs + fuzz + swarm + NVS + build)

**Sensing Server: No detection from edge vitals (#323)**
- ESP32 nodes running Tier 2+ edge DSP now trigger full `sensing_update` in the UI
- Previously, vitals packets (magic `0xC5110002`) were broadcast but never generated person detection
- Breathing animation now works from edge vitals (non-zero `breathing_band_power`)

**Python Package: ModuleNotFoundError (#314)**
- Added `wifi_densepose/` package with `WiFiDensePose` facade class
- `from wifi_densepose import WiFiDensePose` now works as documented in README

### CI Validation

| Job | Status |
|-----|--------|
| Build Espressif QEMU | ✅ |
| NVS Matrix Generation | ✅ |
| Fuzz Testing (ADR-061 Layer 6) | ✅ |
| Swarm Test (ADR-062) | ✅ |
| QEMU Test — default | ✅ |
| QEMU Test — edge-tier0 | ✅ |
| QEMU Test — edge-tier1 | ✅ |
| QEMU Test — tdm-3node | ✅ |
| QEMU Test — boundary-min | ✅ |
| QEMU Test — boundary-max | ✅ |
| QEMU Test — full-adr060 | ✅ |

### Upgrade Notes

- **Firmware**: Reflash required for the watchdog fix. Build from source using ESP-IDF v5.4.
- **Sensing server**: Rebuild from `main` — `cargo build --release -p wifi-densepose-sensing-server`
- **Python**: `pip install -e .` from repo root, or `from wifi_densepose import WiFiDensePose`

**Full Changelog**: https://github.com/ruvnet/RuView/compare/v0.5.0-esp32...v0.5.1-esp32