Skip to content

Release v2051 — HOMECORE platform runtime

Latest

Choose a tag to compare

@ruvnet ruvnet released this 27 Jul 19:38
42d56fc

HOMECORE platform runtime

This release completes the HOMECORE server platform foundation introduced in v2050.

Highlights

  • Signed, bounded server-side plugin discovery with compiled-in native plugins and Wasmtime 36.0.12 core-module loading via a custom host ABI (correction: the original notes said "component loading" — this crate uses Wasmtime's core-module API with a hand-rolled ptr/len ABI, not the Wasmtime Component Model / WIT interfaces)
  • Opt-in network HAP server with persisted identity, SRP Pair-Setup, encrypted Pair-Verify sessions, controller management, revocation, accessory synchronization, and mDNS
  • Expanded Home Assistant REST/WebSocket compatibility for core state, service, event, template, history, logbook, calendar, registry, panel, and intent contracts
  • Deterministic startup restoration for registries and recorder state
  • Forward-compatible device/config-entry migrations with atomic writes
  • Bounded STT/TTS provider contracts and authenticated satellite voice sessions
  • Updated capability documentation, ADRs, compatibility reporting, and security guardrails

Validation

  • 35 plugin/Wasmtime tests passed
  • 45 HAP tests passed, including encrypted TCP access and replay rejection
  • 22 all-feature server tests passed
  • Core, migration, recorder, assist, REST, authentication, and WebSocket suites passed
  • Strict clippy passed for all changed crates and enabled features on Rust 1.89
  • Optimized homecore-server release build passed with wasmtime,hap-server

Compatibility boundaries

HOMECORE implements the documented core Home Assistant API surface represented in its compatibility manifest, not every third-party integration or frontend-specific extension. HAP is not Apple-certified and still documents timed writes, /resource, current external-controller testing, and hardware-backed key storage as follow-up work.

Security audit note: the enabled HOMECORE server graph does not include the remaining vulnerable packages reported in unrelated or optional monorepo dependency graphs.

Post-release review (this note added after publishing)

An independent review after this release found:

  • The "component loading" wording above was inaccurate (corrected above) — no functional issue, documentation only.
  • A real functional bug: /api/history/period and /api/logbook rejected the default (no entity filter) call shape — the exact way the HA frontend calls them — once a room had more than 32 entities. Fixed in a follow-up PR.
  • A latent security hardening gap: the HAP accessory's permanent Ed25519 signing seed was reachable via derived Debug (not actively triggered by any code path, but unguarded against a future logging change). Fixed in a follow-up PR.
  • Two smaller fixes: fire_event's event-type validation was stricter than real HA's contract; homecore-migrate gained a --force flag so re-running an import after fixing a bad source row doesn't require manually deleting prior output.
  • Everything else in the validation claims above was independently reproduced and held up: the HAP crypto (SRP6a, X25519, ChaCha20-Poly1305, HKDF salts/infos, replay rejection) is genuinely sound, plugin signature verification fails closed, and the exact test counts (35/45/22) were confirmed.

Full change: #1451

Co-Authored-By: claude-flow ruv@ruv.net