diff options
| author | soryu <soryu@soryu.co> | 2026-01-18 18:55:04 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-01-18 18:55:04 +0000 |
| commit | 9dbc2c3199047609a9f8496fec07ecdb10aee73d (patch) | |
| tree | c5a4e19b2a83cac1901e81f2ff1bc7a465f8a9ff /makima/src/server/handlers/mesh_supervisor.rs | |
| parent | 273da072fa0573c935798dc723ed79fd71ab037a (diff) | |
| download | soryu-9dbc2c3199047609a9f8496fec07ecdb10aee73d.tar.gz soryu-9dbc2c3199047609a9f8496fec07ecdb10aee73d.zip | |
Add pushed heartbeats and multi-question select
Diffstat (limited to 'makima/src/server/handlers/mesh_supervisor.rs')
| -rw-r--r-- | makima/src/server/handlers/mesh_supervisor.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/makima/src/server/handlers/mesh_supervisor.rs b/makima/src/server/handlers/mesh_supervisor.rs index 8c7ecb5..a8af3fb 100644 --- a/makima/src/server/handlers/mesh_supervisor.rs +++ b/makima/src/server/handlers/mesh_supervisor.rs @@ -73,6 +73,9 @@ pub struct AskQuestionRequest { /// When true, the request will block indefinitely until user responds (no timeout) #[serde(default)] pub phaseguard: bool, + /// When true, allow selecting multiple choices (response will be comma-separated) + #[serde(default)] + pub multi_select: bool, } fn default_question_timeout() -> i32 { @@ -118,6 +121,9 @@ pub struct PendingQuestionSummary { pub choices: Vec<String>, pub context: Option<String>, pub created_at: chrono::DateTime<chrono::Utc>, + /// Whether multiple choices can be selected + #[serde(default)] + pub multi_select: bool, } /// Request to create a checkpoint. @@ -1521,6 +1527,7 @@ pub async fn ask_question( request.question.clone(), request.choices.clone(), request.context.clone(), + request.multi_select, ); // Broadcast question as task output entry for the task's chat @@ -1528,6 +1535,7 @@ pub async fn ask_question( "question_id": question_id.to_string(), "choices": request.choices, "context": request.context, + "multi_select": request.multi_select, }); state.broadcast_task_output(TaskOutputNotification { task_id: supervisor_id, @@ -1631,6 +1639,7 @@ pub async fn list_pending_questions( choices: q.choices, context: q.context, created_at: q.created_at, + multi_select: q.multi_select, }) .collect(); |
