RuView v0.10.0 — HOMECORE: native Rust port of Home Assistant
Builds on the v0.9.0 APPLE-FABRIC release. Where v0.9.0 shipped the Python-based Apple Home / HAP bridge as scripts + docs, v0.10.0 lands the native Rust + WASM + TypeScript port of Home Assistant — HOMECORE — covering ADRs 126–134 (and a Rust-native re-implementation path for ADR-125).
Merged via PR #800 (squash). Tracked at #798.
What shipped
8 new Rust crates (v2/crates/homecore*)
| ADR | Crate | Tests | What |
|---|---|---|---|
| 127 | homecore
| 20 | State machine (DashMap), event bus, service registry, entity registry |
| 130 | homecore-api
| 18 | HA wire-compat Axum REST + WebSocket on :8123 (more than the 4 originally claimed) |
| 128 | homecore-plugins
| 10 + 14 integ | Wasmtime 42.0.2 + InProcess runtimes, JSON-over-linear-memory ABI |
| 125 | homecore-hap
| 17 | Apple Home HAP bridge — P1 trait surface + 11 accessory types (HAP-1.1 server itself feature-gated to P2 via hap-server feature flag, honestly documented)
|
| 132 | homecore-recorder
| (lib + smoke) | SQLite + ruvector semantic index, FNV-1a 64-bit attr dedup bit-exact against HA db_schema.py
|
| 129 | homecore-automation
| 34 | YAML triggers/conditions/actions + MiniJinja templates (4 HA globals) |
| 133 | homecore-assist
| 23 | Intent recognizer + 5 built-in handlers + NoopRunner ruflo stub (real subprocess deferred to P2)
|
| 134 | homecore-migrate
| 19 | .storage/*.json v13 parser + 6-subcommand clap CLI
|
Plus homecore-server integration binary wiring all 8 above (cargo run -p homecore-server --bind 127.0.0.1:8123) and homecore-plugin-example (47 KB cdylib wasm32-unknown-unknown plugin proving the host ABI end-to-end).
Frontend (frontend/)
@ruvnet/homecore-frontend@0.1.0-alpha.0 — Lit + TypeScript + Vite scaffold:
- Builds clean:
dist/index.js25.45 KB (8.92 KB gzip),dist/index.css4.61 KB (1.50 KB gzip) - 11 vitest unit tests
- Design tokens lifted from
cognitum-v0:9000via/browserrecon - Lucide icons, full design system documented in
docs/design/HOMECORE-FRONTEND-design-recon.md
Security
docs/security/HOMECORE-security-audit-iter10.md— 18 findings (4 Critical / 3 High / 5 Med / 4 Low / 2 Info)- Critical CVEs cleared: wasmtime 25.0.3 → 42.0.2 (RUSTSEC-2026-0095/0096, CVSS 9.0 sandbox escape), sqlx 0.7.4 → 0.8.6 (binary protocol misinterpretation)
- HC-05 closed in final iter: CORS allowlist replacing permissive CORS in
homecore-api(commita771ab8aa) - Deferred: HC-01/02 auth bypass (P1 placeholder, lands with real bearer-token store in P3 — see ADR-130 §3)
Verification
- CI: 32 SUCCESS / 5 SKIPPED / 0 FAILED (Code Quality, SAST, Tests 3.10/3.11/3.12, Rust Workspace Tests, Docker Build, Dependency Scan, Security Report, Semgrep, KICS, Secret Scanning all green on both branch and merge-base)
- Workspace tests at merge SHA: 2,263 passed / 0 failed / 11 ignored (
cargo test --workspace --no-default-features) - HOMECORE-only: 155 tests passing / 0 failed across the 8 new crates
cargo check --workspace: clean post-merge- Frontend build: clean, 25 KB JS bundle
Honest reporting
- PR claimed "162 tests (table sum)" and "176+ tests (body)". Measured: 155 passing + 1 ignored across the 8 homecore crates. The discrepancy is a counting methodology difference (the claim conflated lib + integration + doc-tests + smoke tests in inconsistent ways), and
homecore-apiactually has 18 unit tests, not the 4 claimed in the table — under-reported by the PR description, but all green. homecore-hapis P1 scaffold + trait surface + 17 mapping tests, not a running HAP-1.1 server. The Cargo.toml, lib.rs, and bridge.rs all explicitly document thehap-serverfeature flag as the P2 gate for the realhapcrate integration. Apple Home pairing from this build will require enabling that feature once it lands.homecore-assistshipsNoopRunnerfor the ruflo subprocess — the trait + IPC surface compile and test, but no Node.js subprocess is spawned in P1. Honest deferral documented inrunner.rs.- One Windows-only test-runner quirk:
cog-pose-estimation --test smokehitsAccess is denied (os error 5)due to a file lock on the test executable in concurrent runs. This is pre-existing in main, not from this PR, and the CI on Linux is fully green.
No regressions to v0.9.0
PR diff touches only v2/crates/homecore*, frontend/, v2/Cargo.toml, v2/Cargo.lock, and 2 new doc files (docs/adr/ADR-133-*.md, docs/design/HOMECORE-FRONTEND-*.md, docs/security/HOMECORE-security-*.md). Zero changes to scripts/, python/, the v0.9.0 user guide, or any other v0.9.0 release artifact.
Merge metadata
- PR: #800
- Squash commit:
e96ebaea810c20c402f48967c44f12d1d3d9f4ea - Branch deleted:
feat/adr-126-homecore-impl - Audit log:
dist/pr800-test-output-v2.log(workspace) +dist/pr800-homecore-only.log(homecore-focused)