summaryrefslogtreecommitdiff
path: root/makima/src/db
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-03-04 16:47:12 +0000
committerGitHub <noreply@github.com>2026-03-04 16:47:12 +0000
commitec9738a069e61529be040eff065318972b8a11e2 (patch)
treed1b15d3b22d4980acff4fba8a12b99920035025c /makima/src/db
parent78cb861412850889424ae7d5ae5cd952a2b90295 (diff)
downloadsoryu-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.rs16
-rw-r--r--makima/src/db/repository.rs9
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'