You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Sessions/Attachments: add inline file attachment support for `sessions_spawn` (subagent runtime only) with base64/utf8 encoding, transcript content redaction, lifecycle cleanup, and configurable limits via `tools.sessions_spawn.attachments`. (#16761) Thanks @napetrov.
9
10
- Agents/Thinking defaults: set `adaptive` as the default thinking level for Anthropic Claude 4.6 models (including Bedrock Claude 4.6 refs) while keeping other reasoning-capable models at `low` unless explicitly configured.
10
11
- Gateway/Container probes: add built-in HTTP liveness/readiness endpoints (`/health`, `/healthz`, `/ready`, `/readyz`) for Docker/Kubernetes health checks, with fallback routing so existing handlers on those paths are not shadowed. (#31272) Thanks @vincentkoc.
11
12
- Android/Nodes: add `camera.list`, `device.permissions`, `device.health`, and `notifications.actions` (`open`/`dismiss`/`reply`) on Android nodes, plus first-class node-tool actions for the new device/notification commands. (#28260) Thanks @obviyus.
Copy file name to clipboardExpand all lines: docs/concepts/session-tool.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -157,6 +157,8 @@ Parameters:
157
157
-`mode?` (`run|session`; defaults to `run`, but defaults to `session` when `thread=true`; `mode="session"` requires `thread=true`)
158
158
-`cleanup?` (`delete|keep`, default `keep`)
159
159
-`sandbox?` (`inherit|require`, default `inherit`; `require` rejects spawn unless the target child runtime is sandboxed)
160
+
-`attachments?` (optional array of inline files; subagent runtime only, ACP rejects). Each entry: `{ name, content, encoding?: "utf8" | "base64", mimeType? }`. Files are materialized into the child workspace at `.openclaw/attachments/<uuid>/`. Returns a receipt with sha256 per file.
161
+
-`attachAs?` (optional; `{ mountPath? }` hint reserved for future mount implementations)
Copy file name to clipboardExpand all lines: docs/gateway/configuration-reference.md
+29Lines changed: 29 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1816,6 +1816,35 @@ Notes:
1816
1816
-`all`: any session. Cross-agent targeting still requires `tools.agentToAgent`.
1817
1817
- Sandbox clamp: when the current session is sandboxed and `agents.defaults.sandbox.sessionToolsVisibility="spawned"`, visibility is forced to `tree` even if `tools.sessions.visibility="all"`.
1818
1818
1819
+
### `tools.sessions_spawn`
1820
+
1821
+
Controls inline attachment support for `sessions_spawn`.
1822
+
1823
+
```json5
1824
+
{
1825
+
tools: {
1826
+
sessions_spawn: {
1827
+
attachments: {
1828
+
enabled:false, // opt-in: set true to allow inline file attachments
1829
+
maxTotalBytes:5242880, // 5 MB total across all files
1830
+
maxFiles:50,
1831
+
maxFileBytes:1048576, // 1 MB per file
1832
+
retainOnSessionKeep:false, // keep attachments when cleanup="keep"
1833
+
},
1834
+
},
1835
+
},
1836
+
}
1837
+
```
1838
+
1839
+
Notes:
1840
+
1841
+
- Attachments are only supported for `runtime: "subagent"`. ACP runtime rejects them.
1842
+
- Files are materialized into the child workspace at `.openclaw/attachments/<uuid>/` with a `.manifest.json`.
1843
+
- Attachment content is automatically redacted from transcript persistence.
1844
+
- Base64 inputs are validated with strict alphabet/padding checks and a pre-decode size guard.
1845
+
- File permissions are `0700` for directories and `0600` for files.
1846
+
- Cleanup follows the `cleanup` policy: `delete` always removes attachments; `keep` retains them only when `retainOnSessionKeep: true`.
- Reply format includes `Status`, `Result`, and compact stats.
487
487
-`Result` is the assistant completion text; if missing, the latest `toolResult` is used as fallback.
488
488
- Manual completion-mode spawns send directly first, with queue fallback and retry on transient failures (`status: "ok"` means run finished, not that announce delivered).
489
+
-`sessions_spawn` supports inline file attachments for subagent runtime only (ACP rejects them). Each attachment has `name`, `content`, and optional `encoding` (`utf8` or `base64`) and `mimeType`. Files are materialized into the child workspace at `.openclaw/attachments/<uuid>/` with a `.manifest.json` metadata file. The tool returns a receipt with `count`, `totalBytes`, per file `sha256`, and `relDir`. Attachment content is automatically redacted from transcript persistence.
490
+
- Configure limits via `tools.sessions_spawn.attachments` (`enabled`, `maxTotalBytes`, `maxFiles`, `maxFileBytes`, `retainOnSessionKeep`).
491
+
-`attachAs.mountPath` is a reserved hint for future mount implementations.
489
492
-`sessions_spawn` is non-blocking and returns `status: "accepted"` immediately.
490
493
-`sessions_send` runs a reply‑back ping‑pong (reply `REPLY_SKIP` to stop; max turns via `session.agentToAgent.maxPingPongTurns`, 0–5).
491
494
- After the ping‑pong, the target agent runs an **announce step**; reply `ANNOUNCE_SKIP` to suppress the announcement.
0 commit comments