Files
ruvnet--RuView/v2/crates/homecore-recorder/Cargo.toml
T
ruv a422995817 feat(homecore-recorder/p1): ADR-132 SQLite recorder + fnv64a attr dedup (14 tests pass)
- SQLite-backed state history with HA-compat schema (states, state_attributes,
  events, recorder_runs) mirroring recorder schema v48
- FNV-1a 64-bit attribute deduplication matching HA's db_schema.py fnv64a
- RecorderListener subscribes to StateMachine broadcast and persists every
  state change; subscription created at construction to avoid missed events
- SemanticIndex trait + NullSemanticIndex for P1; ruvector-backed impl stub
  feature-gated behind --features ruvector for P2 hand-off

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-25 18:27:26 -04:00

58 lines
1.5 KiB
TOML

# homecore-recorder — SQLite state history + semantic search (ADR-132)
#
# P1 ships: SQLite structural persistence with HA-compat schema.
# P2 (feature-gated): ruvector-backed SemanticIndex for embedding search.
#
# Build: cargo build -p homecore-recorder --no-default-features
# Test: cargo test -p homecore-recorder --no-default-features
[package]
name = "homecore-recorder"
version = "0.1.0-alpha.0"
edition = "2021"
license = "MIT"
authors = ["rUv <ruv@ruv.net>", "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 = []
[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.7", 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"
[dev-dependencies]
tokio = { version = "1", features = ["full", "test-util"] }