Skip to content

feat(providers): clearer Claude start failures, Codex gateway and security notice - #914

Merged
badcuban merged 1 commit into
mainfrom
feat/claude-2.1.325-codex-0.169
Nov 14, 2026
Merged

badcuban merged 1 commit into
mainfrom
feat/claude-2.1.325-codex-0.169

Conversation

@badcuban

Copy link
Copy Markdown
Collaborator

Picks up what changed in Claude Code 2.1.319 to 2.1.325 and Codex 0.168 to 0.169.

Claude

A refused start says why, once. When Claude Code refuses to start (a settings file that is not valid JSON, a bad proxy address, a CLI too old), the chat showed four stacked errors and a false "could not restore this thread's previous Claude session" warning. The send recovered the dead session and started Claude a second time, and each start reported the reason plus the SDK's own copy of it. Chat sessions now ask Claude Code to write the refusal as a result, the adapter reads startup_failure_reason, and the thread hears Claude's words once. A fresh session that was refused holds nothing to restore, so the next start skips the lost-context warning.

Batched subagent reports stop ending turns. Since 2.1.321, subagent reports that wait together are answered in one model call, and every other queued report or task notice gets an empty zero-turn result of its own. Each one ended a turn: a message sent while reports landed was marked finished with no answer, and the suggested next message was dropped. Those results are now skipped, ahead of the append-only counter.

Agent SDK 0.3.319 to 0.3.322, the newest release past the 3-day wait.

Codex

Bindings regenerated from 0.169.

Model provider. When Codex's default model provider is not OpenAI, the row says "Runs on" and its name, and Account & Sign-in has a Model provider line. A ChatGPT sign-in beside it keeps its email, workspace and Sign out. With no account, the badge reads "No sign-in needed" instead of a "Checking" that never finished.

Security notice. OpenAI's account security notice shows on the Codex card. Its button only opens https pages on openai.com and chatgpt.com, its text is flattened and capped, and it is shown only to the user and workspace it is bound to. A check that cannot read the account forgets it.

Not in this PR

  • The gateway's own model is not added to the model list. model/list returns OpenAI's catalog for every provider, and Codex text generation runs with --ignore-user-config, so that model would be sent to OpenAI.
  • For a broken Claude settings file, the Claude row in Settings still says it could not verify the sign-in. Only the chat shows the real reason.

Checked

  • vp fmt, vp lint, vp run typecheck, full unit suite, browser suite (two unrelated specs failed under load and pass alone: ProviderUpdateProgress, steppedLoops).
  • Live in a throwaway stack: a real Claude session in auto mode with four background agents ended in three clean turns; a broken settings file shows one error; the gateway row against a made-up gateway on Codex 0.169 and 0.167.
  • The security notice was checked with a stand-in Codex, not a real notice from OpenAI.

…urity notice

Picks up Claude Code 2.1.319-2.1.325 and Codex 0.168-0.169.

Claude
- A refused start (a settings file that is not valid JSON, a bad proxy
  address, a CLI too old) showed four stacked errors and a false "could not
  restore this thread's previous Claude session" warning: Claude's reason, the
  SDK's "returned an error result" copy of it, then both again when the send
  recovered the dead session. Chat sessions now ask Claude Code to write the
  refusal as a result (CLAUDE_CODE_STARTUP_FAILURE_RESULTS), the adapter reads
  `startup_failure_reason`, and the thread hears Claude's words once. A fresh
  session that was refused holds nothing to restore, so the next start skips
  the lost-context warning.
- Since 2.1.321, subagent reports that wait together are answered in one model
  call, and every other queued report or task notice gets an empty zero-turn
  result of its own. Each one ended a turn: a message sent while reports landed
  was marked finished with no answer, and the suggested next message was
  dropped. Those results are now skipped, ahead of the append-only counter.
- Agent SDK 0.3.319 -> 0.3.322, the newest release past the 3-day wait.

Codex
- Bindings regenerated from 0.169.
- When Codex's default model provider is not OpenAI (`modelProvider/list`), the
  row says "Runs on <name>" and Account & Sign-in has a Model provider line. A
  ChatGPT sign-in beside it keeps its email, workspace and Sign out. With no
  account the badge reads "No sign-in needed" instead of "Checking".
- OpenAI's account security notice (`account/securitySetup/read`) shows on the
  Codex card. Its button only opens https pages on openai.com and chatgpt.com,
  its text is flattened and capped, and it is shown only to the user and
  workspace it is bound to. A check that cannot read the account forgets it.

The gateway's own model is not added to the model list: `model/list` returns
OpenAI's catalog for every provider, and Codex text generation runs with
--ignore-user-config, so that model would be sent to OpenAI.
@vercel

vercel Bot commented Nov 14, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
threadlines Ready Ready Preview Nov 14, 2026 4:19pm UTC

Request Review

@badcuban
badcuban added this pull request to the merge queue Nov 14, 2026
Merged via the queue into main with commit f3a55cf Nov 14, 2026
24 checks passed
@badcuban
badcuban deleted the feat/claude-2.1.325-codex-0.169 branch November 14, 2026 16:32

This branch was successfully deployed

1 active deployment
Preview — ea92cdf2 Deployed Nov 14, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant