summaryrefslogtreecommitdiff
path: root/makima/src/server/handlers/mesh_daemon.rs
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-03-02 15:18:31 +0000
committerGitHub <noreply@github.com>2026-03-02 15:18:31 +0000
commit78cb861412850889424ae7d5ae5cd952a2b90295 (patch)
tree7a6eb0693457886dbe0eea84c0c1489724791f79 /makima/src/server/handlers/mesh_daemon.rs
parent2bc1cd4717b587cd2b8ffccd723b62f888e61aa8 (diff)
downloadsoryu-78cb861412850889424ae7d5ae5cd952a2b90295.tar.gz
soryu-78cb861412850889424ae7d5ae5cd952a2b90295.zip
feat: move daemon reauth to daemons page, add contract-backed directive steps, rename Mesh to Exec (#84)
* feat: soryu-co/soryu - makima: Rename Mesh to Exec in navigation * WIP: heartbeat checkpoint * WIP: heartbeat checkpoint * WIP: heartbeat checkpoint * feat: soryu-co/soryu - makima: Add contract-backed steps to directive flow * WIP: heartbeat checkpoint
Diffstat (limited to 'makima/src/server/handlers/mesh_daemon.rs')
-rw-r--r--makima/src/server/handlers/mesh_daemon.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/makima/src/server/handlers/mesh_daemon.rs b/makima/src/server/handlers/mesh_daemon.rs
index 743a1ca..30439a4 100644
--- a/makima/src/server/handlers/mesh_daemon.rs
+++ b/makima/src/server/handlers/mesh_daemon.rs
@@ -350,6 +350,18 @@ pub enum DaemonMessage {
/// Hostname of the daemon requiring auth
hostname: Option<String>,
},
+ /// Reauth status update (response to TriggerReauth/SubmitAuthCode commands)
+ ReauthStatus {
+ #[serde(rename = "requestId")]
+ request_id: Uuid,
+ /// Status: "url_ready", "completed", "failed"
+ status: String,
+ /// OAuth login URL (present when status is "url_ready")
+ #[serde(rename = "loginUrl")]
+ login_url: Option<String>,
+ /// Error message (present when status is "failed")
+ error: Option<String>,
+ },
/// Response to RetryCompletionAction command
CompletionActionResult {
#[serde(rename = "taskId")]
@@ -1622,6 +1634,25 @@ async fn handle_daemon_connection(socket: WebSocket, state: SharedState, auth_re
"OAuth login URL available - user should open this in browser"
);
}
+ Ok(DaemonMessage::ReauthStatus { request_id, status, login_url, error }) => {
+ tracing::info!(
+ daemon_id = %daemon_uuid,
+ request_id = %request_id,
+ status = %status,
+ login_url = ?login_url,
+ error = ?error,
+ "Daemon reauth status update"
+ );
+
+ // Store the reauth status for polling by the frontend
+ state.set_daemon_reauth_status(
+ daemon_uuid,
+ request_id,
+ status.clone(),
+ login_url.clone(),
+ error.clone(),
+ );
+ }
Ok(DaemonMessage::DaemonDirectories { working_directory, home_directory, worktrees_directory }) => {
tracing::info!(
daemon_id = %daemon_uuid,