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:
Duc Nguyenandntduc authored and GitHub committed 2026-07-30 14:17:40 +07:00
1 parent 496b7ffce6
commit bb7712a9ff
186 files changed
+18858 -1233

No files matched your search

+2 -1
View File
@@ -91,6 +91,7 @@ func TestSQLiteSmokeTest(t *testing.T) {
taskID := uuid.Must(uuid.NewV7())
task := &store.SubagentTaskData{
ParentAgentKey: agentKey,
RootAgentID: agentID,
Subject: "smoke task",
Description: "test",
Status: "running",
@@ -102,7 +103,7 @@ func TestSQLiteSmokeTest(t *testing.T) {
if err := stores.SubagentTasks.Create(ctx, task); err != nil {
t.Fatalf("Create: %v", err)
}
got, err := stores.SubagentTasks.Get(ctx, taskID)
got, err := stores.SubagentTasks.Get(ctx, agentID, taskID)
if err != nil {
t.Fatalf("Get: %v", err)
}