pub enum RunStatus {
Show 13 variants
Prep,
Implementing,
Judging,
Deliberating,
Voting,
Reviewing,
Gating,
Landing,
Merged,
Ready,
Stalled,
Blocked,
Failed,
}Expand description
Where a run got to.
Variants§
Prep
Worktrees being prepared.
Implementing
Candidates being implemented.
Judging
Judges ranking blind.
Deliberating
Judges deliberating after a split.
Voting
Final votes being collected privately.
Reviewing
Winner in the review + verification loop.
Gating
Gate commands running.
Landing
Inside crate::land’s post-merge loop: watching CI, running a fix
round, rebasing onto a moved base, or waiting on the owner’s merge
approval. A run parked here while an approval is outstanding has
handed its daemon slot back — see crate::daemon — and resumes
through exactly this status, not a fresh competition.
Merged
Winner merged.
Ready
Winner passed the gate; merge was not requested.
Stalled
The judgement did not gather enough judges (e.g. rate limiting took out
seats), so the verdict is not trustworthy. The run stopped and kept its
work so it can be resumed or folded — it must never be confused with a
healthy Ready.
Blocked
Review rounds exhausted with findings still open, or the gate failed.
Failed
The graph could not complete.
Implementations§
Source§impl RunStatus
impl RunStatus
Sourcepub fn as_str(self) -> &'static str
pub fn as_str(self) -> &'static str
The name this status is written and shown under, matching the
snake_case serde spelling so a log line, an error message and the
JSON a phone reads all say the same word.
Sourcepub fn resumable(self) -> bool
pub fn resumable(self) -> bool
Can this run be carried on from where it stopped?
Everything except a finished run and a failed one. execute skips
nodes already recorded, so re-entering is cheap wherever the run
stopped, and the alternative is always a fresh competition against
work that already exists.
Stalledre-asks only the seats whose absence collapsed the panel, keeping the candidates that were already paid for.Blockedre-enters the review loop against a branch that is built.- A non-terminal status means the run was interrupted: a parked
run waiting for its upgrade, or one whose daemon was killed. This
used to be excluded, which left run 4043 stuck at
reviewingwith the deck telling the operator it could not be resumed - the one state where resuming is the only sensible answer.
Failed does not qualify: the graph could not complete and there is
no established point to continue from. Nor does a finished run, whose
answer is a new competition.
Whether anything is already driving the run is a separate question,
answered by daemon::is_working_on at the callers that need it.
Trait Implementations§
impl Copy for RunStatus
Source§impl<'de> Deserialize<'de> for RunStatus
impl<'de> Deserialize<'de> for RunStatus
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 RunStatus
impl StructuralPartialEq for RunStatus
Auto Trait Implementations§
impl Freeze for RunStatus
impl RefUnwindSafe for RunStatus
impl Send for RunStatus
impl Sync for RunStatus
impl Unpin for RunStatus
impl UnsafeUnpin for RunStatus
impl UnwindSafe for RunStatus
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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