diff options
| -rw-r--r-- | makima/src/db/models.rs | 42 | ||||
| -rw-r--r-- | makima/src/db/repository.rs | 3 |
2 files changed, 44 insertions, 1 deletions
diff --git a/makima/src/db/models.rs b/makima/src/db/models.rs index 9159fd5..766a081 100644 --- a/makima/src/db/models.rs +++ b/makima/src/db/models.rs @@ -2714,6 +2714,7 @@ pub struct Directive { pub goal_updated_at: DateTime<Utc>, pub started_at: Option<DateTime<Utc>>, pub version: i32, + pub memory_enabled: bool, pub created_at: DateTime<Utc>, pub updated_at: DateTime<Utc>, } @@ -2765,6 +2766,7 @@ pub struct DirectiveSummary { pub completed_steps: i64, pub running_steps: i64, pub failed_steps: i64, + pub memory_enabled: bool, } /// List response for directives. @@ -2784,6 +2786,8 @@ pub struct CreateDirectiveRequest { pub repository_url: Option<String>, pub local_path: Option<String>, pub base_branch: Option<String>, + #[serde(default)] + pub memory_enabled: bool, } /// Request to update a directive. @@ -2798,6 +2802,7 @@ pub struct UpdateDirectiveRequest { pub base_branch: Option<String>, pub orchestrator_task_id: Option<Uuid>, pub version: Option<i32>, + pub memory_enabled: Option<bool>, } /// Request to update a directive's goal (triggers re-planning). @@ -2833,3 +2838,40 @@ pub struct UpdateDirectiveStepRequest { pub task_id: Option<Uuid>, pub order_index: Option<i32>, } + +/// A memory entry for a directive — key-value context that persists across tasks. +#[derive(Debug, Clone, FromRow, Serialize, Deserialize, ToSchema)] +#[serde(rename_all = "camelCase")] +pub struct DirectiveMemory { + pub id: Uuid, + pub directive_id: Uuid, + pub key: String, + pub value: String, + pub category: Option<String>, + pub created_at: DateTime<Utc>, + pub updated_at: DateTime<Utc>, +} + +/// Request to set a memory entry (upsert by key). +#[derive(Debug, Deserialize, ToSchema)] +#[serde(rename_all = "camelCase")] +pub struct SetDirectiveMemoryRequest { + pub key: String, + pub value: String, + pub category: Option<String>, +} + +/// Request to batch set memory entries. +#[derive(Debug, Deserialize, ToSchema)] +#[serde(rename_all = "camelCase")] +pub struct BatchSetDirectiveMemoryRequest { + pub entries: Vec<SetDirectiveMemoryRequest>, +} + +/// Response for listing memories. +#[derive(Debug, Serialize, ToSchema)] +#[serde(rename_all = "camelCase")] +pub struct DirectiveMemoryListResponse { + pub memories: Vec<DirectiveMemory>, + pub total: i64, +} diff --git a/makima/src/db/repository.rs b/makima/src/db/repository.rs index 930a73e..1dd10bb 100644 --- a/makima/src/db/repository.rs +++ b/makima/src/db/repository.rs @@ -13,7 +13,8 @@ use super::models::{ CreateTemplateRequest, Daemon, DaemonTaskAssignment, DaemonWithCapacity, DeliverableDefinition, Directive, DirectiveStep, DirectiveSummary, CreateDirectiveRequest, CreateDirectiveStepRequest, UpdateDirectiveRequest, - UpdateDirectiveStepRequest, + UpdateDirectiveStepRequest, DirectiveMemory, SetDirectiveMemoryRequest, + BatchSetDirectiveMemoryRequest, DirectiveMemoryListResponse, File, FileSummary, FileVersion, HistoryEvent, HistoryQueryFilters, MeshChatConversation, MeshChatMessageRecord, PhaseChangeResult, PhaseConfig, PhaseDefinition, SupervisorHeartbeatRecord, SupervisorState, |
