crates/nornir-jobs/src/lib.rs
//! # nornir-jobs
//!
//! The unified **job ledger** — the one durable redb list of every long-running
//! nornir operation (release runs, workspace fetch/republish, docs render/export,
//! scans, bench, test matrix, index build, vector embed, …): the op *lifecycle*
//! (`running → done|failed` + timing), orthogonal to the Iceberg result the op
//! produced.
//!
//! A self-contained redb + serde leaf (its warehouse links are documentation
//! only; the concrete Iceberg persistence stays in nornir). nornir re-exports
//! this as `nornir::jobs` (via `pub use nornir_jobs as jobs`), so every
//! `crate::jobs::…` call site resolves unchanged.
// nornir-jobs is now a thin FACADE over `jera` (edda) — the ONE canonical job
// ledger + container runtime for the whole constellation. It used to carry its
// own duplicate `jobs` module; that diverged from jera's copy and, once `dwarves`
// (published) switched to `jera`, the two distinct-but-identical `JobSink`/
// `JobRecord` types clashed at the nornir↔dwarves boundary. Re-exporting jera
// makes `nornir_jobs::* == jera::{jobs,container}::*` (one type), so nornir keeps
// every `nornir_jobs::…` / `crate::jobs::…` call site unchanged while sharing
// jera's types with dwarves. (Your "nornir-jobs should depend 100% on jera".)
pub use jera::container::*;
pub use jera::jobs::*;
pub mod selftest;