feat: allow companion to manage workdirs
This commit is contained in:
@@ -904,7 +904,9 @@ fn apply_role_profile(
|
|||||||
"enabled": matches!(slug, "companion" | "orchestrator"),
|
"enabled": matches!(slug, "companion" | "orchestrator"),
|
||||||
"direct_spawn": slug != "orchestrator"
|
"direct_spawn": slug != "orchestrator"
|
||||||
});
|
});
|
||||||
value["feature"]["manage_workdir"] = serde_json::json!({ "enabled": slug == "orchestrator" });
|
value["feature"]["manage_workdir"] = serde_json::json!({
|
||||||
|
"enabled": matches!(slug, "companion" | "orchestrator")
|
||||||
|
});
|
||||||
value["feature"]["orchestration"] = serde_json::json!({ "enabled": slug == "orchestrator" });
|
value["feature"]["orchestration"] = serde_json::json!({ "enabled": slug == "orchestrator" });
|
||||||
let ticket = match slug {
|
let ticket = match slug {
|
||||||
"companion" => serde_json::json!({ "enabled": true, "authoring": true, "thread": true }),
|
"companion" => serde_json::json!({ "enabled": true, "authoring": true, "thread": true }),
|
||||||
@@ -1332,6 +1334,20 @@ mod tests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn builtin_companion_can_manage_workdirs() {
|
||||||
|
let tmp = TempDir::new().unwrap();
|
||||||
|
let resolved = ProfileResolver::new()
|
||||||
|
.with_workspace_base(tmp.path())
|
||||||
|
.resolve(
|
||||||
|
&ProfileSelector::source_named(ProfileRegistrySource::Builtin, "companion"),
|
||||||
|
ProfileResolveOptions::with_worker_name("companion-worker"),
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
assert!(resolved.manifest.feature.manage_workdir.enabled);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn profile_resolution_requires_runtime_worker_name() {
|
fn profile_resolution_requires_runtime_worker_name() {
|
||||||
let tmp = TempDir::new().unwrap();
|
let tmp = TempDir::new().unwrap();
|
||||||
|
|||||||
@@ -4251,6 +4251,10 @@ mod tests {
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(manifest.worker.name, "embedded-test-worker");
|
assert_eq!(manifest.worker.name, "embedded-test-worker");
|
||||||
}
|
}
|
||||||
|
let companion = archive
|
||||||
|
.resolve_profile("builtin:companion", root.path(), "embedded-test-companion")
|
||||||
|
.unwrap();
|
||||||
|
assert!(companion.feature.manage_workdir.enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import "./base.dcdl" // {
|
|||||||
web = { enabled = true; };
|
web = { enabled = true; };
|
||||||
sub_worker = { enabled = true; };
|
sub_worker = { enabled = true; };
|
||||||
worker = { enabled = true; };
|
worker = { enabled = true; };
|
||||||
|
manage_workdir = { enabled = true; };
|
||||||
ticket = { enabled = true; authoring = true; thread = true; };
|
ticket = { enabled = true; authoring = true; thread = true; };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user