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-serverrelease build passed withwasmtime,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/periodand/api/logbookrejected 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-migrategained a--forceflag 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