sui-dockerfile-wrapper 0.1.29

Intercept/resolve/fall-through wrapper around `docker build` — cache-first via sui-cache, falling through to real docker on any miss (supa-charge-akeyless-ci Phase 2)
Documentation

Phase 2 of supa-charge-akeyless-ci: the intercept/resolve/fall-through wrapper around plain docker build.

Given a Dockerfile path + build context + build-arg map, this crate:

  1. computes the [sui_spec::dockerfile] content-addressed DockerfileGraph;
  2. checks every node's content_hash against a [sui_cache::storage::StorageBackend] (the same trait sui cache serve runs — see [cache]);
  3. on a full cache hit, materializes the already-built image via docker pull instead of rebuilding — [WrapperOutcome::CacheHit];
  4. on any miss (partial or full), shells out to a real docker build for the entire Dockerfile — never a partial cache splice, an explicit non-goal per the supa-charge-akeyless-ci plan — then back-fills the cache with every node's hash → image reference for next time — [WrapperOutcome::CacheMiss];
  5. on a failing docker build, returns [WrapperOutcome::BuildFailed] — never a panic.

I/O is behind two injectable seams: [command::CommandRunner] (the docker subprocess) and [sui_cache::storage::StorageBackend] (the cache). Both are mocked in this crate's tests; production wires the real [command::RealCommandRunner] and a real backend built via [sui_cache::storage::build_backend].