pub enum DaemonAction {
Show 62 variants
NativeAgentHistory {
owner: String,
child: String,
before: Option<(u64, String)>,
},
Ping,
PrepareUpgrade,
UpgradeBlockers,
Status,
WebViewerAccess,
RecoverWebViewer(WebViewerRecovery),
InspectWebListener,
ListWorkspaces,
CreateWorkspace {
name: String,
},
RenameWorkspace {
workspace_id: String,
name: String,
},
TouchWorkspace {
workspace_id: String,
},
CloseWorkspace {
workspace_id: String,
},
CancelWorkspaceClose {
workspace_id: String,
},
DeleteWorkspace {
workspace_id: String,
},
Attach {
client_id: String,
pid: u32,
},
Detach {
client_id: String,
},
PersistReadReceipt {
client_id: String,
workspace_id: String,
session_id: String,
through: u64,
},
PersistDetachedSessionState {
client_id: String,
workspace_id: String,
session_id: String,
through: u64,
owner_pid: u32,
draft: DetachedSessionDraft,
},
SaveActiveReview {
session_id: String,
review: StoredReview,
},
ClearActiveReview {
session_id: String,
},
SaveWorkspacePaneSizes {
workspace_id: String,
sizes: PaneSizes,
},
SaveWorkspaceLayout {
workspace_id: String,
layout: ConversationLayout,
},
PersistImportedSession {
session: Box<SessionRecord>,
},
SetSessionTitle {
session_id: String,
title: String,
},
SetSessionContainerSettings {
session_id: String,
cpus: Option<String>,
memory: Option<String>,
mounts: Vec<AdditionalMount>,
mount_history: Vec<PathBuf>,
},
SetSessionAcpTitle {
session_id: String,
title: Option<String>,
},
MarkSessionTargetMissing {
session_id: String,
detail: String,
updated_at: String,
},
CheckpointSession {
session_id: String,
},
WikiSearch {
query: String,
limit: usize,
},
WikiBrief {
wiki_id: String,
max_chars: usize,
},
WikiHits {
wiki_id: String,
query: String,
context_messages: usize,
per_message_chars: usize,
},
WikiSession {
wiki_id: String,
},
WikiRestore(WikiRestoreRequest),
ScanRecovery {
all_instances: bool,
},
AdoptRecovery {
session_id: String,
target_id: String,
profile: Option<String>,
bundle: Option<String>,
all_instances: bool,
},
DestroyRecovery {
session_id: String,
target_id: String,
confirmation: String,
all_instances: bool,
},
Snapshot {
workspace_id: String,
},
RuntimeSnapshot {
workspace_id: String,
after_revision: u64,
all_workspaces: bool,
},
RenameProfile {
old_id: String,
new_id: String,
},
RenameTarget {
old_id: String,
new_id: String,
},
SubmitSessionCommand {
inherited_draft: Option<String>,
session_id: String,
command_id: String,
command: RelayCommand,
},
QueueStartupPrompt {
session_id: String,
text: String,
inherited_draft: Option<String>,
},
SyncSession {
session_id: String,
},
RespondElicitation {
session_id: String,
elicitation_id: String,
response: ElicitationResponse,
},
StopBackgroundTask {
session_id: String,
background_task_id: String,
},
ReviewerAction {
session_id: String,
role: Option<String>,
action: ReviewerAction,
},
StartTurnReview {
session_id: String,
},
ResolveTurnReview {
session_id: String,
resolution: Resolution,
},
SuspendSession {
session_id: String,
},
StartCreateSession(CreateSessionRequest),
WaitCreateSession {
session_id: String,
},
ResumeSession(ResumeSessionRequest),
PrepareMoveSession(MoveSelection),
MoveSession(MoveSessionRequest),
DiscardSinceCheckpoint {
session_id: String,
checkpoint: CheckpointMetadata,
},
DestroyStoppedSession {
session_id: String,
delete_branch: bool,
},
ForceDestroySession {
session_id: String,
delete_branch: bool,
},
ForceDeleteWorkspace {
workspace_id: String,
},
CancelLifecycle {
session_id: String,
},
RecoverDraft {
draft_id: String,
},
Stop,
}Expand description
Ping, Status, and Stop form the frozen management subset: their wire
encoding — together with RequestEnvelope, ResponseEnvelope,
DaemonStatus, and WebViewerStatus — must never change shape, because
clients and daemons of any protocol version rely on them to identify,
stop, and replace each other. PrepareUpgrade and its Done /
UpgradePending replies are also frozen from protocol 33 onward: they
drain accepted work before closing admission atomically. Every other
action may change freely behind a PROTOCOL_VERSION bump.
Variants§
NativeAgentHistory
Ping
PrepareUpgrade
Frozen upgrade handshake, available from daemon protocol 33 onward. Busy replies leave every operation and control channel running.
UpgradeBlockers
Names the daemon-owned work that is currently holding an automatic handoff open, for the CLI’s wait notice.
Added after protocol 33, so it is not part of the frozen management subset. A daemon that predates it cannot deserialize the frame: it fails the request and closes the connection. Callers must therefore treat any failure, including a dropped connection or an error frame, as “unknown” and say nothing about what the upgrade is waiting for.
Status
WebViewerAccess
RecoverWebViewer(WebViewerRecovery)
InspectWebListener
ListWorkspaces
CreateWorkspace
RenameWorkspace
TouchWorkspace
CloseWorkspace
CancelWorkspaceClose
DeleteWorkspace
Attach
Detach
PersistReadReceipt
PersistDetachedSessionState
Fields
draft: DetachedSessionDraftSaveActiveReview
ClearActiveReview
SaveWorkspacePaneSizes
SaveWorkspaceLayout
PersistImportedSession
Fields
session: Box<SessionRecord>SetSessionTitle
SetSessionContainerSettings
Fields
mounts: Vec<AdditionalMount>SetSessionAcpTitle
MarkSessionTargetMissing
CheckpointSession
WikiSearch
Search the user’s SessionWiki index. An empty query lists the most recent sessions.
WikiBrief
The markdown briefing for one indexed session.
WikiHits
The passages of one indexed session that match a query, with context.
WikiSession
What one indexed session is, and what continuing it would mean.
WikiRestore(WikiRestoreRequest)
Start a new session from an archived one’s transcript.
ScanRecovery
AdoptRecovery
Fields
DestroyRecovery
Snapshot
RuntimeSnapshot
RenameProfile
RenameTarget
SubmitSessionCommand
QueueStartupPrompt
Deliver a prompt typed while a session was still starting, once the daemon sees that session’s harness become ready. The daemon owns the wait, so the prompt arrives whether or not this client is still running or still showing that session.
Fields
SyncSession
RespondElicitation
StopBackgroundTask
ReviewerAction
Drive a session’s second-opinion reviewer. The reviewer is a sidecar of the session’s worker, so it travels the session’s own relay rather than becoming a session of its own here.
Fields
role: Option<String>Which reviewing role the action drives; absent means the default one, which is what plan review uses.
action: ReviewerActionStartTurnReview
Review the turn this session just finished, on a surface’s request.
ResolveTurnReview
Forward, dismiss, or cancel the open review.
SuspendSession
StartCreateSession(CreateSessionRequest)
WaitCreateSession
ResumeSession(ResumeSessionRequest)
PrepareMoveSession(MoveSelection)
MoveSession(MoveSessionRequest)
DiscardSinceCheckpoint
DestroyStoppedSession
Fields
ForceDestroySession
ForceDeleteWorkspace
CancelLifecycle
RecoverDraft
Stop
Trait Implementations§
Source§impl Clone for DaemonAction
impl Clone for DaemonAction
Source§fn clone(&self) -> DaemonAction
fn clone(&self) -> DaemonAction
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 DaemonAction
impl Debug for DaemonAction
Source§impl<'de> Deserialize<'de> for DaemonAction
impl<'de> Deserialize<'de> for DaemonAction
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<DaemonAction, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<DaemonAction, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for DaemonAction
impl Serialize for DaemonAction
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for DaemonAction
impl RefUnwindSafe for DaemonAction
impl Send for DaemonAction
impl Sync for DaemonAction
impl Unpin for DaemonAction
impl UnsafeUnpin for DaemonAction
impl UnwindSafe for DaemonAction
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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<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