pub enum AgentStatus {
Success,
Failed,
RateLimited,
Unknown,
ResourceKilled,
AgentUnavailable,
IdleTimeout,
}Expand description
Agent completion status determined by DevFlow.
Variants§
Success
Agent self-reported success via DEVFLOW_RESULT.
Failed
Agent self-reported failure, or exit code + commit gate indicated failure.
RateLimited
Agent stopped because an upstream API or usage quota rate-limited it.
Unknown
No signal received — fallback to exit code / commit heuristic.
ResourceKilled
Layer 2 classified the process as killed for resource exhaustion (exit code 137, typically SIGKILL from an OOM killer) (D-07, 17b).
Layer 2 classified the process as unable to start (exit code 127, typically “command not found”) (D-07, 17b).
IdleTimeout
The pipe-owning monitor gave up waiting: the child’s stream went silent for longer than the idle window and DevFlow terminated it (D-06, 31-02).
Deliberately distinct from BOTH neighbours it would otherwise collapse
into. Against Failed: nothing reported a failure — the agent simply
stopped talking, and a graceful close would fall through to Layer 2,
which scores partial commits as Success (999.64 reborn inside its own
fix). Against ResourceKilled: the box did not run out of memory;
DevFlow itself did the killing. Only a third variant lets the completion
oracle tell “we gave up waiting” from either.
The explicit #[serde(rename)] is required, not stylistic: the
enum-level rename_all = "lowercase" would collapse the two words into
idletimeout. The two existing two-word variants above carry the same
rename for the same reason.
Implementations§
Source§impl AgentStatus
impl AgentStatus
Sourcepub fn as_wire_str(&self) -> &'static str
pub fn as_wire_str(&self) -> &'static str
The wire-format name for this variant, pinned equal to
serde_json::to_string(&self) with the surrounding quotes stripped
(see the as_wire_str_matches_serde_form test). Exhaustive match with
NO wildcard arm — adding a variant without updating this is a compile
error. This is the sanctioned replacement for
format!("{:?}", status).to_ascii_lowercase(), which collapses word
boundaries on multi-word variants (review consensus #1).
Trait Implementations§
Source§impl Clone for AgentStatus
impl Clone for AgentStatus
Source§fn clone(&self) -> AgentStatus
fn clone(&self) -> AgentStatus
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more