Conversation
5782ce7 to
0912c43
Compare
0912c43 to
ea965bb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release readiness review (v0.15.3 -> TARGET ea965bb)
This is a release readiness report done by
$final-release-reviewskill.Diff
v0.15.3...ea965bb
Release call:
🟢 GREEN LIGHT TO SHIP No confirmed blocking regression, breaking API mismatch, data-loss issue, security regression, or packaging/runtime break was found; remaining items are targeted validation and release-note follow-ups.
Scope summary:
max_turns=None, RunState schema1.10, Chat Completions streaming tool-call indexes, sandbox tar/symlink safety, docs/translations, and tests.0.15.3->0.16.0.max_turns=None, default model switch, translated docs, hashable sandbox permissions, MCP server-prefixed tool names, tool concurrency config, Chat Completions streaming index fix, realtime docs, and release version bump.Risk assessment (ordered by impact):
Default model changed from
gpt-4.1togpt-5.4-minisrc/agents/models/default_models.pynow returnsgpt-5.4-mini;src/agents/agent.pydocumentation and implicit default settings logic were updated;pyproject.tomlbumps to0.16.0.src/agents/models/default_models.py,src/agents/agent.py,src/agents/run_internal/turn_preparation.py,tests/models/test_default_models.py,tests/test_run_config.pyuv run pytest tests/models/test_default_models.py tests/test_run_config.py -q; pass criteria: tests pass and the note tells users to setOPENAI_DEFAULT_MODELorAgent(model=...)to preserve the prior default.RunState schema bumped to
1.10for nullablemax_turnsmax_turns: nullrequire the newer SDK, while older SDKs intentionally reject newer schema versions.CURRENT_SCHEMA_VERSIONchanged from1.9to1.10,SCHEMA_VERSION_SUMMARIESadds nullablemax_turns, and tests coverNoneround-trip.src/agents/run_state.py,tests/test_run_state.py,tests/test_max_turns.pyuv run pytest tests/test_run_state.py -q -k 'schema or max_turns_none' tests/test_max_turns.py -q; pass criteria: schema/version tests and non-streamed/streamedmax_turns=Nonetests pass. Include a release-note line that snapshots written by0.16.0use schema1.10.Sandbox hydration now rejects external symlink targets
validate_tar_bytes/validate_tarfile/safe_extract_tarfilewithallow_external_symlink_targets=False; tests assert rejection before upload or extraction.src/agents/sandbox/util/tar_utils.py,src/agents/extensions/sandbox/*/sandbox.py,src/agents/sandbox/sandboxes/docker.py,src/agents/sandbox/sandboxes/unix_local.py,tests/sandbox/test_tar_utils.py,tests/sandbox/test_extract.py,tests/extensions/sandbox/test_vercel.pyuv run pytest tests/sandbox/test_tar_utils.py tests/sandbox/test_extract.py tests/extensions/sandbox/test_vercel.py -q; pass criteria: strict symlink rejection tests pass. Mention this as a security hardening behavior change in release notes.Opt-in MCP server-prefixed tool names add new public naming behavior
MCPConfigaddsinclude_server_in_tool_names;MCPUtilbuilds deterministic ASCII-safe names up to 64 chars and preserves original MCP invocation names; docs describe the option.src/agents/agent.py,src/agents/mcp/util.py,docs/mcp.md,tests/mcp/test_mcp_util.py,tests/mcp/test_runner_calls_mcp.pyuv run pytest tests/mcp/test_mcp_util.py tests/mcp/test_runner_calls_mcp.py -q; pass criteria: prefixed-name and duplicate-name tests pass.Local function-tool concurrency limit is a new public
RunConfigoptionNonepreserves existing “start all calls” behavior, and the new dataclass is appended aftersandbox, preserving positional compatibility.ToolExecutionConfig(max_function_tool_concurrency=None)defaults to old behavior; constructor compatibility tests assertsandboxposition is preserved andtool_executionis appended.src/agents/run_config.py,src/agents/run.py,src/agents/__init__.py,src/agents/run_internal/tool_execution.py,tests/test_run_step_execution.py,tests/test_source_compat_constructors.pyuv run pytest tests/test_run_step_execution.py tests/test_source_compat_constructors.py -q -k 'concurrency or tool_execution or run_config'; pass criteria: concurrency ordering/failure tests and positional compatibility tests pass.Chat Completions streaming tool-call output indexes were stabilized
StreamingState.function_call_output_idxnow allocates stable output indexes when tool-call deltas appear; new tests assert unique indexes and preserved ordering.src/agents/models/chatcmpl_stream_handler.py,tests/models/test_openai_chatcompletions_stream.pyuv run pytest tests/models/test_openai_chatcompletions_stream.py -q; pass criteria: streaming function-call index tests pass.Notes:
git tag -l 'v*' --sort=-v:refname | head -n1:v0.15.3.git rev-parse HEAD:ea965bb13f6735085cea49ef7a2b34c2cf7354f6.