v0.13.0 — parallel fan-out
Parallel fan-out — slice 3 of the scatter-gather roadmap (#39).
Added
- Parallel fan-out (
delegate_many). A new MCP tool lets an orchestrator fan several sub-tasks out concurrently in one call and collect them, instead of delegating one at a time. Each item ({prompt, target?, task?, max_tokens?}) routes independently — a batch can mix backends — and runs on a thread pool over the existing syncrun_delegate(plain Python, no new deps).- Results come back in input order with a per-item
status:ok(+text),no_fit(+message), orerror(+error). A failing sub-task never sinks the batch. - Concurrency is bounded by a system-derived default (
os.cpu_count()), an operator override (newdelegate_max_concurrencyinsettings.yaml— pin it to your backend's real parallelism, e.g.OLLAMA_NUM_PARALLEL), and an optional per-callmax_concurrencythat may lower it. - Dispatch + collect only — synthesis stays the orchestrator's job.
- Results come back in input order with a per-item
Builds on capability-routed delegation (#39 slice 2, v0.12.0). Still ahead on #39: synthesis/reduce, orchestration-tree observability.
Full changelog: https://github.com/Jason-Vaughan/TangleBrain/blob/main/CHANGELOG.md