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 roster: Vec<ClientInfo>,
pub client_input: ClientInput,
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)>§roster: Vec<ClientInfo>Every attached client with its resolved name (clients stays for
older clients). Empty from an older daemon.
client_input: ClientInputWho may drive (ClientInput); Exclusive from an older daemon.
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 tui (#1); 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.
None with client_input = shared: every drive client may type.
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
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>
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>
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)
&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)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.