mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-10-15 10:14:51 +00:00
fix(collaboration): harden delegated task isolation (#1486)
* feat(collaboration): isolate delegated artifacts and child runs Isolate delegated inputs and outputs behind secure artifact exchange lifecycles. Scope Agent Link tasks by tenant and root agent, and enforce delegation spawn-tree boundaries. Add process-wide child-run admission and preserve logical media paths across native, MCP, and sandbox execution. * fix(collaboration): harden delegated task isolation Enforce tenant and root-agent task scope across migrations and stores. Add exactly-once async completion delivery, delegated sandbox boundaries, and confined artifact and media recovery across runtime surfaces. * fix(collaboration): recover interrupted async tasks * fix(collaboration): normalize persisted child-run status --------- Co-authored-by: ntduc <ntduc@cpp.ai.vn>
This commit is contained in:
1 parent
496b7ffce6
commit
bb7712a9ff
186 files changed
+18858
-1233
No files matched your search
+9
-3
@@ -461,13 +461,19 @@ Browser pairing allows web UI clients to authenticate without full admin credent
|
||||
|
||||
## 12. Delegation Security
|
||||
|
||||
Agent delegation is protected through delegation history tracking and concurrency controls.
|
||||
Agent delegation is protected through isolated artifact exchange, directional
|
||||
link permission checks, and bounded child-run admission.
|
||||
|
||||
| Control | Scope | Description |
|
||||
|---------|-------|-------------|
|
||||
| Per-agent load cap | B (all sources) | `other_config.max_delegation_load` limits total concurrent delegations targeting B |
|
||||
| Artifact boundary | One Agent Link run | Staged inputs are read-only; the delegatee writes only to ephemeral outputs that are validated before atomic publish |
|
||||
| Per-root limit | One root agent's self-spawn tree | Agent `subagents.maxConcurrent`, default 20 |
|
||||
| Process safety cap | All self-spawn and Agent Link callbacks | Standard 32 / Lite 2, with at most 128 independent pending chains |
|
||||
| Nested lifetime | Agent Link artifact run | Async descendants are rejected; sync descendants complete before publication |
|
||||
| Durable async result | Source/root agent UUID within one tenant | Terminal text and logical media paths use deadline-bounded persistence retries before announcement; single-process startup retries pre-traffic recovery that marks previous-process non-terminal rows failed, and successful terminal writes remain explicitly retrievable by completion UUID |
|
||||
|
||||
When concurrency limits are hit, the error message is written for LLM reasoning: *"Agent at capacity (5/5). Try a different agent or handle it yourself."*
|
||||
`agent_links.max_concurrent` is retained as compatibility metadata and is not
|
||||
currently enforced by runtime admission.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in new issue
Block a user