Default Codex replies to the message tool#75745
Conversation
|
Codex review: needs changes before merge. What this changes: The PR adds an optional agent-harness visible-reply default, makes the Codex harness default direct source replies to the Required change before merge: A worker can safely make the narrow mechanical repair by regenerating and committing the Plugin SDK API baseline hash on the PR branch; maintainer review remains for the runtime delivery-default behavior itself. Security review: Security review cleared: The diff changes reply routing, docs, tests, changelog, and a typed SDK surface without adding dependencies, CI execution, secrets handling, downloaded artifacts, or broader permissions. Review findings:
Review detailsBest possible solution: Keep the additive harness-owned delivery default, regenerate and commit the Plugin SDK API baseline hash, then land after maintainer review and targeted Codex/direct-reply validation. Do we have a high-confidence way to reproduce the issue? Yes. Current main shows direct source replies resolve to automatic delivery without global Is this the best way to solve the issue? Mostly yes. A harness-level default is the narrow maintainable design because it avoids hard-coding Codex into core dispatch and preserves explicit config, native-command, and message-tool-unavailable precedence; the missing SDK baseline is the repair needed before merge. Full review comments:
Overall correctness: patch is incorrect Acceptance criteria:
What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 53593f0683fa. |
|
Closing this in favor of #75765. The useful behavior from this PR has been folded into the replacement branch: Codex harness direct/source replies now default to the OpenClaw message tool when messages.visibleReplies is unset, while explicit config still wins. #75765 also carries the structured heartbeat response tool work, the live Telegram heartbeat evidence, the SDK baseline update for the new harness delivery-default contract, and the CI fixes needed for the combined change. Keeping the default-reply behavior and heartbeat tool work in one PR avoids two overlapping changes to Codex harness delivery semantics. |
Codex app-server turns already expose the OpenClaw
messagetool by default, and group/channel conversations already treat visible room output as something the agent should send deliberately through that tool. Direct chats were the odd case: even when the active runtime was Codex, OpenClaw would still automatically post the final assistant message unlessmessages.visibleReplieswas configured globally.This adds a small harness-level delivery default so runtimes can express that preference without core knowing about a specific plugin id. The Codex harness now opts into message-tool visible replies for source turns where the operator has not explicitly configured delivery. Existing explicit
messages.visibleRepliessettings, native command replies, and message-tool-unavailable fallback behavior still win.The result is a cleaner Codex-mode path: the model can finish its turn privately, and channel-visible output is a deliberate
message(action="send")call.