summaryrefslogtreecommitdiff
path: root/makima/src/daemon/config.rs
diff options
context:
space:
mode:
Diffstat (limited to 'makima/src/daemon/config.rs')
-rw-r--r--makima/src/daemon/config.rs39
1 files changed, 39 insertions, 0 deletions
diff --git a/makima/src/daemon/config.rs b/makima/src/daemon/config.rs
index b7cb1e8..4408fff 100644
--- a/makima/src/daemon/config.rs
+++ b/makima/src/daemon/config.rs
@@ -63,6 +63,44 @@ pub struct DaemonConfig {
/// Repositories to auto-clone on startup.
#[serde(default)]
pub repos: ReposConfig,
+
+ /// Dependency ordering settings for task execution.
+ #[serde(default)]
+ pub dependency_ordering: DependencyOrderingConfig,
+}
+
+/// Dependency ordering configuration.
+/// Controls how task dependencies are validated and auto-detected.
+#[derive(Debug, Clone, Deserialize)]
+#[serde(default)]
+pub struct DependencyOrderingConfig {
+ /// Enable dependency ordering checks.
+ /// When enabled, tasks with unmet dependencies cannot start.
+ #[serde(default = "default_true")]
+ pub enabled: bool,
+
+ /// Auto-detect dependencies from file patterns.
+ /// Analyzes task plans to detect potential dependencies based on:
+ /// - Migration files -> backend code
+ /// - Types/models -> consumers
+ /// - APIs -> UI components
+ #[serde(default = "default_true")]
+ pub auto_detect: bool,
+
+ /// Warn on detected dependency violations.
+ /// Produces warnings when tasks may be executing out of order.
+ #[serde(default = "default_true")]
+ pub warn_on_violation: bool,
+}
+
+impl Default for DependencyOrderingConfig {
+ fn default() -> Self {
+ Self {
+ enabled: true,
+ auto_detect: true,
+ warn_on_violation: true,
+ }
+ }
}
/// Server connection configuration.
@@ -626,6 +664,7 @@ impl DaemonConfig {
},
logging: LoggingConfig::default(),
repos: ReposConfig::default(),
+ dependency_ordering: DependencyOrderingConfig::default(),
}
}
}