$ the-wire · showcase
Guardian reviewer startup moves into the pool, thread resume keeps collaboration mode
By RepoJournal · Filed · About OpenAI · Composed from the cited sources · methodology
Codex reworks how Guardian reviewers are spawned while openai-python 3.14.0 lands stream error normalization and bounded vector store polling.
Restore collaboration mode when resuming threads openai/codex
Resuming a thread used to reinitialize its collaboration mode to Default, silently discarding the saved Plan mode and its developer instructions; the saved mode is now restored from the latest matching ThreadSettingsApplied event, falling back to the last legacy TurnContext, and the effective model and reasoning effort are applied on the way back in. Reconnecting clients get a server-reported m...
Move Guardian reviewer startup into the pool openai/codex
ReviewerSessionFactory is gone, replaced by a startup callback installed through ReviewerPool::new, which the pool then uses to create both reusable and forked reviewers while review requests supply shared setup data and reuse context. Guardian session setup, prewarming, and test fixtures move to the new pool API.
Route Guardian reviewers through ThreadManager for inline parents openai/codex
Inline delegates have no entry in the thread registry, so reviewer creation could not look up the parent or wait for its thread-ready notification. StartThreadOptions now carries parent identity, authentication, shared agent control, originator, and inherited instructions, letting ThreadManager start a child with no registered parent, and Guardian reviewer creation routes through that path.
v3.14.0 openai/openai-python
by openai-sdks[bot]
The release's two entries are a feature that normalizes errors raised while reading streams, which is the one that changes what your exception handling sees, and a fix bounding vector store file polling. If you catch stream read failures by raw exception type, check the new normalized path before upgrading.
fix: include completion in content filter errors (#3094) openai/openai-python
ContentFilterFinishReasonError now attaches the completion as .completion in both parsing and streaming, matching LengthFinishReasonError, so callers no longer lose the completion and its usage when a content filter ends a response. The no-argument constructor and exception message are unchanged, and during streaming the attached completion holds only the data received so far, with usage possib...
Remove Guardian subagent-spawner plumbing (#45491) openai/codex
AgentSpawner and AgentSpawnFuture are removed from the extension API along with the Guardian wrapper, thread lifecycle context, and app-server injection plumbing, with InternalSessionSpawnFuture now defined directly as a boxed future and the workspace rustls minimum raised to 0.23.45. The deadline cancellation helper in the same effort is now crate-private to codex-guardian-reviewer, and openai...
Action items
- → Upgrade openai-python to 3.14.0 and verify stream error handling against the normalized error type openai/openai-python [plan]
- → Upgrade openai-python to pick up .completion on ContentFilterFinishReasonError before relying on it openai/openai-python [plan]
- → Replace client.beta.vector_stores with client.vector_stores in polling-helper call sites openai/openai-python [plan]