pakrym-oai and GitHub
fd7f2aedc7
Handle response.incomplete ( #11558 )
...
Treat it same as error.
2026-02-12 00:11:38 -08:00
pakrym-oai and GitHub
d391f3e2f9
Hide the first websocket retry ( #11548 )
...
Sometimes connection needs to be quickly reestablished, don't produce an
error for that.
2026-02-11 22:48:13 -08:00
pakrym-oai and GitHub
b8e0d7594f
Teach codex to test itself ( #11531 )
...
For fun and profit!
2026-02-11 20:03:19 -08:00
pakrym-oai and GitHub
58eaa7ba8f
Use slug in tui ( #11519 )
...
Display name is for VSCE and App, TUI uses lowercase everywhere.
2026-02-11 17:42:58 -08:00
pakrym-oai and GitHub
703fb38d2a
Make codex-sdk depend on openai/codex ( #11503 )
...
Do not bundle all binaries inside the SDK as it makes the package huge.
Instead depend on openai/codex
2026-02-11 16:20:10 -08:00
pakrym-oai and GitHub
d73de9c8ba
Pump pings ( #11413 )
...
Keep processing ping even when the agent isn't actively running.
Otherwise the connection will drop.
2026-02-11 12:43:57 -08:00
pakrym-oai and GitHub
2c3ce2048d
Linkify feedback link ( #11414 )
...
Make it clickable
2026-02-11 11:21:03 -08:00
pakrym-oai and GitHub
eac5473114
Do not attempt to append after response.completed ( #11402 )
...
Completed responses are fully done, and new response must be created.
2026-02-11 07:45:17 -08:00
pakrym-oai and GitHub
4473147985
Do not resend output items in incremental websockets connections ( #11383 )
...
In the incremental websocket output items are already part of the
context, no need to send them again and duplicate.
2026-02-10 19:38:08 -08:00
pakrym-oai and GitHub
c68999ee6d
Prefer websocket transport when model opts in ( #11386 )
...
Summary
- add a `prefer_websockets` field to `ModelInfo`, defaulting to `false`
in all fixtures and constructors
- wire the new flag into websocket selection so models that opt in
always use websocket transport even when the feature gate is off
Testing
- Not run (not requested)
2026-02-10 18:50:48 -08:00
pakrym-oai and GitHub
bfd4e2112c
Disable very flaky tests ( #11394 )
...
Collected from last 20 builds of main in
https://github.com/openai/codex/commits/main/ .
2026-02-10 18:50:11 -08:00
pakrym-oai and GitHub
e4b5384539
Extract tool building ( #11337 )
...
Make it clear what input go into building tools and allow for easy reuse
for pre-warm request
2026-02-10 11:45:23 -08:00
pakrym-oai and GitHub
0639c33892
Compare full request for websockets incrementality ( #11343 )
...
Tools can dynamically change mid-turn now. We need to be more thorough
about reusing incremental connections.
2026-02-10 19:14:36 +00:00
pakrym-oai and GitHub
3322b99900
Remove ApiPrompt ( #11265 )
...
Keep things simple and build a full Responses API request request right
in the model client
2026-02-10 16:12:31 +00:00
pakrym-oai and GitHub
086d02fb14
Try to stop small helper methods ( #11203 )
2026-02-09 20:01:30 +00:00
pakrym-oai and GitHub
7044511ae8
Move warmup to the task level ( #11216 )
...
Instead of storing a special connection on the client level make the
regular task responsible for establishing a normal client session and
open a connection on it.
Then when the turn is started we pass in a pre-established session.
2026-02-09 11:58:53 -08:00
pakrym-oai and GitHub
ccd17374cb
Move warmup to the task level ( #11216 )
...
Instead of storing a special connection on the client level make the
regular task responsible for establishing a normal client session and
open a connection on it.
Then when the turn is started we pass in a pre-established session.
2026-02-09 10:57:52 -08:00
pakrym-oai and GitHub
6d08298f4e
Fallback to HTTP on UPGRADE_REQUIRED ( #10824 )
...
Allow the server to trigger a connection downgrade in case the protocol
changes in incompatible ways.
2026-02-08 05:06:33 +00:00
pakrym-oai and GitHub
8fe5066bcc
Simplify pre-connect ( #11040 )
2026-02-07 15:52:03 -08:00
pakrym-oai and GitHub
dbe47ea01a
Send beta header with websocket connects ( #10727 )
2026-02-05 15:05:02 -08:00
0e8d359da9
Session-level model client ( #10664 )
...
Make ModelClient a session-scoped object.
Move state that is session level onto the client, and make state that is
per-turn explicit on corresponding methods.
Stop taking a huge Config object, instead only pass in values that are
actually needed.
---------
Co-authored-by: Josh McKinney <joshka@openai.com >
2026-02-04 16:58:48 -08:00
pakrym-oai and GitHub
7f20357611
Stop client from being state carrier ( #10595 )
...
I'd like to make client session wide. This requires shedding all random
state it has to carry.
2026-02-04 09:05:37 -08:00
pakrym-oai and GitHub
0efd33f7f4
Update tests to stop using sse_completed fixture ( #10638 )
...
Summary:
- replace the `sse_completed` fixture and related JSON template with
direct `responses::ev_completed` payload builders
- cascade the new SSE helpers through all affected core tests for
consistency and clarity
- remove legacy fixtures that were no longer needed once the helpers are
in place
Testing:
- Not run (not requested)
2026-02-04 08:38:06 -08:00
pakrym-oai and GitHub
56ebfff1a8
Move metadata calculation out of client ( #10589 )
...
Model client shouldn't be responsible for this.
2026-02-03 21:59:13 -08:00
pakrym-oai and GitHub
53d8474061
Ignore remote_compact_trims_function_call_history_to_fit_context_window on windows ( #10474 )
2026-02-02 22:47:38 -08:00
pakrym-oai and GitHub
bf87468c2b
Restore status after preamble ( #10465 )
2026-02-02 20:35:50 -08:00
pakrym-oai and GitHub
cbfd2a37cc
Trim compaction input ( #10374 )
...
Two fixes:
1. Include trailing tool output in the total context size calculation.
Otherwise when checking whether compaction should run we ignore newly
added outputs.
2. Trim trailing tool output/tool calls until we can fit the request
into the model context size. Otherwise the compaction endpoint will fail
to compact. We only trim items that can be reproduced again by the model
(tool calls, tool call outputs).
2026-02-02 19:03:11 -08:00
pakrym-oai and GitHub
74327fa59c
Select experimental features with space ( #10281 )
2026-02-02 11:35:11 -08:00
pakrym-oai and GitHub
9d976962ec
Add credits tooltip ( #10274 )
2026-02-02 10:06:43 -08:00
pakrym-oai and GitHub
03fcd12e77
Do not append items on override turn context ( #10354 )
2026-02-01 18:51:26 -08:00
pakrym-oai and GitHub
748141bdda
Update announcement_tip.toml ( #10267 )
...
Extend the test for dev version
2026-01-30 14:14:29 -08:00
pakrym-oai and GitHub
0fac2744f7
Hide /approvals from the slash-command list ( #10265 )
...
`/permissions` is the replacement. `/approvals` still available when
typing.
2026-01-30 22:12:50 +00:00
pakrym-oai and GitHub
5f81e8e70b
Fix main ( #10262 )
2026-01-30 21:54:05 +00:00
pakrym-oai and GitHub
aacd530a41
Update copy ( #10256 )
...
<img width="839" height="62" alt="image"
src="https://github.com/user-attachments/assets/ca987cdb-9e8c-403e-8856-a9b37baa7673 "
/>
2026-01-30 12:57:19 -08:00
pakrym-oai and GitHub
fbb3a30953
Remove WebSocket wire format ( #10179 )
...
I'd like WireApi to go away (when chat is removed) and WebSockets is
still responses API just over a different transport.
2026-01-29 13:50:53 -08:00
pakrym-oai and GitHub
3b1cddf001
Fall back to http when websockets fail ( #10139 )
...
I expect not all proxies work with websockets, fall back to http if
websockets fail.
2026-01-29 10:36:21 -08:00
pakrym-oai and GitHub
998e88b12a
Use test_codex more ( #9961 )
...
Reduces boilderplate.
2026-01-26 18:52:10 -08:00
b332482eb1
Mark collab as beta ( #9834 )
...
Co-authored-by: jif-oai <jif@openai.com >
2026-01-25 11:13:21 +01:00
pakrym-oai and GitHub
b511c38ddb
Support end_turn flag ( #9698 )
...
Experimental flag that signals the end of the turn.
2026-01-22 17:27:48 +00:00
pakrym-oai and GitHub
4d48d4e0c2
Revert "feat: support proxy for ws connection" ( #9693 )
...
Reverts openai/codex#9409
2026-01-22 15:57:18 +00:00
pakrym-oai and GitHub
836f0343a3
Add tui.experimental_mode setting ( #9656 )
...
To simplify testing
2026-01-22 05:27:57 +00:00
pakrym-oai and GitHub
f2e1ad59bc
Add websockets logging ( #9633 )
...
To help with debugging.
2026-01-21 21:35:38 +00:00
pakrym-oai and GitHub
527b7b4c02
Feature to auto-enable websockets transport ( #9578 )
2026-01-20 20:32:06 -08:00
pakrym-oai and GitHub
e6d2ef432d
Rename hierarchical_agents to child_agents_md ( #9215 )
...
Clearer name
2026-01-14 19:14:24 +00:00
pakrym-oai and GitHub
e958d0337e
Log headers in trace mode ( #9214 )
...
To enable:
```
export RUST_LOG="warn,codex_=trace"
```
Sample:
```
Request completed method=POST url=https://chatgpt.com/backend-api/codex/responses status=200 OK headers={"date": "Wed, 14 Jan 2026 18:21:21 GMT", "transfer-encoding": "chunked", "connection": "keep-alive", "x-codex-plan-type": "business", "x-codex-primary-used-percent": "3", "x-codex-secondary-used-percent": "6", "x-codex-primary-window-minutes": "300", "x-codex-primary-over-secondary-limit-percent": "0", "x-codex-secondary-window-minutes": "10080", "x-codex-primary-reset-after-seconds": "9944", "x-codex-secondary-reset-after-seconds": "171121", "x-codex-primary-reset-at": "1768424824", "x-codex-secondary-reset-at": "1768586001", "x-codex-credits-has-credits": "False", "x-codex-credits-balance": "", "x-codex-credits-unlimited": "False", "x-models-etag": "W/\"7a7ffbc83c159dbd7a2a73aaa9c91b7a\"", "x-oai-request-id": "ffedcd30-6d8a-4c4d-be10-8ebb23c142c8", "x-envoy-upstream-service-time": "417", "x-openai-proxy-wasm": "v0.1", "cf-cache-status": "DYNAMIC", "set-cookie": "__cf_bm=xFKeaMbWNbKO5ZX.K5cJBhj34OA1QvnF_3nkdMThjlA-1768414881-1.0.1.1-uLpsE_BDkUfcmOMaeKVQmv_6_2ytnh_R3lO_il5N5K3YPQEkBo0cOMTdma6bK0Gz.hQYcIesFwKIJht1kZ9JKqAYYnjgB96hF4.sii2U3cE; path=/; expires=Wed, 14-Jan-26 18:51:21 GMT; domain=.chatgpt.com; HttpOnly; Secure; SameSite=None", "report-to": "{\"endpoints\":[{\"url\":\"https:\/\/a.nel.cloudflare.com\/report\/v4?s=4Kc7g4zUhKkIm3xHuB6ba4jyIUqqZ07ETwIPAYQASikRjA8JesbtUKDP9tSrZ5PnzWldaiSz5dZVQFI579LEsCMlMUSelTvmyQ8j4FbFDawi%2FprWZ5iRePiaSalr\"}],\"group\":\"cf-nel\",\"max_age\":604800}", "nel": "{\"success_fraction\":0.01,\"report_to\":\"cf-nel\",\"max_age\":604800}", "strict-transport-security": "max-age=31536000; includeSubDomains; preload", "x-content-type-options": "nosniff", "cross-origin-opener-policy": "same-origin-allow-popups", "referrer-policy": "strict-origin-when-cross-origin", "server": "cloudflare", "cf-ray": "9bdf270adc7aba3a-SEA"} version=HTTP/1.1
```
2026-01-14 18:38:12 +00:00
pakrym-oai and GitHub
92472e7baa
Use current model for review ( #9179 )
...
Instead of having a hard-coded default review model, use the current
model for running `/review` unless one is specified in the config.
Also inherit current reasoning effort
2026-01-14 08:59:41 -08:00
pakrym-oai and GitHub
5a70b1568f
WebSocket test server script ( #9175 )
...
Very simple test server to test Responses API WebSocket transport
integration.
2026-01-13 16:21:14 -08:00
pakrym-oai and GitHub
9f8d3c14ce
Fix flakiness in WebSocket tests ( #9169 )
...
The connection was being added to the list after the WebSocket response
was sent.
So the test can sometimes race and observe connections before the list
was updated.
After this change, connection and request is added to the list before
the response is sent.
2026-01-13 15:09:59 -08:00
pakrym-oai and GitHub
2d56519ecd
Support response.done and add integration tests ( #9129 )
...
The agent loop using a persistent incremental web socket connection.
2026-01-13 16:12:30 +00:00
pakrym-oai and GitHub
e726a82c8a
Websocket append support ( #9128 )
...
Support an incremental append request in websocket transport.
2026-01-13 06:07:13 +00:00
pakrym-oai and GitHub
d75626ad99
Reuse websocket connection ( #9127 )
...
Reuses the connection but still sends full requests.
2026-01-13 03:30:09 +00:00
pakrym-oai and GitHub
490c1c1fdd
Add model client sessions ( #9102 )
...
Maintain a long-running session.
2026-01-13 01:15:56 +00:00
pakrym-oai and GitHub
3a6a43ff5c
Extract single responses SSE event parsing ( #9114 )
...
To be reused in WebSockets parsing.
2026-01-12 13:59:51 -08:00
pakrym-oai and GitHub
5dfa780f3d
Remove unused conversation_id header ( #9107 )
...
It's an exact copy of session_id
2026-01-12 21:01:07 +00:00
pakrym-oai and GitHub
1a0e2e612b
Delete announcement_tip.toml ( #9003 )
2026-01-09 14:47:46 -08:00
pakrym-oai and GitHub
acfd94f625
Add hierarchical agent prompt ( #8996 )
2026-01-09 13:47:37 -08:00
pakrym-oai and GitHub
cabf85aa18
Log unhandled sse events ( #8949 )
2026-01-09 12:36:07 -08:00
pakrym-oai and GitHub
62a73b6d58
Attempt to reload auth as a step in 401 recovery ( #8880 )
...
When authentication fails, first attempt to reload the auth from file
and then attempt to refresh it.
2026-01-08 15:06:44 -08:00
pakrym-oai and GitHub
634764ece9
Immutable CodexAuth ( #8857 )
...
Historically we started with a CodexAuth that knew how to refresh it's
own tokens and then added AuthManager that did a different kind of
refresh (re-reading from disk).
I don't think it makes sense for both `CodexAuth` and `AuthManager` to
be mutable and contain behaviors.
Move all refresh logic into `AuthManager` and keep `CodexAuth` as a data
object.
2026-01-08 11:43:56 -08:00
pakrym-oai and GitHub
018de994b0
Stop using AuthManager as the source of codex_home ( #8846 )
2026-01-07 18:56:20 +00:00
pakrym-oai and GitHub
fedcb8f63c
Move tests below auth manager ( #8840 )
...
To simplify future diffs
2026-01-07 17:36:44 +00:00
pakrym-oai and GitHub
1b5095b5d1
Attach more tags to feedback submissions ( #8688 )
...
Attach more tags to sentry feedback so it's easier to classify and debug
without having to scan through logs.
Formatting isn't amazing but it's a start.
<img width="1234" height="276" alt="image"
src="https://github.com/user-attachments/assets/521a349d-f627-4051-b511-9811cd5cd933 "
/>
2026-01-02 16:51:03 -08:00
pakrym-oai and GitHub
7078a0b676
Log compaction request bodies ( #8676 )
...
We already log request bodies for normal requests, logging for
compaction helps with debugging.
2026-01-02 11:27:37 -08:00
pakrym-oai and GitHub
96fdbdd434
Add ExecPolicyManager ( #8349 )
...
Move exec policy management into services to keep turn context
immutable.
2025-12-22 09:59:32 -08:00
pakrym-oai and GitHub
8f0b383621
model list ( #8286 )
...
<img width="200" alt="7ff2254b-e96f-42fc-8232-b4e76cb26248"
src="https://github.com/user-attachments/assets/1f56799d-e2cd-4b69-9290-854943f7c6b6 "
/>
2025-12-18 14:13:49 -08:00
pakrym-oai and GitHub
b3ddd50eee
Remote compact for API-key users ( #7835 )
2025-12-12 10:05:02 -08:00
pakrym-oai and GitHub
bb8fdb20dc
Revert "Only show Worked for after the final assistant message" ( #7884 )
...
Reverts openai/codex#7854
2025-12-11 09:11:42 -08:00
pakrym-oai and GitHub
83aac0f985
Only show Worked for after the final assistant message ( #7854 )
...
Before:
<img width="1908" height="246" alt="image"
src="https://github.com/user-attachments/assets/f4d5993a-8d37-4982-a6fd-d37f449215b2 "
/>
After:
<img width="1102" height="586" alt="image"
src="https://github.com/user-attachments/assets/e833140d-690a-4c33-8bc7-e2b69b9dc92d "
/>
2025-12-10 21:13:13 -08:00
pakrym-oai and GitHub
eb2e5458cc
Disable ansi codes in tui log file ( #7836 )
2025-12-10 13:56:48 -08:00
pakrym-oai and GitHub
4b684c53ae
Remove conversation_id and bring back request ID logging ( #7830 )
2025-12-10 10:44:12 -08:00
pakrym-oai and GitHub
967d063f4b
parse rg | head a search ( #7797 )
2025-12-09 18:30:16 -08:00
164265bed1
Vendor ConPtySystem ( #7656 )
...
The repo we were depending on is very large and we need very small part
of it.
---------
Co-authored-by: Pavel <pavel@krymets.com >
2025-12-09 17:23:51 +00:00
pakrym-oai and GitHub
ac5fa6baf8
Do not emit start/end events for write stdin ( #7561 )
2025-12-08 15:23:02 -08:00
pakrym-oai and GitHub
f1b7cdc3bd
Use shared check sandboxing ( #7547 )
2025-12-04 08:34:09 -08:00
pakrym-oai and GitHub
c4e18f1b63
Slightly better status display for unified exec ( #7563 )
...
Trim bash -lc
2025-12-04 08:32:54 -08:00
pakrym-oai and GitHub
8b1e397211
Add request logging back ( #7471 )
...
Having full requests helps debugging
2025-12-02 07:57:55 -08:00
pakrym-oai and GitHub
e52cc38dfd
Use use_model ( #7121 )
2025-11-21 22:10:52 +00:00
pakrym-oai and GitHub
ab5972d447
Support all types of search actions ( #7061 )
...
Fixes the
```
{
"error": {
"message": "Invalid value: 'other'. Supported values are: 'search', 'open_page', and 'find_in_page'.",
"type": "invalid_request_error",
"param": "input[150].action.type",
"code": "invalid_value"
}
```
error.
The actual-actual fix here is supporting absent `query` parameter.
2025-11-20 20:45:28 -08:00
pakrym-oai and GitHub
767b66f407
Migrate coverage to shell_command ( #7042 )
2025-11-21 03:44:00 +00:00
pakrym-oai and GitHub
830ab4ce20
Support full powershell paths in is_safe_command ( #7055 )
...
New shell implementation always uses full paths.
2025-11-20 19:29:15 -08:00
pakrym-oai and GitHub
856f97f449
Delete shell_command feature ( #7024 )
2025-11-20 14:14:56 -08:00
pakrym-oai and GitHub
52d0ec4cd8
Delete tiktoken-rs ( #7018 )
2025-11-20 11:15:04 -08:00
pakrym-oai and GitHub
30ca89424c
Always fallback to real shell ( #6953 )
...
Either cmd.exe or `/bin/sh`.
2025-11-20 10:58:46 -08:00
pakrym-oai and GitHub
92e3046733
Single pass truncation ( #6914 )
2025-11-19 16:56:37 -08:00
pakrym-oai and GitHub
64ae9aa3c3
Keep gpt-5.1-codex the default ( #6922 )
2025-11-19 11:08:10 -08:00
pakrym-oai and GitHub
75f38f16dd
Run remote auto compaction ( #6879 )
2025-11-19 00:43:58 -08:00
pakrym-oai and GitHub
ee0484a98c
shell_command returns freeform output ( #6860 )
...
Instead of returning structured out and then re-formatting it into
freeform, return the freeform output from shell_command tool.
Keep `shell` as the default tool for GPT-5.
2025-11-18 23:38:43 -08:00
pakrym-oai and GitHub
cac0a6a29d
Remote compaction on by-default ( #6866 )
2025-11-19 02:21:57 +00:00
pakrym-oai and GitHub
018a2d2e50
Ignore unified_exec_respects_workdir_override ( #6693 )
2025-11-14 15:00:31 -08:00
pakrym-oai and GitHub
cfcc87a953
Order outputs before inputs ( #6691 )
...
For better caching performance all output items should be rendered in
the order they were produced before all new input items (for example,
all function_call before all function_call_output).
2025-11-14 14:54:11 -08:00
pakrym-oai and GitHub
4ba562d2dd
Add test timeout ( #6612 )
...
Add an overall test timeout of 30s.
2025-11-14 09:30:37 -08:00
pakrym-oai and GitHub
6c384eb9c6
tests: replace mount_sse_once_match with mount_sse_once for SSE mocking ( #6640 )
2025-11-13 18:04:05 -08:00
pakrym-oai and GitHub
7b027e7536
Revert "Revert "Overhaul shell detection and centralize command generation for unified exec"" ( #6607 )
...
Reverts openai/codex#6606
2025-11-13 16:45:17 -08:00
pakrym-oai and GitHub
547be54ee8
Only list failed tests ( #6619 )
...
Makes output easier to parse
2025-11-13 13:50:33 -08:00
pakrym-oai and GitHub
c95bd345ea
Enable close-stale-contributor-prs.yml workflow ( #6615 )
...
Tested on https://github.com/openai/codex/pull/3036
2025-11-13 11:50:54 -08:00
pakrym-oai and GitHub
0792a7953d
Update default yield time ( #6610 )
...
10s for exec and 250ms for write_stdin
2025-11-13 10:24:41 -08:00
pakrym-oai and GitHub
6cda3de3a4
Close stale PRs workflow ( #6594 )
...
Closes stale PRs from OpenAI employees.
2025-11-13 10:01:51 -08:00
pakrym-oai and GitHub
041d6ad902
Migrate prompt caching tests to test_codex ( #6605 )
...
To hopefully fix the flakiness
2025-11-13 09:19:38 -08:00
pakrym-oai and GitHub
e6995174c1
Revert "Overhaul shell detection and centralize command generation for unified exec" ( #6606 )
...
Reverts openai/codex#6577
2025-11-13 08:43:00 -08:00
d28e912214
Overhaul shell detection and centralize command generation for unified exec ( #6577 )
...
This fixes command display for unified exec. All `cd`s and `ls`es are
now parsed.
<img width="452" height="237" alt="image"
src="https://github.com/user-attachments/assets/ce92d81f-f74c-485a-9b34-1eaa29290ec6 "
/>
Deletes a ton of tests that were doing nothing from shell.rs.
---------
Co-authored-by: Pavel Krymets <pavel@krymets.com >
2025-11-13 08:28:09 -08:00