worker: separate subworkers from workspace workers
This commit is contained in:
@@ -25,7 +25,8 @@ feature = {
|
||||
task = { enabled = true; };
|
||||
memory = { enabled = true; };
|
||||
web = { enabled = true; };
|
||||
workers = { enabled = true; };
|
||||
sub_worker = { enabled = true; };
|
||||
worker = { enabled = false; };
|
||||
objective = { enabled = true; };
|
||||
ticket = { enabled = true; authoring = true; thread = true; };
|
||||
};
|
||||
|
||||
@@ -7,7 +7,8 @@ import "./base.dcdl" // {
|
||||
task = { enabled = true; };
|
||||
memory = { enabled = true; };
|
||||
web = { enabled = true; };
|
||||
workers = { enabled = false; };
|
||||
sub_worker = { enabled = false; };
|
||||
worker = { enabled = false; };
|
||||
ticket = { enabled = true; thread = true; };
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,7 +7,8 @@ import "./base.dcdl" // {
|
||||
task = { enabled = true; };
|
||||
memory = { enabled = true; };
|
||||
web = { enabled = true; };
|
||||
workers = { enabled = true; };
|
||||
sub_worker = { enabled = true; };
|
||||
worker = { enabled = false; };
|
||||
ticket = { enabled = true; authoring = true; thread = true; };
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,7 +7,8 @@ import "./base.dcdl" // {
|
||||
task = { enabled = true; };
|
||||
memory = { enabled = true; };
|
||||
web = { enabled = true; };
|
||||
workers = { enabled = false; };
|
||||
sub_worker = { enabled = false; };
|
||||
worker = { enabled = false; };
|
||||
ticket = { enabled = true; authoring = true; thread = true; intake = true; };
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,7 +7,8 @@ import "./base.dcdl" // {
|
||||
task = { enabled = false; };
|
||||
memory = { enabled = true; staging = true; };
|
||||
web = { enabled = false; };
|
||||
workers = { enabled = false; };
|
||||
sub_worker = { enabled = false; };
|
||||
worker = { enabled = false; };
|
||||
objective = { enabled = false; };
|
||||
ticket = { enabled = false; thread = false; };
|
||||
};
|
||||
|
||||
@@ -7,7 +7,8 @@ import "./base.dcdl" // {
|
||||
task = { enabled = true; };
|
||||
memory = { enabled = true; };
|
||||
web = { enabled = true; };
|
||||
workers = { enabled = false; };
|
||||
sub_worker = { enabled = false; };
|
||||
worker = { enabled = true; };
|
||||
manage_workdir = { enabled = true; };
|
||||
ticket = { enabled = true; thread = true; orchestration_control = true; };
|
||||
};
|
||||
|
||||
@@ -7,7 +7,8 @@ import "./base.dcdl" // {
|
||||
task = { enabled = true; };
|
||||
memory = { enabled = true; };
|
||||
web = { enabled = true; };
|
||||
workers = { enabled = false; };
|
||||
sub_worker = { enabled = false; };
|
||||
worker = { enabled = false; };
|
||||
ticket = { enabled = true; thread = true; };
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
---
|
||||
## Worker orchestration
|
||||
## SubWorker orchestration
|
||||
|
||||
When Worker-management tools are available, spawned Worker notifications are background signals for the parent to handle at a natural stopping point. Do not ignore routine follow-up, but do not interrupt the current user request unnecessarily.
|
||||
When SubWorker-management tools are available, SubWorker notifications are background signals for the parent Worker to handle at a natural stopping point. Do not ignore routine follow-up, but do not interrupt the current user request unnecessarily.
|
||||
|
||||
The parent does not need to keep a turn open or call tools solely to wait for a notification. Do not use `sleep` or polling loops just to wait for Worker output; if there is no useful immediate work, return control and handle the child when notified or when the user next asks.
|
||||
The parent Worker does not need to keep a turn open or call tools solely to wait for a notification. Do not use `sleep` or polling loops just to wait for SubWorker output; if there is no useful immediate work, return control and handle the SubWorker when notified or when the user next asks.
|
||||
|
||||
Before treating delegated work as complete, read the child output and inspect concrete evidence such as worktree state, diff, and test results. Notifications are hints, not proof of completion.
|
||||
Before treating delegated SubWorker work as complete, read the SubWorker output and inspect concrete evidence such as worktree state, diff, and test results. Notifications are hints, not proof of completion.
|
||||
|
||||
Peer Workers made visible by reciprocal metadata registration are not spawned children. Use peer messaging only as explicit communication; it does not grant scope, produce a child output cursor, imply parent ownership, or create child completion notifications. Peer sends require a live peer and do not auto-restore stopped peers.
|
||||
|
||||
|
||||
@@ -53,12 +53,12 @@ worker_orchestration_guidance_section = "{% include \"$yoi/common/worker-orchest
|
||||
|
||||
ticket_event_companion_notice = "{% include \"$yoi/worker/ticket_event_companion_notice\" %}"
|
||||
|
||||
spawn_worker_tool_description = """\
|
||||
Spawn a new Worker process to work on a delegated task. The spawner's write scope is reduced by the scope passed here; the spawned Worker receives its own socket and starts running `task` immediately. The spawned Worker outlives the spawner's current turn and can be contacted again through its socket path.
|
||||
sub_worker_spawn_tool_description = """\
|
||||
Spawn a new SubWorker process to split context for a delegated task. The parent Worker's write scope is reduced by the scope passed here; the SubWorker receives its own socket and starts running `task` immediately. The SubWorker outlives the parent Worker's current turn and can be contacted again through its socket path.
|
||||
|
||||
Optional `cwd`: when provided, it is the child process/tool default working directory only. It must be an absolute existing directory covered by the child's delegated readable scope, and it does not change workspace/Profile/memory/Ticket roots or grant authority.
|
||||
|
||||
Profile selection: `profile` may be omitted or set to `default` to use the effective child default profile, set to `inherit` to derive reusable child configuration from this Worker, or set to one of the registry selectors below. Raw/path profile selectors are not accepted by SpawnWorker. `scope` is always the only delegated filesystem capability; profile scope is replaced by the explicit SpawnWorker scope.
|
||||
Profile selection: `profile` may be omitted or set to `default` to use the effective child default profile, set to `inherit` to derive reusable child configuration from this Worker, or set to one of the registry selectors below. Raw/path profile selectors are not accepted by SubWorkerSpawn. `scope` is always the only delegated filesystem capability; profile scope is replaced by the explicit SubWorkerSpawn scope.
|
||||
|
||||
Default profile: {{ default_profile }}
|
||||
Special selector: inherit — derive reusable model/worker/tool policy from the spawner while replacing worker.name and scope.
|
||||
|
||||
Reference in New Issue
Block a user