All checks were successful
Run Check Script / check (pull_request) Successful in 2m29s
Review feedback: "iot" is the wrong scope label. The pattern this crate encodes — a central operator writing desired state to NATS JetStream KV, a remote agent watching KV and reconciling — is the foundation for harmony's decentralized infrastructure management, not an IoT thing. Raspberry Pi is one concrete use case; the next consumers (OKD fleet agents, edge-compute reconcilers, any host harmony can't reach directly over a control-plane API) aren't IoT either. Rename the crate to reflect what it actually is: - `iot/iot-contracts/` → `harmony-reconciler-contracts/` (moved to the repo root, alongside the other support crates). - Package name `iot-contracts` → `harmony-reconciler-contracts`. - Consumer `Cargo.toml` path references updated in operator, agent. - `use iot_contracts::…` → `use harmony_reconciler_contracts::…` across agent + operator sources. - Crate-level prose in lib.rs + kv.rs rewritten to drop the IoT framing and describe the reconciler pattern in its own terms. - harmony/Cargo.toml drops the dep entirely — after the preceding commit moved podman Score types back in-tree, harmony no longer pulls anything from this crate. No behavior change. Wire format unchanged — the two existing public modules (`kv`, `status`) are byte-identical. Verified: - `cargo check --all-targets --all-features` clean. - `cargo test -p harmony-reconciler-contracts` — 5/5 pass. - x86_64 `smoke-a3.sh` end-to-end PASS (reboot-reconnect included). Out of scope / follow-up: the operator and agent crate names (`iot-operator-v0`, `iot-agent-v0`) and `IotScore` are still IoT-branded. Evaluating whether to flip those in this branch next.
20 lines
620 B
TOML
20 lines
620 B
TOML
[package]
|
|
name = "iot-agent-v0"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
rust-version = "1.85"
|
|
|
|
[dependencies]
|
|
harmony-reconciler-contracts = { path = "../../harmony-reconciler-contracts" }
|
|
harmony = { path = "../../harmony", default-features = false, features = ["podman"] }
|
|
async-nats = { workspace = true }
|
|
chrono = { workspace = true }
|
|
futures-util = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
tokio = { workspace = true }
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
clap = { workspace = true }
|
|
toml = { workspace = true } |