- Updated TaskTool to skip `session.asyncJobManager` and run `task` spawns inline whenever `async.enabled` is false. - Set `async.enabled` default to `true` and updated task prompts/settings text to reflect async-versus-sync behavior. - Adjusted task batching tests to cover both async background execution and synchronous batched execution when async is disabled.
6.8 KiB
{{#if asyncEnabled}}{{#if batchEnabled}}Spawns subagents to work in the background — one per tasks[] item; a single spawn is a one-item batch.{{else}}Spawns ONE subagent per call to work in the background.{{/if}}
-
Spawning is non-blocking: the call returns immediately with the agent id{{#if batchEnabled}}s{{/if}} and job id{{#if batchEnabled}}s{{/if}}; each result is delivered automatically when that agent yields.
-
Parallelism = {{#if batchEnabled}}
tasks[]items in one call, and/or multipletaskcalls in one assistant message{{else}}multipletaskcalls in one assistant message{{/if}}. Concurrency is bounded at {{MAX_CONCURRENCY}} running subagents per session. -
If genuinely blocked on a result, wait with
job poll; otherwise keep working.job cancelterminates a task and cannot carry a message — only for stalled/abandoned work. {{else}}{{#if batchEnabled}}Runs subagents synchronously — one pertasks[]item; a single spawn is a one-item batch.{{else}}Runs ONE subagent synchronously per call.{{/if}} -
Spawning is blocking: the call returns only after the agent{{#if batchEnabled}}s{{/if}} finish; results arrive inline.
-
Parallelism = {{#if batchEnabled}}
tasks[]items in one call, and/or multipletaskcalls in one assistant message{{else}}multipletaskcalls in one assistant message{{/if}}. Concurrency is bounded at {{MAX_CONCURRENCY}} running subagents per session. {{/if}} {{#if ircEnabled}} -
Coordinate with agents via
ircusing their ids. Agents reach you and their siblings live the same way. {{/if}}
{{#if batchEnabled}}