Commit Graph

1 Commits

Author SHA1 Message Date
ruv fd1803d347 feat(adr-115): ESP32 hardware validation harness + witness integration
## scripts/validate-esp32-mqtt.sh — proof-of-life against real hardware

Standalone bash harness that asserts the full pipeline works
end-to-end with an attached ESP32-S3:

  ESP32-S3 CSI source → sensing-server → MQTT broker → captured
  topics → coverage matrix → report → exit 0 / non-zero

Five phases:
  1. Pre-flight (mosquitto-clients on PATH, cargo on PATH; starts an
     inline mosquitto if no broker reachable)
  2. Start sensing-server with --source esp32 --mqtt (uses the
     example binary that landed in P6)
  3. Capture mosquitto_sub traffic for --duration seconds
  4. Assert coverage matrix: 16 expected HA discovery topics (raw +
     semantic primitives) MUST appear; ≥1 state message MUST land
  5. Write a Markdown report under --report path

Exit codes:
  0 — all assertions passed
  2 — bad CLI args
  3 — missing prereq (mosquitto_pub, cargo)
  4 — no broker reachable AND no mosquitto binary to start one
  5 — sensing-server died on startup (log tail in report)
  6 — coverage assertions failed (details in report)

The script is **runnable without hardware** (will time out cleanly
with state-message-count=0); attach a real ESP32 to get a full PASS.
Default port: 127.0.0.1:11883 + 60 s capture window.

Usage:

    bash scripts/validate-esp32-mqtt.sh \
        --duration 60 \
        --broker 127.0.0.1:11883 \
        --source esp32 \
        --report dist/validation-esp32-<sha>.txt

## scripts/witness-adr-115.sh — integration

Two changes:

1. Always copy `docs/integrations/benchmarks.md` into the bundle's
   `bench-results/` dir so the bench numbers travel with the bundle
   even when `RUVIEW_RUN_BENCH=0` (the captured numbers from
   `ca10df7b0` are still load-bearing).
2. New `RUVIEW_RUN_ESP32=1` opt-in path that runs the validation
   harness above and bakes the report into the bundle as
   `esp32-validation.md`. Without the env var, a placeholder note
   explains how to opt in.

Both scripts pass `bash -n` syntax check on Windows Git Bash.

Refs #776, PR #778.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-23 14:50:52 -04:00