feat(codex): add auto plugin approvals#92625
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 14, 2026, 8:27 PM ET / 00:27 UTC. Summary PR surface: Source +329, Tests +631, Docs +4. Total +964 across 20 files. Reproducibility: not applicable. this is a feature PR, and current main lacks the approval-routed Review metrics: 1 noteworthy metric.
Stored data model Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land after maintainer explicitly accepts the Do we have a high-confidence way to reproduce the issue? Not applicable: this is a feature PR, and current main lacks the approval-routed Is this the best way to solve the issue? Yes, pending maintainer confirmation: the implementation stays in the Codex plugin boundary and reuses the existing gateway plugin approval contract instead of adding a new core approval path. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 02acb0bd7455. Label changesLabel justifications:
Evidence reviewedPR surface: Source +329, Tests +631, Docs +4. Total +964 across 20 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 853ce969bf
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
853ce96 to
70ca0a2
Compare
70ca0a2 to
25d9cb2
Compare
* feat(codex): add on-request plugin approvals * feat(codex): rename plugin approval policy to auto * fix(codex): update binding schema version callers
* feat(codex): add on-request plugin approvals * feat(codex): rename plugin approval policy to auto * fix(codex): update binding schema version callers
* feat(codex): add on-request plugin approvals * feat(codex): rename plugin approval policy to auto * fix(codex): update binding schema version callers
* feat(codex): add on-request plugin approvals * feat(codex): rename plugin approval policy to auto * fix(codex): update binding schema version callers
Summary
on-requesttoauto; the runtime schema no longer acceptson-requestas a steady-state config value.allow_destructive_actions: "auto"Codex app-server elicitation approval requests through OpenClaw plugin approvals instead of auto-accepting or auto-denying them.trueas auto-accept for safe schemas via the internalallowmode, so it no longer collides with approval-routed behavior.on-requestvalues through Codex doctor config normalization, Codex migration planning/apply, and persisted app-server binding v1 normalization.true,false, andautobehavior.Linked context
Requested by maintainer in this Codex session for Codex plugin MCP elicitations and the renamed
autoconfig behavior.Related local spec/work: Codex plugin elicitations to plugin approvals.
Real behavior proof (required for external PRs)
create_eventapproval elicitations surface as OpenClaw plugin approvals in Slack and proceed only after user approval.codex-devprofile, Slack channel delivery, native Codex Google Calendar connector,[email protected]calendar account.pnpm openclaw --profile codex-dev gateway run --force --ws-log compact; thenpnpm openclaw --profile codex-dev agent --agent dev --session-key agent:dev:codex-on-request-create-event-accessibility-1781275534 --channel slack --to U04HRD671T2 --message "Use Google Calendar create_event immediately: calendar_id primary, title 'Walk lobster', start_time '2026-06-12T23:30:00-07:00', end_time '2026-06-13T00:00:00-07:00', timezone_str 'America/Los_Angeles', attendees []." --reply-channel slack --reply-to U04HRD671T2 --thinking off --json --timeout 600Plugin approval requiredfor approval IDplugin:516ce5b5-e027-4587-a6ee-847282bab742withAllow Once,Allow Always, andDeny; afterAllow Once, the Codex run completed withCreated Walk lobster on your primary calendar for June 12, 2026, 11:30 PM to June 13, 2026, 12:00 AM Pacific. Event ID: 62gktmukfqoqjrfujljgg1bv8k. Google Calendar connector search returned event id62gktmukfqoqjrfujljgg1bv8k, summaryWalk lobster, start2026-06-12T23:30:00-07:00, end2026-06-13T00:00:00-07:00.on-requesttoauto; current focused tests verify thatautoselects approval-routed behavior and that oldon-requestpersisted config/bindings are repaired into the canonical values.[email protected]; Arc/Safari required Google re-auth for that account, so I stopped before entering credentials.user rejected MCP tool call/ expired approval and did not create an event.Tests and validation
pnpm test extensions/codex/doctor-contract-api.test.ts extensions/codex/src/app-server/config.test.ts extensions/codex/src/app-server/plugin-thread-config.test.ts extensions/codex/src/app-server/elicitation-bridge.test.ts extensions/codex/src/app-server/session-binding.test.ts extensions/codex/src/migration/provider.test.ts extensions/codex/src/app-server/plugin-activation.test.ts- 7 files passed, 219 tests passed.pnpm lint --threads=8git diff --check.agents/skills/autoreview/scripts/autoreview --mode local- clean, no accepted/actionable findings.Regression coverage was added around Codex app-server approval config parsing, elicitation bridge approval behavior, plugin thread config, session binding v1 normalization, doctor config repair, Codex migration repair, and plugin activation defaults.
Risk checklist
Did user-visible behavior change? (
Yes/No)Yes. Codex plugin MCP elicitations can ask the user through plugin approval UI when configured as
auto.Did config, environment, or migration behavior change? (
Yes/No)Yes. The Codex plugin approval-routed config value is now
auto; oldon-requestvalues are repaired through doctor/migration/binding normalization rather than accepted as runtime config.Did security, auth, secrets, network, or tool execution behavior change? (
Yes/No)Yes. Tool execution approval behavior changes for Codex native plugin MCP tools.
What is the highest-risk area?
Approval semantics around write-capable native plugin MCP tools and migration of existing approval-routed config.
How is that risk mitigated?
The new mode is explicit in config, focused unit tests cover the approval path and repair surfaces, autoreview is clean, and the Slack approval path was live-tested before the final config spelling rename.
Current review state
What is the next action?
Review and CI.
What is still waiting on author, maintainer, CI, or external proof?
CI is pending after the latest push.
Which bot or reviewer comments were addressed?
None yet.