Owen Lin
ce35cb16b2
clean up
2025-11-03 13:30:30 -08:00
Owen Lin
368314980c
reuse list convo logic
2025-11-03 10:59:33 -08:00
Owen Lin
e6a0d31353
address pr feedback
2025-11-03 09:51:01 -08:00
Owen Lin
35f4fd978d
fix thread/archive
2025-11-03 07:44:22 -08:00
Owen Lin
52d6a68ce9
fix
2025-11-03 07:32:43 -08:00
Owen Lin
d6df22efaa
Merge branch 'main' into owen/separate_v2_namespace_take_two
2025-11-03 07:28:02 -08:00
Owen Lin
2084355a8f
fix type complexity
2025-11-03 07:19:10 -08:00
Vinh Nguyen
a1ee10b438
fix: improve usage URLs in status card and snapshots ( #6111 )
...
Hi OpenAI Codex team, currently "Visit chatgpt.com/codex/settings/usage
for up-to-date information on rate limits and credits" message in status
card and error messages. For now, without the "https://" prefix, the
link cannot be clicked directly from most terminals or chat interfaces.
<img width="636" height="127" alt="Screenshot 2025-11-02 at 22 47 06"
src="https://github.com/user-attachments/assets/5ea11e8b-fb74-451c-85dc-f4d492b2678b "
/>
---
The fix is intent to improve this issue:
- It makes the link clickable in terminals that support it, hence better
accessibility
- It follows standard URL formatting practices
- It maintains consistency with other links in the application (like the
existing "https://openai.com/chatgpt/pricing " links)
Thank you!
2025-11-02 21:44:59 -08:00
Eric Traut
dccce34d84
Fix "archive conversation" on Windows ( #6124 )
...
Addresses issue https://github.com/openai/codex/issues/3582 where an
"archive conversation" command in the extension fails on Windows.
The problem is that the `archive_conversation` api server call is not
canonicalizing the path to the rollout path when performing its check to
verify that the rollout path is in the sessions directory. This causes
it to fail 100% of the time on Windows.
Testing: I was able to repro the error on Windows 100% prior to this
change. After the change, I'm no longer able to repro.
2025-11-02 21:41:05 -08:00
Rohan Godha
5fcf923c19
fix: pasting api key stray character ( #4903 )
...
When signing in with an API key, pasting (with command+v on mac) adds a
stray `v` character to the end of the api key.
demo video (where I'm pasting in `sk-something-super-secret`)
https://github.com/user-attachments/assets/b2b34b5f-c7e4-4760-9657-c35686dd8bb8
2025-11-03 04:19:08 +00:00
Owen Lin
fed62a365c
fix export.rs
2025-11-02 16:47:36 -08:00
Owen Lin
c810a0992e
revert mcp process test change
2025-11-02 16:37:35 -08:00
Owen Lin
fa5fa861ef
turn interrupt
2025-11-02 16:36:14 -08:00
Eric Traut
0c7efa0cfd
Fix incorrect "deprecated" message about experimental config key ( #6131 )
...
When I enable `experimental_sandbox_command_assessment`, I get an
incorrect deprecation warning: "experimental_sandbox_command_assessment
is deprecated. Use experimental_sandbox_command_assessment instead."
This PR fixes this error.
2025-11-02 16:33:09 -08:00
Owen Lin
fa03208ade
auto-attach convo listener
2025-11-02 16:11:12 -08:00
Owen Lin
698c6bd1de
use thread id
2025-11-02 14:05:42 -08:00
Owen Lin
644f53a4a4
clean up boilerplate
2025-11-02 13:36:20 -08:00
Owen Lin
fbb04a608d
turn start
2025-11-02 13:31:05 -08:00
Owen Lin
d8075b923c
wip
2025-11-02 13:15:53 -08:00
Owen Lin
afd59a99af
remove order from thread/list
2025-11-02 12:15:46 -08:00
Owen Lin
fbe3078c2f
thread/list supports filtering by model providers
2025-11-02 12:04:15 -08:00
Owen Lin
6fbb3665a2
thread/list and thread/resume
2025-11-02 12:01:19 -08:00
Owen Lin
e249fcdc1d
refactor to share archive logic
2025-11-02 10:06:12 -08:00
Owen Lin
27251b597d
thread/archive
2025-11-02 10:03:21 -08:00
Owen Lin
6c9e541574
implement thread/start
2025-11-02 09:56:47 -08:00
Owen Lin
945d493f6c
enums from core
2025-11-02 09:37:44 -08:00
Owen Lin
a010c1b7fc
add v2 server notifications
2025-11-02 08:58:43 -08:00
Owen Lin
823ab56dc5
comment updates
2025-11-02 08:40:50 -08:00
Eric Traut
d5853d9c47
Changes to sandbox command assessment feature based on initial experiment feedback ( #6091 )
...
* Removed sandbox risk categories; feedback indicates that these are not
that useful and "less is more"
* Tweaked the assessment prompt to generate terser answers
* Fixed bug in orchestrator that prevents this feature from being
exposed in the extension
2025-11-01 14:52:23 -07:00
Owen Lin
72752ed85d
separate json schema generation to a v2 namespace
2025-11-01 14:32:12 -07:00
Owen Lin
cd9d93fd73
fix test
2025-11-01 13:35:56 -07:00
Owen Lin
11c87546c3
use macros to generate notifications
2025-11-01 13:34:22 -07:00
Owen Lin
a4be03d62b
expose public struct for rate limits
2025-11-01 13:15:47 -07:00
Owen Lin
59e3e7431e
move rate limits updated notification to v2
2025-11-01 11:22:44 -07:00
Owen Lin
62be8a3cde
add stub handlers in message processor and fix list models test
2025-11-01 11:02:59 -07:00
Owen Lin
276c7fbb5d
also standardize method names to follow LSP order
2025-11-01 10:50:37 -07:00
Owen Lin
7f781c6746
add thread/turn API definitions, unify List API patterns
2025-11-01 10:46:26 -07:00
Owen Lin
31f61823c9
wip thread/turn/item types
2025-11-01 10:16:23 -07:00
Owen Lin
473600a75b
remove manual list for json schema
2025-11-01 10:00:24 -07:00
Thomas Stokes
d9118c04bf
Parse the Azure OpenAI rate limit message ( #5956 )
...
Fixes #4161
Currently Codex uses a regex to parse the "Please try again in 1.898s"
OpenAI-style rate limit message, so that it can wait the correct
duration before retrying. Azure OpenAI returns a different error that
looks like "Rate limit exceeded. Try again in 35 seconds."
This PR extends the regex and parsing code to match in a more fuzzy
manner, handling anything matching the pattern "try again in
\<duration>\<unit>".
2025-11-01 09:33:13 -07:00
Owen Lin
2bd507c6fb
[app-server] generate API v2 types in its own namespace
2025-11-01 09:11:37 -07:00
Jeremy Rose
07b8bdfbf1
tui: patch crossterm for better color queries ( #5935 )
...
See
https://github.com/crossterm-rs/crossterm/compare/master...nornagon:crossterm:nornagon/color-query
This patches crossterm to add support for querying fg/bg color as part
of the crossterm event loop, which fixes some issues where this query
would fight with other input.
- dragging screenshots into the cli would sometimes paste half of the
pathname instead of being recognized as an image
(https://github.com/openai/codex/issues/5603 )
- Fixes https://github.com/openai/codex/issues/4945
2025-10-31 16:36:41 -07:00
Anton Panasenko
0f22067242
[codex][app-server] improve error response for client requests ( #6050 )
2025-10-31 15:28:04 -07:00
jif-oai and pakrym-oai
611e00c862
feat: compactor 2 ( #6027 )
...
Co-authored-by: pakrym-oai <pakrym@openai.com >
2025-10-31 14:27:08 -07:00
Ahmed Ibrahim
c8ebb2a0dc
Add warning on compact ( #6052 )
...
This PR introduces the ability for `core` to send `warnings` as it can
send `errors. It also sends a warning on compaction.
<img width="811" height="187" alt="image"
src="https://github.com/user-attachments/assets/0947a42d-b720-420d-b7fd-115f8a65a46a "
/>
2025-10-31 13:27:33 -07:00
Dylan Hurd
88e083a9d0
chore: Add shell serialization tests for json ( #6043 )
...
## Summary
Can never have enough tests on this code path - checking that json
inside a shell call is deserialized correctly.
## Tests
- [x] These are tests 😎
2025-10-31 11:01:58 -07:00
Ahmed Ibrahim and Gabriel Peal
1c8507b32a
Truncate total tool calls text ( #5979 )
...
Put a cap on the aggregate output of text content on tool calls.
---------
Co-authored-by: Gabriel Peal <gpeal@users.noreply.github.com >
2025-10-31 10:30:36 -07:00
dependabot[bot] and Eric Traut
ff48ae192b
chore(deps): bump indexmap from 2.10.0 to 2.11.4 in /codex-rs ( #4804 )
...
Bumps [indexmap](https://github.com/indexmap-rs/indexmap ) from 2.10.0 to
2.11.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md ">indexmap's
changelog</a>.</em></p>
<blockquote>
<h2>2.11.4 (2025-09-18)</h2>
<ul>
<li>Updated the <code>hashbrown</code> dependency to a range allowing
0.15 or 0.16.</li>
</ul>
<h2>2.11.3 (2025-09-15)</h2>
<ul>
<li>Make the minimum <code>serde</code> version only apply when
"serde" is enabled.</li>
</ul>
<h2>2.11.2 (2025-09-15)</h2>
<ul>
<li>Switched the "serde" feature to depend on
<code>serde_core</code>, improving build
parallelism in cases where other dependents have enabled
"serde/derive".</li>
</ul>
<h2>2.11.1 (2025-09-08)</h2>
<ul>
<li>Added a <code>get_key_value_mut</code> method to
<code>IndexMap</code>.</li>
<li>Removed the unnecessary <code>Ord</code> bound on
<code>insert_sorted_by</code> methods.</li>
</ul>
<h2>2.11.0 (2025-08-22)</h2>
<ul>
<li>Added <code>insert_sorted_by</code> and
<code>insert_sorted_by_key</code> methods to <code>IndexMap</code>,
<code>IndexSet</code>, and <code>VacantEntry</code>, like customizable
versions of <code>insert_sorted</code>.</li>
<li>Added <code>is_sorted</code>, <code>is_sorted_by</code>, and
<code>is_sorted_by_key</code> methods to
<code>IndexMap</code> and <code>IndexSet</code>, as well as their
<code>Slice</code> counterparts.</li>
<li>Added <code>sort_by_key</code> and <code>sort_unstable_by_key</code>
methods to <code>IndexMap</code> and
<code>IndexSet</code>, as well as parallel counterparts.</li>
<li>Added <code>replace_index</code> methods to <code>IndexMap</code>,
<code>IndexSet</code>, and <code>VacantEntry</code>
to replace the key (or set value) at a given index.</li>
<li>Added optional <code>sval</code> serialization support.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/03f9e58626ad7ef811b1522097bced2400c18b1a "><code>03f9e58</code></a>
Merge pull request <a
href="https://redirect.github.com/indexmap-rs/indexmap/issues/418 ">#418</a>
from a1phyr/hashbrown_0.16</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/ee6080d480eea3b738757c6bff1bb21b440f3849 "><code>ee6080d</code></a>
Release 2.11.4</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/a7da8f181e81f8a37bc46936bf2d1d6db14edddc "><code>a7da8f1</code></a>
Use a range for hashbrown</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/0cd5aefb4434fb495cb87ba5de50870d331558fc "><code>0cd5aef</code></a>
Update <code>hashbrown</code> to 0.16</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/fd5c819daf8c3c62919ec0bbc777a571ee20ae5a "><code>fd5c819</code></a>
Merge pull request <a
href="https://redirect.github.com/indexmap-rs/indexmap/issues/417 ">#417</a>
from cuviper/release-2.11.3</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/9321145e1f517f31969c0d9ab5a5171cc23c3daf "><code>9321145</code></a>
Release 2.11.3</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/7b485688c299ed840d900b5a33aed33a1924a7c9 "><code>7b48568</code></a>
Merge pull request <a
href="https://redirect.github.com/indexmap-rs/indexmap/issues/416 ">#416</a>
from cuviper/release-2.11.2</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/49ce7fa4716e24cf9380653a40d88b5186f2f555 "><code>49ce7fa</code></a>
Release 2.11.2</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/58fd834804415879eb9be862291eba03e945e32a "><code>58fd834</code></a>
Merge pull request <a
href="https://redirect.github.com/indexmap-rs/indexmap/issues/414 ">#414</a>
from DaniPopes/serde_core</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/5dc1d6ab3105739ae61039f422e5246f0eee4f64 "><code>5dc1d6a</code></a>
Depend on <code>serde_core</code> instead of <code>serde</code></li>
<li>Additional commits viewable in <a
href="https://github.com/indexmap-rs/indexmap/compare/2.10.0...2.11.4 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eric Traut <etraut@openai.com >
2025-10-31 10:15:52 -07:00
dependabot[bot] and Eric Traut
a2fe2f9fb1
chore(deps): bump anyhow from 1.0.99 to 1.0.100 in /codex-rs ( #4802 )
...
Bumps [anyhow](https://github.com/dtolnay/anyhow ) from 1.0.99 to
1.0.100.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/anyhow/releases ">anyhow's
releases</a>.</em></p>
<blockquote>
<h2>1.0.100</h2>
<ul>
<li>Teach clippy to lint formatting arguments in <code>bail!</code>,
<code>ensure!</code>, <code>anyhow!</code> (<a
href="https://redirect.github.com/dtolnay/anyhow/issues/426 ">#426</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/dtolnay/anyhow/commit/18c2598afa0f996f56217ef128aa3a20ea1e9512 "><code>18c2598</code></a>
Release 1.0.100</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/f2719888cb2f4f033c441cf6723cea1c532c0c87 "><code>f271988</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/anyhow/issues/426 ">#426</a>
from dtolnay/clippyfmt</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/52f2115a1fe22a79110747f19e35f01d52bdd1af "><code>52f2115</code></a>
Mark macros with clippy::format_args</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/da5fd9d5a33c2949bc3ee3075d8d6f9e224363d5 "><code>da5fd9d</code></a>
Raise minimum tested compiler to rust 1.76</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/211e4092b7e1fb1c6f5d22063474e5b2f8dd0f16 "><code>211e409</code></a>
Opt in to generate-macro-expansion when building on docs.rs</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/b48fc02c327c502a81fcc2b46318eb61fda6b7b3 "><code>b48fc02</code></a>
Enforce trybuild >= 1.0.108</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/d5f59fbd45db00982bc0ea490edbe331ef8cab26 "><code>d5f59fb</code></a>
Update ui test suite to nightly-2025-09-07</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/238415d25b65dcf73ab2e3741d7adc56615af8c3 "><code>238415d</code></a>
Update ui test suite to nightly-2025-08-24</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/3bab0709a347b90de15c5eaaf3779904cfcc1ac6 "><code>3bab070</code></a>
Update actions/checkout@v4 -> v5</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/42492546e3b5510378d0ee32b659fefee1f26158 "><code>4249254</code></a>
Order cap-lints flag in the same order as thiserror build script</li>
<li>See full diff in <a
href="https://github.com/dtolnay/anyhow/compare/1.0.99...1.0.100 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eric Traut <etraut@openai.com >
2025-10-31 10:15:33 -07:00
jif-oai
0508823075
test: undo ( #6034 )
2025-10-31 14:46:24 +00:00