diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json
index 2b0c9176c..67f99dcae 100644
--- a/.openclaw-sync/source.json
+++ b/.openclaw-sync/source.json
@@ -1,5 +1,5 @@
{
"repository": "openclaw/openclaw",
- "sha": "d6e991db49646601a8fc1ac41bf57f9a563aa284",
- "syncedAt": "2026-05-05T00:39:29.211Z"
+ "sha": "b38e674c9fa12bc97bd410675dc0e07bd3e9f01a",
+ "syncedAt": "2026-05-05T00:39:55.281Z"
}
diff --git a/docs/cli/gateway.md b/docs/cli/gateway.md
index 7f1592388..b5b3edd81 100644
--- a/docs/cli/gateway.md
+++ b/docs/cli/gateway.md
@@ -481,12 +481,13 @@ openclaw gateway restart
- `gateway status`: `--url`, `--token`, `--password`, `--timeout`, `--no-probe`, `--require-rpc`, `--deep`, `--json`
- `gateway install`: `--port`, `--runtime `, `--token`, `--wrapper `, `--force`, `--json`
- - `gateway restart`: `--force`, `--wait `, `--json`
+ - `gateway restart`: `--safe`, `--force`, `--wait `, `--json`
- `gateway uninstall|start|stop`: `--json`
- Use `gateway restart` to restart a managed service. Do not chain `gateway stop` and `gateway start` as a restart substitute; on macOS, `gateway stop` intentionally disables the LaunchAgent before stopping it.
+ - `gateway restart --safe` asks the running Gateway to preflight active OpenClaw work and defer the restart until reply delivery, embedded runs, and task runs drain. `--safe` cannot be combined with `--force` or `--wait`.
- `gateway restart --wait 30s` overrides the configured restart drain budget for that restart. Bare numbers are milliseconds; units such as `s`, `m`, and `h` are accepted. `--wait 0` waits indefinitely.
- `gateway restart --force` skips the active-work drain and restarts immediately. Use it when an operator has already inspected the listed task blockers and wants the gateway back now.
- Lifecycle commands accept `--json` for scripting.