mirror of
https://github.com/ruvnet/RuView
synced 2026-07-30 18:41:42 +00:00
90b29595fb
Adds the accepted ADR-285 Homecore metaharness, WASM-first kernel, read-only MCP guidance, guarded local host adapters, reviewed memory, and provenance-only npm release gates.
231 lines
10 KiB
JavaScript
231 lines
10 KiB
JavaScript
// SPDX-License-Identifier: MIT
|
|
|
|
export const GUIDANCE_TOPICS = Object.freeze([
|
|
'overview',
|
|
'core',
|
|
'server',
|
|
'api',
|
|
'plugins',
|
|
'integrations',
|
|
'migration',
|
|
'voice',
|
|
'testing',
|
|
]);
|
|
|
|
export const TOPIC_SUMMARIES = Object.freeze({
|
|
overview: 'A source-cited map of Homecore capabilities and maturity.',
|
|
core: 'State, events, services, registries, restore, and recorder behavior.',
|
|
server: 'The integrated Homecore server, configuration, and deployment boundaries.',
|
|
api: 'Home Assistant-compatible REST and WebSocket core contracts.',
|
|
plugins: 'Compiled-in native plugins and bounded external Wasm packages.',
|
|
integrations: 'HAP, Home Assistant compatibility, dashboard, and provider boundaries.',
|
|
migration: 'Versioned Home Assistant registry and config-entry migration.',
|
|
voice: 'Intent, STT/TTS contracts, audio bounds, and satellite sessions.',
|
|
testing: 'Focused Rust feature gates and metaharness validation.',
|
|
});
|
|
|
|
export const CAPABILITIES = Object.freeze([
|
|
{
|
|
id: 'runtime-restore',
|
|
name: 'Core runtime and startup restore',
|
|
topics: ['core', 'server'],
|
|
status: 'implemented',
|
|
evidence: 'REPOSITORY',
|
|
summary: 'Homecore provides concurrent state, entity/device registries, event buses, and services. Server startup restores registries before recent recorder states and isolates malformed rows within configured limits.',
|
|
sources: [
|
|
'v2/docs/homecore-capabilities.md',
|
|
'v2/crates/homecore/src/lib.rs',
|
|
'v2/crates/homecore-server/src/restore.rs',
|
|
'v2/crates/homecore-recorder/src/db.rs',
|
|
],
|
|
validation: [
|
|
'cargo test --manifest-path v2/Cargo.toml -p homecore -p homecore-recorder -p homecore-server --no-default-features',
|
|
],
|
|
limitations: [
|
|
'Restore depends on configured persistent storage and recorder availability.',
|
|
'Malformed rows are reported and isolated rather than silently accepted.',
|
|
],
|
|
},
|
|
{
|
|
id: 'automation-recorder',
|
|
name: 'Automation and state history',
|
|
topics: ['core', 'server'],
|
|
status: 'implemented',
|
|
evidence: 'REPOSITORY',
|
|
summary: 'The automation crate evaluates state, numeric, event, and time triggers. The recorder persists SQLite history, restores latest states, recovers from event lag, and can add an optional semantic index.',
|
|
sources: [
|
|
'v2/crates/homecore-automation/src/lib.rs',
|
|
'v2/crates/homecore-recorder/src/lib.rs',
|
|
'v2/docs/homecore-capabilities.md',
|
|
],
|
|
validation: [
|
|
'cargo test --manifest-path v2/Cargo.toml -p homecore-automation -p homecore-recorder --no-default-features',
|
|
],
|
|
limitations: [
|
|
'Optional semantic search requires its feature and backend.',
|
|
'Automation availability depends on the server configuration and loaded definitions.',
|
|
],
|
|
},
|
|
{
|
|
id: 'ha-core-api',
|
|
name: 'Home Assistant-compatible REST and WebSocket API',
|
|
topics: ['api', 'server', 'integrations'],
|
|
status: 'implemented-core-contract',
|
|
evidence: 'REPOSITORY',
|
|
summary: 'The authenticated API covers documented core state, service, event, template, history, logbook, calendar, camera, intent, registry-list, subscription, and feature-negotiation contracts.',
|
|
sources: [
|
|
'v2/docs/homecore-capabilities.md',
|
|
'v2/crates/homecore-api/README.md',
|
|
'v2/crates/homecore-api/src/lib.rs',
|
|
'v2/crates/homecore-api/src/ws.rs',
|
|
],
|
|
validation: [
|
|
'cargo test --manifest-path v2/Cargo.toml -p homecore-api -p homecore-server --no-default-features',
|
|
],
|
|
limitations: [
|
|
'This is not parity with every endpoint supplied by the Home Assistant integration ecosystem.',
|
|
'Media, calendar, camera, registry mutation, and Lovelace behavior may require configured providers or backends.',
|
|
],
|
|
},
|
|
{
|
|
id: 'wasm-plugins',
|
|
name: 'Native registration and Wasmtime plugin loading',
|
|
topics: ['plugins', 'server', 'testing'],
|
|
status: 'feature-gated',
|
|
evidence: 'REPOSITORY',
|
|
summary: 'Native plugins are compiled into an explicit registry. External plugin packages are bounded, path-checked, signature-verified WebAssembly and execute through Wasmtime when enabled.',
|
|
sources: [
|
|
'v2/docs/homecore-capabilities.md',
|
|
'v2/crates/homecore-server/src/plugins.rs',
|
|
'v2/crates/homecore-plugins/src/lib.rs',
|
|
'v2/crates/homecore-plugins/src/verify.rs',
|
|
'v2/crates/homecore-plugins/src/wasmtime_runtime.rs',
|
|
],
|
|
validation: [
|
|
'cargo test --manifest-path v2/Cargo.toml -p homecore-plugins --no-default-features',
|
|
'cargo test --manifest-path v2/Cargo.toml -p homecore-plugins --features wasmtime',
|
|
'cargo test --manifest-path v2/Cargo.toml -p homecore-server --features wasmtime',
|
|
],
|
|
limitations: [
|
|
'Wasmtime is opt-in.',
|
|
'Arbitrary native dynamic libraries are not loaded.',
|
|
'Unsigned Wasm requires an explicit development-only override.',
|
|
],
|
|
},
|
|
{
|
|
id: 'hap-network',
|
|
name: 'Network HomeKit Accessory Protocol server',
|
|
topics: ['integrations', 'server', 'testing'],
|
|
status: 'feature-gated',
|
|
evidence: 'REPOSITORY',
|
|
summary: 'The HAP feature wires bounded TCP handling, persisted pairing records, encrypted control sessions, live accessory synchronization, and _hap._tcp mDNS lifecycle into the server.',
|
|
sources: [
|
|
'v2/docs/homecore-capabilities.md',
|
|
'v2/crates/homecore-hap/README.md',
|
|
'v2/crates/homecore-hap/src/lib.rs',
|
|
'v2/crates/homecore-hap/src/server.rs',
|
|
'v2/crates/homecore-hap/src/mdns.rs',
|
|
],
|
|
validation: [
|
|
'cargo test --manifest-path v2/Cargo.toml -p homecore-hap --no-default-features',
|
|
'cargo test --manifest-path v2/Cargo.toml -p homecore-hap --features hap-server',
|
|
'cargo test --manifest-path v2/Cargo.toml -p homecore-server --features hap-server',
|
|
],
|
|
limitations: [
|
|
'HAP is disabled by default and requires explicit network and durable pairing configuration.',
|
|
'Internal protocol tests are not Apple certification or proof against a current Apple Home controller.',
|
|
'Some writable, timed, and resource behavior remains incomplete.',
|
|
],
|
|
},
|
|
{
|
|
id: 'ha-migration',
|
|
name: 'Home Assistant registry and config-entry migration',
|
|
topics: ['migration', 'integrations', 'testing'],
|
|
status: 'implemented-bounded',
|
|
evidence: 'REPOSITORY',
|
|
summary: 'Migration tooling version-checks entity/device registries and config entries, preserves unknown compatible fields, reports unsupported data, and writes atomically without overwriting destinations.',
|
|
sources: [
|
|
'docs/adr/ADR-165-homecore-migrate-from-home-assistant.md',
|
|
'v2/crates/homecore-migrate/README.md',
|
|
'v2/crates/homecore-migrate/src/lib.rs',
|
|
],
|
|
validation: [
|
|
'cargo test --manifest-path v2/Cargo.toml -p homecore-migrate',
|
|
'cargo clippy --manifest-path v2/Cargo.toml -p homecore-migrate --all-targets -- -D warnings',
|
|
],
|
|
limitations: [
|
|
'Imported config entries do not install or execute Home Assistant integrations.',
|
|
'Automation conversion, secret-reference resolution, tombstones, and recorder export are not complete.',
|
|
],
|
|
},
|
|
{
|
|
id: 'voice-satellite',
|
|
name: 'STT/TTS and satellite voice protocols',
|
|
topics: ['voice', 'integrations', 'testing'],
|
|
status: 'provider-required',
|
|
evidence: 'REPOSITORY',
|
|
summary: 'Homecore defines bounded PCM16 audio, asynchronous STT/TTS provider contracts, an intent pipeline, and an authenticated transport-independent satellite session state machine.',
|
|
sources: [
|
|
'v2/docs/homecore-capabilities.md',
|
|
'v2/crates/homecore-assist/src/lib.rs',
|
|
'v2/crates/homecore-assist/src/voice.rs',
|
|
'v2/crates/homecore-assist/src/satellite.rs',
|
|
],
|
|
validation: [
|
|
'cargo test --manifest-path v2/Cargo.toml -p homecore-assist --no-default-features',
|
|
],
|
|
limitations: [
|
|
'Deployments must supply real STT and TTS providers.',
|
|
'Disabled providers return typed errors and do not fabricate results.',
|
|
'A concrete transport adapter is still required for deployment.',
|
|
],
|
|
},
|
|
{
|
|
id: 'integrated-server',
|
|
name: 'Integrated server and dashboard boundary',
|
|
topics: ['server', 'api', 'integrations'],
|
|
status: 'implemented-configurable',
|
|
evidence: 'REPOSITORY',
|
|
summary: 'homecore-server wires the core, API, recorder, plugins, automations, assist, optional HAP, static UI, and typed upstream gateway responses into one process.',
|
|
sources: [
|
|
'v2/crates/homecore-server/Cargo.toml',
|
|
'v2/crates/homecore-server/src/main.rs',
|
|
'v2/crates/homecore-server/src/gateway.rs',
|
|
'docs/adr/ADR-161-homecore-server-layer-security.md',
|
|
],
|
|
validation: [
|
|
'cargo test --manifest-path v2/Cargo.toml -p homecore-server --no-default-features',
|
|
],
|
|
limitations: [
|
|
'Production authentication and network bindings require explicit secure configuration.',
|
|
'Unavailable upstreams return typed unavailable responses rather than simulated data.',
|
|
],
|
|
},
|
|
{
|
|
id: 'developer-metaharness',
|
|
name: 'WASM-first developer metaharness',
|
|
topics: ['testing', 'plugins', 'api'],
|
|
status: 'implemented-in-package',
|
|
evidence: 'POLICY',
|
|
summary: 'The npm package provides source-cited guidance, reviewed shared knowledge, WASM kernel diagnostics, a bounded MCP surface, focused test profiles, and guarded local Claude Code and Codex delegation.',
|
|
sources: [
|
|
'harness/homecore/README.md',
|
|
'harness/homecore/src/kernel.js',
|
|
'harness/homecore/src/policy.js',
|
|
'docs/adr/ADR-285-homecore-wasm-first-metaharness.md',
|
|
],
|
|
validation: [
|
|
'cd harness/homecore && npm test',
|
|
'cd harness/homecore && npm run test:security',
|
|
'cd harness/homecore && npm run brain:verify -- --repo ../..',
|
|
'cd harness/homecore && npm run manifest:verify',
|
|
],
|
|
limitations: [
|
|
'The harness is developer tooling, not the Homecore server runtime.',
|
|
'The MCP surface is read-only; Cargo verification and host delegation are CLI-only.',
|
|
'It never self-promotes shared knowledge or learning output.',
|
|
'Host writes require explicit double opt-in.',
|
|
],
|
|
},
|
|
]);
|