# homecore-recorder — SQLite state history + semantic search (ADR-132) # # P1 ships: SQLite structural persistence with HA-compat schema. # P2 ships: ruvector-backed SemanticIndex — hash embeddings, HNSW search (ADR-132 P2, Iter-6 track C). # P3 plan: replace hash embeddings with ruvector-attention sentence embeddings (dim → 384). # # Build: cargo build -p homecore-recorder --features ruvector # Test (P2): cargo test -p homecore-recorder --features ruvector (20 tests) # Test (P1): cargo test -p homecore-recorder --no-default-features (14 tests) [package] name = "homecore-recorder" version = "0.1.0-alpha.0" edition = "2021" license = "MIT" authors = ["rUv ", "HOMECORE Contributors"] description = "SQLite state-history recorder for HOMECORE — HA-compat schema + ruvector semantic search (ADR-132)" repository = "https://github.com/ruvnet/RuView" [lib] name = "homecore_recorder" path = "src/lib.rs" [features] default = [] ruvector = ["dep:ruvector-core", "dep:sha2"] [dependencies] homecore = { path = "../homecore", version = "0.1.0-alpha.0" } # Async runtime tokio = { version = "1", features = ["sync", "rt", "rt-multi-thread", "time", "macros"] } # SQLite via sqlx — only the lite feature set; no postgres, no tls sqlx = { version = "0.8.1", default-features = false, features = [ "runtime-tokio-native-tls", "sqlite", "chrono", "uuid", ] } # Serialisation serde = { version = "1", features = ["derive"] } serde_json = "1" # Time chrono = { version = "0.4", features = ["serde"] } # Error handling thiserror = "1" # Structured logging tracing = "0.1" # Trait objects for SemanticIndex async-trait = "0.1" # P2: ruvector-core HNSW index + sha2 for hash-based embeddings (ruvector feature) ruvector-core = { version = "2.2.0", optional = true, default-features = false } sha2 = { version = "0.10", optional = true } [dev-dependencies] tokio = { version = "1", features = ["full", "test-util"] }