estate/holger-live/Cargo.toml
[package]
name = "holger-live"
description = "Holger's live slot: a box's (main, twin, front) own A/B app slot over korp-installer `live`, answering the shared nordisk-pairing live door (/live/running, /live/stage), then confirm or roll back. Gunnar's lifecycle pattern, Holger's own code."
version.workspace = true
edition = "2021"
license = "MIT OR Apache-2.0"
# publishable (OX-VARIANTS 2026-10-28): an optional dependency of `holger`, so `cargo publish -p holger` needs it on crates.io.
publish = true
# **Why its own crate** (L20, 2026-10-18): holger-server's box (server/cli `paired`) and
# holger-estate-front (its own workspace) both take the live update; neither links the other,
# so the slot lives once, here. No monetize crate at all: the update is DRIVEN by the front
# over monetize's update path; this is only the box's side of it.
[dependencies]
# The wire: `Running`, `Stage`, the door's paths (0.5.14: the shared box and front answer it).
nordisk-pairing = { version = "0.5.26" }
# The slot, the verification legs, the setting, the confirm and the rollback: korp's own
# (`live`), the code korp-start boots the slot with. The dep-light core: no znippy, no splash.
korp-installer = { version = "0.2.8", default-features = false }
[target.'cfg(target_os = "linux")'.dependencies]
# SIGTERM to PID 1 itself (the graceful stop before the re-exec) and the sync.
nix = { version = "0.31", default-features = false, features = ["signal", "fs"] }
[features]
default = []
# **The bench's korp-start** (`LiveSlot::boot_as_korp_start`): what korp-start does with the
# setting at a re-exec, for tests that have no PID 1 to re-exec. Never in a shipped build.
bench = ["dep:ed25519-dalek", "dep:blake3"]
# **The trial confirm as jera jobs** (L21, `trial`): the owner's rule — a box's background work
# runs as jera ChainQueue jobs with priority, never a bare task. The box and the front turn it on.
jobs = ["dep:jera", "dep:tokio", "dep:serde_json", "dep:anyhow"]
[dependencies.jera]
version = "0.2.0"
default-features = false
optional = true
[dependencies.tokio]
version = "1"
features = ["rt", "time"]
optional = true
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.anyhow]
version = "1"
optional = true
[dependencies.ed25519-dalek]
version = "3"
optional = true
[dependencies.blake3]
version = "1"
optional = true
[[test]]
name = "the_live_slot"
required-features = ["bench"]
[[test]]
name = "the_trial_job"
required-features = ["bench", "jobs"]
[dev-dependencies]
blake3 = "1"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "time"] }