fix(codex): allow configured apps with disabled base defaults#95970
fix(codex): allow configured apps with disabled base defaults#95970kevinlin-openai wants to merge 1 commit into
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed June 23, 2026, 3:22 PM ET / 19:22 UTC. Summary PR surface: Source 0, Tests -2. Total -2 across 2 files. Reproducibility: yes. from source: current main skips a configured, ownership-proven app when Codex reports Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Preserve explicit per-app disables while allowing the intended default-disabled base profile case, with regression coverage for both and real Codex thread proof before merge. Do we have a high-confidence way to reproduce the issue? Yes from source: current main skips a configured, ownership-proven app when Codex reports Is this the best way to solve the issue? No: dropping the Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 6343e1483faf. Label changesLabel justifications:
Evidence reviewedPR surface: Source 0, Tests -2. Total -2 across 2 files. View PR surface stats
Security concerns:
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
|
What Problem This Solves
Fixes an issue where an explicitly configured Codex app plugin could not be
enabled for a gateway thread when the app was accessible and ownership-proven
but its base profile intentionally reported
isEnabled = false.Why This Change Was Made
OpenClaw now treats explicit plugin configuration plus proven ownership and app
accessibility as the positive per-thread grant. Base-profile enablement is no
longer required, while inaccessible, unowned, disabled, and activation-failed
apps retain their existing fail-closed paths.
User Impact
Operators can keep Codex apps disabled by default in the devbox profile and
still grant only the configured plugin-owned app for a thread. This does not
enable unconfigured apps or bypass Codex managed requirements.
Evidence
node scripts/run-vitest.mjs run extensions/codex/src/app-server/plugin-thread-config.test.ts— 16 tests passed.node_modules/oxfmt/bin/oxfmt --check extensions/codex/src/app-server/plugin-thread-config.ts extensions/codex/src/app-server/plugin-thread-config.test.ts— passed.OPENCLAW_BUILD_ALL_NO_PNPM=1 node scripts/tsdown-build.mjs— passed.node scripts/runtime-postbuild.mjs— passed.git diff --check -- extensions/codex/src/app-server/plugin-thread-config.ts extensions/codex/src/app-server/plugin-thread-config.test.ts— passed.