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
- Docs/iMessage: deprecate BlueBubbles for new OpenClaw setups, document the upstream server-release rationale, and point new iMessage deployments toward the native `imsg` path while keeping BlueBubbles as a supported legacy fallback.
14
14
- Discord/streaming: default Discord replies to progress draft previews so tool/work activity appears in one edited Discord message unless `channels.discord.streaming.mode` is set to `off`.
15
15
- Plugins/install: add `npm-pack:<path.tgz>` installs so local npm pack artifacts run through the same managed npm-root install, lockfile verification, dependency scan, and install-record path as registry npm plugins.
16
+
- Codex app-server: disarm the short post-tool completion watchdog after current-turn activity, expose `appServer.turnCompletionIdleTimeoutMs`, and include raw assistant item context in idle-timeout diagnostics so status-only post-tool stalls stop failing as idle. Fixes #77984. Thanks @roseware-dev and @rubencu.
16
17
- Plugin skills/Windows: publish plugin-provided skill directories as junctions on Windows so standard users without Developer Mode can register plugin skills without symlink EPERM failures. Fixes #77958. (#77971) Thanks @hclsys and @jarro.
17
18
- MS Teams: surface blocked Bot Framework egress by logging JWKS fetch network failures and adding a Bot Connector send hint for transport-level reply failures. Fixes #77674. (#78081) Thanks @Beandon13.
18
19
- Gateway/sessions: fast-path already-qualified model refs while building session-list rows so `openclaw sessions` and Control UI session lists avoid heavyweight model resolution on large stores. (#77902) Thanks @ragesaq.
|`transport`|`"stdio"`|`"stdio"` spawns Codex; `"websocket"` connects to `url`. |
634
-
|`command`| managed Codex binary | Executable for stdio transport. Leave unset to use the managed binary; set it only for an explicit override. |
635
-
|`args`|`["app-server", "--listen", "stdio://"]`| Arguments for stdio transport. |
636
-
|`url`| unset | WebSocket app-server URL. |
637
-
|`authToken`| unset | Bearer token for WebSocket transport. |
638
-
|`headers`|`{}`| Extra WebSocket headers. |
639
-
|`clearEnv`|`[]`| Extra environment variable names removed from the spawned stdio app-server process after OpenClaw builds its inherited environment. `CODEX_HOME` and `HOME` are reserved for OpenClaw's per-agent Codex isolation on local launches. |
640
-
|`requestTimeoutMs`|`60000`| Timeout for app-server control-plane calls. |
641
-
|`mode`|`"yolo"`| Preset for YOLO or guardian-reviewed execution. |
642
-
|`approvalPolicy`|`"never"`| Native Codex approval policy sent to thread start/resume/turn. |
643
-
|`sandbox`|`"danger-full-access"`| Native Codex sandbox mode sent to thread start/resume. |
644
-
|`approvalsReviewer`|`"user"`| Use `"auto_review"` to let Codex review native approval prompts. `guardian_subagent` remains a legacy alias. |
645
-
|`serviceTier`| unset | Optional Codex app-server service tier: `"fast"`, `"flex"`, or `null`. Invalid legacy values are ignored. |
|`transport`|`"stdio"`|`"stdio"` spawns Codex; `"websocket"` connects to `url`. |
634
+
|`command`| managed Codex binary | Executable for stdio transport. Leave unset to use the managed binary; set it only for an explicit override. |
635
+
|`args`|`["app-server", "--listen", "stdio://"]`| Arguments for stdio transport. |
636
+
|`url`| unset | WebSocket app-server URL. |
637
+
|`authToken`| unset | Bearer token for WebSocket transport. |
638
+
|`headers`|`{}`| Extra WebSocket headers. |
639
+
|`clearEnv`|`[]`| Extra environment variable names removed from the spawned stdio app-server process after OpenClaw builds its inherited environment. `CODEX_HOME` and `HOME` are reserved for OpenClaw's per-agent Codex isolation on local launches. |
640
+
|`requestTimeoutMs`|`60000`| Timeout for app-server control-plane calls. |
641
+
|`turnCompletionIdleTimeoutMs`|`60000`| Quiet window after a turn-scoped Codex app-server request while OpenClaw waits for `turn/completed`. Raise this for slow post-tool or status-only synthesis phases. |
642
+
|`mode`|`"yolo"`| Preset for YOLO or guardian-reviewed execution. |
643
+
|`approvalPolicy`|`"never"`| Native Codex approval policy sent to thread start/resume/turn. |
644
+
|`sandbox`|`"danger-full-access"`| Native Codex sandbox mode sent to thread start/resume. |
645
+
|`approvalsReviewer`|`"user"`| Use `"auto_review"` to let Codex review native approval prompts. `guardian_subagent` remains a legacy alias. |
646
+
|`serviceTier`| unset | Optional Codex app-server service tier: `"fast"`, `"flex"`, or `null`. Invalid legacy values are ignored. |
646
647
647
648
OpenClaw-owned dynamic tool calls are bounded independently from
648
649
`appServer.requestTimeoutMs`: each Codex `item/tool/call` request must receive
@@ -652,10 +653,15 @@ the turn can continue instead of leaving the session in `processing`.
652
653
653
654
After OpenClaw responds to a Codex turn-scoped app-server request, the harness
654
655
also expects Codex to finish the native turn with `turn/completed`. If the
655
-
app-server goes quiet for 60 seconds after that response, OpenClaw best-effort
656
-
interrupts the Codex turn, records a diagnostic timeout, and releases the
657
-
OpenClaw session lane so follow-up chat messages are not queued behind a stale
658
-
native turn.
656
+
app-server goes quiet for `appServer.turnCompletionIdleTimeoutMs` after that
657
+
response, OpenClaw best-effort interrupts the Codex turn, records a diagnostic
658
+
timeout, and releases the OpenClaw session lane so follow-up chat messages are
659
+
not queued behind a stale native turn. Any non-terminal notification for the
660
+
same turn, including `rawResponseItem/completed`, disarms that short watchdog
661
+
because Codex has proven the turn is still alive; the longer terminal watchdog
662
+
continues to protect genuinely stuck turns. Timeout diagnostics include the
663
+
last app-server notification method and, for raw assistant response items, the
664
+
item type, role, id, and a bounded assistant text preview.
659
665
660
666
Environment overrides remain available for local testing:
0 commit comments