From ecb2a1ee6646951f7d04fb9f82aa52f99f415e98 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-sync[bot]" Date: Sat, 25 Apr 2026 04:17:05 +0000 Subject: [PATCH] chore(sync): mirror docs from openclaw/openclaw@757aee4cdd5d91b1f6564b5e2044a412466cd784 --- .openclaw-sync/source.json | 4 ++-- docs/tools/subagents.md | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index a4c878f06..94a279592 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "97fd45a8c109ca7a7809e9419e084efbb23207bb", - "syncedAt": "2026-04-25T04:11:46.348Z" + "sha": "757aee4cdd5d91b1f6564b5e2044a412466cd784", + "syncedAt": "2026-04-25T04:15:41.975Z" } diff --git a/docs/tools/subagents.md b/docs/tools/subagents.md index 52b4dfa57..236488356 100644 --- a/docs/tools/subagents.md +++ b/docs/tools/subagents.md @@ -343,6 +343,18 @@ Sub-agents use a dedicated in-process queue lane: - Lane name: `subagent` - Concurrency: `agents.defaults.subagents.maxConcurrent` (default `8`) +## Liveness and recovery + +OpenClaw does not treat `endedAt` absence as permanent proof that a sub-agent +is still alive. Unended runs older than the stale-run window stop counting as +active/pending in `/subagents list`, status summaries, descendant completion +gating, and per-session concurrency checks. + +After a gateway restart, stale unended restored runs are pruned unless their +child session is marked `abortedLastRun: true`. Those restart-aborted child +sessions remain recoverable through the sub-agent orphan recovery flow, which +sends a synthetic resume message before clearing the aborted marker. + ## Stopping - Sending `/stop` in the requester chat aborts the requester session and stops any active sub-agent runs spawned from it, cascading to nested children.