hm-exec 0.0.8

Pluggable CI execution backends (local VM + cloud) for the hm CLI.
Documentation

Pluggable CI execution backends for hm run.

Design

The pluggable boundary is the whole build, not a single step. [ExecutionBackend::start] accepts a [RunRequest] and returns a [BackendHandle]. Calling [BackendHandle::into_parts] splits the handle into:

  • An [EventStream] of [hm_plugin_protocol::events::BuildEvent]s — hand this to hm-render for terminal output.
  • A [Control] struct with cancel() (Ctrl-C) and wait() (terminal outcome).

Backends

  • [LocalBackend] — runs the build in-process using a DAG scheduler that executes each step inside a lightweight VM via the hm-vm subsystem (a [hm_vm::VmBackend] + snapshot registry; Docker is one such backend).
  • [CloudBackend] — submits the build to the Harmont cloud and watches it over the REST SDK, emitting the same BuildEvent stream.

Auth

This crate never reads credentials from disk. The caller constructs a HarmontClient and injects it; hm owns credential loading.