새로운 기능
- 지원되는 모델은 이제
view_image 및 codex.emitImage(..., detail: "original")을 통해 전체 해상도 이미지 검사를 요청할 수 있으며, 이는 정밀한 시각 작업에 도움이 됩니다. (#14175)
js_repl은 이제 codex.cwd 및 codex.homeDir을 노출하며, 저장된 codex.tool(...) / codex.emitImage(...) 참조는 셀 전체에서 계속 작동합니다. (#14385, #14503)
- 실시간 웹소켓 세션에 전용 트랜스크립션 모드가 추가되었으며,
codex 도구를 통한 v2 핸드오프 지원과 통합된 [realtime] 세션 설정이 추가되었습니다. (#14554, #14556, #14606)
- v2 app-server는 이제 파일 읽기, 쓰기, 복사, 디렉터리 작업, 경로 감시를 위한 파일시스템 RPC를 노출하며, 해당 API와 통합을 위한 새로운 Python SDK가 제공됩니다. (#14245, #14435)
- Smart Approvals는 이제 검토 요청을 core, app-server, TUI의 guardian 서브에이전트를 통해 라우팅할 수 있으며, 후속 승인 시 반복되는 설정 작업을 줄일 수 있습니다. (#13860, #14668)
- 앱 통합은 이제 Responses API 도구 검색 흐름을 사용하며, 누락된 도구를 제안할 수 있고, 활성 모델이 검색 기반 조회를 지원하지 않을 경우 깔끔하게 폴백됩니다. (#14274, #14287, #14732)
버그 수정
- 생성된 서브에이전트는 이제 프로젝트 프로필 레이어링, 지속된 호스트 승인, 심볼릭 링크된 쓰기 가능 루트를 포함한 샌드박스 및 네트워크 규칙을 더 안정적으로 상속합니다. (#14619, #14650, #14674, #14807)
js_repl은 더 이상 동적 도구 응답에 리터럴 U+2028 또는 U+2029 문자가 포함될 때 행(hang)이 발생하지 않습니다. (#14421)
- TUI는 더 이상 서브에이전트 생성 후 종료 시 정체되지 않으며, 턴 중단 시 기본적으로 백그라운드 터미널을 해제하지 않습니다. (#14816, #14602)
codex exec --profile은 다시 한 번 스레드를 시작하거나 재개할 때 프로필 범위 설정을 보존합니다. (#14524)
- MCP 및 유도 흐름이 더욱 강력해졌으며, 더 안전한 도구 이름 정규화 및 승인 프롬프트에서 보존된
tool_params를 제공합니다. (#14491, #14605, #14769)
- 로컬 네트워크 프록시는 이제 CONNECT 트래픽을 명시적 HTTP/1로 제공하여 HTTP 프록시 클라이언트와의 호환성을 개선합니다. (#14395)
기타 작업
- 서브에이전트 대기 도구는 이제 일관되게
wait_agent로 명명되어 spawn_agent와 send_input과 정렬됩니다. (#14631)
변경 로그
전체 변경 로그: https://github.com/openai/codex/compare/rust-v0.114.0...rust-v0.115.0
- #14395 fix(network-proxy): serve HTTP proxy listener as HTTP/1 @viyatb-oai
- #14385 Add js_repl cwd and homeDir helpers @fjord-oai
- #14376 Keep agent-switch word-motion keys out of draft editing @joshka-oai
- #14175 Let models opt into original image detail @fjord-oai
- #14382 check for large binaries in CI @owenlin0
- #14392 chore(app-server): stop emitting codex/event/ notifications @owenlin0
- #14274 feat: search_tool migrate to bring you own tool of Responses API @apanasenko-oai
- #14174 refactor: centralize filesystem permissions precedence @viyatb-oai
- #14394 chore(app-server): delete unused rpc methods from v1.rs @owenlin0
- #14171 fix: align core approvals with split sandbox policies @viyatb-oai
- #14410 Make collab model metadata accurate on completion @aibrahim-oai
- #14387 feat(app-server): propagate traces across tasks and core ops @owenlin0
- #14407 chore: use AVAILABLE and ON_INSTALL as default plugin install and auth policies @sayan-oai
- #14287 [apps] Add tool_suggest tool. @mzeng-openai
- #14432 Clarify spawn agent authorization @aibrahim-oai
- #14295 Support waiting for code_mode sessions @pakrym-oai
- #14427 feat: refactor on openai-curated plugins. @xl-openai
- #13996 refactor: make bubblewrap the default Linux sandbox @viyatb-oai
- #14440 fix: follow up on linux sandbox review nits @viyatb-oai
- #14431 Handle pre-approved permissions in zsh fork @mousseau-oai
- #14403 [elicitation] User-friendly tool call messages. @mzeng-openai
- #14429 Use granted permissions when invoking apply_patch @mousseau-oai
- #14471 Updated out-of-date tip about availability on free and go plans @etraut-openai
- #14444 fix: move inline codex-rs/core unit tests into sibling files @bolinfest
- #14437 Dispatch tools when code mode is not awaited directly @pakrym-oai
- #14435 Add Python app-server SDK @shaqayeq-oai
- #14473 fix(cli): support legacy use_linux_sandbox_bwrap flag @viyatb-oai
- #13882 Fix stdio-to-uds peer-close flake @aibrahim-oai
- #14476 Move code mode tool files under tools/code_mode and split functionality @pakrym-oai
- #14475 rename spawn_csv feature flag to enable_fanout @daveaitel-openai
- #14173 fix: preserve split filesystem semantics in linux sandbox @viyatb-oai
- #14480 Cleanup code_mode tool descriptions @pakrym-oai
- #14488 Handle malformed agent role definitions nonfatally @gabec-openai
- #14398 Do not allow unified_exec for sandboxed scenarios on Windows @iceweasel-oai
- #14419 use scopes_supported for OAuth when present on MCP servers @jgershen-oai
- #14484 Add default code-mode yield timeout @pakrym-oai
- #14494 Add parallel tool call test @pakrym-oai
- #14478 chore(app-server): stop exporting EventMsg schemas @owenlin0
- #14490 fix turn_start_jsonrpc_span_parents_core_turn_spans flakiness @owenlin0
- #14496 Reuse tool runtime for code mode worker @pakrym-oai
- #14421 Fix js_repl hangs on U+2028/U+2029 dynamic tool responses @aaronl-openai
- #14505 Skip nested tool call parallel test on Windows @pakrym-oai
- #14491 Fix MCP tool calling @pakrym-oai
- #14493 memories: focus write prompts on user preferences @andi-oai
- #14510 Rename exec session IDs to cell IDs @pakrym-oai
- #14500 Update tool search prompts @mzeng-openai
- #14426 Decouple request permissions feature and tool @mousseau-oai
- #14503 Persist js_repl codex helpers across cells @fjord-oai
- #14517 Expose code-mode tools through globals @pakrym-oai
- #14502 feat(search_tool): gate search_tool on model supports_search_tool field @apanasenko-oai
- #14521 Reapply "Pass more params to compaction" (#14298) @rasmusrygaard
- #14524 Fix
codex exec --profile handling @etraut-openai
- #14516 Rename reject approval policy to granular @mousseau-oai
- #14445 feat: add plugin/read. @xl-openai
- #14178 login: add custom CA support for login flows @joshka-oai
- #14535 Split multi-agent handlers per tool @pakrym-oai
- #13329 [js_repl] Hard-stop active js_repl execs on explicit user interrupts @aaronl-openai
- #14239 client: extend custom CA handling across HTTPS and websocket clients @joshka-oai
- #14536 Add typed multi-agent tool outputs @pakrym-oai
- #14514 fix: reopen writable linux carveouts under denied parents @viyatb-oai
- #14531 Add plugin usage telemetry @alexsong-oai
- #14511 code_mode: Move exec params from runtime declarations to @pragma @cconger
- #14504 Refactor cloud requirements error and surface in JSON-RPC error @alexsong-oai
- #14537 Add realtime v2 event parser behind feature flag @aibrahim-oai
- #14529 Simplify permissions available in request permissions tool @mousseau-oai
- #14522 feat: support skill-scoped managed network domain overrides in skill config @celia-oai
- #14554 Add codex tool support for realtime v2 handoff @aibrahim-oai
- #14556 Add realtime transcription mode for websocket sessions @aibrahim-oai
- #14518 Add diagnostics for read_only_unless_trusted timeout flake @aibrahim-oai
- #14603 Split multi-agent handler into dedicated files @pakrym-oai
- #14526 code mode: single line tool declarations @pakrym-oai
- #14400 Use a private desktop for Windows sandbox instead of Winsta0\Default @iceweasel-oai
- #14558 sending back imagaegencall response back to responseapi @won-openai
- #14553 Improve granular approval policy prompt @mousseau-oai
- #14541 chore: clarify plugin + app copy in model instructions @sayan-oai
- #14542 [bazel] Bump up cc and rust toolchains @zbarsky-openai
- #14512 Start TUI on embedded app server @etraut-openai
- #14606 Unify realtime v1/v2 session config @aibrahim-oai
- #14527 app-server: Add platform os and family to init response @euroelessar
- #14618 Use subagents naming in the TUI @aibrahim-oai
- #14304 Override local apps settings with requirements.toml settings @canvrno-oai
- #14479 feat(app-server, core): add more spans @owenlin0
- #13644 fix: preserve zsh-fork escalation fds across unified-exec spawn paths @bolinfest
- #14617 Add code_mode_only feature @pakrym-oai
- #13201 Slash copy osc52 wsl support @won-openai
- #14631 Rename multi-agent wait tool to wait_agent @aibrahim-oai
- #14622 Stabilize multi-agent feature flag @aibrahim-oai
- #14245 app-server: add v2 filesystem APIs @euroelessar
- #14605 Normalize MCP tool names to code-mode safe form @pakrym-oai
- #14637 Fix wait_agent expectations in core tests @charley-oai
- #13860 Add Smart Approvals guardian review across core, app-server, and TUI @charley-oai
- #14639 Fix stale create_wait_tool reference @charley-oai
- #14532 [hooks] stop continuation & stop_hook_active mechanics @eternal-openai
- #14635 Fix realtime transcription session.update tools payload @aibrahim-oai
- #14636 Use parser-specific realtime voice enum @aibrahim-oai
- #14633 refactor: make unified-exec zsh-fork state explicit @bolinfest
- #12031 Add openai_base_url config override for built-in provider @etraut-openai
- #14645 Fix Windows CI assertions for guardian and Smart Approvals @aibrahim-oai
- #14616 Fix turn context reconstruction after backtracking @charley-oai
- #14619 fix: persist future network host approvals across sessions @viyatb-oai
- #14650 fix: sync split sandbox policies for spawned subagents @viyatb-oai
- #14609 move plugin/skill instructions into dev msg and reorder @sayan-oai
- #12024 Enforce errors on overriding built-in model providers @etraut-openai
- #14646 Refresh Python SDK generated types @sayan-oai
- #14649 make defaultPrompt an array, keep backcompat @sayan-oai
- #14501 dynamic tool calls: add param
exposeToContext to optionally hide tool @cconger
- #14651 Add argument-comment Dylint runner @bolinfest
- #14674 fix: fix symlinked writable roots in sandbox policies @viyatb-oai
- #14611 Add auth 401 recovery observability to client bug reports @ccy-oai
- #14647 [apps] Add tool call meta. @mzeng-openai
- #14732 [apps] Improve search tool fallback. @mzeng-openai
- #14602 Preserve background terminals on interrupt and rename cleanup command to /stop @friel-openai
- #14668 Reuse guardian session across approvals @charley-oai
- #14769 fix(core): preserve tool_params for elicitations @mzeng-openai
- #14807 fix: sub-agent role when using profiles @jif-oai
- #14806 feat: improve skills cache key to take into account config layering @jif-oai
- #13850 feat: make interrupt state not final for multi-agents @jif-oai
- #14816 fix: tui freeze when sub-agents are present @jif-oai