fix: restore companion subworker control

This commit is contained in:
2026-08-26 22:06:34 +09:00
parent 0ab15aa227
commit 83bda3dfb2
4 changed files with 6 additions and 11 deletions
+4 -2
View File
@@ -946,7 +946,7 @@ fn apply_role_profile(
value["feature"]["sub_worker"] = serde_json::json!({ "enabled": sub_worker }); value["feature"]["sub_worker"] = serde_json::json!({ "enabled": sub_worker });
value["feature"]["flow"] = serde_json::json!({ "enabled": slug == "coder" }); value["feature"]["flow"] = serde_json::json!({ "enabled": slug == "coder" });
value["feature"]["worker"] = serde_json::json!({ value["feature"]["worker"] = serde_json::json!({
"enabled": matches!(slug, "companion" | "orchestrator"), "enabled": slug == "orchestrator",
"direct_spawn": slug != "orchestrator" "direct_spawn": slug != "orchestrator"
}); });
value["feature"]["manage_workdir"] = serde_json::json!({ value["feature"]["manage_workdir"] = serde_json::json!({
@@ -1408,7 +1408,7 @@ mod tests {
} }
#[test] #[test]
fn builtin_companion_can_manage_workdirs() { fn builtin_companion_uses_sub_worker_control_without_worker_control() {
let tmp = TempDir::new().unwrap(); let tmp = TempDir::new().unwrap();
let resolved = ProfileResolver::new() let resolved = ProfileResolver::new()
.with_workspace_base(tmp.path()) .with_workspace_base(tmp.path())
@@ -1419,6 +1419,8 @@ mod tests {
.unwrap(); .unwrap();
assert!(resolved.manifest.feature.manage_workdir.enabled); assert!(resolved.manifest.feature.manage_workdir.enabled);
assert!(resolved.manifest.feature.sub_worker.enabled);
assert!(!resolved.manifest.feature.worker.enabled);
} }
#[test] #[test]
-8
View File
@@ -983,14 +983,6 @@ where
if feature_config.sub_worker.enabled { if feature_config.sub_worker.enabled {
worker.register_worker_orchestration_instruction(); worker.register_worker_orchestration_instruction();
if !feature_config.worker.enabled {
feature_registry.add_module(
crate::feature::builtin::manage_worker::sub_worker_control_feature(
worker.workspace_client_handle(),
spawned_registry.clone(),
),
);
}
} }
let host_worker_observation_provider = worker.worker_observation_provider(); let host_worker_observation_provider = worker.worker_observation_provider();
+2
View File
@@ -4409,6 +4409,8 @@ mod tests {
.resolve_profile("builtin:companion", root.path(), "embedded-test-companion") .resolve_profile("builtin:companion", root.path(), "embedded-test-companion")
.unwrap(); .unwrap();
assert!(companion.feature.manage_workdir.enabled); assert!(companion.feature.manage_workdir.enabled);
assert!(companion.feature.sub_worker.enabled);
assert!(!companion.feature.worker.enabled);
} }
#[test] #[test]
-1
View File
@@ -8,7 +8,6 @@ import "./base.dcdl" // {
memory = { enabled = true; }; memory = { enabled = true; };
web = { enabled = true; }; web = { enabled = true; };
sub_worker = { enabled = true; }; sub_worker = { enabled = true; };
worker = { enabled = true; };
manage_workdir = { enabled = true; }; manage_workdir = { enabled = true; };
ticket = { enabled = true; authoring = true; thread = true; }; ticket = { enabled = true; authoring = true; thread = true; };
}; };