pub struct ExecutionContext {
pub clean_session_required: bool,
pub operator_verify_required: bool,
pub focused_cycle_required: bool,
}Expand description
Machine-readable execution-context attributes parsed from a backlog item’s
text (#goqueuestall).
clean_session_required—[clean-session]: the item must run from a session WITHOUT a live editor-IPC listener; running it under a live IPC listener risks closeout corruption, so go-mode skips it while live. NOTE (#qcontdrain):[clean-session]items now DRAIN IN PLACE in the in-session loop, so this flag no longer defers the continuation decision.operator_verify_required—[operator-verify]: completion needs operator-driven live verification the agent cannot perform, so go-mode never auto-drains it.focused_cycle_required—[focused-cycle](#qstallguardLayer A): the OPERATOR has declared that this item needs its own dedicated, operator- initiated cycle (e.g. merge-core / supervisor-core work that needsmake tmux-ciacross live panes), so it must NOT be auto-drained inside the queue loop even though the agent could perform the work. This is the ONLY sanctioned way to mark an agent-doable item non-loop-drainable: it moves the “this needs a focused cycle” judgment OUT of the agent’s prose reading (where it became a stall excuse) and INTO a binary-read tag. The agent must never re-derive non-drainability from an item’s description — absent this tag, a drainable head is drained.
Fields§
§clean_session_required: bool§operator_verify_required: bool§focused_cycle_required: boolImplementations§
Source§impl ExecutionContext
impl ExecutionContext
Sourcepub fn is_deferred(&self) -> bool
pub fn is_deferred(&self) -> bool
True when at least one deferral tag is present.
Sourcepub fn loop_undrainable(&self) -> bool
pub fn loop_undrainable(&self) -> bool
True when the item is undrainable by the IN-SESSION queue loop — it needs a
human ([operator-verify]) or a dedicated, freshly-cleared cycle
([focused-cycle]). [clean-session] is intentionally EXCLUDED: it
drains in place (#qcontdrain). This is the single authority for
“the in-session loop must not auto-drain this head” (#qstallguard Layer A).
Sourcepub fn supervisor_undrainable(&self) -> bool
pub fn supervisor_undrainable(&self) -> bool
True when the item is undrainable even by the SUPERVISOR clear-and-continue
drain — it needs a human ([operator-verify]). Unlike
Self::loop_undrainable, [focused-cycle] is NOT supervisor-undrainable
(#qfocsup): the supervisor idle-watch force-/clears the session and
re-dispatches a [focused-cycle] head to a genuinely fresh context, which
is exactly the fresh cycle the tag demands. So a [focused-cycle] item is
deferred by the in-session loop (which cannot give it fresh context) but
DRAINED by the supervisor’s clear-and-continue path instead of stranding the
queue idle. [clean-session] drains everywhere.
Trait Implementations§
Source§impl Clone for ExecutionContext
impl Clone for ExecutionContext
Source§fn clone(&self) -> ExecutionContext
fn clone(&self) -> ExecutionContext
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ExecutionContext
Source§impl Debug for ExecutionContext
impl Debug for ExecutionContext
Source§impl Default for ExecutionContext
impl Default for ExecutionContext
Source§fn default() -> ExecutionContext
fn default() -> ExecutionContext
impl Eq for ExecutionContext
Source§impl PartialEq for ExecutionContext
impl PartialEq for ExecutionContext
impl StructuralPartialEq for ExecutionContext
Auto Trait Implementations§
impl Freeze for ExecutionContext
impl RefUnwindSafe for ExecutionContext
impl Send for ExecutionContext
impl Sync for ExecutionContext
impl Unpin for ExecutionContext
impl UnsafeUnpin for ExecutionContext
impl UnwindSafe for ExecutionContext
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,
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.