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
- Messages/Codex: keep direct Codex-backed chats on the same automatic final-reply default as other source chats unless `messages.visibleReplies: "message_tool"` is explicitly configured.
41
42
- Codex app-server: preserve network access for sandboxed Codex code-mode turns when the OpenClaw sandbox allows outbound egress. Fixes #83347. Thanks @YusukeIt0.
42
43
- QA-Lab: keep the OTLP smoke decoder independent of removed OpenTelemetry generated-root internals.
43
44
- Messages: default group/channel visible replies to automatic final delivery again, keeping `message_tool` opt-in for ambient/shared rooms and tool-reliable models.
Copy file name to clipboardExpand all lines: docs/channels/groups.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -51,7 +51,7 @@ If the message tool is unavailable under the active tool policy, OpenClaw falls
51
51
back to automatic visible replies instead of silently suppressing the response.
52
52
`openclaw doctor` warns about this mismatch.
53
53
54
-
For direct chats and any other source event, use `messages.visibleReplies: "message_tool"` to apply the same tool-only visible-reply behavior globally. Harnesses can also choose this as their unset default; the Codex harness does this for Codex-mode direct chats. `messages.groupChat.visibleReplies` remains the more specific override for group/channel rooms.
54
+
For direct chats and any other source event, use `messages.visibleReplies: "message_tool"` to apply the same tool-only visible-reply behavior globally. When unset, direct/source chats use automatic final delivery across runtimes, including Codex. `messages.groupChat.visibleReplies` remains the more specific override for group/channel rooms.
55
55
56
56
This replaces the old pattern of forcing the model to answer `NO_REPLY` for most lurk-mode turns. In tool-only mode, doing nothing visible simply means not calling the message tool.
Copy file name to clipboardExpand all lines: docs/gateway/config-channels.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -787,7 +787,7 @@ See the full channel index: [Channels](/channels).
787
787
788
788
Group messages default to **require mention** (metadata mention or safe regex patterns). Applies to WhatsApp, Telegram, Discord, Google Chat, and iMessage group chats.
789
789
790
-
Visible replies are controlled separately. Normal group/channel requests default to `messages.groupChat.visibleReplies: "automatic"`: final assistant text posts through the legacy visible reply path. Set `"message_tool"` when a shared room should only post visible output after the agent calls `message(action=send)`. If the model returns final text without calling the message tool, that final text stays private and the gateway verbose log records suppressed payload metadata. To apply the same tool-only visible-reply behavior to direct chats too, set `messages.visibleReplies: "message_tool"`; the Codex harness also uses that tool-only behavior as its unset direct-chat default.
790
+
Visible replies are controlled separately. Normal direct, group, and channel requests default to automatic final delivery: final assistant text posts through the legacy visible reply path. Set `"message_tool"` when a chat should only post visible output after the agent calls `message(action=send)`. If the model returns final text without calling the message tool, that final text stays private and the gateway verbose log records suppressed payload metadata.
791
791
792
792
Tool-only visible replies require a model/runtime that reliably calls tools, and are recommended for shared ambient rooms on latest-generation models such as GPT 5.5. If
793
793
the session log shows assistant text with `didSendViaMessagingTool: false`, the
@@ -810,7 +810,7 @@ The gateway hot-reloads `messages` config after the file is saved. Restart only
810
810
```json5
811
811
{
812
812
messages: {
813
-
visibleReplies:"automatic", // global default for direct/source chats; Codex harness defaults unset direct chats to message_tool
813
+
visibleReplies:"automatic", // global default for direct/source chats
@@ -827,7 +827,7 @@ The gateway hot-reloads `messages` config after the file is saved. Restart only
827
827
828
828
`messages.groupChat.unmentionedInbound: "room_event"` submits unmentioned always-on group/channel messages as quiet room context on supported channels. Mentioned messages, commands, and direct messages remain user requests. See [Ambient room events](/channels/ambient-room-events) for complete Discord, Slack, and Telegram examples.
829
829
830
-
`messages.visibleReplies` is the global source-event default; `messages.groupChat.visibleReplies` overrides it for group/channel source events. When `messages.visibleReplies` is unset, a harness can provide its own direct/source default; the Codex harness defaults to `message_tool`. Channel allowlists and mention gating still decide whether an event is processed.
830
+
`messages.visibleReplies` is the global source-event default; `messages.groupChat.visibleReplies` overrides it for group/channel source events. When `messages.visibleReplies` is unset, direct/source chats use automatic final delivery across runtimes. Channel allowlists and mention gating still decide whether an event is processed.
Copy file name to clipboardExpand all lines: test/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@
5
5
These fixtures capture the default OpenAI/Codex happy path for prompt review:
6
6
7
7
- OpenAI model through the Codex harness and Codex app-server runtime.
8
-
-`messages.visibleReplies: "message_tool"`, which is the Codex-harness default for visible source replies.
8
+
-`messages.visibleReplies: "message_tool"` opt-in coverage for tool-only visible source replies.
9
9
- Telegram direct chat, Discord group chat, and a heartbeat turn with `heartbeat_respond` available through searchable dynamic tools.
10
10
11
11
The Markdown files show selected app-server thread/turn params plus a reconstructed model-bound prompt layer stack: Codex `gpt-5.5` model instructions from a pinned Codex model catalog fixture, Codex permission developer instructions for the happy-path yolo profile, simulated OpenClaw workspace bootstrap config instructions, OpenClaw developer instructions, user turn input, and references to the complete dynamic tool catalog.
Copy file name to clipboardExpand all lines: test/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/telegram-direct-codex-message-tool.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,8 +4,8 @@
4
4
5
5
## Scope
6
6
7
-
-Default happy path: OpenAI model through the Codex harness/runtime, Telegram direct conversation, and message-tool-only visible replies.
8
-
-A quiet turn is represented by not calling `message(action=send)`; the normal final assistant text is private to OpenClaw/Codex.
7
+
-Opt-in message-tool path: OpenAI model through the Codex harness/runtime, Telegram direct conversation, and message-tool-only visible replies.
8
+
-This scenario forces tool-only delivery; the default Codex direct path uses automatic final replies.
9
9
- This captures the OpenClaw-owned Codex app-server inputs and reconstructs the stable Codex model/permission layers from committed Codex prompt fixtures.
10
10
- This also simulates workspace bootstrap files forwarded through Codex `config.instructions`: `SOUL.md`, `TOOLS.md`, and `HEARTBEAT.md`.
0 commit comments