Enum ResolveOutcome
pub enum ResolveOutcome {
Resumed(Box<SopRunAction>),
Denied,
Revised,
AlreadyResolved,
NotWaiting,
RejectedSelfApproval,
DeferredAtCapacity,
}Expand description
What resolve_gate did. Returned to the caller (tool / CLI / gateway) so it
can report, and so the executor/tick can act on a resumed action.
Variants§
Resumed(Box<SopRunAction>)
Approved: the next ExecuteStep action (the cleared gate).
Denied
Denied: the run is Cancelled; no further action.
Revised
Revised: the checkpoint’s predecessor re-drafted with the operator’s guidance and the gate re-presented (revision + 1). The run stays parked.
AlreadyResolved
Idempotent: the run was already resolved within the grace window (a late timeout racing a human decision). No double ledger row, no double persist.
NotWaiting
The run is not in WaitingApproval (not found / wrong status). Typed, not a panic.
RejectedSelfApproval
approval_mode forbids this principal from clearing the gate (an agent under
OutOfBandRequired, or a non-agent under AgentTool). The gate stays open.
DeferredAtCapacity
Approved, but every execution slot is full: re-admitting the run would exceed
the SOP’s max_concurrent or the global max_concurrent_total. The gate is
left WaitingApproval (untouched, re-resolvable, no ledger row, no claim);
a later resolve or the timeout tick’s retry resumes it once a slot frees. This
is routine backpressure, not a rejection - the caps are enforced on resume.
Implementations§
Trait Implementations§
Source§impl Clone for ResolveOutcome
impl Clone for ResolveOutcome
Source§fn clone(&self) -> ResolveOutcome
fn clone(&self) -> ResolveOutcome
1.0.0 (const: unstable) · §fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ResolveOutcome
impl RefUnwindSafe for ResolveOutcome
impl Send for ResolveOutcome
impl Sync for ResolveOutcome
impl Unpin for ResolveOutcome
impl UnsafeUnpin for ResolveOutcome
impl UnwindSafe for ResolveOutcome
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more