feat(codex): regenerate protocol bindings for Codex 0.159 - #14311
Conversation
Recommend Codex 0.159 from T3 Code 0.0.44 while keeping 0.156 supported. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — The PR regenerates Codex bindings with new gateway OAuth requests, authorization-status notifications, and initialization controls, making authentication behavior part of the changed runtime contract. Existing defaults remain unchanged, but the authentication-sensitive API expansion requires human review. You can add or adjust custom eligibility rules. Learn more. |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: pingdotgg/t3code/.coderabbit.yaml Review profile: CHILL Plan: Team Run ID: ⛔ Files ignored due to path filters (3)
📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe Codex generator now uses a different upstream revision and explicitly resolves response schemas for three gateway OAuth methods. The model manifest separates Codex compatibility recommendations by t3Code version and updates its timestamp. ChangesCodex updates
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Feature Suggested reviewers: Merge Risk: ⚪ Minimal · up to The generated OAuth bindings match the pinned schemas, and the Codex recommendation changes at the intended T3 Code version. No actionable merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
Merges origin/main (ff1db03, v0.0.44) into t3code/codex-turn-mapping (cb64162). No new migrations on main. V1 files V2 deleted (kept deleted; main's changes considered for V2): - orchestration/Layers/ProviderRuntimeIngestion(.test).ts, provider/Layers/CodexAdapter(.test).ts, provider/Layers/ProviderService(.test).ts, server.test.ts: pingdotgg#14290 changes. V2 equivalents ported or listed as follow-ups below. - provider/Layers/OpenCodeAdapter(.test).ts: e518866. OpenCodeAdapterV2 settles admissionSettled in an ensuring on both the prompt and /compact paths, and interrupt waits with a 10s timeout, so it does not hang the same way. Not changed here. Content conflicts (both sides kept unless noted): - server.ts: V2 layer structure; main's CodexInstallation layer added next to AntigravityInstallation; the installation refresh now watches Codex and Antigravity (renamed ProviderInstallationRefreshLive, per main). - ws.ts, contracts rpc.ts/server.ts, settingsSearch.ts, docs/user/install.md (Pi row kept, Codex row from main): take both. - CodexDriver.test.ts, ProviderRegistry.test.ts, ProviderInstanceRegistryLive .test.ts: V2's adapter/ID layers plus main's CodexInstallation, ServerSecretStore and ServerEnvironmentIdentity; main's mocks rewritten for V2's namespace ServerSecretStore import, and V2's real ServerSecretStore layer kept where it already provided one. - desktop main.ts and DesktopClerk.test.ts: V2's pre-ready FileSystem plus main's ElectronShell; main's `shell` test parameter appended after V2's platform/fileSystemLayer parameters. - ui/wizard.tsx: main's `size="wide"` variant replaces V2's className escape hatch, whose only caller (AddProviderInstanceDialog) now uses size="wide". Wide is max-w-3xl, where V2 used max-w-2xl. - AddProviderInstanceDialog.tsx: V2's ACP/auth wizard structure. Applied main's Codex step-0 "Configure manually" and "Continue with ChatGPT" actions, the ghost-muted Cancel, and setupMode "existing" on manual Codex saves. Kept V2's "Add provider" title and used main's description. - ProviderInstanceCard.tsx: main's folded Runtime section for managed Codex; V2's rule of hiding Runtime when a driver has no settings fields still applies to other drivers. - ProviderSettingsPanel.tsx: main's CodexSetupSection comes before V2's generic ProviderAuthenticationSection, because managed Codex also reports setup.canAuthenticate. - WelcomeWizard.tsx: V2's ProviderInstanceIcon with main's displayName and padding. - ThreadErrorBanner.tsx: V2's usage-limit warning variant plus main's ChatGPT usage-limit presentation. V2's plain dismiss icon kept. - ChatView.tsx: V2's timeline error wiring kept. Main's chatGptUsageLimit prop dropped (see below). Ported for pingdotgg#14290 (managed ChatGPT auth): - CodexAdapterV2 gains an optional resolveRuntime that is resolved on each openSession and replaces the launch settings and environment (the T3-installed binary, token-sharing launch args, ACCESS_TOKEN and CODEX_HOME). Managed sessions drop serviceTier, matching V1. - CodexManagedProvider builds its orchestrationAdapter with createCodexAdapterV2 in place of the deleted V1 makeCodexAdapter. The adapter registry already wraps openSession in auth.withAccess. - CodexTextGeneration: added the Scope import that main's resolveRuntime signature needs (V2 had dropped it). - Live orchestrator tests provide CodexInstallation and ServerEnvironmentIdentity, which CodexDriver now requires. - CodexDriver test: the managed account now also opens a V2 session and checks the launch uses the installed binary and account token, and not an ambient OPENAI_API_KEY. Dropped main behavior, because it reads V1 thread activities that V2 removed: - shared isChatGptUsageLimitError and its test, the web ChatView chatGptUsageLimit prop, and mobile ChatGptUsageLimitNotice. The ThreadErrorBanner chatGptUsageLimit prop stays, currently unset. Follow-up work maps it onto V2 provider failures. Other merge fixes: - providerMaintenanceRunner.test.ts: main added CURSOR_DRIVER to a compatibility list. V2 no longer updates the Cursor CLI, so it is removed. - AddProviderInstanceDialog.environment.test.tsx: Codex step 0 now offers "Configure manually", and a manual save stores setupMode "existing". - model-manifest.json and packages/effect-codex-app-server/src/_generated are taken from main (pingdotgg#14198 OpenCode 2 incompatible; pingdotgg#14311 Codex 0.159 bindings). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merges upstream `pingdotgg/t3code` `d2c9281b8..0fcd5f9`, 16 commits, as a merge commit. - Landed 158 files, against 156 in the upstream range. The two extra files are `ThreadStatusIndicators.test.tsx` (reset to upstream's copy) and `docs/fork/inventory.json`. Fork delta: 756 files, unchanged. - `verify.mjs`, full pass: all 10 checks passed (duplicate-adds, tripwires, resolution-check, unsupported-methods, lockfile, fmt, lint, typecheck, build, test). ## Conflicts - **`ThreadStatusIndicators.tsx`** (converged): the fork delta is retired. Upstream pingdotgg#13211 makes the multi-PR `+N` badge open the `pull-requests` panel, which is exactly what the `task-bound-pull-request` convergence entry watches for. I took upstream whole and removed the fork's composer-footer popover (`PullRequestLinksBadge`, the mini-list `onSelect` and its tests). **Behavior change for reviewers:** in the composer footer, a thread with several unstacked PRs now opens the right-hand PR panel instead of a popover. The inventory row is now `theirs`, and the convergence entry is updated. - **`BranchToolbarBranchSelector.tsx`**: now uses upstream's `onOpenList`. The popover props are dropped, and the worktree gate is kept. - **`FilePreviewPanel.tsx`** (decide): takes upstream's `relativePath !== null` read guard and keeps the fork's `onRetargetFile` effect. - **`ProviderInstanceCard.tsx`**: upstream's new folded Runtime section for Codex-managed instances stays inside the `FEATURES.providerConfiguration` gate. - **`pnpm-lock.yaml`**: re-derived with `install.mjs`. ## Usable as-is - The multi-PR badge opens the pull requests panel (pingdotgg#13211). - Command menu descriptions use the full row width (pingdotgg#8865). - Workspace-root links open in the file explorer (pingdotgg#12449). - User-input timeline rows show the agent's question (pingdotgg#12900). - Model ids in inline code no longer turn into file chips (pingdotgg#13909). - Unresolved PR links use the compact link tooltip (pingdotgg#14243). - Client parts of the OpenCode Go per-credential limit merge in `packages/shared` (pingdotgg#14209). ## Unsupported in Moatless / needs implementation - **Managed ChatGPT sign-in for Codex** (pingdotgg#14290): four new RPC methods, `provider.chatgpt.reconnect-profile`, `provider.chatgpt.import-profile`, `provider.chatgpt.handoff.subscribe` and `provider.codex.auth-callback.subscribe`, plus a desktop auth callback and mobile ChatGPT usage notices. - All four share `ProviderSetupRpcError`, which already carries `UnsupportedMethodError`, so `unsupported-methods` reports no ADD or DROP. - The web flow shows only when a Codex instance's config has `setupMode: "managed"`, which Moatless never reports, so it stays dormant. - Recorded under _Provider setup_ in `docs/fork/gaps.md`. ## Backend behavior to consider reproducing in Moatless Added to _Runtime fixes upstream made to its own server_ in `docs/fork/gaps.md`: - **Crashed provider sessions (pingdotgg#10607):** when the provider process dies mid-turn, settle the in-flight turn as an error and drop the session, so the next send starts fresh instead of hanging. Upstream did this for Grok; the same crash can happen to any provider CLI Moatless drives. - **Codex Pro Max accounts (pingdotgg#14304):** recognise the `promax` plan type, so the account loads and Ultrafast shows up. Also Codex 0.159 protocol bindings and a model-manifest bump (pingdotgg#14311). - **OpenCode Go usage limits (pingdotgg#14209):** merge them per credential. ## Sweep 18 new files match the owned-concern pattern. All of them belong to pingdotgg#14290's ChatGPT auth, and none touches a fork-owned surface. No new upstream workflows. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- Moatless task: https://moatless.soaplabstest.com/tasks/d0b92fdf-ddd8-46ee-82b8-838c3b6f543e
## What's Changed * fix(shared): merge OpenCode Go limits by credential by @Yash-Singh1 in pingdotgg/t3code#14209 * feat(codex): regenerate protocol bindings for Codex 0.159 by @juliusmarminge in pingdotgg/t3code#14311 * test(server): stop pinning codex install advisory to a release range by @maria-rcks in pingdotgg/t3code#14323 * chore: stop CodeRabbit from editing PR descriptions by @t3dotgg in pingdotgg/t3code#14307 * fix(web): unresolved pull request links use the compact link tooltip by @flamboh in pingdotgg/t3code#14243 * fix(client-runtime): keep model ids in inline code from becoming file chips by @otavio in pingdotgg/t3code#13909 * fix(web): show the agent's question on user-input timeline rows by @saphid in pingdotgg/t3code#12900 * fix(web): open workspace root links in the file explorer by @saphid in pingdotgg/t3code#12449 * fix(grok): recover from crashed provider sessions by @saphid in pingdotgg/t3code#10607 * fix(web): let command menu descriptions use the full row width by @jakaskerjanc in pingdotgg/t3code#8865 * fix(web): multi-PR badges open the linked pull requests panel by @flamboh in pingdotgg/t3code#13211 ## New Contributors * @jakaskerjanc made their first contribution in pingdotgg/t3code#8865 **Full Changelog**: pingdotgg/t3code@v0.0.44-nightly.20260929.2456...v0.0.45-nightly.20260930.2468 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.45-nightly.20260930.2468
* Update currentModels in model-manifest.json * chore(release): prepare v0.0.43 * fix(codex): Pro Max accounts load, so Ultrafast shows up (pingdotgg#14304) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(shared): merge OpenCode Go limits by credential (pingdotgg#14209) * feat(codex): regenerate protocol bindings for Codex 0.159 (pingdotgg#14311) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * chore(release): prepare v0.0.44 * test(server): stop pinning codex install advisory to a release range (pingdotgg#14323) * chore: stop CodeRabbit from editing PR descriptions (pingdotgg#14307) * fix(web): unresolved pull request links use the compact link tooltip (pingdotgg#14243) * fix(client-runtime): keep model ids in inline code from becoming file chips (pingdotgg#13909) * fix(web): show the agent's question on user-input timeline rows (pingdotgg#12900) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(web): open workspace root links in the file explorer (pingdotgg#12449) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(grok): recover from crashed provider sessions (pingdotgg#10607) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: SAPHID <saphid@users.noreply.github.com> * fix(web): let command menu descriptions use the full row width (pingdotgg#8865) Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> * fix(web): multi-PR badges open the linked pull requests panel (pingdotgg#13211) * fix(web): stop clipping the bottoms of diff file names (pingdotgg#14375) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: oliver <97427849+flamboh@users.noreply.github.com> Co-authored-by: Otavio Salvador <otavio@ossystems.com.br> Co-authored-by: Alex Southwell <saphid@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: Jaka <100130505+jakaskerjanc@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
## What's Changed * fix(shared): merge OpenCode Go limits by credential by @Yash-Singh1 in pingdotgg/t3code#14209 * feat(codex): regenerate protocol bindings for Codex 0.159 by @juliusmarminge in pingdotgg/t3code#14311 * test(server): stop pinning codex install advisory to a release range by @maria-rcks in pingdotgg/t3code#14323 * chore: stop CodeRabbit from editing PR descriptions by @t3dotgg in pingdotgg/t3code#14307 * fix(web): unresolved pull request links use the compact link tooltip by @flamboh in pingdotgg/t3code#14243 * fix(client-runtime): keep model ids in inline code from becoming file chips by @otavio in pingdotgg/t3code#13909 * fix(web): show the agent's question on user-input timeline rows by @saphid in pingdotgg/t3code#12900 * fix(web): open workspace root links in the file explorer by @saphid in pingdotgg/t3code#12449 * fix(grok): recover from crashed provider sessions by @saphid in pingdotgg/t3code#10607 * fix(web): let command menu descriptions use the full row width by @jakaskerjanc in pingdotgg/t3code#8865 * fix(web): multi-PR badges open the linked pull requests panel by @flamboh in pingdotgg/t3code#13211 * fix(web): stop clipping the bottoms of diff file names by @shivamhwp in pingdotgg/t3code#14375 * fix(web): name the step that registers a mobile client by @Sethmr in pingdotgg/t3code#10963 * test(desktop): Keep WSL busy-runtime fixtures visible when sh is bash by @mwolson in pingdotgg/t3code#14351 * chore: bump vite-plus to 1.0 by @juliusmarminge in pingdotgg/t3code#14462 * fix(web): show double bolts for Codex Ultrafast by @t3dotgg in pingdotgg/t3code#14479 * docs: define contribution triage policy by @juliusmarminge in pingdotgg/t3code#14480 * docs: use explicit contribution triage exemptions by @juliusmarminge in pingdotgg/t3code#14485 * fix(server): Grok CLIs older than 1.0.13 are marked broken by @juliusmarminge in pingdotgg/t3code#14486 * fix(clients): hide disconnected environments when adding projects by @juliusmarminge in pingdotgg/t3code#14490 * feat: start threads without a project by @t3dotgg in pingdotgg/t3code#13612 * fix(server): Claude /compact no longer ends early and leaves the thread busy by @t3dotgg in pingdotgg/t3code#14497 * fix(web): Dark+ and Light+ themes import instead of colliding with built-in ids by @flamboh in pingdotgg/t3code#14499 * fix(web): make composer suggestions usable with screen readers by @akj in pingdotgg/t3code#10154 * perf(release): build and publish npm platform packages concurrently by @t3dotgg in pingdotgg/t3code#14028 * perf(ci): run PR checks side by side and balance server shards by @t3dotgg in pingdotgg/t3code#14025 * perf(release): trim Windows packaging setup by @t3dotgg in pingdotgg/t3code#14037 * perf(release): start Windows builds without waiting for the Linux job by @t3dotgg in pingdotgg/t3code#14027 * perf(release): build Vercel deployments early and go live after publish by @t3dotgg in pingdotgg/t3code#14029 * fix(server): Claude subagents with their own model no longer show the parent's model by @t3dotgg in pingdotgg/t3code#14540 * feat(web): restart the agent session from cmd+k to load new skills and plugins by @t3dotgg in pingdotgg/t3code#14542 * fix(web): hotkey settings record plain keys and Tab by @t3dotgg in pingdotgg/t3code#14548 * fix(release): Windows CLI smoke test no longer fails on temp dir cleanup by @t3dotgg in pingdotgg/t3code#14553 * feat: start a new project from just a name by @t3dotgg in pingdotgg/t3code#14527 * fix(desktop): agent clicks in the browser no longer pop Save dialogs by @t3dotgg in pingdotgg/t3code#14573 * chore(mobile): upgrade to Expo SDK 58 and React Native 0.88 RC by @juliusmarminge in pingdotgg/t3code#12045 * feat(mobile): render the Android subscription widget with expo-widgets by @juliusmarminge in pingdotgg/t3code#12046 * feat(mobile): degrade the agent Live Activity once its content goes stale by @juliusmarminge in pingdotgg/t3code#12047 * feat(notifications): stack agent alerts by thread on both platforms by @juliusmarminge in pingdotgg/t3code#12048 * chore(mobile): drive dev-menu suppression from the dev-client launch URL by @juliusmarminge in pingdotgg/t3code#12049 * fix(mobile): read display scale and width from the view's scene, not UIScreen.main by @juliusmarminge in pingdotgg/t3code#12050 * refactor(mobile): adopt Expo Modules 2.0 for function-only native members by @juliusmarminge in pingdotgg/t3code#12051 * feat(mobile): suppress only the on-screen thread's alert on Android by @juliusmarminge in pingdotgg/t3code#12052 * feat(marketing): replace the screenshot crop with a designed social card by @flamboh in pingdotgg/t3code#13487 * docs: update user count in AGENTS.md by @Kamkmgamer in pingdotgg/t3code#11413 * test(web): remove duplicate sidebar ordering tests by @t3-code[bot] in pingdotgg/t3code#14558 * fix: cloned projects show their favicon instead of a monogram by @t3dotgg in pingdotgg/t3code#14635 * docs: server features are services, and handlers stay thin by @juliusmarminge in pingdotgg/t3code#14613 * fix(ci): pin eas-cli so mobile PR previews deploy again by @juliusmarminge in pingdotgg/t3code#14659 * fix(server): background GitHub polling uses ~74% fewer calls with batched GraphQL by @t3dotgg in pingdotgg/t3code#14673 * fix(web): show the Docker icon on dockerfile code blocks by @chrisdeeming in pingdotgg/t3code#14675 * feat(web): update providers on every machine with one click by @t3dotgg in pingdotgg/t3code#14678 * feat(web): beta Working section hides busy threads until they need you by @t3dotgg in pingdotgg/t3code#13926 * fix(web): PR checks status collapses to its icon instead of wrapping by @flamboh in pingdotgg/t3code#14700 * fix: remove outdated restart setting update advice by @t3-code[bot] in pingdotgg/t3code#14710 * fix(web): keep the terminal toggle clear of the last header action by @Mnigos in pingdotgg/t3code#13426 * fix(web): group composer undo the way the Lexical composer did by @chrisdeeming in pingdotgg/t3code#14674 * fix(desktop): markdown pages no longer render invisible in the dark-mode browser by @shivamhwp in pingdotgg/t3code#14601 * fix(mobile): one No project row at the top of the project picker by @juliusmarminge in pingdotgg/t3code#14532 * Remove unused isCloudDebugEnabled and isTerminalDebugEnabled by @kridaydave in pingdotgg/t3code#14367 * fix(mobile): update Expo 58 to restore widgets and Live Activities by @juliusmarminge in pingdotgg/t3code#14734 * fix(mobile): project picker cards match the settings card color by @juliusmarminge in pingdotgg/t3code#14756 * fix(markdown): keep Windows paths intact in link and image destinations by @SunkenInTime in pingdotgg/t3code#12615 ## New Contributors * @jakaskerjanc made their first contribution in pingdotgg/t3code#8865 * @Sethmr made their first contribution in pingdotgg/t3code#10963 * @Kamkmgamer made their first contribution in pingdotgg/t3code#11413 **Full Changelog**: pingdotgg/t3code@v0.0.44...v0.0.45 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.45
Our Codex app-server bindings were generated from 0.156.0, so they lacked the protocol additions shipped since.
rust-v0.159.0tag (687a119f0f) and regenerate. The new surface isaccount/gatewayOAuth/{read,login,cancel}and theaccount/gatewayOAuth/changednotification, plus upstream schema changes.GatewayOAuth*Response, not theAccountGatewayOAuth*Responsethe generator derives from the method path, so they join the existing response-name overrides.>=0.159.0for T3 Code 0.0.44 and later. 0.156 stays supported, and 0.0.42–0.0.43 keep their current policy.Verified with typechecks of
effect-codex-app-serverandapps/server, plus the bindings tests, Codex adapter/runtime/wire tests, and the manifest and compatibility tests.Live check against Codex 0.159.0
Drove a real
codex app-server0.159.0 through the regenerated client, with real inference:A dev server with the Codex provider pointed at 0.159.0 also completed its provider probe (
CodexInstallation.compatibility,requestAllCodexModels,probeCodexAppServerProvider,checkCodexProviderStatusall succeeded).🤖 Generated with Claude Code (Claude Opus 5.5)
Summary by CodeRabbit