Codex Web GPT 2.1.9
Thank you for the extraordinary response to this project. v2.1.9 is a focused compatibility verification release on top of v2.1.8.
Fixes awaiting reporter confirmation
- Launcher-owned ChatGPT sign-in — #85, #91, #108, and #109. The launcher again keeps sign-in, provider popups, session state, and model turns in one persistent Electron partition. The dedicated external-Chrome profile and session-transfer path have been removed. Setup still requires a server-authenticated ChatGPT session, the exact Temporary Chat surface, and one visible composer before it can continue.
- Long prompts and automatic compaction — #99 and #105. Native prompt edits are now bounded to 16,000 UTF-16 characters while every committed prefix, caret position, final text, and cancellation boundary remains verified. This changes only browser insertion transport; model windows and automatic-compaction limits are unchanged.
- MCP connector catalog freshness — #107 and #108. After the complete existing hydration wait, a non-empty connector menu that still omits both the exact and legacy connector names triggers at most one page reload. The launcher then re-proves Temporary Chat, model effort, and the exact Codex Native2 connector before inserting or sending a prompt.
- Native model catalog compatibility — #112. ChatGPT-visible official Codex catalog rows can now provide the routed model template even when the same row is unavailable to API-key authentication, preventing the reported
/v1/models502 without inventing a model or changing catalog order. - Responses Lite native commands — Discussion #101. Freeform native
execdeclarations inside Codex's defaultfunctionsnamespace are preserved and returned as the matching custom tool call instead of being dropped by the parser. - Luna completed turns. A completed Luna answer no longer becomes a retryable failure solely because the model omitted its private rolling-checkpoint tail. The answer completes once and canonical Codex history remains authoritative; a present but malformed or mismatched checkpoint still fails closed.
- Codex route recovery and Restore. The managed route now has an exact recovery journal, crash-consistent write ordering, physical
config.tomlreconciliation, and post-operation verification. Restore, Disable, and Uninstall cannot report success unless the real Codex configuration matches the requested state.
These paths pass the full repository verification suite, but several reported failures depend on Windows, account, and ChatGPT states that are not reproducible on the maintainer machine. If you reported one of the linked issues, please retry the exact scenario with v2.1.9 and reply with the result.
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.9:
| Account / mode | Practical model context | One-message browser boundary |
|---|---|---|
| Free & Go — Luna | 28,000-token conservative browser request budget | Accepted at 25,400 and 28,547 estimated tokens; 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 |
Luna uses adaptive summarization through a private rolling checkpoint to keep long tasks useful within its measured browser request budget. OpenAI does not expose stable Plus or Pro account quotas that this project can report reliably.
I am personally disappointed that OpenAI reduced the usable limits in ChatGPT Web. The exact browser-composer limitation and the requirements for a reliable solution are tracked in #76. Contributions are welcome.
Direct Codex harness bridge
Six public MCP actions accept the trusted Codex turn_token directly while binding leases remain private inside the runtime: codex_exec, codex_write_stdin, codex_apply_patch, codex_view_image, codex_tool_inventory, and codex_tool_call.
The bridge adds no planner, semantic router, or fallback model. ChatGPT remains the selected model; deterministic code owns only transport, permissions, leases, validation, and evidence.
Connector setup
If you already created Codex Native2 for any v2.1.x release, keep it. v2.1.9 does not require another connector migration.
- Upgrade the launcher/runtime to v2.1.9.
- If you only have the legacy connector, create a new Tunnel connector named exactly Codex Native2 with Authentication: None.
- Under Permissions, select Allow all actions. Allow low-risk actions blocks commands and patches before they reach Codex; the outer Codex harness still enforces its own sandbox and approvals.
- Run Verify runtime.
Verification
- 319 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 native package and packaged-app smoke jobs for macOS ARM64, macOS Intel, Ubuntu, and Windows.
- Every published payload is covered by
checksums.txt.
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.8...v2.1.9
