mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
fb0aaf94de7db12e22a293f5b0dd26aa6c8d6a8e
3718 Commits
-
Shijie Rao ·
2025-12-08 16:09:28 -08:00 -
fix: pre-main hardening logic must tolerate non-UTF-8 env vars (#7749)
We received a bug report that Codex CLI crashes when an env var contains a non-ASCII character, or more specifically, cannot be decoded as UTF-8: ```shell $ RUST_BACKTRACE=full RÖDBURK=1 codex thread '<unnamed>' panicked at library/std/src/env.rs:162:57: called `Result::unwrap()` on an `Err` value: "RÃ\xB6DBURK" stack backtrace: 0: 0x101905c18 - __mh_execute_header 1: 0x1012bd76c - __mh_execute_header 2: 0x1019050e4 - __mh_execute_header 3: 0x101905ad8 - __mh_execute_header 4: 0x101905874 - __mh_execute_header 5: 0x101904f38 - __mh_execute_header 6: 0x1019347bc - __mh_execute_header 7: 0x10193472c - __mh_execute_header 8: 0x101937884 - __mh_execute_header 9: 0x101b3bcd0 - __mh_execute_header 10: 0x101b3c0bc - __mh_execute_header 11: 0x101927a20 - __mh_execute_header 12: 0x1005c58d8 - __mh_execute_header thread '<unnamed>' panicked at library/core/src/panicking.rs:225:5: panic in a function that cannot unwind stack backtrace: 0: 0x101905c18 - __mh_execute_header 1: 0x1012bd76c - __mh_execute_header 2: 0x1019050e4 - __mh_execute_header 3: 0x101905ad8 - __mh_execute_header 4: 0x101905874 - __mh_execute_header 5: 0x101904f38 - __mh_execute_header 6: 0x101934794 - __mh_execute_header 7: 0x10193472c - __mh_execute_header 8: 0x101937884 - __mh_execute_header 9: 0x101b3c144 - __mh_execute_header 10: 0x101b3c1a0 - __mh_execute_header 11: 0x101b3c158 - __mh_execute_header 12: 0x1005c5ef8 - __mh_execute_header thread caused non-unwinding panic. aborting. ``` I discovered I could reproduce this on a release build, but not a dev build, so between that and the unhelpful stack trace, my mind went to the pre-`main()` logic we run in prod builds. Sure enough, we were operating on `std::env::vars()` instead of `std::env::vars_os()`, which is why the non-UTF-8 environment variable was causing an issue. This PR updates the logic to use `std::env::vars_os()` and adds a unit test. And to be extra sure, I also verified the fix works with a local release build: ``` $ cargo build --bin codex --release $ RÖDBURK=1 ./target/release/codex --version codex-cli 0.0.0 ```
Michael Bolin ·
2025-12-08 16:00:24 -08:00 -
Remove legacy
ModelInfoand merge it withModelFamily(#7748)This is a step towards removing the need to know `model` when constructing config. We firstly don't need to know `model_info` and just respect if the user has already set it. Next step, we don't need to know `model` unless the user explicitly set it in `config.toml`
Ahmed Ibrahim ·
2025-12-08 15:29:37 -08:00 -
pakrym-oai ·
2025-12-08 15:23:02 -08:00 -
feat: windows codesign with Azure trusted signing (#7675)
### Summary Set up codesign for windows dist with [Azure trusted signing](https://azure.microsoft.com/en-us/products/trusted-signing) and [its github action integration](https://github.com/Azure/trusted-signing-action).
Shijie Rao ·
2025-12-08 15:12:01 -08:00 -
Add formatting client version to the
x.x.xstyle. (#7711)To avoid regression with special builds like alphas
Ahmed Ibrahim ·
2025-12-08 14:52:39 -08:00 -
Restore status header after stream recovery (#7660)
## Summary - restore the previous status header when a non-error event arrives after a stream retry - add a regression test to ensure the reconnect banner clears once streaming resumes ## Testing - cargo fmt -- --config imports_granularity=Item - cargo clippy --fix --all-features --tests --allow-dirty -p codex-tui - NO_COLOR=0 cargo test -p codex-tui *(fails: vt100 color assertion tests expect colored cells but the environment returns Default colors even with NO_COLOR cleared and TERM/COLORTERM set)* ------ [Codex Task](https://chatgpt.com/codex/tasks/task_i_69337f8c77508329b3ea85134d4a7ac7)
Josh McKinney ·
2025-12-08 14:33:00 -08:00 -
Enhance model picker (#7709)
# External (non-OpenAI) Pull Request Requirements Before opening this Pull Request, please read the dedicated "Contributing" markdown file or your PR may be closed: https://github.com/openai/codex/blob/main/docs/contributing.md If your PR conforms to our contribution guidelines, replace this text with a detailed and high quality description of your changes. Include a link to a bug report or enhancement request.
Ahmed Ibrahim ·
2025-12-08 14:22:51 -08:00 -
updating app server types to support execpoilcy amendment (#7747)
also includes minor refactor merging `ApprovalDecision` with `CommandExecutionRequestAcceptSettings`
zhao-oai ·
2025-12-08 13:56:22 -08:00 -
load models from disk and set a ttl and etag (#7722)
# External (non-OpenAI) Pull Request Requirements Before opening this Pull Request, please read the dedicated "Contributing" markdown file or your PR may be closed: https://github.com/openai/codex/blob/main/docs/contributing.md If your PR conforms to our contribution guidelines, replace this text with a detailed and high quality description of your changes. Include a link to a bug report or enhancement request.
Ahmed Ibrahim ·
2025-12-08 13:43:04 -08:00 -
fix(tui): add missing Ctrl+n/Ctrl+p support to ListSelectionView (#7629)
## Summary Extend Ctrl+n/Ctrl+p navigation support to selection popups (model picker, approval mode, etc.) This is a follow-up to #7530, which added Ctrl+n/Ctrl+p navigation to the textarea. The same keybindings were missing from `ListSelectionView`, causing inconsistent behavior when navigating selection popups. ## Related - #7530 - feat(tui): map Ctrl-P/N to arrow navigation in textarea ## Changes - Added Ctrl+n as alternative to Down arrow in selection popups - Added Ctrl+p as alternative to Up arrow in selection popups - Added unit tests for the new keybindings ## Test Plan - [x] `cargo test -p codex-tui list_selection_view` - all tests pass - [x] Manual testing: verified Ctrl+n/p navigation works in model selection popup --------- Co-authored-by: Eric Traut <etraut@openai.com>
Takuto Yuki ·
2025-12-08 11:21:15 -08:00 -
feat: linux codesign with sigstore (#7674)
### Summary Linux codesigning with sigstore and test run output at https://github.com/openai/codex/actions/runs/19994328162?pr=7662. Sigstore is one of the few ways for codesigning for linux platform. Linux is open sourced and therefore binary/dist validation comes with the build itself instead of a central authority like Windows or Mac. Alternative here is to use GPG which again a public key included with the bundle for validation. Advantage with Sigstore is that we do not have to create a private key for signing but rather with[ keyless signing](https://docs.sigstore.dev/cosign/signing/overview/). This should be sufficient for us at this point and if we want to we can support GPG in the future.
Shijie Rao ·
2025-12-08 11:13:50 -08:00 -
Make the device auth instructions more clear. (#7745)
- [x] Make the device auth instructions more clear.
Matthew Zeng ·
2025-12-08 11:04:49 -08:00 -
jif-oai ·
2025-12-08 18:42:09 +00:00 -
proposing execpolicy amendment when prompting due to sandbox denial (#7653)
Currently, we only show the “don’t ask again for commands that start with…” option when a command is immediately flagged as needing approval. However, there is another case where we ask for approval: When a command is initially auto-approved to run within sandbox, but it fails to run inside sandbox, we would like to attempt to retry running outside of sandbox. This will require a prompt to the user. This PR addresses this latter case
zhao-oai ·
2025-12-08 17:55:20 +00:00 -
fix wrap behavior for long commands (#7655)
before: <img width="720" height="225" alt="image" src="https://github.com/user-attachments/assets/19b7ad7c-db14-4792-97cc-80677a3a52ec" /> after: <img width="500" height="219" alt="Screenshot 2025-12-05 at 4 37 14 PM" src="https://github.com/user-attachments/assets/f877f846-5943-4ca7-8949-89e8524ffdb9" /> also removes `is_current`, which is deadcode
zhao-oai ·
2025-12-08 17:35:03 +00:00 -
chore(deps): bump wildmatch from 2.5.0 to 2.6.1 in /codex-rs (#7716)
Bumps [wildmatch](https://github.com/becheran/wildmatch) from 2.5.0 to 2.6.1. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/becheran/wildmatch/commit/ca6568be7e9cf5b4487bae0ca5c8068bf27e6c38"><code>ca6568b</code></a> chore: Release wildmatch version 2.6.1</li> <li><a href="https://github.com/becheran/wildmatch/commit/513c5ab967630e5fdef63adea1a88ad4290ace23"><code>513c5ab</code></a> docs: fix broken links</li> <li><a href="https://github.com/becheran/wildmatch/commit/fe47b5f750bedc85888bb924cba2c0dbbb31ce32"><code>fe47b5f</code></a> chore: use latest mlc version</li> <li><a href="https://github.com/becheran/wildmatch/commit/4d05f9f3d13b75da57a262ee869cf77855965d42"><code>4d05f9f</code></a> Merge pull request <a href="https://redirect.github.com/becheran/wildmatch/issues/30">#30</a> from arifd/patch-1</li> <li><a href="https://github.com/becheran/wildmatch/commit/26114f73de01ec642b3cae406d077439e502f6bd"><code>26114f7</code></a> unify example pattern used in WildMatchPattern examples</li> <li><a href="https://github.com/becheran/wildmatch/commit/32c36f5113bc7a661edf0af139a6ccd056bad8cf"><code>32c36f5</code></a> chore: Release wildmatch version 2.6.0</li> <li><a href="https://github.com/becheran/wildmatch/commit/4777964a652c12716f251da5e203c47744696bd9"><code>4777964</code></a> Merge pull request <a href="https://redirect.github.com/becheran/wildmatch/issues/29">#29</a> from arifd/prevent-ambiguous-same-single-multi-wildcard</li> <li><a href="https://github.com/becheran/wildmatch/commit/3a5bf1b4f6ed7527c32e7bf549539c6b62161da4"><code>3a5bf1b</code></a> prevent ambiguous same single multi wildcard</li> <li>See full diff in <a href="https://github.com/becheran/wildmatch/compare/v2.5.0...v2.6.1">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>
dependabot[bot] ·
2025-12-08 17:13:51 +00:00 -
chore(deps): bump insta from 1.43.2 to 1.44.3 in /codex-rs (#7715)
Bumps [insta](https://github.com/mitsuhiko/insta) from 1.43.2 to 1.44.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/mitsuhiko/insta/releases">insta's releases</a>.</em></p> <blockquote> <h2>1.44.3</h2> <h2>Release Notes</h2> <ul> <li>Fix a regression in 1.44.2 where merge conflict detection was too aggressive, incorrectly flagging snapshot content containing <code>======</code> or similar patterns as conflicts. <a href="https://redirect.github.com/mitsuhiko/insta/issues/832">#832</a></li> <li>Fix a regression in 1.42.2 where inline snapshot updates would corrupt the file when code preceded the macro (e.g., <code>let output = assert_snapshot!(...)</code>). <a href="https://redirect.github.com/mitsuhiko/insta/issues/833">#833</a></li> </ul> <h2>Install cargo-insta 1.44.3</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mitsuhiko/insta/releases/download/1.44.3/cargo-insta-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c "irm https://github.com/mitsuhiko/insta/releases/download/1.44.3/cargo-insta-installer.ps1 | iex" </code></pre> <h2>Download cargo-insta 1.44.3</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.44.3/cargo-insta-aarch64-apple-darwin.tar.xz">cargo-insta-aarch64-apple-darwin.tar.xz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.44.3/cargo-insta-aarch64-apple-darwin.tar.xz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.44.3/cargo-insta-x86_64-apple-darwin.tar.xz">cargo-insta-x86_64-apple-darwin.tar.xz</a></td> <td>Intel macOS</td> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.44.3/cargo-insta-x86_64-apple-darwin.tar.xz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.44.3/cargo-insta-x86_64-pc-windows-msvc.zip">cargo-insta-x86_64-pc-windows-msvc.zip</a></td> <td>x64 Windows</td> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.44.3/cargo-insta-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.44.3/cargo-insta-x86_64-unknown-linux-gnu.tar.xz">cargo-insta-x86_64-unknown-linux-gnu.tar.xz</a></td> <td>x64 Linux</td> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.44.3/cargo-insta-x86_64-unknown-linux-gnu.tar.xz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.44.3/cargo-insta-x86_64-unknown-linux-musl.tar.xz">cargo-insta-x86_64-unknown-linux-musl.tar.xz</a></td> <td>x64 MUSL Linux</td> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.44.3/cargo-insta-x86_64-unknown-linux-musl.tar.xz.sha256">checksum</a></td> </tr> </tbody> </table> <h2>1.44.2</h2> <h2>Release Notes</h2> <ul> <li>Fix a rare backward compatibility issue where inline snapshots using an uncommon legacy format (single-line content stored in multiline raw strings) could fail to match after 1.44.0. <a href="https://redirect.github.com/mitsuhiko/insta/issues/830">#830</a></li> <li>Handle merge conflicts in snapshot files gracefully. When a snapshot file contains git merge conflict markers, insta now detects them and treats the snapshot as missing, allowing tests to continue and create a new pending snapshot for review. <a href="https://redirect.github.com/mitsuhiko/insta/issues/829">#829</a></li> <li>Skip nextest_doctest tests when cargo-nextest is not installed. <a href="https://redirect.github.com/mitsuhiko/insta/issues/826">#826</a></li> <li>Fix functional tests failing under nextest due to inherited <code>NEXTEST_RUN_ID</code> environment variable. <a href="https://redirect.github.com/mitsuhiko/insta/issues/824">#824</a></li> </ul> <h2>Install cargo-insta 1.44.2</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mitsuhiko/insta/releases/download/1.44.2/cargo-insta-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c "irm https://github.com/mitsuhiko/insta/releases/download/1.44.2/cargo-insta-installer.ps1 | iex" </tr></table> </code></pre> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/mitsuhiko/insta/blob/master/CHANGELOG.md">insta's changelog</a>.</em></p> <blockquote> <h2>1.44.3</h2> <ul> <li>Fix a regression in 1.44.2 where merge conflict detection was too aggressive, incorrectly flagging snapshot content containing <code>======</code> or similar patterns as conflicts. <a href="https://redirect.github.com/mitsuhiko/insta/issues/832">#832</a></li> <li>Fix a regression in 1.42.2 where inline snapshot updates would corrupt the file when code preceded the macro (e.g., <code>let output = assert_snapshot!(...)</code>). <a href="https://redirect.github.com/mitsuhiko/insta/issues/833">#833</a></li> </ul> <h2>1.44.2</h2> <ul> <li>Fix a rare backward compatibility issue where inline snapshots using an uncommon legacy format (single-line content stored in multiline raw strings) could fail to match after 1.44.0. <a href="https://redirect.github.com/mitsuhiko/insta/issues/830">#830</a></li> <li>Handle merge conflicts in snapshot files gracefully. When a snapshot file contains git merge conflict markers, insta now detects them and treats the snapshot as missing, allowing tests to continue and create a new pending snapshot for review. <a href="https://redirect.github.com/mitsuhiko/insta/issues/829">#829</a></li> <li>Skip nextest_doctest tests when cargo-nextest is not installed. <a href="https://redirect.github.com/mitsuhiko/insta/issues/826">#826</a></li> <li>Fix functional tests failing under nextest due to inherited <code>NEXTEST_RUN_ID</code> environment variable. <a href="https://redirect.github.com/mitsuhiko/insta/issues/824">#824</a></li> </ul> <h2>1.44.1</h2> <ul> <li>Add <code>--dnd</code> alias for <code>--disable-nextest-doctest</code> flag to make it easier to silence the deprecation warning. <a href="https://redirect.github.com/mitsuhiko/insta/issues/822">#822</a></li> <li>Update cargo-dist to 0.30.2 and fix Windows runner to use windows-2022. <a href="https://redirect.github.com/mitsuhiko/insta/issues/821">#821</a></li> </ul> <h2>1.44.0</h2> <ul> <li>Added non-interactive snapshot review and reject modes for use in non-TTY environments (LLMs, CI pipelines, scripts). <code>cargo insta review --snapshot <path></code> and <code>cargo insta reject --snapshot <path></code> now work without a terminal. Enhanced <code>pending-snapshots</code> output with usage instructions and workspace-relative paths. <a href="https://redirect.github.com/mitsuhiko/insta/issues/815">#815</a></li> <li>Add <code>--disable-nextest-doctest</code> flag to <code>cargo insta test</code> to disable running doctests with nextest. Shows a deprecation warning when nextest is used with doctests without this flag, to prepare <code>cargo insta</code> to no longer run a separate doctest process when using nextest in the future. <a href="https://redirect.github.com/mitsuhiko/insta/issues/803">#803</a></li> <li>Add ergonomic <code>--test-runner-fallback</code> / <code>--no-test-runner-fallback</code> flags to <code>cargo insta test</code>. <a href="https://redirect.github.com/mitsuhiko/insta/issues/811">#811</a></li> <li>Apply redactions to snapshot metadata. <a href="https://redirect.github.com/mitsuhiko/insta/issues/813">#813</a></li> <li>Remove confusing 'previously unseen snapshot' message. <a href="https://redirect.github.com/mitsuhiko/insta/issues/812">#812</a></li> <li>Speed up JSON float rendering. <a href="https://redirect.github.com/mitsuhiko/insta/issues/806">#806</a> (<a href="https://github.com/nyurik"><code>@nyurik</code></a>)</li> <li>Allow globset version up to 0.4.16. <a href="https://redirect.github.com/mitsuhiko/insta/issues/810">#810</a> (<a href="https://github.com/g0hl1n"><code>@g0hl1n</code></a>)</li> <li>Improve documentation. <a href="https://redirect.github.com/mitsuhiko/insta/issues/814">#814</a> (<a href="https://github.com/tshepang"><code>@tshepang</code></a>)</li> <li>We no longer trim starting newlines during assertions, which allows asserting the number of leading newlines match. Existing assertions with different leading newlines will pass and print a warning suggesting running with <code>--force-update-snapshots</code>. They may fail in the future. (Note that we still currently allow differing <em>trailing</em> newlines, though may adjust this in the future). <a href="https://redirect.github.com/mitsuhiko/insta/issues/563">#563</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/mitsuhiko/insta/commit/dcbb11fdc1ceb99a8cf45a1dae1f5c1f0aade75f"><code>dcbb11f</code></a> Prepare release 1.44.3 (<a href="https://redirect.github.com/mitsuhiko/insta/issues/838">#838</a>)</li> <li><a href="https://github.com/mitsuhiko/insta/commit/3b9ec12268b1832a12c8b38f4e172eda5d198ac6"><code>3b9ec12</code></a> Refine test name & description (<a href="https://redirect.github.com/mitsuhiko/insta/issues/837">#837</a>)</li> <li><a href="https://github.com/mitsuhiko/insta/commit/ee4e1ea39cdd2709485a07de52a8cb46c48ad0ab"><code>ee4e1ea</code></a> Handle unparsable snapshot files gracefully (<a href="https://redirect.github.com/mitsuhiko/insta/issues/836">#836</a>)</li> <li><a href="https://github.com/mitsuhiko/insta/commit/778f7336b416b224f89bb855d5bfaa4819bd2465"><code>778f733</code></a> Fix for code before macros, such as <code>let foo = assert_snapshot!</code> (<a href="https://redirect.github.com/mitsuhiko/insta/issues/835">#835</a>)</li> <li><a href="https://github.com/mitsuhiko/insta/commit/6cb41aff12a732cbe45204d3137fddfc2afe0ce3"><code>6cb41af</code></a> Prepare release 1.44.2 (<a href="https://redirect.github.com/mitsuhiko/insta/issues/831">#831</a>)</li> <li><a href="https://github.com/mitsuhiko/insta/commit/8838b2fe449800a830e356e173a70e1880e22809"><code>8838b2f</code></a> Handle merge conflicts in snapshot files gracefully (<a href="https://redirect.github.com/mitsuhiko/insta/issues/829">#829</a>)</li> <li><a href="https://github.com/mitsuhiko/insta/commit/e55ce9946d9921ccb93114e81c77d2eb9a8850bf"><code>e55ce99</code></a> Fix backward compatibility for legacy inline snapshot format (<a href="https://redirect.github.com/mitsuhiko/insta/issues/830">#830</a>)</li> <li><a href="https://github.com/mitsuhiko/insta/commit/d44dd422b1f632532304c66ba1815c83f11a31d0"><code>d44dd42</code></a> Skip nextest_doctest tests when cargo-nextest is not installed (<a href="https://redirect.github.com/mitsuhiko/insta/issues/826">#826</a>)</li> <li><a href="https://github.com/mitsuhiko/insta/commit/a711bafd633f126cf366f6be0adc43f775ac8b49"><code>a711baf</code></a> Fix functional tests failing under nextest (<a href="https://redirect.github.com/mitsuhiko/insta/issues/824">#824</a>)</li> <li><a href="https://github.com/mitsuhiko/insta/commit/ba9ea5148c248a875d3a410bd2c7f746f65a3ca7"><code>ba9ea51</code></a> Prepare release 1.44.1 (<a href="https://redirect.github.com/mitsuhiko/insta/issues/823">#823</a>)</li> <li>Additional commits viewable in <a href="https://github.com/mitsuhiko/insta/compare/1.43.2...1.44.3">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>
dependabot[bot] ·
2025-12-08 08:59:19 -08:00 -
chore(deps): bump derive_more from 2.0.1 to 2.1.0 in /codex-rs (#7714)
Bumps [derive_more](https://github.com/JelteF/derive_more) from 2.0.1 to 2.1.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/JelteF/derive_more/releases">derive_more's releases</a>.</em></p> <blockquote> <h2>2.1.0</h2> <h3>Added</h3> <ul> <li>Support <code>#[display(rename_all = "<casing>")]</code> attribute to change output for implicit naming of unit enum variants or unit structs when deriving <code>Display</code>. (<a href="https://redirect.github.com/JelteF/derive_more/pull/443">#443</a>)</li> <li>Support <code>#[from_str(rename_all = "<casing>")]</code> attribute for unit enum variants and unit structs when deriving <code>FromStr</code>. (<a href="https://redirect.github.com/JelteF/derive_more/pull/467">#467</a>)</li> <li>Support <code>Option</code> fields for <code>Error::source()</code> in <code>Error</code> derive. (<a href="https://redirect.github.com/JelteF/derive_more/pull/459">#459</a>)</li> <li>Support structs with no fields in <code>FromStr</code> derive. (<a href="https://redirect.github.com/JelteF/derive_more/pull/469">#469</a>)</li> <li>Add <code>PartialEq</code> derive similar to <code>std</code>'s one, but considering generics correctly, and implementing <code>ne()</code> method as well. (<a href="https://redirect.github.com/JelteF/derive_more/pull/473">#473</a>, <a href="https://redirect.github.com/JelteF/derive_more/pull/475">#475</a>)</li> <li>Add <code>Eq</code> derive similar to <code>std</code>'s one, but considering generics correctly. (<a href="https://redirect.github.com/JelteF/derive_more/pull/479">#479</a>)</li> <li>Proxy-pass <code>#[allow]</code>/<code>#[expect]</code> attributes of the type in <code>Constructor</code> derive. (<a href="https://redirect.github.com/JelteF/derive_more/pull/477">#477</a>)</li> <li>Support <code>Deref</code> and <code>DerefMut</code> derives for enums. (<a href="https://redirect.github.com/JelteF/derive_more/pull/485">#485</a>)</li> <li>Support custom error in <code>FromStr</code> derive. (<a href="https://redirect.github.com/JelteF/derive_more/pull/494">#494</a>)</li> <li>Support custom error in <code>TryInto</code> derive. (<a href="https://redirect.github.com/JelteF/derive_more/pull/503">#503</a>)</li> <li>Support skipping fields in <code>Add</code>-like, <code>AddAssign</code>-like, <code>Mul</code>-like and <code>MulAssign</code>-like derives. (<a href="https://redirect.github.com/JelteF/derive_more/pull/472">#472</a>)</li> </ul> <h3>Changed</h3> <ul> <li>The minimum supported Rust version (MSRV) is now Rust 1.81. (<a href="https://redirect.github.com/JelteF/derive_more/pull/466">#466</a>)</li> <li><code>Add</code>-like, <code>AddAssign</code>-like, <code>Mul</code>-like and <code>MulAssign</code>-like derives now infer trait bounds for generics structurally (bound field types instead of type parameters directly). (<a href="https://redirect.github.com/JelteF/derive_more/pull/472">#472</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Suppress deprecation warnings in generated code. (<a href="https://redirect.github.com/JelteF/derive_more/pull/454">#454</a>)</li> <li>Silent no-op when <code>#[try_from(repr)]</code> attribute is not specified for <code>TryFrom</code> derive. (<a href="https://redirect.github.com/JelteF/derive_more/pull/458">#458</a>)</li> <li>Missing trait bounds in <code>AsRef</code>/<code>AsMut</code> derives when associative types are involved. (<a href="https://redirect.github.com/JelteF/derive_more/pull/474">#474</a>)</li> <li>Erroneous code generated in <code>Try</code>/<code>TryInto</code> derives when <code>Self</code> type is present in the struct or enum definition. (<a href="https://redirect.github.com/JelteF/derive_more/pull/489">#489</a>)</li> <li>Dependency on unstable <code>feature(error_generic_member_access)</code> in <code>Error</code> derive when using <code>Backtrace</code> on a non-nightly toolchain. (<a href="https://redirect.github.com/JelteF/derive_more/pull/513">#513</a>)</li> <li>Broken support for <code>#[<display-trait>("default formatting")]</code> attribute without <code>{_variant}</code> being used as default for enum variants without explicit formatting. (<a href="https://redirect.github.com/JelteF/derive_more/pull/495">#495</a>)</li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/jasl"><code>@jasl</code></a> made their first contribution in <a href="https://redirect.github.com/JelteF/derive_more/pull/453">JelteF/derive_more#453</a></li> <li><a href="https://github.com/aborgna-q"><code>@aborgna-q</code></a> made their first contribution in <a href="https://redirect.github.com/JelteF/derive_more/pull/454">JelteF/derive_more#454</a></li> <li><a href="https://github.com/maxime-bruno"><code>@maxime-bruno</code></a> made their first contribution in <a href="https://redirect.github.com/JelteF/derive_more/pull/461">JelteF/derive_more#461</a></li> <li><a href="https://github.com/Cheban1996"><code>@Cheban1996</code></a> made their first contribution in <a href="https://redirect.github.com/JelteF/derive_more/pull/477">JelteF/derive_more#477</a></li> <li><a href="https://github.com/kiendang"><code>@kiendang</code></a> made their first contribution in <a href="https://redirect.github.com/JelteF/derive_more/pull/486">JelteF/derive_more#486</a></li> <li><a href="https://github.com/goldlinker"><code>@goldlinker</code></a> made their first contribution in <a href="https://redirect.github.com/JelteF/derive_more/pull/509">JelteF/derive_more#509</a></li> <li><a href="https://github.com/CJKay"><code>@CJKay</code></a> made their first contribution in <a href="https://redirect.github.com/JelteF/derive_more/pull/513">JelteF/derive_more#513</a></li> <li><a href="https://github.com/ErmitaVulpe"><code>@ErmitaVulpe</code></a> made their first contribution in <a href="https://redirect.github.com/JelteF/derive_more/pull/472">JelteF/derive_more#472</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/JelteF/derive_more/compare/v2.0.1...v2.1.0">https://github.com/JelteF/derive_more/compare/v2.0.1...v2.1.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/JelteF/derive_more/blob/master/CHANGELOG.md">derive_more's changelog</a>.</em></p> <blockquote> <h2>2.1.0 - 2025-12-02</h2> <h3>Added</h3> <ul> <li>Support <code>#[display(rename_all = "<casing>")]</code> attribute to change output for implicit naming of unit enum variants or unit structs when deriving <code>Display</code>. (<a href="https://redirect.github.com/JelteF/derive_more/pull/443">#443</a>)</li> <li>Support <code>#[from_str(rename_all = "<casing>")]</code> attribute for unit enum variants and unit structs when deriving <code>FromStr</code>. (<a href="https://redirect.github.com/JelteF/derive_more/pull/467">#467</a>)</li> <li>Support <code>Option</code> fields for <code>Error::source()</code> in <code>Error</code> derive. (<a href="https://redirect.github.com/JelteF/derive_more/pull/459">#459</a>)</li> <li>Support structs with no fields in <code>FromStr</code> derive. (<a href="https://redirect.github.com/JelteF/derive_more/pull/469">#469</a>)</li> <li>Add <code>PartialEq</code> derive similar to <code>std</code>'s one, but considering generics correctly, and implementing <code>ne()</code> method as well. (<a href="https://redirect.github.com/JelteF/derive_more/pull/473">#473</a>, <a href="https://redirect.github.com/JelteF/derive_more/pull/475">#475</a>)</li> <li>Add <code>Eq</code> derive similar to <code>std</code>'s one, but considering generics correctly. (<a href="https://redirect.github.com/JelteF/derive_more/pull/479">#479</a>)</li> <li>Proxy-pass <code>#[allow]</code>/<code>#[expect]</code> attributes of the type in <code>Constructor</code> derive. (<a href="https://redirect.github.com/JelteF/derive_more/pull/477">#477</a>)</li> <li>Support <code>Deref</code> and <code>DerefMut</code> derives for enums. (<a href="https://redirect.github.com/JelteF/derive_more/pull/485">#485</a>)</li> <li>Support custom error in <code>FromStr</code> derive. (<a href="https://redirect.github.com/JelteF/derive_more/pull/494">#494</a>)</li> <li>Support custom error in <code>TryInto</code> derive. (<a href="https://redirect.github.com/JelteF/derive_more/pull/503">#503</a>)</li> <li>Support skipping fields in <code>Add</code>-like, <code>AddAssign</code>-like, <code>Mul</code>-like and <code>MulAssign</code>-like derives. (<a href="https://redirect.github.com/JelteF/derive_more/pull/472">#472</a>)</li> </ul> <h3>Changed</h3> <ul> <li>The minimum supported Rust version (MSRV) is now Rust 1.81. (<a href="https://redirect.github.com/JelteF/derive_more/pull/466">#466</a>)</li> <li><code>Add</code>-like, <code>AddAssign</code>-like, <code>Mul</code>-like and <code>MulAssign</code>-like derives now infer trait bounds for generics structurally (bound field types instead of type parameters directly). (<a href="https://redirect.github.com/JelteF/derive_more/pull/472">#472</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Suppress deprecation warnings in generated code. (<a href="https://redirect.github.com/JelteF/derive_more/pull/454">#454</a>)</li> <li>Silent no-op when <code>#[try_from(repr)]</code> attribute is not specified for <code>TryFrom</code> derive. (<a href="https://redirect.github.com/JelteF/derive_more/pull/458">#458</a>)</li> <li>Missing trait bounds in <code>AsRef</code>/<code>AsMut</code> derives when associative types are involved. (<a href="https://redirect.github.com/JelteF/derive_more/pull/474">#474</a>)</li> <li>Erroneous code generated in <code>Try</code>/<code>TryInto</code> derives when <code>Self</code> type is present in</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/JelteF/derive_more/commit/c354bad7c9707edb05a471ba35c6b059f3023e78"><code>c354bad</code></a> Prepare 2.1.0 release (<a href="https://redirect.github.com/JelteF/derive_more/issues/521">#521</a>)</li> <li><a href="https://github.com/JelteF/derive_more/commit/983875f8abd25e49f659247bfa6cc831819dbd4f"><code>983875f</code></a> Allow using enum-level attributes for non-<code>Display</code> formatting traits as defa...</li> <li><a href="https://github.com/JelteF/derive_more/commit/2d3805b66f00cb31303c7e75edfef9003d48ff04"><code>2d3805b</code></a> Allow skipping fields for <code>Add</code>/<code>AddAssign</code>/<code>Mul</code>/<code>MulAssign</code>-like derives (#...</li> <li><a href="https://github.com/JelteF/derive_more/commit/1b5d314b8c8391e476653f32f1ca95572492b964"><code>1b5d314</code></a> Upgrade <code>convert_case</code> requirement from 0.9 to 0.10 version (<a href="https://redirect.github.com/JelteF/derive_more/issues/520">#520</a>)</li> <li><a href="https://github.com/JelteF/derive_more/commit/c32d0a0a05e8bb0c5dab666aca2a4f96e9918c15"><code>c32d0a0</code></a> Upgrade <code>actions/checkout</code> from 5 to 6 version (<a href="https://redirect.github.com/JelteF/derive_more/issues/519">#519</a>)</li> <li><a href="https://github.com/JelteF/derive_more/commit/905f5a3020cf51a82dc2d5fde6f8e5c0cb8e48f4"><code>905f5a3</code></a> Upgrade <code>convert_case</code> crate from 0.8 to 0.9 version (<a href="https://redirect.github.com/JelteF/derive_more/issues/517">#517</a>)</li> <li><a href="https://github.com/JelteF/derive_more/commit/8e9104d5389844a0323f018c22d7714ec71e3345"><code>8e9104d</code></a> Support <code>syn::ExprCall</code> and <code>syn::ExprClosure</code> for custom errors (<a href="https://redirect.github.com/JelteF/derive_more/issues/516">#516</a>, <a href="https://redirect.github.com/JelteF/derive_more/issues/112">#112</a>)</li> <li><a href="https://github.com/JelteF/derive_more/commit/be3edc4c9fcb0005b7212710136c3c90796afcf1"><code>be3edc4</code></a> Update <code>compile_fail</code> tests for 1.91 Rust (<a href="https://redirect.github.com/JelteF/derive_more/issues/515">#515</a>)</li> <li><a href="https://github.com/JelteF/derive_more/commit/929dd417cef026b77417a4b68044131d6a910f33"><code>929dd41</code></a> Support custom error type in <code>TryInto</code> derive (<a href="https://redirect.github.com/JelteF/derive_more/issues/503">#503</a>, <a href="https://redirect.github.com/JelteF/derive_more/issues/396">#396</a>)</li> <li><a href="https://github.com/JelteF/derive_more/commit/4fc682791a2f7744134729d9a3412019285ea007"><code>4fc6827</code></a> Remove unstable feature requirement when deriving <code>Backtrace</code>d <code>Error</code> (<a href="https://redirect.github.com/JelteF/derive_more/issues/513">#513</a>,...</li> <li>Additional commits viewable in <a href="https://github.com/JelteF/derive_more/compare/v2.0.1...v2.1.0">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>
dependabot[bot] ·
2025-12-08 08:58:50 -08:00 -
chore(deps): bump ts-rs from 11.0.1 to 11.1.0 in /codex-rs (#7713)
Bumps [ts-rs](https://github.com/Aleph-Alpha/ts-rs) from 11.0.1 to 11.1.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Aleph-Alpha/ts-rs/releases">ts-rs's releases</a>.</em></p> <blockquote> <h2>v11.1.0</h2> <p>Today, we're happy to publish a small follow-up to v11.0.1!</p> <p>This release fixes a nasty build failure when using the <code>format</code> feature. <strong>Note:</strong> For those that use the <code>format</code> feature, this release bumps the MSRV to 1.88. We'd have preferred to do this in a major release, but felt this was acceptable since the build was broken by one of the dependencies anyway.</p> <h1>New features</h1> <h2>TypeScript enums with <code>#[ts(repr(enum))</code></h2> <p><code>#[ts(repr(enum))</code> instructs ts-rs to generate an <code>enum</code>, instead of a <code>type</code> for your rust enum.</p> <pre lang="rust"><code>#[derive(TS)] #[ts(repr(enum))] enum Role { User, Admin, } // will generate `export enum Role { "User", "Admin" }` </code></pre> <p>Discriminants are preserved, and you can use the variant's name as discriminant instead using <code>#[ts(repr(enum = name))]</code></p> <h2><code>#[ts(optional_fields)]</code> in enums</h2> <p>The <code>#[ts(optional_fields)]</code> attribute can now be applied directly to enums, or even to individual enum variants.</p> <h2>Control over file extensions in imports</h2> <p>Normally, we generate <code>import { Type } from "file"</code> statements. In some scenarios though, it might be necessary to use a <code>.ts</code> or even <code>.js</code> extension instead.<br /> This is now possible by setting the <code>TS_RS_IMPORT_EXTENSION</code> environment variable.</p> <blockquote> <p>Note: With the introduction of this feature, we deprecate the <code>import-esm</code> cargo feature. It will be removed in a future major release.</p> </blockquote> <h2>Full changelog</h2> <ul> <li>Regression: <code>#[ts(optional)]</code> with <code>#[ts(type)]</code> by <a href="https://github.com/NyxCode"><code>@NyxCode</code></a> in <a href="https://redirect.github.com/Aleph-Alpha/ts-rs/pull/416">Aleph-Alpha/ts-rs#416</a></li> <li>release v11.0.1 by <a href="https://github.com/NyxCode"><code>@NyxCode</code></a> in <a href="https://redirect.github.com/Aleph-Alpha/ts-rs/pull/417">Aleph-Alpha/ts-rs#417</a></li> <li>Make <code>rename_all</code> compatible with tuple and unit structs as a no-op attribute by <a href="https://github.com/gustavo-shigueo"><code>@gustavo-shigueo</code></a> in <a href="https://redirect.github.com/Aleph-Alpha/ts-rs/pull/422">Aleph-Alpha/ts-rs#422</a></li> <li>Replace <code>import-esm</code> with <code>TS_RS_IMPORT_EXTENSION</code> by <a href="https://github.com/gustavo-shigueo"><code>@gustavo-shigueo</code></a> in <a href="https://redirect.github.com/Aleph-Alpha/ts-rs/pull/423">Aleph-Alpha/ts-rs#423</a></li> <li>Updated chrono Duration emitted type by <a href="https://github.com/fxf8"><code>@fxf8</code></a> in <a href="https://redirect.github.com/Aleph-Alpha/ts-rs/pull/434">Aleph-Alpha/ts-rs#434</a></li> <li>Add optional_fields to enum by <a href="https://github.com/gustavo-shigueo"><code>@gustavo-shigueo</code></a> in <a href="https://redirect.github.com/Aleph-Alpha/ts-rs/pull/432">Aleph-Alpha/ts-rs#432</a></li> <li>Add <code>#[ts(repr(enum)]</code> attribute by <a href="https://github.com/gustavo-shigueo"><code>@gustavo-shigueo</code></a> in <a href="https://redirect.github.com/Aleph-Alpha/ts-rs/pull/425">Aleph-Alpha/ts-rs#425</a></li> <li>Fix build with <code>format</code> feature by <a href="https://github.com/gustavo-shigueo"><code>@gustavo-shigueo</code></a> in <a href="https://redirect.github.com/Aleph-Alpha/ts-rs/pull/438">Aleph-Alpha/ts-rs#438</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/fxf8"><code>@fxf8</code></a> made their first contribution in <a href="https://redirect.github.com/Aleph-Alpha/ts-rs/pull/434">Aleph-Alpha/ts-rs#434</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Aleph-Alpha/ts-rs/blob/main/CHANGELOG.md">ts-rs's changelog</a>.</em></p> <blockquote> <h1>11.1.0</h1> <h3>Features</h3> <ul> <li>Add <code>#[ts(repr(enum))]</code> attribute (<a href="https://redirect.github.com/Aleph-Alpha/ts-rs/pull/425">#425</a>)</li> <li>Add support for <code>#[ts(optional_fields)]</code> in enums and enum variants (<a href="https://redirect.github.com/Aleph-Alpha/ts-rs/pull/432">#432</a>)</li> <li>Deprecate <code>import-esm</code> cargo feature in favour of <code>RS_RS_IMPORT_EXTENSION</code> (<a href="https://redirect.github.com/Aleph-Alpha/ts-rs/pull/423">#423</a>)</li> </ul> <h3>Fixes</h3> <ul> <li>Fix bindings for <code>chrono::Duration</code> (<a href="https://redirect.github.com/Aleph-Alpha/ts-rs/pull/434">#434</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/Aleph-Alpha/ts-rs/commits/v11.1.0">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>
dependabot[bot] ·
2025-12-08 08:55:06 -08:00 -
fix: update URLs to use HTTPS in model migration prompts (#7705)
Update URLs to use HTTPS in model migration prompts Closes #6685
Pavel ·
2025-12-08 08:47:33 -08:00 -
fix: refine the warning message and docs for deprecated tools config (#7685)
Issue #7661 revealed that users are confused by deprecation warnings like: > `tools.web_search` is deprecated. Use `web_search_request` instead. This message misleadingly suggests renaming the config key from `web_search` to `web_search_request`, when the actual required change is to **move and rename the configuration from the `[tools]` section to the `[features]` section**. This PR clarifies the warning messages and documentation to make it clear that deprecated `[tools]` configurations should be moved to `[features]`. Changes made: - Updated deprecation warning format in `codex-rs/core/src/codex.rs:520` to include `[features].` prefix - Updated corresponding test expectations in `codex-rs/core/tests/suite/deprecation_notice.rs:39` - Improved documentation in `docs/config.md` to clarify upfront that `[tools]` options are deprecated in favor of `[features]`
gameofby ·
2025-12-08 01:23:21 -08:00 -
fix(doc): TOML otel exporter example — multi-line inline table is inv… (#7669)
…alid (#7668) The `otel` exporter example in `docs/config.md` is misleading and will cause the configuration parser to fail if copied verbatim. Summary ------- The example uses a TOML inline table but spreads the inline-table braces across multiple lines. TOML inline tables must be contained on a single line (`key = { a = 1, b = 2 }`); placing newlines inside the braces triggers a parse error in most TOML parsers and prevents Codex from starting. Reproduction ------------ 1. Paste the snippet below into `~/.codex/config.toml` (or your project config). 2. Run `codex` (or the command that loads the config). 3. The process will fail to start with a TOML parse error similar to: ```text Error loading config.toml: TOML parse error at line 55, column 27 | 55 | exporter = { otlp-http = { | ^ newlines are unsupported in inline tables, expected nothing ``` Problematic snippet (as currently shown in the docs) --------------------------------------------------- ```toml [otel] exporter = { otlp-http = { endpoint = "https://otel.example.com/v1/logs", protocol = "binary", headers = { "x-otlp-api-key" = "${OTLP_TOKEN}" } }} ``` Recommended fixes ------------------ ```toml [otel.exporter."otlp-http"] endpoint = "https://otel.example.com/v1/logs" protocol = "binary" [otel.exporter."otlp-http".headers] "x-otlp-api-key" = "${OTLP_TOKEN}" ``` Or, keep an inline table but write it on one line (valid but less readable): ```toml [otel] exporter = { "otlp-http" = { endpoint = "https://otel.example.com/v1/logs", protocol = "binary", headers = { "x-otlp-api-key" = "${OTLP_TOKEN}" } } } ```
Robby He ·
2025-12-08 01:20:23 -08:00 -
Fixed regression for chat endpoint; missing tools name caused litellm proxy to crash (#7724)
This PR addresses https://github.com/openai/codex/issues/7051
Eric Traut ·
2025-12-08 00:49:51 -08:00 -
Add remote models feature flag (#7648)
# External (non-OpenAI) Pull Request Requirements Before opening this Pull Request, please read the dedicated "Contributing" markdown file or your PR may be closed: https://github.com/openai/codex/blob/main/docs/contributing.md If your PR conforms to our contribution guidelines, replace this text with a detailed and high quality description of your changes. Include a link to a bug report or enhancement request.
Ahmed Ibrahim ·
2025-12-07 09:47:48 -08:00 -
fix: add integration tests for codex-exec-mcp-server with execpolicy (#7617)
This PR introduces integration tests that run [codex-shell-tool-mcp](https://www.npmjs.com/package/@openai/codex-shell-tool-mcp) as a user would. Note that this requires running our fork of Bash, so we introduce a [DotSlash](https://dotslash-cli.com/) file for `bash` so that we can run the integration tests on multiple platforms without having to check the binaries into the repository. (As noted in the DotSlash file, it is slightly more heavyweight than necessary, which may be worth addressing as disk space in CI is limited: https://github.com/openai/codex/pull/7678.) To start, this PR adds two tests: - `list_tools()` makes the `list_tools` request to the MCP server and verifies we get the expected response - `accept_elicitation_for_prompt_rule()` defines a `prefix_rule()` with `decision="prompt"` and verifies the elicitation flow works as expected Though the `accept_elicitation_for_prompt_rule()` test **only works on Linux**, as this PR reveals that there are currently issues when running the Bash fork in a read-only sandbox on Linux. This will have to be fixed in a follow-up PR. Incidentally, getting this test run to correctly on macOS also requires a recent fix we made to `brew` that hasn't hit a mainline release yet, so getting CI green in this PR required https://github.com/openai/codex/pull/7680.
Michael Bolin ·
2025-12-07 06:39:38 +00:00 -
fix: ensure macOS CI runners for Rust tests include recent Homebrew fixes (#7680)
As noted in the code comment, we introduced a key fix for `brew` in https://github.com/Homebrew/brew/pull/21157 that Codex needs, but it has not hit stable yet, so we update our CI job to use latest `brew` from `origin/main`. This is necessary for the new integration tests introduced in https://github.com/openai/codex/pull/7617.
Michael Bolin ·
2025-12-06 22:11:07 -08:00 -
fix: clear out space on ubuntu runners before running Rust tests (#7678)
When I put up https://github.com/openai/codex/pull/7617 for review, initially I started seeing failures on the `ubuntu-24.04` runner used for Rust test runs for the `x86_64-unknown-linux-gnu` architecture. Chat suggested a number of things that could be removed to save space, which seems to help.
Michael Bolin ·
2025-12-06 21:46:07 -08:00 -
docs: point dev checks to just (#7673)
Update install and contributing guides to use the root justfile helpers (`just fmt`, `just fix -p <crate>`, and targeted tests) instead of the older cargo fmt/clippy/test instructions that have been in place since
459363e17b. This matches the justfile relocation to the repo root in952d6c946and the current lint/test workflow for CI (see `.github/workflows/rust-ci.yml`).Victor ·
2025-12-06 18:57:08 -08:00 -
docs: Remove experimental_use_rmcp_client from config (#7672)
Removed experimental Rust MCP client option from config.
Jay Sabva ·
2025-12-06 16:51:07 -08:00 -
docs: fix documentation of rmcp client flag (#7665)
## Summary - Updated the rmcp client flag's documentation in config.md file - changed it from `experimental_use_rmcp_client` to `rmcp_client`
Jay Sabva ·
2025-12-06 10:17:18 -08:00 -
fix: exec-server stream was erroring for large requests (#7654)
Previous to this change, large `EscalateRequest` payloads exceeded the kernel send buffer, causing our single `sendmsg(2)` call (with attached FDs) to be split and retried without proper control handling; this led to `EINVAL`/broken pipe in the `handle_escalate_session_respects_run_in_sandbox_decision()` test when using an `env` with large contents. **Before:** `AsyncSocket::send_with_fds()` called `send_json_message()`, which called `send_message_bytes()`, which made one `socket.sendmsg()` call followed by additional `socket.send()` calls, as necessary: https://github.com/openai/codex/blob/2e4a40252157751765dff176b35c692df8a9fb4e/codex-rs/exec-server/src/posix/socket.rs#L198-L209 **After:** `AsyncSocket::send_with_fds()` now calls `send_stream_frame()`, which calls `send_stream_chunk()` one or more times. Each call to `send_stream_chunk()` calls `socket.sendmsg()`. In the previous implementation, the subsequent `socket.send()` writes had no control information associated with them, whereas in the new `send_stream_chunk()` implementation, a fresh `MsgHdr` (using `with_control()`, as appropriate) is created for `socket.sendmsg()` each time. Additionally, with this PR, stream sending attaches `SCM_RIGHTS` only on the first chunk, and omits control data when there are no FDs, allowing oversized payloads to deliver correctly while preserving FD limits and error checks.
Michael Bolin ·
2025-12-06 10:16:47 -08:00 -
fix: OTEL HTTP exporter panic and mTLS support (#7651)
This fixes two issues with the OTEL HTTP exporter: 1. **Runtime panic with async reqwest client** The `opentelemetry_sdk` `BatchLogProcessor` spawns a dedicated OS thread that uses `futures_executor::block_on()` rather than tokio's runtime. When the async reqwest client's timeout mechanism calls `tokio::time::sleep()`, it panics with "there is no reactor running, must be called from the context of a Tokio 1.x runtime". The fix is to use `reqwest::blocking::Client` instead, which doesn't depend on tokio for timeouts. However, the blocking client creates its own internal tokio runtime during construction, which would panic if built from within an async context. We wrap the construction in `tokio::task::block_in_place()` to handle this. 2. **mTLS certificate handling** The HTTP client wasn't properly configured for mTLS, matching the fixes previously done for the model provider client: - Added `.tls_built_in_root_certs(false)` when using a custom CA certificate to ensure only our CA is trusted - Added `.https_only(true)` when using client identity - Added `rustls-tls` feature to ensure rustls is used (required for `Identity::from_pem()` to work correctly)
Alexander ·
2025-12-05 20:46:44 -08:00 -
Also load skills from repo root. (#7645)
Also load skills from /REPO_ROOT/codex/skills.
xl-openai ·
2025-12-05 18:01:49 -08:00 -
fix(apply-patch): preserve CRLF line endings on Windows (#7515)
## Summary This PR is heavily based on #4017, which contains the core logic for the fix. To reduce the risk, we are first introducing it only on windows. We can then expand to wsl / other environments as needed, and then tackle net new files. ## Testing - [x] added unit tests in apply-patch - [x] add integration tests to apply_patch_cli.rs --------- Co-authored-by: Chase Naples <Cnaples79@gmail.com>
Dylan Hurd ·
2025-12-05 16:43:27 -08:00 -
Move justfile to repository root (#7652)
## Summary - move the workspace justfile to the repository root for easier discovery - set the just working directory to codex-rs so existing recipes still run in the Rust workspace ## Testing - not run (not requested) ------ [Codex Task](https://chatgpt.com/codex/tasks/task_i_69334db473108329b0cc253b7fd8218e)
Josh McKinney ·
2025-12-05 16:24:55 -08:00 -
cloud: status, diff, apply (#7614)
Adds cli commands for getting the status of cloud tasks, and for getting/applying the diffs from same.
Jeremy Rose ·
2025-12-05 21:39:23 +00:00 -
Fix unified_exec on windows (#7620)
Fix unified_exec on windows Requires removal of PSUEDOCONSOLE_INHERIT_CURSOR flag so child processed don't attempt to wait for cursor position response (and timeout). https://github.com/wezterm/wezterm/compare/main...pakrym:wezterm:PSUEDOCONSOLE_INHERIT_CURSOR?expand=1 --------- Co-authored-by: pakrym-oai <pakrym@openai.com>
Pavel Krymets ·
2025-12-05 20:09:43 +00:00 -
feat(core) Add login to shell_command tool (#6846)
## Summary Adds the `login` parameter to the `shell_command` tool - optional, defaults to true. ## Testing - [x] Tested locally
Dylan Hurd ·
2025-12-05 11:03:25 -08:00 -
Wire
with_remote_overridesto construct model families (#7621)- This PR wires `with_remote_overrides` and make the `construct_model_families` an async function - Moves getting model family a level above to keep the function `sync` - Updates the tests to local, offline, and `sync` helper for model families
Ahmed Ibrahim ·
2025-12-05 10:40:15 -08:00 -
jif-oai ·
2025-12-05 10:20:36 -08:00 -
jif-oai ·
2025-12-05 13:57:24 +00:00 -
fix: taking plan type from usage endpoint instead of thru auth token (#7610)
pull plan type from the usage endpoint, persist it in session state / tui state, and propagate through rate limit snapshots
zhao-oai ·
2025-12-04 23:34:13 -08:00 -
feat: exec policy integration in shell mcp (#7609)
adding execpolicy support into the `posix` mcp Co-authored-by: Michael Bolin <mbolin@openai.com>
zhao-oai ·
2025-12-04 21:55:54 -08:00 -
zhao-oai ·
2025-12-04 21:48:15 -08:00 -
Call models endpoint in models manager (#7616)
- Introduce `with_remote_overrides` and update `refresh_available_models` - Put `auth_manager` instead of `auth_mode` on `models_manager` - Remove `ShellType` and `ReasoningLevel` to use already existing structs
Ahmed Ibrahim ·
2025-12-04 18:28:03 -08:00 -
jif-oai ·
2025-12-04 16:46:56 -08:00 -
chore(apply-patch) scenarios for e2e testing (#7567)
## Summary This PR introduces an End to End test suite for apply-patch, so we can easily validate behavior against other implementations as well. ## Testing - [x] These are tests
Dylan Hurd ·
2025-12-05 00:20:54 +00:00 -
chore: refactor to move Arc<RwLock> concern outside exec_policy_for (#7615)
The caller should decide whether wrapping the policy in `Arc<RwLock>` is necessary. This should make https://github.com/openai/codex/pull/7609 a bit smoother. - `exec_policy_for()` -> `load_exec_policy_for_features()` - introduce `load_exec_policy()` that does not take `Features` as an arg - both return `Result<Policy, ExecPolicyError>` instead of Result<Arc<RwLock<Policy>>, ExecPolicyError>` This simplifies the tests as they have no need for `Arc<RwLock>`.
Michael Bolin ·
2025-12-04 15:13:27 -08:00 -
Fix
handle_shortcut_overlay_keyfor cross-platform consistency (#7583)**Summary** - Shortcut toggle using `?` in `handle_shortcut_overlay_key` fails to trigger on some platforms (notably Windows). Current match requires `KeyCode::Char('?')` with `KeyModifiers::NONE`. Some terminals set `SHIFT` when producing `?` (since it is typically `Shift + /`), so the strict `NONE` check prevents toggling. **Impact** - On Windows consoles/terminals, pressing `?` with an empty composer often does nothing, leading to inconsistent UX compared to macOS/Linux. **Root Cause** - Crossterm/terminal backends report modifiers inconsistently across platforms. Generating `?` may include `SHIFT`. The code enforces `modifiers == NONE`, so valid `?` presses with `SHIFT` are ignored. AltGr keyboards may also surface as `ALT`. **Repro Steps** - Open the TUI, ensure the composer is empty. - Press `?`. - Expected: Shortcut overlay toggles. - Actual (Windows frequently): No toggle occurs. **Fix Options** - Option 1 (preferred): Accept `?` regardless of `SHIFT`, but reject `CONTROL` and `ALT`. - Rationale: Keeps behavior consistent across platforms with minimal code change. - Example change: - Before: matching `KeyModifiers::NONE` only. - After: allow `SHIFT`, disallow `CONTROL | ALT`. - Suggested condition: ```rust let toggles = matches!(key_event.code, KeyCode::Char('?')) && !key_event.modifiers.intersects(KeyModifiers::CONTROL | KeyModifiers::ALT) && self.is_empty(); ``` - Option 2: Platform-specific handling (Windows vs non-Windows). - Implement two variants or conditional branches using `#[cfg(target_os = "windows")]`. - On Windows, accept `?` with `SHIFT`; on other platforms, retain current behavior. - Trade-off: Higher maintenance burden and code divergence for limited benefit. --- close #5495Robby He ·
2025-12-04 14:56:58 -08:00