pub enum TerminationReason {
DonePRGreen,
DoneAdvisory,
DoneDelivery,
DoneBatched,
DoneAwaitingMerge,
DonePlanned,
NoWork,
Budget,
NoProgress,
Interrupted,
Aborted,
}Expand description
Why the loop terminated. Serialized as the exact string enum the spec names.
Variants§
DonePRGreen
DoneAdvisory
DoneDelivery
DoneBatched
A batch-lane member (batch-lane Wave 2/3): its commits live on a shared
batch branch and ship via the batch PR, not its own, so there is no
per-node PR to go green. Terminal, but NOT a ship reason - the batch’s
own /pr create graduates the plan; a member must not.
DoneAwaitingMerge
Work complete (PR open, mergeable, reviewed, HEAD shipped) but done()
fails SOLELY on CI-green because main itself is red on the same checks,
and a bg agent cannot merge. Proven pre-existing main-red (strict
check-name subset against current main HEAD) terminates the loop with a
one-shot merge-recommendation notify instead of burning to NoProgress.
Terminal, but NOT a ship reason (like DoneBatched): never merges, never
marks the node done - a human merge then the out-of-band-merge reconcile
path closes it, and DonePRGreen always wins when observable.
DonePlanned
A plan-only thread reached the plan boundary cleanly (manifest planned
flag + a promise). It produced planning output, not a delivery, so it is
terminal but deliberately NOT a ship reason (out of finalize.SHIP_REASONS
-> no plan stamp/graduate) and NOT a postmortem reason (a plan is not
stuck). Benign like NoWork; distinct from DoneAdvisory, which DOES
graduate. The scoreboard’s planned bucket is keyed on the phase set,
never on this terminal.
NoWork
Budget
NoProgress
Interrupted
Aborted
Trait Implementations§
Source§impl Clone for TerminationReason
impl Clone for TerminationReason
Source§fn clone(&self) -> TerminationReason
fn clone(&self) -> TerminationReason
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TerminationReason
impl Debug for TerminationReason
Source§impl<'de> Deserialize<'de> for TerminationReason
impl<'de> Deserialize<'de> for TerminationReason
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for TerminationReason
Source§impl PartialEq for TerminationReason
impl PartialEq for TerminationReason
Source§impl Serialize for TerminationReason
impl Serialize for TerminationReason
impl StructuralPartialEq for TerminationReason
Auto Trait Implementations§
impl Freeze for TerminationReason
impl RefUnwindSafe for TerminationReason
impl Send for TerminationReason
impl Sync for TerminationReason
impl Unpin for TerminationReason
impl UnsafeUnpin for TerminationReason
impl UnwindSafe for TerminationReason
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.