Codex Web GPT 2.1.3
Thank you for the extraordinary response to this project. v2.1.3 is a focused compatibility update released only hours after v2.1.2. It retains the direct Codex harness bridge, practical model limits, connector migration, browser sign-in, reversible setup, and native task lifecycle from the previous release while fixing three failures discovered against the current Codex Desktop runtime.
v2.1.3 patch fixes
This is a deliberately narrow compatibility patch on top of v2.1.2.
- Trusted Codex environment recovery. Current Codex Desktop may place a server-owned
developermessage between<environment_context>and the prompt, while sparse resumed histories may omit assistant output. v2.1.3 accepts those layouts only when native item ownership, turn/thread identity, absolutecwd, workspace roots, and sandbox metadata remain valid. New and resumed project tasks no longer fail withChatGPT web turn is missing cwd in trusted Codex environment context. This fixes the trusted-environment path reported in #51; the separate Windows Bun native crash remains tracked in #86. - Native Web subagents. Native-rooted new tasks now expose the exact available
chatgpt-web/*routes tospawn_agentthrough a readable V1 collaboration surface instead of rejectingchatgpt-web/proas unknown. There is no silent fallback or model remap: model choice, effort, account gates, context, service tier, and per-model tool capabilities remain unchanged. Restart Codex after upgrading so the model catalog refreshes, then start a new task; an existing V2-rooted task cannot switch collaboration surfaces in place. - Descriptor-driven command dispatch. In gateway-only Codex turns,
codex_execnow selects exactly one command ABI from the outerexecruntime's authoritativeALL_TOOLSregistry and invokes it once with its matching arguments. This supports bothexec_commandandshell_command, fixing #88 and restoring local commands and skill/file reads without retrying side effects or weakening Codex approvals.
ChatGPT Web models and limits
The browser transport and the underlying model window are different limits. These are the practical account-specific boundaries used by v2.1.3:
| Account / mode | Practical model context | One-message browser boundary |
|---|---|---|
| Free & Go — Luna | 28,000-token conservative browser request budget | Measured inputs were accepted at 25,400 and 28,547 estimated tokens and rejected at 32,283 |
| Plus — Instant | 41,000 tokens | 211,256 composer characters |
| Plus — Medium / High | 90,000 tokens | 1,048,572 composer characters |
| Pro — Instant | 137,000 tokens | 103,000 message tokens / 545,000 composer characters |
| Pro — Medium / High / Extra High | 256,000 tokens | 103,000 message tokens / 1,045,000 composer characters |
| Pro — Pro | 272,000 tokens | 104,000 message tokens / 1,635,000 composer characters |
- Free & Go: Luna is currently unlimited in this integration, subject to OpenAI's safeguards and future product changes. Its underlying model advertises a 1,050,000-token window, while one browser request uses a conservative 28,000-token budget derived from measured accepted and rejected inputs. v2.1.3 uses adaptive summarization through a private rolling checkpoint. Luna is extremely fast, but the checkpoint is necessary to keep long Codex tasks useful within that browser request budget.
- Plus: Instant, Medium, and High are available. OpenAI does not expose a stable account quota that this project can report reliably.
- Pro: Instant, Medium, High, Extra High, and Pro are available. OpenAI does not expose stable per-mode account quotas that this project can report reliably.
I am personally disappointed that OpenAI reduced the usable limits in ChatGPT Web. The browser composer can become the bottleneck before the underlying model window is full. The exact limitation, failed file-attachment experiment, and requirements for a real solution are documented in #76. If you want to help solve it cleanly, please work on that issue and open a pull request. I will actively review contributions and will likely merge a reliable implementation that preserves the existing correctness guarantees.
Direct Codex harness bridge
The v2.1 direct bridge removes the model-visible bind handshake. Six public MCP actions accept the trusted Codex turn_token directly, while binding leases stay private inside the runtime. This removes an extra tool round trip and the stale model-copied binding handle without weakening the outer Codex sandbox, approvals, or evidence chain.
codex_execcodex_write_stdincodex_apply_patchcodex_view_imagecodex_tool_inventorycodex_tool_call
The architecture does not add another planner, semantic router, or fallback model. ChatGPT remains the selected model; deterministic code only owns transport, permissions, leases, validation, and evidence.
Connector requirement
The v2.1 line changes the public MCP contract. Existing connectors cache that contract by identity, so an old Codex Native connector must not be renamed or refreshed in place.
If you already created Codex Native2 for v2.1.2, keep it; v2.1.3 does not require another connector migration.
- Upgrade the launcher/runtime to v2.1.3.
- If you only have the legacy connector, in ChatGPT Developer Mode create a new Tunnel connector named exactly Codex Native2, using the same tunnel and Authentication: None.
- Under Permissions, select Allow all actions. Allow low-risk actions blocks commands and patches in ChatGPT before they reach Codex. The outer Codex harness still enforces its own sandbox and approvals.
- Run Verify runtime. It selects Codex Native2 exactly and fails with an explicit migration error when only the legacy connector exists.
Highlights
- Current ChatGPT reasoning slider support across Instant, Medium, High, Extra High, and Pro.
- Luna-only account detection and adaptive rolling checkpoints for Free and Go accounts.
- Bounded, byte-verified large-prompt insertion with explicit account and browser limits.
- Dedicated compaction turns that preserve the active tool loop and resume the original Codex turn.
- Browser-session retirement on disconnects and retryable upstream failures.
- Authenticated turn leases, cancellation, tunnel readiness, diagnostics, and launcher lifecycle checks.
- AVX2-independent Bun packaging for Windows CPUs that cannot run the optimized binary.
Issues addressed
v2.1.3 fixes the trusted-environment cwd compatibility failure reported in #51 for both new and resumed Codex Desktop chats. The separate native Windows Bun crash remains tracked in #86.
v2.1.3 also fixes #88: gateway-only command calls now follow the exact command ABI advertised by the outer Codex registry instead of assuming exec_command.
Fixed in the original v2.1.2 build: #52, #59, #60, #68, #72, #73, and #74. The prompt-streaming and compaction changes are also expected to resolve #57 and #63; please reopen those reports with v2.1.3 diagnostics if either symptom persists.
The refreshed v2.1.2 packages additionally address #66 and #70 with symmetric browser zoom controls and a verified system Chrome/Chromium sign-in handoff for passkeys and identity verification. The Luna-only account route already covers ChatGPT Go accounts reported in #77; file attachment is intentionally not used as an unverified context fallback.
v2.1.2 also fixes #80 and #81. Explicit launcher Install/Reinstall adopts a changed or deleted Codex route as a new reversible baseline while unattended updates remain fail-closed. First-time launcher setup can also persist the Chrome/Chromium login executable alongside its owned browser descriptor.
Verification
- Local release verification: 301 repository runtime tests and 175 launcher tests, both typechecks, dependency audit, renderer build, relocatable runtime smoke, native macOS ARM64 package, and packaged-app smoke.
- Green release builds for macOS ARM64, macOS Intel, Ubuntu, and Windows, including native packaging and packaged-app smoke on every platform.
- All 20 published assets were verified: every one of the 19 payload assets matches both
checksums.txtand GitHub's SHA-256 digest. The published demo is byte-identical to the repository GIF (3b8cda5caaac1e971b52e32ec69ea8d8e56e3bf1cba40a08c9a273eff2256012).
Why this project exists
I believe useful AI should be available to as many people as possible. If you already pay for ChatGPT and use the services included in your subscription within the applicable rules, you should be able to use that access in the workflow that helps you most. This project makes that workflow as convenient and native as possible.
Contributions, issues, and forks are welcome. If this project helps you, I would really appreciate a star.
Full changelog: v2.1.2...v2.1.3
