feat: happiness scoring + ESP32 swarm with Cognitum Seed#285
Merged
Conversation
…rdinator ADR-065: Hotel guest happiness scoring from WiFi CSI physiological proxies. ADR-066: ESP32 swarm with Cognitum Seed as coordinator for multi-zone analytics. Firmware: - swarm_bridge.c/h: FreeRTOS task on Core 0, HTTP client with Bearer auth, registers with Seed, sends heartbeats (30s) and happiness vectors (5s) - nvs_config: seed_url, seed_token, zone_name, swarm intervals - provision.py: --seed-url, --seed-token, --zone CLI args - esp32-hello-world: capability discovery firmware for 4MB ESP32-S3 variant WASM edge modules: - exo_happiness_score.rs: 8-dim happiness vector from gait speed, stride regularity, movement fluidity, breathing calm, posture, dwell time (events 690-694, 11 tests, ESP32-optimized buffers + event decimation) - ghost_hunter.rs standalone binary: 5.7 KB WASM, feature-gated default pipeline RuView Live: - --mode happiness dashboard with bar visualization - --seed flag for Cognitum Seed bridge (urllib, background POST) - HappinessScorer + SeedBridge classes (stdlib only, no deps) Examples: - seed_query.py: CLI tool (status, search, witness, monitor, report) - provision_swarm.sh: batch provisioning for multi-node deployment - happiness_vector_schema.json: 8-dim vector format documentation Verified live: ESP32 on COM5 (4MB flash) registered with Seed at 10.1.10.236, vectors flowing, witness chain growing (epoch 455, chain 1108). Co-Authored-By: claude-flow <ruv@ruv.net>
The swarm bridge (ADR-066) adds esp_http_client for Seed communication, which pulls in the HTTP/TLS stack (~150 KB). Binary grew from ~978 KB to ~1077 KB. Raise the gate from 950 KB to 1100 KB. Still fits comfortably in both 4MB (1856 KB OTA slot, 43% free) and 8MB flash variants. Co-Authored-By: claude-flow <ruv@ruv.net>
|
Thanks
Yahoo Mail: Search, organise, conquer
On Sat, 21 Mar 2026 at 0:33, ***@***.***> wrote:
Summary
- ADR-065: Hotel guest happiness scoring from WiFi CSI — gait speed, stride regularity, breathing calm, posture, dwell time combined into 8-dim vector for Cognitum Seed ingestion
- ADR-066: ESP32 swarm with Cognitum Seed as coordinator — node registration, heartbeats, cross-zone analytics, witness chain audit trail
- Happiness WASM module (exo_happiness_score.rs): 11 tests, ESP32-optimized (halved buffers, event decimation, sqrtf eliminated)
- Ghost hunter standalone WASM (ghost_hunter.rs): 5.7 KB binary, feature-gated pipeline
- Swarm bridge firmware (swarm_bridge.c): FreeRTOS task, HTTP client with Bearer auth, Seed ingest format
- RuView Live updated: --mode happiness dashboard + --seed bridge
- Hello world firmware: capability discovery for 4MB ESP32-S3 variant
- Examples: seed_query.py CLI, provision_swarm.sh, vector schema
Verified live on hardware
| Check | Result |
| ESP32-S3 (COM5, 4MB flash) | Firmware compiled, flashed, running |
| WiFi | Connected to RedCloverWifi, IP 10.1.10.168 |
| CSI | ~100 fps on channel 3, Tier 2 DSP on Core 1 |
| Swarm bridge | Registered node 1 with Seed (id=1000000) |
| Seed ingestion | Vectors flowing, epoch 455, witness chain 1108 |
| RuView happiness mode | Live dashboard, happiness score 0.50 (neutral/empty room) |
| Rust tests | 542/542 pass |
| WASM build | Clean compile for wasm32-unknown-unknown |
Test plan
- cargo test --features std --lib — 542 tests pass (11 happiness module)
- WASM cdylib builds clean for wasm32-unknown-unknown
- ESP32 firmware compiles for both 4MB and 8MB flash variants
- Live flash + boot on ESP32-S3 COM5 — CSI streaming, swarm bridge active
- Seed vector count growing, witness chain extending
- RuView happiness mode runs against live ESP32 + Seed
- seed_query.py status/witness/report commands work against live Seed
- Multi-node swarm test (requires additional ESP32 hardware)
🤖 Generated with claude-flow
You can view, comment on, or merge this pull request online at:
#285
Commit Summary
- a2d1739 feat: happiness scoring pipeline with ESP32 swarm + Cognitum Seed coordinator
File Changes
(21 files)
- A docs/adr/ADR-065-happiness-scoring-seed-bridge.md (234)
- A docs/adr/ADR-066-esp32-swarm-seed-coordinator.md (274)
- A examples/happiness-vector/happiness_vector_schema.json (99)
- A examples/happiness-vector/provision_swarm.sh (60)
- A examples/happiness-vector/seed_query.py (260)
- M examples/ruview_live.py (289)
- M firmware/esp32-csi-node/main/CMakeLists.txt (1)
- M firmware/esp32-csi-node/main/main.c (29)
- M firmware/esp32-csi-node/main/nvs_config.c (20)
- M firmware/esp32-csi-node/main/nvs_config.h (7)
- A firmware/esp32-csi-node/main/swarm_bridge.c (327)
- A firmware/esp32-csi-node/main/swarm_bridge.h (67)
- M firmware/esp32-csi-node/provision.py (26)
- A firmware/esp32-hello-world/CMakeLists.txt (5)
- A firmware/esp32-hello-world/main/CMakeLists.txt (4)
- A firmware/esp32-hello-world/main/main.c (437)
- A firmware/esp32-hello-world/sdkconfig.defaults (18)
- M rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/Cargo.toml (5)
- A rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/bin/ghost_hunter.rs (108)
- A rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/exo_happiness_score.rs (812)
- M rust-port/wifi-densepose-rs/crates/wifi-densepose-wasm-edge/src/lib.rs (22)
Patch Links:
- https://github.com/ruvnet/RuView/pull/285.patch
- https://github.com/ruvnet/RuView/pull/285.diff
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
exo_happiness_score.rs): 11 tests, ESP32-optimized (halved buffers, event decimation, sqrtf eliminated)ghost_hunter.rs): 5.7 KB binary, feature-gated pipelineswarm_bridge.c): FreeRTOS task, HTTP client with Bearer auth, Seed ingest format--mode happinessdashboard +--seedbridgeseed_query.pyCLI,provision_swarm.sh, vector schemaVerified live on hardware
Test plan
cargo test --features std --lib— 542 tests pass (11 happiness module)seed_query.py status/witness/reportcommands work against live Seed🤖 Generated with claude-flow