diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 5c3736639..a7439b467 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "600df95c8ca8745aa73c8bc406723a0869b61f87", - "syncedAt": "2026-04-27T09:36:42.208Z" + "sha": "72f7d7e4ea7a4d761e1af4860e7ec223c07c6f6c", + "syncedAt": "2026-04-27T09:37:42.854Z" } diff --git a/docs/plugins/architecture-internals.md b/docs/plugins/architecture-internals.md index 75e831ad0..355d7cb52 100644 --- a/docs/plugins/architecture-internals.md +++ b/docs/plugins/architecture-internals.md @@ -491,6 +491,7 @@ Notes: - For plugin-owned fallback runs, operators must opt in with `plugins.entries..subagent.allowModelOverride: true`. - Use `plugins.entries..subagent.allowedModels` to restrict trusted plugins to specific canonical `provider/model` targets, or `"*"` to allow any target explicitly. - Untrusted plugin subagent runs still work, but override requests are rejected instead of silently falling back. +- Plugin-created subagent sessions are tagged with the creating plugin id. Fallback `api.runtime.subagent.deleteSession(...)` may delete those owned sessions only; arbitrary session deletion still requires an admin-scoped Gateway request. For web search, plugins can consume the shared runtime helper instead of reaching into the agent tool wiring: diff --git a/docs/plugins/sdk-runtime.md b/docs/plugins/sdk-runtime.md index 95e99a691..be423cf8e 100644 --- a/docs/plugins/sdk-runtime.md +++ b/docs/plugins/sdk-runtime.md @@ -117,6 +117,8 @@ register(api) { Model overrides (`provider`/`model`) require operator opt-in via `plugins.entries..subagent.allowModelOverride: true` in config. Untrusted plugins can still run subagents, but override requests are rejected. + `deleteSession(...)` can delete sessions created by the same plugin through `api.runtime.subagent.run(...)`. Deleting arbitrary user or operator sessions still requires an admin-scoped Gateway request. + List connected nodes and invoke a node-host command from Gateway-loaded plugin code or from plugin CLI commands. Use this when a plugin owns local work on a paired device, for example a browser or audio bridge on another Mac.