diff options
| author | soryu <soryu@soryu.co> | 2026-02-05 23:42:48 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-02-05 23:42:48 +0000 |
| commit | 88a4f15ce1310f8ee8693835be14aa5280233f17 (patch) | |
| tree | 5c1a0417e02071d2198d13478ffa85533b19f891 /makima/src/daemon/chain/runner.rs | |
| parent | f1a50b80f3969d150bd1c31edde0aff05369157e (diff) | |
| download | soryu-88a4f15ce1310f8ee8693835be14aa5280233f17.tar.gz soryu-88a4f15ce1310f8ee8693835be14aa5280233f17.zip | |
Add directive-first chain system redesign
Redesigns the chain system with a directive-first architecture where
Directive is the top-level entity (the "why/what") and Chains are
generated execution plans (the "how") that can be dynamically modified.
Backend:
- Add database migration for directive system tables
- Add Directive, DirectiveChain, ChainStep, DirectiveEvent models
- Add DirectiveVerifier and DirectiveApproval models
- Add orchestration module with engine, planner, and verifier
- Add comprehensive API handlers for directives
- Add daemon CLI commands for directive management
- Add directive skill documentation
- Integrate contract completion with directive engine
- Add SSE endpoint for real-time directive events
Frontend:
- Add directives route with split-view layout
- Add 6-tab detail view (Overview, Chain, Events, Evaluations, Approvals, Verifiers)
- Add React Flow DAG visualization for chain steps
- Add SSE subscription hook for real-time event updates
- Add useDirectives and useDirectiveEventSubscription hooks
- Add directive types and API functions
Fixes:
- Fix test failures in ws/protocol, task_output, completion_gate, patch
- Fix word boundary matching in looks_like_task()
- Fix parse_last() to find actual last completion gate
- Fix create_export_patch when merge-base equals HEAD
- Clean up clippy warnings in new code
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'makima/src/daemon/chain/runner.rs')
| -rw-r--r-- | makima/src/daemon/chain/runner.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/makima/src/daemon/chain/runner.rs b/makima/src/daemon/chain/runner.rs index dfbcfa7..1814581 100644 --- a/makima/src/daemon/chain/runner.rs +++ b/makima/src/daemon/chain/runner.rs @@ -37,8 +37,10 @@ pub enum RunnerError { /// Chain runner for creating and managing chains. pub struct ChainRunner { /// Base API URL + #[allow(dead_code)] api_url: String, /// API key for authentication + #[allow(dead_code)] api_key: String, } @@ -116,6 +118,7 @@ impl ChainRunner { CreateChainRequest { name: chain.name.clone(), description: chain.description.clone(), + repository_url: None, // Legacy field, repositories take precedence repositories: if repositories.is_empty() { None } else { @@ -242,7 +245,9 @@ mod tests { let yaml = r#" name: Test Chain description: A test chain -repo: https://github.com/test/repo +repositories: + - name: main + repository_url: https://github.com/test/repo contracts: - name: Research type: simple @@ -270,8 +275,11 @@ loop: assert_eq!(request.name, "Test Chain"); assert_eq!(request.description, Some("A test chain".to_string())); + // Repositories are now in a separate array + let repos = request.repositories.unwrap(); + assert_eq!(repos.len(), 1); assert_eq!( - request.repository_url, + repos[0].repository_url, Some("https://github.com/test/repo".to_string()) ); assert_eq!(request.loop_enabled, Some(true)); |
