diff --git a/doc/resources/evolution.md b/doc/resources/evolution.md index 9756bc3..758a5e1 100644 --- a/doc/resources/evolution.md +++ b/doc/resources/evolution.md @@ -1166,3 +1166,13 @@ toolsrv uses `log/slog` (Go stdlib) with a `"svc": "toolsrv"` attribute. This is intentionally separate from olliesrv's `ollie/log` package — they are different programs with different lifecycles. +### Open Problem: Concurrency + +Tool execution in toolsrv is capable of running in the background (`proc/new.bg`), +but foreground blocking execution (`proc/new`) remains the default. The reason: +**concurrency is an unsolved problem.** When multiple tools run simultaneously, +the agent must reason about interleaved results, partial state, and ordering — +LLMs handle this poorly. Background processes exist for cases where the user +or agent explicitly opts in (long-running builds, watchers), but the default +serial execution is a deliberate constraint, not a limitation of the architecture. +