Expand description
One ephemeral runner, from an allocation decision to a scrubbed runtime.
The ordering in this module is intentional. An attempt is written before the package or GitHub is touched, the JIT value exists only in a restrictive handoff, and a registration-timeout termination is journalled before the process is signalled. Recovery uses the same code as ordinary supervision; startup merely supplies the first observation.
Re-exports§
pub use ExecutionProvider as ProcessSupervisor;
Structs§
- Attempt
Event Log - Cached
Runtime Packages - Production package adapter. It takes an e2 lease before returning, so a cache entry can never look unused while its runtime is starting.
- JitRequest
Failure - Launch
Timings - Where one launch spent its time. A step the launch never reached is zero.
- Lifecycle
Github Observation - GitHub’s authoritative runner state plus the identity returned by inventory. The id is carried independently of the local sidecar so recovery can close the crash boundary immediately after a successful remote registration.
- Lifecycle
Launcher - Production implementation of e1’s launcher port.
- Lifecycle
Ports - Native
Processes - Native process supervision. The start token is stored beside the runtime; recovery never trusts a recycled PID merely because SQLite contains it.
- NoAttempt
Events - OneTime
JitHandoff - The JIT value can be passed into a provider start exactly once. It must never become a provider identity, label, argument, persisted configuration or log field.
- Package
Timings - Where a launch’s package step went, across its retries.
- Persistent
Demand - Platform
Execution Provider - Production provider set. Native and isolated allocations are routed by the immutable execution kind in the policy/journal; an unavailable isolated backend can never fall through to native process launch.
- Prepared
Environment - Process
Start Failure - Process operations are attempt-addressed so a recovered process and a child started in this invocation are supervised through one port.
- Prune
Authority - Unforgeable evidence that pruning was reached through e1’s launch request. The type is public only because it appears in the public adapter trait; its private field and constructor prevent callers from substituting a guard acquired from an unrelated lock.
- Resolved
Environment - Retry
Policy - Retry bounds for failures that can resolve without operator action.
- Shared
Packages - What every target of one daemon shares about the one package directory they all use: which trees this process vouches for, and who may touch them.
- Tokio
Retry Delay - Tracing
Attempt Events - The daemon’s sink for retries and launch timings; the other attempt events already reach the log through the reconcile sink.
- Windows
HyperV Containers
Enums§
- Attempt
Event - Non-secret lifecycle evidence. Payloads are identifiers and closed enums; neither the encoded configuration nor child output can enter this type.
- Environment
Identity - Environment
State - Lifecycle
Error - Provider
Capability - A credential-free capability report. An isolated policy never treats a native-ready result as permission to launch.
- Provider
Destroy - Provider
Diagnostic - Closed, non-secret provider diagnostics; adapters cannot attach arbitrary output.
- Provider
Stop - Windows
HyperV Host State - Host-only preflight detail. It is a closed vocabulary and never carries provider output, so CLI/TUI surfaces cannot accidentally expose it.
Traits§
- Attempt
Event Sink - Demand
Persistence - Whether the demand that justified a retry still exists.
- Execution
Provider - Provider lifecycle and native process supervision. The default lifecycle methods adapt the existing native spawn/recovery implementation, and refuse every isolated allocation. Future platform adapters must implement their own prepare/start/inspect/stop/destroy paths rather than fall back here.
- Lifecycle
Github - The two GitHub views the lifecycle needs, combined so one fake can drive registration and authoritative runner telemetry.
- Retry
Delay - Runtime
Packages - Package/cache operations used by one attempt.
Functions§
- preparation_
turns - How many runners of one host prepare at once, whatever their target: a quarter of its cores, at least two. A runner’s package is ~9,000 files, and on a disk jobs are using, more at once only make all of them slower. Fair, so the ones waiting go in the order they were reserved.
- runner_
name - The name an attempt’s runner registers with GitHub, which a
workflow_jobwebhook’srunner_namerepeats.