hailo-backend-v0.2.0-iter227
ruvnet/RuVectorhailo-backend-v0.2.0-iter227May 4, 2026by ruvnet
AI Summary
Production-ready Hailo backend featuring extensive security hardening and the closure of integration gaps identified in ADR-178.
Key Highlights
- Implements an eight-layer DoS gate stack with configurable environment variables.
- Closes 6 of 8 integration gaps identified between Hailo backend and RuVector.
- Achieves 9.6x throughput improvement over CPU fallback.
- Stabilizes HEF binary compatibility with Pi 5 + AI HAT+.
New Features
- Security hardening (DoS gates)
- ADR-178 integration gap closure
- Performance improvements (9.6x)
- CI verification and audit checks
- HEF binary compatibility
Full Release Notes
Branch `hailo-backend` snapshot at iter 227. NPU acceleration is the production default since iter 163. ## Performance (cognitum-v0, Pi 5 + AI HAT+, c=4 b=1) | Metric | Value | |---|---| | Throughput | ~70 embeds/sec/worker | | p50 latency | 55-57 ms | | p99 latency | 86-90 ms (best clean runs) | | vs cpu-fallback | 9.6× | | NPU-bound ceiling | confirmed at ~70.6/sec (iter-179 saturation sweep) | ## Two arcs since v0.1.0-iter156b ### Arc 1 — Security / hardening (iters 174-213) Eight-layer DoS gate stack on the gRPC worker, all env-tunable: | Iter | Gate | Default | |---|---|---| | 180 | `RUVECTOR_MAX_REQUEST_BYTES` | 64 KB | | 181 | `RUVECTOR_MAX_CONCURRENT_STREAMS` | 256 | | 182 | `RUVECTOR_REQUEST_TIMEOUT_SECS` | 30 | | 183 | CVE-2023-44487 rapid-reset cap | 32 | | 184 | `RUVECTOR_HTTP2_KEEPALIVE_SECS` | 60 | | 190 | `RUVECTOR_MAX_RESPONSE_BYTES` | 16 KB | | 199 | `RUVECTOR_MAX_BATCH_SIZE` | 256 | | 200 | Per-item rate-limit debit on streams | per-item | Plus iter-174 HEF sha256 pin, iter-185 shutdown SEGV fix (5/5 SEGV → 10/10 clean), iter-191 HailoRT FFI 2s timeout, iter-209 retry short-circuit on terminal errors, iters 210-213 OOM-bounded operator-path file reads, iters 187-189 client TLS flag plumbing. ### Arc 2 — ADR-178 integration gap analysis (iters 215-227) Goal-planner agent produced ADR-178 (459 lines) identifying 8 gaps; **6 closed**: | Gap | Severity | Iter | Status | |---|---|---|---| | A | HIGH | 215 | ✅ ruvllm-bridge deploy artifacts | | **B** | **HIGH** | **218 + 219** | **✅ `EmbeddingProvider` impl + workspace rejoin** | | C | MEDIUM | 220 | ✅ short-term (csi-bridge docs disambiguation) | | D | MEDIUM | 221 | ✅ short-term (`hailo-cluster-as-provider` example) | | E | MEDIUM | 219 | ✅ folded into B | | F | MEDIUM | 217 | ✅ ADR-167 stale stratigraphy collapsed | | G | LOW | — | hardware-bound (Pi 4) | | H | LOW | 216 | ✅ install-bridge.sh → install-mmwave-bridge.sh | Plus three iter-219 follow-up side effects all caught + fixed (iters 224, 226, 227). ## Verification - `cargo build --workspace --release`: clean (3m49s) - `cargo check --workspace`: clean - Cluster lib + integration tests `--features tls --test-threads=1`: 23 suites, all green; 120 lib tests - hailo lib tests: 21 default + 22 cpu-fallback + 7 tokenizer pass - `cargo deny check` on both hailo crates: advisories/bans/licenses/sources OK - `cargo audit --deny warnings` with iter-224 ignores: exit 0 - Pi cognitum-v0 deployed + bit-identical embed verified (`vec_head=0.0181,-0.0220,0.0451,0.0159` unchanged) ## Companion artifacts - ADR-178 (gap analysis): `docs/adr/ADR-178-ruvector-ruview-hailo-integration-gap-analysis.md` - ADR-167 (master ADR, iter-217 collapse): `docs/adr/ADR-167-ruvector-hailo-npu-embedding-backend.md` - HEF binary (compatible — unchanged from v0.1.0-iter156b): `hailo-encoder-v0.1.0-iter156b` 🤖 Generated with [claude-flow](https://github.com/ruvnet/claude-flow)