Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
9c0294c
tui: make Esc clear request_user_input notes while notes are shown (#…
charley-oai Feb 4, 2026
9b9fe0c
feat: log webscocket timing into runtime metrics (#10577)
apanasenko-oai Feb 4, 2026
4d0a4b3
Add thread/compact v2 (#10445)
aibrahim-oai Feb 4, 2026
f953fcf
Move metadata calculation out of client (#10589)
pakrym-oai Feb 4, 2026
61fe243
fix(core) updated request_rule guidance (#10379)
dylan-hurd-oai Feb 4, 2026
98d5238
fix(core) Request Rule guidance tweak (#10598)
dylan-hurd-oai Feb 4, 2026
b051a12
Prefer state DB thread listings before filesystem (#10544)
jif-oai Feb 4, 2026
4f13eca
fix: single transaction for dyn tools injection (#10614)
jif-oai Feb 4, 2026
c6432dc
Requirements: add source to constrained requirement values (#10568)
gt-oai Feb 4, 2026
109afb8
chore: simplify user message detection (#10611)
jif-oai Feb 4, 2026
51c4829
fix: make sure file exist in `find_thread_path_by_id_str_in_subdir` (…
jif-oai Feb 4, 2026
cac11ad
nit: cleaning (#10619)
jif-oai Feb 4, 2026
8d923ef
Add a codex.rate_limits event for websockets (#10324)
rasmusrygaard Feb 4, 2026
4ed7e30
Migrate state DB path helpers to versioned filename (#10623)
jif-oai Feb 4, 2026
124c07e
Update tests to stop using sse_completed fixture (#10638)
pakrym-oai Feb 4, 2026
29bd023
feat: land unified_exec (#10641)
jif-oai Feb 4, 2026
4419236
Stop client from being state carrier (#10595)
pakrym-oai Feb 4, 2026
9651e20
Add option to approve and remember MCP/Apps tool usage (#10584)
canvrno-oai Feb 4, 2026
d0e1173
fix: flaky test (#10644)
jif-oai Feb 4, 2026
407921c
feat: add phase 1 mem client (#10629)
jif-oai Feb 4, 2026
739c04c
Cloud Requirements: take precedence over MDM (#10633)
gt-oai Feb 4, 2026
152db48
Increase cloud req timeout (#10659)
gt-oai Feb 4, 2026
8ce3a7f
feat(linux-sandbox): add bwrap support (#9938)
viyatb-oai Feb 4, 2026
7825922
Persist pending input user events (#10656)
aibrahim-oai Feb 4, 2026
691dd2a
feat: add phase 1 mem db (#10634)
jif-oai Feb 4, 2026
8ed86a7
Fix jitter in TUI apps/connectors picker (#10593)
canvrno-oai Feb 4, 2026
67dadd4
[apps] Cache MCP actions from apps. (#10662)
mzeng-openai Feb 4, 2026
f39a422
Fix test_shell_command_interruption flake (#10649)
gt-oai Feb 4, 2026
89a9256
Add /debug-config slash command (#10642)
gt-oai Feb 4, 2026
d3b4938
Added support for live updates to skills (#10478)
etraut-openai Feb 4, 2026
6a9879d
add none personality option (#10688)
aibrahim-oai Feb 4, 2026
4a9c742
feat(app-server, core): allow text + image content items for dynamic …
owenlin0 Feb 5, 2026
4789894
chore(app-server): document experimental API opt-in (#10667)
owenlin0 Feb 5, 2026
bae2460
Session-level model client (#10664)
pakrym-oai Feb 5, 2026
2c5456f
feat(core): add configurable log_dir (#10678)
joshka-oai Feb 5, 2026
1f4b088
Cloud Requirements: increase timeout and retries (#10631)
gt-oai Feb 5, 2026
832f9be
chore(core) personality migration tests (#10650)
dylan-hurd-oai Feb 5, 2026
0c00b0c
fix(tui): restore working shimmer after preamble output (#10701)
joshka-oai Feb 5, 2026
a04fd35
fix: ensure status indicator present earlier in exec path (#10700)
sayan-oai Feb 5, 2026
63af9b3
fix: ensure resume args precede image args (#10709)
cryptonerdcn Feb 5, 2026
bc19469
chore(config) Default Personality Pragmatic (#10705)
dylan-hurd-oai Feb 5, 2026
1f90d54
fix(core) switching model appends model instructions (#10651)
dylan-hurd-oai Feb 5, 2026
a9ae48f
Sync collaboration mode naming across Default prompt, tools, and TUI …
charley-oai Feb 5, 2026
258f4d5
Make steer stable by default (#10690)
aibrahim-oai Feb 5, 2026
a445edb
Fix remote compaction estimator/payload instruction small mismatch (#…
charley-oai Feb 5, 2026
53bba0b
Reload cloud requirements after user login (#10725)
xl-openai Feb 5, 2026
2c9b10c
fix(core,app-server) resume with different model (#10719)
dylan-hurd-oai Feb 5, 2026
c3c189a
- Steer mode is now stable and enabled by default, so `Enter` sends i…
aibrahim-oai Feb 5, 2026
1537196
Apply upstream v0.95.0 workspace changes
web-flow Feb 4, 2026
0bfe0d6
termux: finalize 0.95.0 release prep
web-flow Feb 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/bazel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ jobs:
- name: bazel test //...
env:
BUILDBUDDY_API_KEY: ${{ secrets.BUILDBUDDY_API_KEY }}
CODEX_BWRAP_ENABLE_FFI: ${{ contains(matrix.target, 'unknown-linux') && '1' || '0' }}
shell: bash
run: |
bazel $BAZEL_STARTUP_ARGS --bazelrc=.github/workflows/ci.bazelrc test //... \
Expand Down
7 changes: 6 additions & 1 deletion .github/workflows/rust-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,9 @@ jobs:
USE_SCCACHE: ${{ startsWith(matrix.runner, 'windows') && 'false' || 'true' }}
CARGO_INCREMENTAL: "0"
SCCACHE_CACHE_SIZE: 10G
# Keep cargo-based CI independent of system bwrap build deps.
# The bwrap FFI path is validated in Bazel workflows.
CODEX_BWRAP_ENABLE_FFI: "0"

strategy:
fail-fast: false
Expand Down Expand Up @@ -467,6 +470,9 @@ jobs:
USE_SCCACHE: ${{ startsWith(matrix.runner, 'windows') && 'false' || 'true' }}
CARGO_INCREMENTAL: "0"
SCCACHE_CACHE_SIZE: 10G
# Keep cargo-based CI independent of system bwrap build deps.
# The bwrap FFI path is validated in Bazel workflows.
CODEX_BWRAP_ENABLE_FFI: "0"

strategy:
fail-fast: false
Expand Down Expand Up @@ -502,7 +508,6 @@ jobs:

steps:
- uses: actions/checkout@v6

# Some integration tests rely on DotSlash being installed.
# See https://github.com/openai/codex/pull/7617.
- name: Install DotSlash
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/rust-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ jobs:
defaults:
run:
working-directory: codex-rs
env:
CODEX_BWRAP_ENABLE_FFI: ${{ contains(matrix.target, 'unknown-linux') && '1' || '0' }}

strategy:
fail-fast: false
Expand All @@ -89,6 +91,13 @@ jobs:

steps:
- uses: actions/checkout@v6
- name: Install Linux bwrap build dependencies
if: ${{ runner.os == 'Linux' }}
shell: bash
run: |
set -euo pipefail
sudo apt-get update -y
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends pkg-config libcap-dev
- name: Install UBSan runtime (musl)
if: ${{ matrix.target == 'x86_64-unknown-linux-musl' || matrix.target == 'aarch64-unknown-linux-musl' }}
shell: bash
Expand Down
532 changes: 296 additions & 236 deletions MODULE.bazel.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion codex-rs/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion codex-rs/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ members = [
resolver = "2"

[workspace.package]
version = "0.95.0"
version = "0.98.0"
# Track the edition for all workspace crates in one place. Individual
# crates can still override this value, but keeping it here means new
# crates created with `cargo new -w ...` automatically inherit the 2024
Expand Down
66 changes: 53 additions & 13 deletions codex-rs/app-server-protocol/schema/json/ClientRequest.json
Original file line number Diff line number Diff line change
Expand Up @@ -480,6 +480,19 @@
},
"type": "object"
},
"FunctionCallOutputBody": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"$ref": "#/definitions/FunctionCallOutputContentItem"
},
"type": "array"
}
]
},
"FunctionCallOutputContentItem": {
"description": "Responses API compatible content items that can be returned by a tool call. This is a subset of ContentItem with the types we support as function call outputs.",
"oneOf": [
Expand Down Expand Up @@ -526,19 +539,10 @@
]
},
"FunctionCallOutputPayload": {
"description": "The payload we send back to OpenAI when reporting a tool call result.\n\n`content` preserves the historical plain-string payload so downstream integrations (tests, logging, etc.) can keep treating tool output as `String`. When an MCP server returns richer data we additionally populate `content_items` with the structured form that the Responses API understands.",
"description": "The payload we send back to OpenAI when reporting a tool call result.\n\n`body` serializes directly as the wire value for `function_call_output.output`. `success` remains internal metadata for downstream handling.",
"properties": {
"content": {
"type": "string"
},
"content_items": {
"items": {
"$ref": "#/definitions/FunctionCallOutputContentItem"
},
"type": [
"array",
"null"
]
"body": {
"$ref": "#/definitions/FunctionCallOutputBody"
},
"success": {
"type": [
Expand All @@ -548,7 +552,7 @@
}
},
"required": [
"content"
"body"
],
"type": "object"
},
Expand Down Expand Up @@ -1171,6 +1175,7 @@
},
"Personality": {
"enum": [
"none",
"friendly",
"pragmatic"
],
Expand Down Expand Up @@ -2235,6 +2240,17 @@
],
"type": "object"
},
"ThreadCompactStartParams": {
"properties": {
"threadId": {
"type": "string"
}
},
"required": [
"threadId"
],
"type": "object"
},
"ThreadForkParams": {
"description": "There are two ways to fork a thread: 1. By thread_id: load the thread from disk by thread_id and fork it into a new thread. 2. By path: load the thread from disk by path and fork it into a new thread.\n\nIf using path, the thread_id param will be ignored.\n\nPrefer using thread_id whenever possible.",
"properties": {
Expand Down Expand Up @@ -3210,6 +3226,30 @@
"title": "Thread/unarchiveRequest",
"type": "object"
},
{
"properties": {
"id": {
"$ref": "#/definitions/RequestId"
},
"method": {
"enum": [
"thread/compact/start"
],
"title": "Thread/compact/startRequestMethod",
"type": "string"
},
"params": {
"$ref": "#/definitions/ThreadCompactStartParams"
}
},
"required": [
"id",
"method",
"params"
],
"title": "Thread/compact/startRequest",
"type": "object"
},
{
"properties": {
"id": {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,64 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"DynamicToolCallOutputContentItem": {
"oneOf": [
{
"properties": {
"text": {
"type": "string"
},
"type": {
"enum": [
"inputText"
],
"title": "InputTextDynamicToolCallOutputContentItemType",
"type": "string"
}
},
"required": [
"text",
"type"
],
"title": "InputTextDynamicToolCallOutputContentItem",
"type": "object"
},
{
"properties": {
"imageUrl": {
"type": "string"
},
"type": {
"enum": [
"inputImage"
],
"title": "InputImageDynamicToolCallOutputContentItemType",
"type": "string"
}
},
"required": [
"imageUrl",
"type"
],
"title": "InputImageDynamicToolCallOutputContentItem",
"type": "object"
}
]
}
},
"properties": {
"output": {
"type": "string"
"contentItems": {
"items": {
"$ref": "#/definitions/DynamicToolCallOutputContentItem"
},
"type": "array"
},
"success": {
"type": "boolean"
}
},
"required": [
"output",
"contentItems",
"success"
],
"title": "DynamicToolCallResponse",
Expand Down
30 changes: 17 additions & 13 deletions codex-rs/app-server-protocol/schema/json/EventMsg.json
Original file line number Diff line number Diff line change
Expand Up @@ -2864,6 +2864,19 @@
}
]
},
"FunctionCallOutputBody": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"$ref": "#/definitions/FunctionCallOutputContentItem"
},
"type": "array"
}
]
},
"FunctionCallOutputContentItem": {
"description": "Responses API compatible content items that can be returned by a tool call. This is a subset of ContentItem with the types we support as function call outputs.",
"oneOf": [
Expand Down Expand Up @@ -2910,19 +2923,10 @@
]
},
"FunctionCallOutputPayload": {
"description": "The payload we send back to OpenAI when reporting a tool call result.\n\n`content` preserves the historical plain-string payload so downstream integrations (tests, logging, etc.) can keep treating tool output as `String`. When an MCP server returns richer data we additionally populate `content_items` with the structured form that the Responses API understands.",
"description": "The payload we send back to OpenAI when reporting a tool call result.\n\n`body` serializes directly as the wire value for `function_call_output.output`. `success` remains internal metadata for downstream handling.",
"properties": {
"content": {
"type": "string"
},
"content_items": {
"items": {
"$ref": "#/definitions/FunctionCallOutputContentItem"
},
"type": [
"array",
"null"
]
"body": {
"$ref": "#/definitions/FunctionCallOutputBody"
},
"success": {
"type": [
Expand All @@ -2932,7 +2936,7 @@
}
},
"required": [
"content"
"body"
],
"type": "object"
},
Expand Down
30 changes: 17 additions & 13 deletions codex-rs/app-server-protocol/schema/json/ServerNotification.json
Original file line number Diff line number Diff line change
Expand Up @@ -3484,6 +3484,19 @@
],
"type": "object"
},
"FunctionCallOutputBody": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"$ref": "#/definitions/FunctionCallOutputContentItem"
},
"type": "array"
}
]
},
"FunctionCallOutputContentItem": {
"description": "Responses API compatible content items that can be returned by a tool call. This is a subset of ContentItem with the types we support as function call outputs.",
"oneOf": [
Expand Down Expand Up @@ -3530,19 +3543,10 @@
]
},
"FunctionCallOutputPayload": {
"description": "The payload we send back to OpenAI when reporting a tool call result.\n\n`content` preserves the historical plain-string payload so downstream integrations (tests, logging, etc.) can keep treating tool output as `String`. When an MCP server returns richer data we additionally populate `content_items` with the structured form that the Responses API understands.",
"description": "The payload we send back to OpenAI when reporting a tool call result.\n\n`body` serializes directly as the wire value for `function_call_output.output`. `success` remains internal metadata for downstream handling.",
"properties": {
"content": {
"type": "string"
},
"content_items": {
"items": {
"$ref": "#/definitions/FunctionCallOutputContentItem"
},
"type": [
"array",
"null"
]
"body": {
"$ref": "#/definitions/FunctionCallOutputBody"
},
"success": {
"type": [
Expand All @@ -3552,7 +3556,7 @@
}
},
"required": [
"content"
"body"
],
"type": "object"
},
Expand Down
Loading
Loading