yah-local-driver 0.8.22

Local-tier infrastructure primitives shared by cloud (sim/pond reconciler) and yubaba (pond MinIO slot lifecycle): docker-CLI runtime detection + S3 SigV4 helpers.
Documentation

Local-tier infrastructure primitives shared by cloud (sim/pond reconciler) and yubaba (pond MinIO slot lifecycle).

Two concerns live here:

  1. local_runtime — detect an orbstack/docker-desktop/colima/podman/ docker socket and drive appliance containers via the docker CLI. The docker-CLI driver was previously cloud::local_runtime; yubaba grew a dep on it in R374-F3 when MinIO lifecycle moved into the pond workload-status surface.

  2. s3_sign — AWS Signature Version 4 helpers for S3-compatible object storage. Used by cloud's Hetzner driver, the R2 publisher, and yubaba's MinIO bucket-public bring-up.

The crate is intentionally backend-agnostic: no cloud-config types, no yubaba-config types. Callers wire it in via small adapters in their own crates (see cloud::local_container_spec_from_provider).

@yah:ticket(R374-F3, "Extracted from cloud crate so yubaba owns MinIO lifecycle without a yubaba→cloud dep") @yah:at(2026-06-28T20:35:37Z) @yah:status(review) @yah:parent(R374) @arch:see(.yah/docs/working/W142-pond.md) @yah:gotcha("yubaba's MinioReconciler probe runs every 5s; after 3 consecutive restart failures it marks the workload Failed and exits the loop. PondPhase Failed is terminal — operator restarts the camp daemon.") @yah:gotcha("Camp passes Arc to yubaba once at startup. If orbstack/colima/docker isn't running when camp starts, pond mirrors are skipped with a clear warning; restart yah-camp once the runtime is up.") @yah:gotcha("local-driver moved into the untracked oss/yah-base workspace (crate extraction reorg, not yet committed). cargo test -p local-driver must run from oss/yah-base, not oss/yubaba.") @yah:verify("cargo test -p yubaba --lib # 106 pass (grew past handoff's 85 as later work landed); F3's PondRegistry + MinioReconciler tests intact") @yah:verify("cargo test -p cloud --lib # 467 pass (grew past handoff's 212); F3 adopt-path + shared pond_minio primitives green") @yah:verify("cargo test -p local-driver --lib # 64/64 (run from oss/yah-base)") @yah:verify("YAH_LOCAL_SIM_E2E=1 cargo test -p yubaba --test pond_reconciler_smoke # LIVE re-verified 2026-06-28: docker kill MinIO → recover 11.2s; docker kill miniflare → recover 11.2s. Both reconcilers restart their slot; half-alive structurally impossible.") @yah:verify("Cold-start within S1 budget (cold ~1.2s / warm ~500ms) via YAH_LOCAL_SIM_E2E=1 cargo test -p cloud --release --test pond_smoke. Bundled in .yah/qed/pond-smoke.toml.")