pub struct DockNodeSnapshot {
pub node_id: String,
pub tool_name: String,
pub status: String,
pub timestamp: Option<i64>,
pub observed_at: i64,
pub run_in_background: Option<bool>,
}Expand description
One ToolNode’s last-known status, as reported by the renderer that
owns it. observed_at is stamped on receipt by the server (not trusted
from the client) so muxspect dock’s age computation is consistent
even if the renderer’s clock is skewed.
Fields§
§node_id: String§tool_name: String§status: String§timestamp: Option<i64>ToolNode.timestamp (ms) — when the tool call was initiated,
per the renderer. None if the pushing client didn’t have one.
observed_at: i64Server-side receipt time (ms) — used for age, not timestamp,
so a slow/backed-up push doesn’t understate how stale the
snapshot itself is.
run_in_background: Option<bool>Whether params.run_in_background was true on this call (Bash
only; None for every other tool). status above is the RAW
ToolNode status, which for an accepted background launch is
terminal (“success”) within ~a second — it does NOT reflect
whether the dock is still showing this row as running while it
awaits a <task-notification> (that reclassification happens
entirely client-side in tool-adapter.ts’s toolActivities,
which the server has no visibility into). This flag exists so a
human reading muxspect dock output isn’t misled by status: success into assuming the dock row is finished too — see issue
#2518, where exactly that gap let 11 of 17 backgrounded calls in
one session get stuck running in the actual UI while this raw
snapshot showed them as long-since success.
Trait Implementations§
Source§impl Clone for DockNodeSnapshot
impl Clone for DockNodeSnapshot
Source§fn clone(&self) -> DockNodeSnapshot
fn clone(&self) -> DockNodeSnapshot
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 DockNodeSnapshot
impl Debug for DockNodeSnapshot
Auto Trait Implementations§
impl Freeze for DockNodeSnapshot
impl RefUnwindSafe for DockNodeSnapshot
impl Send for DockNodeSnapshot
impl Sync for DockNodeSnapshot
impl Unpin for DockNodeSnapshot
impl UnsafeUnpin for DockNodeSnapshot
impl UnwindSafe for DockNodeSnapshot
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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