diff options
| author | soryu <soryu@soryu.co> | 2026-03-04 16:47:12 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-04 16:47:12 +0000 |
| commit | ec9738a069e61529be040eff065318972b8a11e2 (patch) | |
| tree | d1b15d3b22d4980acff4fba8a12b99920035025c /makima/src/server/handlers/mesh_supervisor.rs | |
| parent | 78cb861412850889424ae7d5ae5cd952a2b90295 (diff) | |
| download | soryu-ec9738a069e61529be040eff065318972b8a11e2.tar.gz soryu-ec9738a069e61529be040eff065318972b8a11e2.zip | |
feat: task slide-out panel, 3-way reconcile toggle, daemon reauth fix (#85)
* WIP: heartbeat checkpoint
* WIP: heartbeat checkpoint
* feat: soryu-co/soryu - makima: Fix daemon reauth flow for new claude setup-token output format
* feat: soryu-co/soryu - makima: Update frontend reconcile toggle to three-way switch
* feat: soryu-co/soryu - makima: Add task slide-out panel to directive page
Diffstat (limited to 'makima/src/server/handlers/mesh_supervisor.rs')
| -rw-r--r-- | makima/src/server/handlers/mesh_supervisor.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/makima/src/server/handlers/mesh_supervisor.rs b/makima/src/server/handlers/mesh_supervisor.rs index 8c36500..9d2dce7 100644 --- a/makima/src/server/handlers/mesh_supervisor.rs +++ b/makima/src/server/handlers/mesh_supervisor.rs @@ -1715,21 +1715,21 @@ pub async fn ask_question( let is_directive_context = directive_id.is_some() && contract_id.is_none(); // For directive context, check reconcile_mode to determine behavior - let directive_reconcile_mode = if let Some(did) = directive_id { + let directive_reconcile_mode: String = if let Some(did) = directive_id { if is_directive_context { match repository::get_directive_for_owner(pool, owner_id, did).await { - Ok(Some(d)) => d.reconcile_mode, - Ok(None) => false, + Ok(Some(d)) => d.reconcile_mode.clone(), + Ok(None) => "auto".to_string(), Err(e) => { tracing::warn!(error = %e, "Failed to get directive for reconcile_mode check"); - false + "auto".to_string() } } } else { - false + "auto".to_string() } } else { - false + "auto".to_string() }; // Add the question (use Uuid::nil() for contract_id in directive-only context) @@ -1813,7 +1813,7 @@ pub async fn ask_question( } // Determine if we should block indefinitely (phaseguard or directive reconcile mode) - let use_phaseguard = request.phaseguard || (is_directive_context && directive_reconcile_mode); + let use_phaseguard = request.phaseguard || (is_directive_context && (directive_reconcile_mode == "semi-auto" || directive_reconcile_mode == "manual")); // Poll for response with timeout // - Phaseguard: block indefinitely until user responds @@ -1823,7 +1823,7 @@ pub async fn ask_question( // Cap at 5 minutes per HTTP request (well under Claude Code's 10-min limit). // The CLI will automatically reconnect via the poll endpoint. 300 - } else if is_directive_context && !directive_reconcile_mode { + } else if is_directive_context && directive_reconcile_mode == "auto" { 30 } else { request.timeout_seconds.max(1) as u64 |
