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/db | |
| 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/db')
| -rw-r--r-- | makima/src/db/models.rs | 16 | ||||
| -rw-r--r-- | makima/src/db/repository.rs | 9 |
2 files changed, 14 insertions, 11 deletions
diff --git a/makima/src/db/models.rs b/makima/src/db/models.rs index 6292e7b..32e55f0 100644 --- a/makima/src/db/models.rs +++ b/makima/src/db/models.rs @@ -2714,8 +2714,8 @@ pub struct Directive { pub pr_url: Option<String>, pub pr_branch: Option<String>, pub completion_task_id: Option<Uuid>, - /// Whether questions pause execution indefinitely until answered - pub reconcile_mode: bool, + /// Question timeout mode: "auto" (30s timeout), "semi-auto" (block indefinitely), "manual" (block + ask many questions) + pub reconcile_mode: String, pub goal_updated_at: DateTime<Utc>, pub started_at: Option<DateTime<Utc>>, pub version: i32, @@ -2780,8 +2780,8 @@ pub struct DirectiveSummary { pub orchestrator_task_id: Option<Uuid>, pub pr_url: Option<String>, pub completion_task_id: Option<Uuid>, - /// Whether questions pause execution indefinitely until answered - pub reconcile_mode: bool, + /// Question timeout mode: "auto" (30s timeout), "semi-auto" (block indefinitely), "manual" (block + ask many questions) + pub reconcile_mode: String, pub version: i32, pub created_at: DateTime<Utc>, pub updated_at: DateTime<Utc>, @@ -2808,8 +2808,8 @@ pub struct CreateDirectiveRequest { pub repository_url: Option<String>, pub local_path: Option<String>, pub base_branch: Option<String>, - /// Whether questions pause execution indefinitely until answered - pub reconcile_mode: Option<bool>, + /// Question timeout mode: "auto", "semi-auto", or "manual" + pub reconcile_mode: Option<String>, } /// Request to update a directive. @@ -2825,8 +2825,8 @@ pub struct UpdateDirectiveRequest { pub orchestrator_task_id: Option<Uuid>, pub pr_url: Option<String>, pub pr_branch: Option<String>, - /// Whether questions pause execution indefinitely until answered - pub reconcile_mode: Option<bool>, + /// Question timeout mode: "auto", "semi-auto", or "manual" + pub reconcile_mode: Option<String>, pub version: Option<i32>, } diff --git a/makima/src/db/repository.rs b/makima/src/db/repository.rs index 1af22f6..f14bc66 100644 --- a/makima/src/db/repository.rs +++ b/makima/src/db/repository.rs @@ -4941,7 +4941,7 @@ pub async fn create_directive_for_owner( .bind(&req.repository_url) .bind(&req.local_path) .bind(&req.base_branch) - .bind(req.reconcile_mode.unwrap_or(false)) + .bind(req.reconcile_mode.as_deref().unwrap_or("auto")) .fetch_one(pool) .await } @@ -5059,7 +5059,7 @@ pub async fn update_directive_for_owner( let orchestrator_task_id = req.orchestrator_task_id.or(current.orchestrator_task_id); let pr_url = req.pr_url.as_deref().or(current.pr_url.as_deref()); let pr_branch = req.pr_branch.as_deref().or(current.pr_branch.as_deref()); - let reconcile_mode = req.reconcile_mode.unwrap_or(current.reconcile_mode); + let reconcile_mode = req.reconcile_mode.clone().unwrap_or_else(|| current.reconcile_mode.clone()); let result = sqlx::query_as::<_, Directive>( r#" @@ -5738,6 +5738,8 @@ pub struct StepForDispatch { pub base_branch: Option<String>, /// The directive's PR branch (if a PR has already been created from previous steps). pub pr_branch: Option<String>, + /// The directive's reconcile mode: "auto", "semi-auto", or "manual". + pub reconcile_mode: String, } /// Get ready steps that need task dispatch. @@ -5760,7 +5762,8 @@ pub async fn get_ready_steps_for_dispatch( d.title AS directive_title, d.repository_url, d.base_branch, - d.pr_branch + d.pr_branch, + d.reconcile_mode FROM directive_steps ds JOIN directives d ON d.id = ds.directive_id WHERE ds.status = 'ready' |
