Skip to content

Support Codex MCP forms and native input requests - #1371

Merged
currentbits merged 2 commits into
mainfrom
fix/codex-input-forms
Sep 28, 2026
Merged

currentbits merged 2 commits into
mainfrom
fix/codex-input-forms

Conversation

@currentbits

@currentbits currentbits commented Sep 28, 2026 •

Copy link
Copy Markdown
Owner

Codex previously rejected MCP forms, URL elicitation and native requestUserInput requests as unsupported. These now display an input card on the existing permission queue and return the protocol's typed response only after the user submits it.

The host validates flat MCP schemas and submitted values using the bundled MCP SDK/Ajv. Invalid values remain editable. Native answers use question IDs, secret inputs are masked, and submitted values are omitted from Solenta's permission transcript events. Decline, cancellation, Stop and remote serverRequest/resolved clear or answer requests without inventing input; stale replies are rejected.

Development setup now explicitly installs the existing memory-server dependencies, which supply MCP tooling and input validation. Packaging and CI already install them.

Validation: all six hosted test/smoke jobs pass on macOS, Ubuntu and Windows at 311e86a2593455e1d6ac26ac4abbaaf7c2bcc75c (run). Locally, 4,048 backend tests and 2,636 renderer tests passed; typecheck, preload synchronization check and production build passed. Process-level fixtures exercise both input formats through the runner and JSON-RPC transport.

Real Codex CLI 0.144.1 with gpt-5.6-sol completed both protocol probes through the production parser, validator and JSON-RPC response code: a local MCP fixture received a typed enum/integer/boolean form response (including false), and a native request_user_input question received its selected answer. Both emitted serverRequest/resolved and the model continued. The native probe enabled features.default_mode_request_user_input only for that process; no user configuration changed. These were synthetic protocol probes, not an end-to-end renderer test. Visual screenshot verification remains incomplete: the Browser pane was closed, and native Computer Use rejected input immediately after a state refresh.

Partial delivery of #1190. Nested/custom form schemas, file-change cards and sandbox permission overlays remain unsupported and fail closed. No new dependency or permission-policy change.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-28T09:22:38.614136Z 9ae9851 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9ae985151a

ℹ️ 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".

Comment thread electron/codexInput.js
Comment on lines +10 to +12
const req = createRequire(path.join(__dirname, "../memory-server/package.json"));
const { AjvJsonSchemaValidator } = req("@modelcontextprotocol/sdk/validation/ajv");
return new AjvJsonSchemaValidator().getValidator(schema);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Make the validator available in the documented dev install

In a fresh source checkout following the README's development setup (npm install at the root plus the separate core install), memory-server/node_modules does not exist because the root project is not a workspace and does not install that package's dependencies. This dynamic require therefore throws for every MCP form and native requestUserInput; handleCodexServerRequest catches it and rejects the request as an unsupported schema, so the newly added input UI does not work under the documented npm run dev workflow. Add the SDK to the root runtime dependencies, otherwise decouple validation from the optional nested install, or update the required setup so the dependency is reliably present.

Useful? React with 👍 / 👎.

@currentbits
currentbits merged commit 65d15d0 into main Sep 28, 2026
6 checks passed
@currentbits
currentbits deleted the fix/codex-input-forms branch October 3, 2026 16:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant