diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json
index 4af289f6c..90e65e104 100644
--- a/.openclaw-sync/source.json
+++ b/.openclaw-sync/source.json
@@ -1,5 +1,5 @@
{
"repository": "openclaw/openclaw",
- "sha": "e468da10403732e4a3ce408dbd519cee0dc91839",
- "syncedAt": "2026-04-05T09:33:38.306Z"
+ "sha": "e3eb615da895fe173841518848aa28a871d49351",
+ "syncedAt": "2026-04-05T09:45:44.787Z"
}
diff --git a/docs/gateway/configuration-reference.md b/docs/gateway/configuration-reference.md
index a9006afd7..789196019 100644
--- a/docs/gateway/configuration-reference.md
+++ b/docs/gateway/configuration-reference.md
@@ -3274,6 +3274,7 @@ Notes:
cacheTrace: {
enabled: false,
+ filePath: "~/.openclaw/logs/cache-trace.jsonl",
includeMessages: true,
includePrompt: true,
includeSystem: true,
@@ -3294,6 +3295,7 @@ Notes:
- `otel.sampleRate`: trace sampling rate `0`–`1`.
- `otel.flushIntervalMs`: periodic telemetry flush interval in ms.
- `cacheTrace.enabled`: log cache trace snapshots for embedded runs (default: `false`).
+- `cacheTrace.filePath`: output path for cache trace JSONL (default: `$OPENCLAW_STATE_DIR/logs/cache-trace.jsonl`).
- `cacheTrace.includeMessages` / `includePrompt` / `includeSystem`: control what is included in cache trace output (all default: `true`).
---
@@ -3367,7 +3369,9 @@ Notes:
- `stream.hiddenBoundarySeparator`: separator before visible text after hidden tool events (default: `"paragraph"`).
- `stream.maxOutputChars`: maximum assistant output characters projected per ACP turn.
- `stream.maxSessionUpdateChars`: maximum characters for projected ACP status/update lines.
+- `stream.tagVisibility`: record of tag names to boolean visibility overrides for streamed events.
- `runtime.ttlMinutes`: idle TTL in minutes for ACP session workers before eligible cleanup.
+- `runtime.installCommand`: optional install command to run when bootstrapping an ACP runtime environment.
---
diff --git a/docs/reference/memory-config.md b/docs/reference/memory-config.md
index bf9ce5804..a8f78e4b3 100644
--- a/docs/reference/memory-config.md
+++ b/docs/reference/memory-config.md
@@ -307,6 +307,8 @@ Set `memory.backend = "qmd"` to enable. All QMD settings live under
| `update.waitForBootSync` | `boolean` | `false` | Block startup until refresh completes |
| `update.embedInterval` | `string` | -- | Separate embed cadence |
| `update.commandTimeoutMs` | `number` | -- | Timeout for QMD commands |
+| `update.updateTimeoutMs` | `number` | -- | Timeout for QMD update operations |
+| `update.embedTimeoutMs` | `number` | -- | Timeout for QMD embed operations |
### Limits
diff --git a/docs/tools/reactions.md b/docs/tools/reactions.md
index cce032987..26456ecdd 100644
--- a/docs/tools/reactions.md
+++ b/docs/tools/reactions.md
@@ -53,6 +53,11 @@ tool with the `react` action. Reaction behavior varies by channel.
- `remove: true` removes that specific emoji reaction.
+
+ - Use the `feishu_reaction` tool with actions `add`, `remove`, and `list`.
+ - Add/remove requires `emoji_type`; remove also requires `reaction_id`.
+
+
- Inbound reaction notifications are controlled by `channels.signal.reactionNotifications`: `"off"` disables them, `"own"` (default) emits events when users react to bot messages, and `"all"` emits events for all reactions.