forked from openai/codex
-
Notifications
You must be signed in to change notification settings - Fork 0
pr #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
pr #6
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- 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
## Summary Adds the `login` parameter to the `shell_command` tool - optional, defaults to true. ## Testing - [x] Tested locally
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 <[email protected]>
Adds cli commands for getting the status of cloud tasks, and for getting/applying the diffs from same.
## 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)
## 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 <[email protected]>
Also load skills from /REPO_ROOT/codex/skills.
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)
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.
## Summary - Updated the rmcp client flag's documentation in config.md file - changed it from `experimental_use_rmcp_client` to `rmcp_client`
Removed experimental Rust MCP client option from config.
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 459363e. This matches the justfile relocation to the repo root in 952d6c9 and the current lint/test workflow for CI (see `.github/workflows/rust-ci.yml`).
When I put up #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.
…ixes (#7680) As noted in the code comment, we introduced a key fix for `brew` in Homebrew/brew#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 #7617.
…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: #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 #7680.
# 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.
#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}" } } } ```
…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]`
Update URLs to use HTTPS in model migration prompts Closes #6685
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] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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
…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
- [x] Make the device auth instructions more clear.
### 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.
…ead (#7750) helpful in the future if we want more granularity for requesting escalated permissions: e.g when running in readonly sandbox, model can request to escalate to a sandbox that allows writes
This experimental feature received lukewarm reception during internal testing. Removing from the code base.
## What? Upgrades @modelcontextprotocol/sdk from ^1.20.2 to ^1.24.0 in the TypeScript SDK's devDependencies. ## Why? Related to #7737 - keeping development dependencies up to date with the latest MCP SDK version that includes the fix for CVE-2025-66414. Note: This change does not address the CVE for Codex users, as the MCP SDK is only in devDependencies here. The actual MCP integration that would be affected by the CVE is in the Rust codebase. ## How? • Updated dependency version in sdk/typescript/package.json • Ran pnpm install to update lockfile • Fixed formatting (added missing newline in package.json) ## Related Issue Related to #7737 ## Test Status⚠️ After this upgrade, 2 additional tests timeout (1 test was already failing on main): • tests/run.test.ts: "sends previous items when run is called twice" • tests/run.test.ts: "resumes thread by id" • tests/runStreamed.test.ts: "sends previous items when runStreamed is called twice" Marking as draft to investigate test timeouts. Maintainer guidance would be appreciated. Co-authored-by: HalfonA <[email protected]>
regression: #7589 Signed-off-by: Koichi Shiraishi <[email protected]>
…r configs (#7789) Make sure that config writes preserve comments and order of configs by utilizing the ConfigEditsBuilder in core. Tested by running a real example and made sure that nothing in the config file changes other than the configs to edit.
- Make Config.model optional and centralize default-selection logic in ModelsManager, including a default_model helper (with codex-auto-balanced when available) so sessions now carry an explicit chosen model separate from the base config. - Resolve `model` once in `core` and `tui` from config. Then store the state of it on other structs. - Move refreshing models to be before resolving the default model
…7704) ## Slash Command popup issue #7659 When recalling history, the composer(`codex_tui::bottom_pane::chat_composer`) restores the previous prompt text (which may start with `/`) and then calls `sync_command_popup`. The logic in `sync_command_popup` treats any first line that starts with `/` and has the caret inside the initial `/name` token as an active slash command name: ```rust let is_editing_slash_command_name = if first_line.starts_with('/') && caret_on_first_line { let token_end = first_line .char_indices() .find(|(_, c)| c.is_whitespace()) .map(|(i, _)| i) .unwrap_or(first_line.len()); cursor <= token_end } else { false }; ``` This detection does not distinguish between an actual interactive slash command being typed and a normal historical prompt that happens to begin with `/`. As a result, after history recall, the restored prompt like `/ test` is interpreted as an "editing command name" context and the slash-command popup is (re)activated. Once `active_popup` is `ActivePopup::Command`, subsequent `Up` key presses are handled by `handle_key_event_with_slash_popup` instead of `handle_key_event_without_popup`, so they no longer trigger `history.navigate_up(...)` and the session prompt history cannot be scrolled.
…ess (#7834) <img width="995" height="171" alt="image" src="https://github.com/user-attachments/assets/7bab541a-a933-4064-a968-26e9566360ec" /> Currently, we just cancel the in progress release which can be annoying
Currently the config returned by `config/read` in untyped. Add types so
it's easier for client to parse the config. Since currently configs are
all defined in snake case we'll keep that instead of using camel case
like the rest of V2.
Sample output by testing using the app server test client:
```
{
< "id": "f28449f4-b015-459b-b07b-eef06980165d",
< "result": {
< "config": {
< "approvalPolicy": null,
< "compactPrompt": null,
< "developerInstructions": null,
< "features": {
< "experimental_use_rmcp_client": true
< },
< "forcedChatgptWorkspaceId": null,
< "forcedLoginMethod": null,
< "instructions": null,
< "model": "gpt-5.1-codex-max",
< "modelAutoCompactTokenLimit": null,
< "modelContextWindow": null,
< "modelProvider": null,
< "modelReasoningEffort": null,
< "modelReasoningSummary": null,
< "modelVerbosity": null,
< "model_providers": {
< "local": {
< "base_url": "http://localhost:8061/api/codex",
< "env_http_headers": {
< "ChatGPT-Account-ID": "OPENAI_ACCOUNT_ID"
< },
< "env_key": "CHATGPT_TOKEN_STAGING",
< "name": "local",
< "wire_api": "responses"
< }
< },
< "model_reasoning_effort": "medium",
< "notice": {
< "hide_gpt-5.1-codex-max_migration_prompt": true,
< "hide_gpt5_1_migration_prompt": true
< },
< "profile": null,
< "profiles": {},
< "projects": {
< "/Users/celia/code": {
< "trust_level": "trusted"
< },
< "/Users/celia/code/codex": {
< "trust_level": "trusted"
< },
< "/Users/celia/code/openai": {
< "trust_level": "trusted"
< }
< },
< "reviewModel": null,
< "sandboxMode": null,
< "sandboxWorkspaceWrite": null,
< "tools": {
< "viewImage": null,
< "webSearch": null
< }
< },
< "origins": {
< "features.experimental_use_rmcp_client": {
< "name": "user",
< "source": "/Users/celia/.codex/config.toml",
< "version": "sha256:a1d8eaedb5d9db5dfdfa69f30fa9df2efec66bb4dd46aa67f149fcc67cd0711c"
< },
< "model": {
< "name": "user",
< "source": "/Users/celia/.codex/config.toml",
< "version": "sha256:a1d8eaedb5d9db5dfdfa69f30fa9df2efec66bb4dd46aa67f149fcc67cd0711c"
< },
< "model_providers.local.base_url": {
< "name": "user",
< "source": "/Users/celia/.codex/config.toml",
< "version": "sha256:a1d8eaedb5d9db5dfdfa69f30fa9df2efec66bb4dd46aa67f149fcc67cd0711c"
< },
< "model_providers.local.env_http_headers.ChatGPT-Account-ID": {
< "name": "user",
< "source": "/Users/celia/.codex/config.toml",
< "version": "sha256:a1d8eaedb5d9db5dfdfa69f30fa9df2efec66bb4dd46aa67f149fcc67cd0711c"
< },
< "model_providers.local.env_key": {
< "name": "user",
< "source": "/Users/celia/.codex/config.toml",
< "version": "sha256:a1d8eaedb5d9db5dfdfa69f30fa9df2efec66bb4dd46aa67f149fcc67cd0711c"
< },
< "model_providers.local.name": {
< "name": "user",
< "source": "/Users/celia/.codex/config.toml",
< "version": "sha256:a1d8eaedb5d9db5dfdfa69f30fa9df2efec66bb4dd46aa67f149fcc67cd0711c"
< },
< "model_providers.local.wire_api": {
< "name": "user",
< "source": "/Users/celia/.codex/config.toml",
< "version": "sha256:a1d8eaedb5d9db5dfdfa69f30fa9df2efec66bb4dd46aa67f149fcc67cd0711c"
< },
< "model_reasoning_effort": {
< "name": "user",
< "source": "/Users/celia/.codex/config.toml",
< "version": "sha256:a1d8eaedb5d9db5dfdfa69f30fa9df2efec66bb4dd46aa67f149fcc67cd0711c"
< },
< "notice.hide_gpt-5.1-codex-max_migration_prompt": {
< "name": "user",
< "source": "/Users/celia/.codex/config.toml",
< "version": "sha256:a1d8eaedb5d9db5dfdfa69f30fa9df2efec66bb4dd46aa67f149fcc67cd0711c"
< },
< "notice.hide_gpt5_1_migration_prompt": {
< "name": "user",
< "source": "/Users/celia/.codex/config.toml",
< "version": "sha256:a1d8eaedb5d9db5dfdfa69f30fa9df2efec66bb4dd46aa67f149fcc67cd0711c"
< },
< "projects./Users/celia/code.trust_level": {
< "name": "user",
< "source": "/Users/celia/.codex/config.toml",
< "version": "sha256:a1d8eaedb5d9db5dfdfa69f30fa9df2efec66bb4dd46aa67f149fcc67cd0711c"
< },
< "projects./Users/celia/code/codex.trust_level": {
< "name": "user",
< "source": "/Users/celia/.codex/config.toml",
< "version": "sha256:a1d8eaedb5d9db5dfdfa69f30fa9df2efec66bb4dd46aa67f149fcc67cd0711c"
< },
< "projects./Users/celia/code/openai.trust_level": {
< "name": "user",
< "source": "/Users/celia/.codex/config.toml",
< "version": "sha256:a1d8eaedb5d9db5dfdfa69f30fa9df2efec66bb4dd46aa67f149fcc67cd0711c"
< },
< "tools.web_search": {
< "name": "user",
< "source": "/Users/celia/.codex/config.toml",
< "version": "sha256:a1d8eaedb5d9db5dfdfa69f30fa9df2efec66bb4dd46aa67f149fcc67cd0711c"
< }
< }
< }
< }
```
1. Skills load once in core at session start; the cached outcome is reused across core and surfaced to TUI via SessionConfigured. 2. TUI detects explicit skill selections, and core injects the matching SKILL.md content into the turn when a selected skill is present.
See the snapshot
Introduce a full codex-tui source snapshot under the new codex-tui2 crate so viewport work can be replayed in isolation. This change copies the entire codex-rs/tui/src tree into codex-rs/tui2/src in one atomic step, rather than piecemeal, to keep future diffs vs the original viewport bookmark easy to reason about. The goal is for codex-tui2 to render identically to the existing TUI behind the `features.tui2` flag while we gradually port the viewport/history commits from the joshka/viewport bookmark onto this forked tree. While on this baseline change, we also ran the codex-tui2 snapshot test suite and accepted all insta snapshots for the new crate, so the snapshot files now use the codex-tui2 naming scheme and encode the unmodified legacy TUI behavior. This keeps later viewport commits focused on intentional behavior changes (and their snapshots) rather than on mechanical snapshot renames.
…tering CXA-293 (#7509) This caused some conversations to not appear when they otherwise should. Prior to this change, `thread/list`/`list_conversations_common` would: - Fetch N conversations from `RolloutRecorder::list_conversations` - Then it would filter those (like by the provided `model_providers`) - This would make it potentially return less than N items. With this change: - `list_conversations_common` now continues fetching more conversations from `RolloutRecorder::list_conversations` until it "fills up" the `requested_page_size`. - Ultimately this means that clients can rely on getting eg 20 conversations if they request 20 conversations.
…7832) When I originally introduced `accept_elicitation_for_prompt_rule()` in #7617, it worked for me locally because I had run `codex-rs/exec-server/tests/suite/bash` once myself, which had the side-effect of installing the corresponding DotSlash artifact. In CI, I added explicit logic to do this as part of `.github/workflows/rust-ci.yml`, which meant the test also passed in CI, but this logic should have been done as part of the test so that it would work locally for devs who had not installed the DotSlash artifact for `codex-rs/exec-server/tests/suite/bash` before. This PR updates the test to do this (and deletes the setup logic from `rust-ci.yml`), creating a new `DOTSLASH_CACHE` in a temp directory so that this is handled independently for each test. While here, also added a check to ensure that the `codex` binary has been built prior to running the test, as we have to ensure it is symlinked as `codex-linux-sandbox` on Linux in order for the integration test to work on that platform.
…nd (#7831) Our previous design of cancellation endpoint is not idempotent, which caused a bunch of flaky tests. Make app server just returned a not_found status instead of throwing an error if the login id is not found. Keep V1 endpoint behavior the same.
Let's see if this `sleep()` call is good enough to fix the test flakiness we currently see in CI. It will take me some time to upstream a proper fix, and I would prefer not to disable this test in the interim.
Me reading this clippy warning: <img width="263" height="191" alt="image" src="https://github.com/user-attachments/assets/3a936a17-f91d-47bc-a08a-cafb154e9e32" />
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" />
- DPAPI helpers for storing Sandbox user passwords securely - creation of Offline/Online sandbox users - ACL setup for sandbox users - firewall rule setup
Co-authored-by: Ahmed Ibrahim <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.