pub struct AttachSnapshot {
pub meta: SessionMeta,
pub view: RuntimeView,
pub conversation: ConversationSnapshot,
pub streaming: bool,
pub replay: Vec<Envelope>,
pub pending_prompts: Vec<PromptRequest>,
pub clients: Vec<(ClientId, ClientKind)>,
pub input_owner: Option<ClientId>,
pub display_tail: Option<DisplayTail>,
}Fields§
§meta: SessionMeta§view: RuntimeView§conversation: ConversationSnapshot§streaming: bool§replay: Vec<Envelope>Current-turn events since TurnStarted (bounded ring) so a mid-turn attach can rebuild partial text/tool cards.
pending_prompts: Vec<PromptRequest>§clients: Vec<(ClientId, ClientKind)>§input_owner: Option<ClientId>Who owns input right now (B1) — so a joiner knows immediately whether its keystrokes will be honoured.
display_tail: Option<DisplayTail>Daemon-projected display tail — Some iff the client attached with
HistoryMode::Digest (conversation.api_messages is then empty).
Implementations§
Source§impl AttachSnapshot
impl AttachSnapshot
Sourcepub fn input_owned_elsewhere(&self, me: ClientId) -> Option<String>
pub fn input_owned_elsewhere(&self, me: ClientId) -> Option<String>
For the client this snapshot was made for (me): who owns input, if
someone else does — “input is owned by client #1 (tui); attach with
–takeover to steal it”. Rendered by each client from its OWN
snapshot; the actor used to broadcast it as a SystemNotice, which
every attached client (the owner included) and later attach replays
showed.
Trait Implementations§
Source§impl Clone for AttachSnapshot
impl Clone for AttachSnapshot
Auto Trait Implementations§
impl Freeze for AttachSnapshot
impl RefUnwindSafe for AttachSnapshot
impl Send for AttachSnapshot
impl Sync for AttachSnapshot
impl Unpin for AttachSnapshot
impl UnsafeUnpin for AttachSnapshot
impl UnwindSafe for AttachSnapshot
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.