Commit Graph
5880 Commits
Author SHA1 Message Date
Michael Bolin 13c4bd7e6b Merge 41833c879b into sapling-pr-archive-bolinfest 2025-12-19 18:02:33 -08:00
Michael Bolin 41833c879b chore: enusre the logic that creates ConfigLayerStack has access to cwd 2025-12-19 18:02:24 -08:00
Michael Bolin dc61fc5f50 feat: support allowed_sandbox_modes in requirements.toml (#8298)
This adds support for `allowed_sandbox_modes` in `requirements.toml` and
provides legacy support for constraining sandbox modes in
`managed_config.toml`. This is converted to `Constrained<SandboxPolicy>`
in `ConfigRequirements` and applied to `Config` such that constraints
are enforced throughout the harness.

Note that, because `managed_config.toml` is deprecated, we do not add
support for the new `external-sandbox` variant recently introduced in
https://github.com/openai/codex/pull/8290. As noted, that variant is not
supported in `config.toml` today, but can be configured programmatically
via app server.
2025-12-19 21:09:20 +00:00
Michael Bolin 736a04f71d merge commit for archive created by Sapling 2025-12-19 12:52:57 -08:00
Michael Bolin 88bb409c84 feat: support allowed_sandbox_modes in requirements.toml 2025-12-19 12:52:52 -08:00
RQfreefly ec3738b47e feat: move file name derivation into codex-file-search (#8334)
## Summary

  - centralize file name derivation in codex-file-search
  - reuse the helper in app-server fuzzy search to avoid duplicate logic
  - add unit tests for file_name_from_path

  ## Testing

  - cargo test -p codex-file-search
  - cargo test -p codex-app-server
2025-12-19 12:50:55 -08:00
Josh McKinney 1d4463ba81 feat(tui2): coalesce transcript scroll redraws (#8295)
Problem
- Mouse wheel events were scheduling a redraw on every event, which
could backlog and create lag during fast scrolling.

Solution
- Schedule transcript scroll redraws with a short delay (16ms) so the
frame requester coalesces bursts into fewer draws.

Why
- Smooths rapid wheel scrolling while keeping the UI responsive.

Testing
- Manual: Scrolled in iTerm and Ghostty; no lag observed.
- `cargo clippy --fix --all-features --tests --allow-dirty
--allow-no-vcs -p codex-tui2`
2025-12-19 12:19:01 -08:00
Michael Bolin a585800106 merge commit for archive created by Sapling 2025-12-19 12:17:39 -08:00
Michael Bolin 552df01861 feat: support allowed_sandbox_modes in requirements.toml 2025-12-19 12:13:59 -08:00
github-actions[bot]andaibrahim-oai e3d3445748 Update models.json (#8168)
Automated update of models.json.

Co-authored-by: aibrahim-oai <219906144+aibrahim-oai@users.noreply.github.com>
2025-12-19 12:06:34 -08:00
Michael Bolin 40a5809cc6 merge commit for archive created by Sapling 2025-12-19 11:29:56 -08:00
Michael Bolin a2fd63643e feat: support allowed_sandbox_modes in requirements.toml 2025-12-19 11:29:49 -08:00
Michael Bolin 0a7021de72 fix: enable resume_warning that was missing from mod.rs (#8333)
This test was introduced in https://github.com/openai/codex/pull/6507,
but was not included in `mod.rs`. It does not appear that it was getting
compiled?
2025-12-19 19:21:47 +00:00
Michael Bolin ce429b29c3 Merge fc9fb9c8a2 into sapling-pr-archive-bolinfest 2025-12-19 11:16:32 -08:00
Michael Bolin fc9fb9c8a2 feat: support allowed_sandbox_modes in requirements.toml 2025-12-19 11:16:28 -08:00
Michael Bolin 90fa72af4d Merge 15f93caaa6 into sapling-pr-archive-bolinfest 2025-12-19 11:05:25 -08:00
Michael Bolin 15f93caaa6 fix: enable resume_warning that was missing from mod.rs 2025-12-19 11:05:18 -08:00
Michael Bolin 7e5c343ef5 feat: make ConstraintError an enum (#8330)
This will make it easier to test for expected errors in unit tests since
we can compare based on the field values rather than the message (which
might change over time). See https://github.com/openai/codex/pull/8298
for an example.

It also ensures more consistency in the way a `ConstraintError` is
constructed.
2025-12-19 19:03:50 +00:00
Michael Bolin 6b38025a5b merge commit for archive created by Sapling 2025-12-19 10:46:33 -08:00
Michael Bolin b87a7b7d09 feat: make ConstraintError an enum 2025-12-19 10:46:21 -08:00
Michael Bolin 1b0ccbcdf6 Merge 402f9c67c9 into sapling-pr-archive-bolinfest 2025-12-19 10:20:49 -08:00
Michael Bolin 402f9c67c9 feat: make ConstraintError an enum 2025-12-19 10:18:23 -08:00
GalaxyDetective 014235f533 Fix: /undo destructively interacts with git staging (#8214) (#8303)
Fixes #8214 by removing the '--staged' flag from the undo git restore
command. This ensures that while the working tree is reverted to the
snapshot state, the user's staged changes (index) are preserved,
preventing data loss. Also adds a regression test.
2025-12-19 10:07:41 -08:00
jdijk-deventit b15b5082c6 Fix link to contributing.md in experimental.md (#8311)
# 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.
2025-12-19 09:42:56 -08:00
Michael Bolin b1a0a60555 merge commit for archive created by Sapling 2025-12-19 09:35:59 -08:00
Michael Bolin 159b0d088b feat: support allowed_sandbox_modes in requirements.toml 2025-12-19 09:35:51 -08:00
Gav Verma 37071e7e5c Update system skills from OSS repo (#8328)
https://github.com/openai/skills/tree/main/skills/.system
2025-12-19 09:31:04 -08:00
xl-openai eeda6a5004 Revert "Keep skills feature flag default OFF for windows." (#8325)
Reverts openai/codex#8308
2025-12-19 16:22:14 +00:00
xl-openai 6f94a90797 Keep skills feature flag default OFF for windows. (#8308)
Keep windows OFF first.
2025-12-18 21:57:15 -08:00
xl-openai 339b052d68 Fix admin skills. (#8305)
We were assembling the skill roots in two different places, and the
admin root was missing in one of them. This change centralizes root
selection into a helper so both paths stay in sync.
2025-12-19 04:10:19 +00:00
Gav Verma f4371d2f6c Add short descriptions to system skills (#8301) 2025-12-19 02:44:53 +00:00
xl-openai 8120c8765b Support admin scope skills. (#8296)
a new scope reads from /etc/codex
2025-12-19 02:28:56 +00:00
xl-openai d35337227a skills feature default on. (#8297)
skills default on.
2025-12-18 18:26:46 -08:00
xl-openai ba835c3c36 Fix tests (#8299)
Fix broken tests.
2025-12-19 02:07:23 +00:00
Michael Bolin 3a005dccee merge commit for archive created by Sapling 2025-12-18 18:05:55 -08:00
Michael Bolin 41db2f6ea5 feat: support allowed_sandbox_modes in requirements.toml 2025-12-18 18:05:46 -08:00
Michael Bolin 587f9861a4 merge commit for archive created by Sapling 2025-12-18 18:02:11 -08:00
Michael Bolin 03ffbd6d17 feat: support allowed_sandbox_modes in requirements.toml 2025-12-18 18:02:02 -08:00
Michael Bolin 62e0140ddf Merge c0e54e78ec into sapling-pr-archive-bolinfest 2025-12-18 17:48:24 -08:00
Michael Bolin c0e54e78ec feat: support allowed_sandbox_modes in requirements.toml 2025-12-18 17:48:09 -08:00
xl-openai dcc01198e2 UI tweaks on skills popup. (#8250)
Only display the skill name (not the folder), and truncate the skill
description to a maximum of two lines.
2025-12-19 01:16:51 +00:00
jif-oai 6c76d17713 feat: collapse "waiting" of unified_exec (#8257)
Screenshots here but check the snapshot files to see it better
<img width="712" height="408" alt="Screenshot 2025-12-18 at 11 58 02"
src="https://github.com/user-attachments/assets/84a2c410-0767-4870-84d1-ae1c0d4c445e"
/>
<img width="523" height="352" alt="Screenshot 2025-12-18 at 11 17 41"
src="https://github.com/user-attachments/assets/d029c7ea-0feb-4493-9dca-af43a0c70c52"
/>
2025-12-18 17:03:43 -08:00
Anton Panasenko 3429de21b3 feat: introduce ExternalSandbox policy (#8290)
## Description

Introduced `ExternalSandbox` policy to cover use case when sandbox
defined by outside environment, effectively it translates to
`SandboxMode#DangerFullAccess` for file system (since sandbox configured
on container level) and configurable `network_access` (either Restricted
or Enabled by outside environment).

as example you can configure `ExternalSandbox` policy as part of
`sendUserTurn` v1 app_server API:

```
 {
            "conversationId": <id>,
            "cwd": <cwd>,
            "approvalPolicy": "never",
            "sandboxPolicy": {
                  "type": ""external-sandbox",
                  "network_access": "enabled"/"restricted"
            },
            "model": <model>,
            "effort": <effort>,
            ....
        }
```
2025-12-18 17:02:03 -08:00
Michael Bolin 3d4ced3ff5 chore: migrate from Config::load_from_base_config_with_overrides to ConfigBuilder (#8276)
https://github.com/openai/codex/pull/8235 introduced `ConfigBuilder` and
this PR updates all call non-test call sites to use it instead of
`Config::load_from_base_config_with_overrides()`.

This is important because `load_from_base_config_with_overrides()` uses
an empty `ConfigRequirements`, which is a reasonable default for testing
so the tests are not influenced by the settings on the host. This method
is now guarded by `#[cfg(test)]` so it cannot be used by business logic.

Because `ConfigBuilder::build()` is `async`, many of the test methods
had to be migrated to be `async`, as well. On the bright side, this made
it possible to eliminate a bunch of `block_on_future()` stuff.
2025-12-18 16:12:52 -08:00
Koichi Shiraishi 2d9826098e fix: remove duplicate shell_snapshot FeatureSpec (#8274)
regression: #8199

Signed-off-by: Koichi Shiraishi <zchee.io@gmail.com>
2025-12-18 15:55:47 -08:00
Michael Bolin 27e609460c Merge 67d011f22a into sapling-pr-archive-bolinfest 2025-12-18 15:37:41 -08:00
Michael Bolin 67d011f22a chore: migrate from Config::load_from_base_config_with_overrides to ConfigBuilder 2025-12-18 15:34:15 -08:00
Michael Bolin 46baedd7cb fix: change codex/sandbox-state/update from a notification to a request (#8142)
Historically, `accept_elicitation_for_prompt_rule()` was flaky because
we were using a notification to update the sandbox followed by a `shell`
tool request that we expected to be subject to the new sandbox config,
but because [rmcp](https://crates.io/crates/rmcp) MCP servers delegate
each incoming message to a new Tokio task, messages are not guaranteed
to be processed in order, so sometimes the `shell` tool call would run
before the notification was processed.

Prior to this PR, we relied on a generous `sleep()` between the
notification and the request to reduce the change of the test flaking
out.

This PR implements a proper fix, which is to use a _request_ instead of
a notification for the sandbox update so that we can wait for the
response to the sandbox request before sending the request to the
`shell` tool call. Previously, `rmcp` did not support custom requests,
but I fixed that in
https://github.com/modelcontextprotocol/rust-sdk/pull/590, which made it
into the `0.12.0` release (see #8288).

This PR updates `shell-tool-mcp` to expect
`"codex/sandbox-state/update"` as a _request_ instead of a notification
and sends the appropriate ack. Note this behavior is tied to our custom
`codex/sandbox-state` capability, which Codex honors as an MCP client,
which is why `core/src/mcp_connection_manager.rs` had to be updated as
part of this PR, as well.

This PR also updates the docs at `shell-tool-mcp/README.md`.
2025-12-18 15:32:01 -08:00
xl-openai 358a5baba0 Support skills shortDescription. (#8278)
Allow SKILL.md to specify a more human-readable short description as
skill metadata.
2025-12-18 23:13:18 +00:00
Michael Bolin 4b28537620 merge commit for archive created by Sapling 2025-12-18 15:09:03 -08:00