Commit Graph
540 Commits
Author SHA1 Message Date
Michael Bolin 0995b604ad Merge f25597b510 into sapling-pr-archive-bolinfest 2025-04-30 09:21:33 -07:00
Michael Bolin f25597b510 fix: read version from package.json instead of modifying session.ts 2025-04-30 09:21:25 -07:00
Michael Bolin 33c84d5b82 Merge c8f9dab76f into sapling-pr-archive-bolinfest 2025-04-30 09:20:34 -07:00
Michael Bolin c8f9dab76f fix: read version from package.json instead of modifying session.ts 2025-04-30 09:20:25 -07:00
Michael Bolin 8e6504b9e7 chore: create a script for the release process 2025-04-30 08:47:59 -07:00
Michael Bolin f2ed46ceca fix: include x86_64-unknown-linux-gnu in the list of arch to build codex-linux-sandbox (#748) 2025-04-29 21:19:14 -07:00
Michael Bolin 0020f102e4 Merge ec4390a6e1 into sapling-pr-archive-bolinfest 2025-04-29 21:17:51 -07:00
Michael Bolin ec4390a6e1 fix: include x86_64-unknown-linux-gnu in the list of arch to build codex-linux-sandbox 2025-04-29 21:17:42 -07:00
Michael Bolin e42dacbdc8 fix: add another place where $dest was missing in rust-release.yml (#747)
I thought https://github.com/openai/codex/pull/745 was the last fix I
needed, but apparently not.
rust-v.0.0.2504292236
2025-04-29 20:23:54 -07:00
Michael Bolin c26292d617 Merge 23e60c4090 into sapling-pr-archive-bolinfest 2025-04-29 20:23:04 -07:00
Michael Bolin 23e60c4090 fix: add another place where $dest was missing in rust-release.yml 2025-04-29 20:22:45 -07:00
Michael Bolin bee779191f Merge 34bbb99494 into sapling-pr-archive-bolinfest 2025-04-29 20:22:10 -07:00
Michael Bolin 34bbb99494 fix: add another place where $dest was missing in rust-release.yml 2025-04-29 20:22:01 -07:00
Michael Bolin 5122fe647f chore: fix errors in .github/workflows/rust-release.yml and prep 0.0.2504292006 release (#745)
Apparently I made two key mistakes in
https://github.com/openai/codex/pull/740 (fixed in this PR):

* I forgot to redefine `$dest` in the `Stage Linux-only artifacts` step
* I did not define the `if` check correctly in the `Stage Linux-only
artifacts` step

This fixes both of those issues and bumps the workspace version to
`0.0.2504292006` in preparation for another release attempt.
rust-v.0.0.2504292006
2025-04-29 20:12:23 -07:00
Michael Bolin 74b1fb774e merge commit for archive created by Sapling 2025-04-29 20:10:23 -07:00
Michael Bolin b587b76d43 chore: fix errors in .github/workflows/rust-release.yml and prep 0.0.2504292006 release 2025-04-29 20:10:14 -07:00
Michael Bolin 1a39568e03 chore: set Cargo workspace to version 0.0.2504291954 to create a scratch release (#744) rust-v.0.0.2504291954 2025-04-29 19:56:30 -07:00
Michael Bolin d63529a1c9 Merge b227a20792 into sapling-pr-archive-bolinfest 2025-04-29 19:56:14 -07:00
Michael Bolin b227a20792 chore: set Cargo workspace to version 0.0.2504291954 to create a scratch release 2025-04-29 19:55:56 -07:00
Michael Bolin efb0acc152 fix: primary output of the codex-cli crate is named codex, not codex-cli (#743)
I just got a bunch of failures in the release workflow:

https://github.com/openai/codex/actions/runs/14745492805/job/41391926707

along the lines of:

```
cp: cannot stat 'target/aarch64-unknown-linux-gnu/release/codex-cli': No such file or directory
```
2025-04-29 19:53:29 -07:00
Michael Bolin 6dfeca8c3a Merge d14b8fc1a7 into sapling-pr-archive-bolinfest 2025-04-29 19:47:07 -07:00
Michael Bolin d14b8fc1a7 fix: primary output of the codex-cli crate is named codex, not codex-cli 2025-04-29 19:46:58 -07:00
Michael Bolin 36899af488 Merge 9483c56240 into sapling-pr-archive-bolinfest 2025-04-29 19:41:50 -07:00
Michael Bolin 9483c56240 fix: remove expected dot after v in rust-v tag name 2025-04-29 19:41:38 -07:00
Michael Bolin 822b1c07f2 Merge c3c6f2ad9b into sapling-pr-archive-bolinfest 2025-04-29 19:38:32 -07:00
Michael Bolin c3c6f2ad9b fix: remove expected dot after v in rust-v tag name 2025-04-29 19:38:26 -07:00
Michael Bolin 85999d7277 chore: set Cargo workspace to version 0.0.2504291926 to create a scratch release (#741)
Needed to exercise the new release process in
https://github.com/openai/codex/pull/671.
rust-v.0.0.2504291926
2025-04-29 19:35:37 -07:00
Michael Bolin 005e431acd Merge f1e0bbf9c1 into sapling-pr-archive-bolinfest 2025-04-29 19:27:59 -07:00
Michael Bolin f1e0bbf9c1 chore: set Cargo workspace to version 0.0.2504291926 to create a scratch release 2025-04-29 19:27:51 -07:00
Michael Bolin 411bfeb410 feat: codex-linux-sandbox standalone executable (#740)
This introduces a standalone executable that run the equivalent of the
`codex debug landlock` subcommand and updates `rust-release.yml` to
include it in the release.

The idea is that we will include this small binary with the TypeScript
CLI to provide support for Linux sandboxing.
rust-v.0.0.2504291921 rust-v0.0.2504291921
2025-04-29 19:21:26 -07:00
Michael Bolin f33c3a18b9 Merge 0180a42a1f into sapling-pr-archive-bolinfest 2025-04-29 19:17:59 -07:00
Michael Bolin 0180a42a1f feat: codex-linux-sandbox standalone executable 2025-04-29 19:17:56 -07:00
Michael Bolin 45ca4de2a5 merge commit for archive created by Sapling 2025-04-29 19:15:30 -07:00
Michael Bolin 6bbce63b9e feat: codex-linux-sandbox standalone executable 2025-04-29 19:15:17 -07:00
Michael Bolin 94331d0ff6 merge commit for archive created by Sapling 2025-04-29 19:11:41 -07:00
Michael Bolin fa153bd470 feat: codex-linux-sandbox standalone executable 2025-04-29 19:11:35 -07:00
Michael Bolin 61cfd3cd11 merge commit for archive created by Sapling 2025-04-29 19:07:28 -07:00
Michael Bolin b20106cebd feat: codex-linux-sandbox standalone executable 2025-04-29 19:07:22 -07:00
Michael Bolin 8fba191a68 merge commit for archive created by Sapling 2025-04-29 19:00:28 -07:00
Michael Bolin cd58c2dd62 feat: codex-linux-sandbox standalone executable 2025-04-29 19:00:16 -07:00
Michael Bolin 462e17b313 Merge f590442903 into sapling-pr-archive-bolinfest 2025-04-29 18:51:45 -07:00
Michael Bolin f590442903 feat: codex-linux-sandbox standalone executable 2025-04-29 18:51:01 -07:00
Michael Bolin 27bc4516bf feat: bring back -s option to specify sandbox permissions (#739) 2025-04-29 18:42:52 -07:00
Michael Bolin af415a60c0 merge commit for archive created by Sapling 2025-04-29 16:59:57 -07:00
Michael Bolin e622ab400d feat: codex-linux-sandbox standalone executable 2025-04-29 16:59:48 -07:00
Michael Bolin f906dd6ee7 feat: bring back -s option to specify sandbox permissions 2025-04-29 16:48:27 -07:00
oai-ragona cb0b0259f4 [codex-rs] Add rust-release action (#671)
Taking a pass at building artifacts per platform so we can consider
different distribution strategies that don't require users to install
the full `cargo` toolchain.

Right now this grabs just the `codex-repl` and `codex-tui` bins for 5
different targets and bundles them into a draft release. I think a
clearly marked pre-release set of artifacts will unblock the next step
of testing.
2025-04-29 16:38:47 -07:00
Michael Bolin 86091a0189 merge commit for archive created by Sapling 2025-04-29 16:19:06 -07:00
Michael Bolin f5fa188cb0 feat: bring back -s option to specify sandbox permissions 2025-04-29 16:18:57 -07:00
Michael Bolin 0a00b5ed29 fix: overhaul SandboxPolicy and config loading in Rust (#732)
Previous to this PR, `SandboxPolicy` was a bit difficult to work with:


https://github.com/openai/codex/blob/237f8a11e11fdcc793a09e787e48215676d9b95b/codex-rs/core/src/protocol.rs#L98-L108

Specifically:

* It was an `enum` and therefore options were mutually exclusive as
opposed to additive.
* It defined things in terms of what the agent _could not_ do as opposed
to what they _could_ do. This made things hard to support because we
would prefer to build up a sandbox config by starting with something
extremely restrictive and only granting permissions for things the user
as explicitly allowed.

This PR changes things substantially by redefining the policy in terms
of two concepts:

* A `SandboxPermission` enum that defines permissions that can be
granted to the agent/sandbox.
* A `SandboxPolicy` that internally stores a `Vec<SandboxPermission>`,
but externally exposes a simpler API that can be used to configure
Seatbelt/Landlock.

Previous to this PR, we supported a `--sandbox` flag that effectively
mapped to an enum value in `SandboxPolicy`. Though now that
`SandboxPolicy` is a wrapper around `Vec<SandboxPermission>`, the single
`--sandbox` flag no longer makes sense. While I could have turned it
into a flag that the user can specify multiple times, I think the
current values to use with such a flag are long and potentially messy,
so for the moment, I have dropped support for `--sandbox` altogether and
we can bring it back once we have figured out the naming thing.

Since `--sandbox` is gone, users now have to specify `--full-auto` to
get a sandbox that allows writes in `cwd`. Admittedly, there is no clean
way to specify the equivalent of `--full-auto` in your `config.toml`
right now, so we will have to revisit that, as well.

Because `Config` presents a `SandboxPolicy` field and `SandboxPolicy`
changed considerably, I had to overhaul how config loading works, as
well. There are now two distinct concepts, `ConfigToml` and `Config`:

* `ConfigToml` is the deserialization of `~/.codex/config.toml`. As one
might expect, every field is `Optional` and it is `#[derive(Deserialize,
Default)]`. Consistent use of `Optional` makes it clear what the user
has specified explicitly.
* `Config` is the "normalized config" and is produced by merging
`ConfigToml` with `ConfigOverrides`. Where `ConfigToml` contains a raw
`Option<Vec<SandboxPermission>>`, `Config` presents only the final
`SandboxPolicy`.

The changes to `core/src/exec.rs` and `core/src/linux.rs` merit extra
special attention to ensure we are faithfully mapping the
`SandboxPolicy` to the Seatbelt and Landlock configs, respectively.

Also, take note that `core/src/seatbelt_readonly_policy.sbpl` has been
renamed to `codex-rs/core/src/seatbelt_base_policy.sbpl` and that
`(allow file-read*)` has been removed from the `.sbpl` file as now this
is added to the policy in `core/src/exec.rs` when
`sandbox_policy.has_full_disk_read_access()` is `true`.
2025-04-29 15:01:16 -07:00