Commit Graph
12991 Commits
Author SHA1 Message Date
Michael Bolin 28530ca3d0 Merge 3aa6bb2e28 into sapling-pr-archive-bolinfest 2026-04-24 16:33:12 -07:00
Michael Bolin 3aa6bb2e28 permissions: finish profile-backed app surfaces 2026-04-24 16:32:59 -07:00
Michael Bolin 42cfc6b8b3 permissions: remove core legacy policy round trips 2026-04-24 16:32:59 -07:00
Michael Bolin 84177776c2 permissions: migrate approval and sandbox consumers to profiles 2026-04-24 16:32:59 -07:00
Michael Bolin 7bb66b0ed9 permissions: derive compatibility policies from profiles 2026-04-24 16:32:59 -07:00
Michael Bolin 69e51b210b permissions: make runtime config profile-backed 2026-04-24 16:32:59 -07:00
Michael Bolin b093e0089d permissions: remove legacy read-only access modes 2026-04-24 16:32:59 -07:00
Michael Bolin 7c3dd8d7ce Merge 6aa4aed202 into sapling-pr-archive-bolinfest 2026-04-24 16:19:29 -07:00
Michael Bolin 6aa4aed202 sdk/python: use standalone codex-app-server runtime 2026-04-24 16:19:11 -07:00
Michael Bolin 9b8a1fbefc ci: publish codex-app-server release artifacts (#19447)
## Why
The VS Code extension and desktop app do not need the full TUI binary,
and `codex-app-server` is materially smaller than standalone `codex`. We
still want to publish it as an official release artifact, but building
it by tacking another `--bin` onto the existing release `cargo build`
invocations would lengthen those jobs.

This change keeps `codex-app-server` on its own release bundle so it can
build in parallel with the existing `codex` and helper bundles.

## What changed
- Made `.github/workflows/rust-release.yml` bundle-aware so each macOS
and Linux MUSL target now builds either the existing `primary` bundle
(`codex` and `codex-responses-api-proxy`) or a standalone `app-server`
bundle (`codex-app-server`).
- Preserved the historical artifact names for the primary macOS/Linux
bundles so `scripts/stage_npm_packages.py` and
`codex-cli/scripts/install_native_deps.py` continue to find release
assets under the paths they already expect, while giving the new
app-server artifacts distinct names.
- Added a matching `app-server` bundle to
`.github/workflows/rust-release-windows.yml`, and updated the final
Windows packaging job to download, sign, stage, and archive
`codex-app-server.exe` alongside the existing release binaries.
- Generalized the shared signing actions in
`.github/actions/linux-code-sign/action.yml`,
`.github/actions/macos-code-sign/action.yml`, and
`.github/actions/windows-code-sign/action.yml` so each workflow row
declares its binaries once and reuses that list for build, signing, and
staging.
- Added `codex-app-server` to `.github/dotslash-config.json` so releases
also publish a generated DotSlash manifest for the standalone app-server
binary.
- Kept the macOS DMG focused on the existing `primary` bundle;
`codex-app-server` ships as the regular standalone archives and DotSlash
manifest.

## Verification
- Parsed the modified workflow and action YAML files locally with
`python3` + `yaml.safe_load(...)`.
- Parsed `.github/dotslash-config.json` locally with `python3` +
`json.loads(...)`.
- Reviewed the resulting release matrices, artifact names, and packaging
paths to confirm that `codex-app-server` is built separately on macOS,
Linux MUSL, and Windows, while the existing npm staging and Windows
`codex` zip bundling contracts remain intact.
2026-04-24 15:29:37 -07:00
Michael Bolin bf57556eaa merge commit for archive created by Sapling 2026-04-24 15:12:44 -07:00
Michael Bolin 4d61e80877 ci: release codex-app-server as a standalone binary 2026-04-24 15:12:33 -07:00
Ahmed Ibrahim 6de6eaa0c1 [4/4] Honor Streamable HTTP MCP placement (#18584) 2026-04-24 15:03:55 -07:00
Michael Bolin b50bb5908f merge commit for archive created by Sapling 2026-04-24 14:58:37 -07:00
Michael Bolin e63758af5b ci: release codex-app-server as a standalone binary 2026-04-24 14:58:26 -07:00
Michael Bolin aa69a973be merge commit for archive created by Sapling 2026-04-24 14:54:18 -07:00
Michael Bolin 3a74ae4a59 ci: release codex-app-server as a standalone binary 2026-04-24 14:53:59 -07:00
Michael Bolin 8400851118 merge commit for archive created by Sapling 2026-04-24 14:51:11 -07:00
Michael Bolin 086a3b3a40 permissions: finish profile-backed app surfaces 2026-04-24 14:50:48 -07:00
Michael Bolin 36a74c82ec permissions: remove core legacy policy round trips 2026-04-24 14:50:48 -07:00
Michael Bolin 07bda1b83f permissions: migrate approval and sandbox consumers to profiles 2026-04-24 14:50:48 -07:00
Michael Bolin f5d52fb886 permissions: derive compatibility policies from profiles 2026-04-24 14:50:48 -07:00
Michael Bolin f5c6803c00 permissions: make runtime config profile-backed 2026-04-24 14:50:48 -07:00
Michael Bolin 7ccc91a776 permissions: remove legacy read-only access modes 2026-04-24 14:50:47 -07:00
Konstantine Kahadze c43e2fcfbf Add gpt-image-2 to bundled OpenAI Docs skill (#19443)
## Summary
- Mirrors openai/skills#374 in the Codex bundled OpenAI Docs skill
- Adds `gpt-image-2` as the best image generation/edit model
- Updates `gpt-image-1.5` to less expensive image generation/edit
quality

## Test plan
- `git diff --check`
2026-04-24 21:48:45 +00:00
Michael Bolin 2ae5061e27 Merge 41bf5e9781 into sapling-pr-archive-bolinfest 2026-04-24 14:45:06 -07:00
Michael Bolin 41bf5e9781 ci: release codex-app-server as a standalone binary 2026-04-24 14:44:59 -07:00
Michael Bolin e8622fea13 merge commit for archive created by Sapling 2026-04-24 14:31:56 -07:00
Michael Bolin fbb10dc978 Merge 2e5744dd4a into sapling-pr-archive-bolinfest 2026-04-24 14:30:12 -07:00
Michael Bolin 2e5744dd4a ci: release codex-app-server as a standalone binary 2026-04-24 14:30:00 -07:00
Michael Bolin db94b1657b ci: stop publishing GNU Linux release artifacts (#19445)
## Why
We already prefer shipping the MUSL Linux builds, and the in-repo
release consumers resolve Linux release assets through the MUSL targets.
Keeping the GNU release jobs around adds release time and extra assets
without serving the paths we actually publish and consume.

This is also easier to reason about as a standalone change: future work
can point back to this PR as the intentional decision to stop publishing
`x86_64-unknown-linux-gnu` and `aarch64-unknown-linux-gnu` release
artifacts.

## What changed
- Removed the `x86_64-unknown-linux-gnu` and `aarch64-unknown-linux-gnu`
entries from the `build` matrix in `.github/workflows/rust-release.yml`.
- Added a short comment in that matrix documenting that Linux release
artifacts intentionally ship MUSL-linked binaries.

## Verification
- Reviewed `.github/workflows/rust-release.yml` to confirm that the
release workflow now only builds Linux release artifacts for
`x86_64-unknown-linux-musl` and `aarch64-unknown-linux-musl`.
2026-04-24 21:29:45 +00:00
Michael Bolin 76c4e4c2b6 permissions: finish profile-backed app surfaces 2026-04-24 14:29:39 -07:00
Michael Bolin d07b253419 permissions: remove core legacy policy round trips 2026-04-24 14:29:39 -07:00
Michael Bolin bda7acc603 permissions: migrate approval and sandbox consumers to profiles 2026-04-24 14:29:39 -07:00
Michael Bolin 6dcb38d992 permissions: derive compatibility policies from profiles 2026-04-24 14:29:39 -07:00
Michael Bolin c8f8161d94 permissions: make runtime config profile-backed 2026-04-24 14:29:39 -07:00
Michael Bolin db42d8c26b Merge 8139972dbd into sapling-pr-archive-bolinfest 2026-04-24 14:24:20 -07:00
Michael Bolin 8139972dbd ci: drop GNU Linux release targets 2026-04-24 14:22:48 -07:00
Michael Bolin bbc6c1beb8 permissions: remove legacy read-only access modes 2026-04-24 14:22:15 -07:00
Tom 0a9b559c0b Migrate fork and resume reads to thread store (#18900)
- Route cold thread/resume and thread/fork source loading through
ThreadStore reads instead of direct rollout path operations
- Keep lookups that explicitly specify a rollout-path using the local
thread store methods but return an invalid-request error for remote
ThreadStore configurations
- Add some additional unit tests for code path coverage
2026-04-24 13:51:37 -07:00
Michael Bolin ed72f6a046 merge commit for archive created by Sapling 2026-04-24 13:45:22 -07:00
Michael Bolin 1df09b2068 permissions: finish profile-backed app surfaces 2026-04-24 13:44:49 -07:00
Michael Bolin 0e470c8bc9 permissions: remove core legacy policy round trips 2026-04-24 13:44:49 -07:00
Michael Bolin 7875cb8694 permissions: migrate approval and sandbox consumers to profiles 2026-04-24 13:44:48 -07:00
Michael Bolin 409bfc5a1a permissions: derive compatibility policies from profiles 2026-04-24 13:44:48 -07:00
Michael Bolin 46f2411925 permissions: make runtime config profile-backed 2026-04-24 13:43:17 -07:00
Michael Bolin 13e0ec1614 permissions: make legacy profile conversion cwd-free (#19414)
## Why

The profile conversion path still required a `cwd` even when it was only
translating a legacy `SandboxPolicy` into a `PermissionProfile`. That
made profile producers invent an ambient `cwd`, which is exactly the
anchoring we are trying to remove from permission-profile data. A legacy
workspace-write policy can be represented symbolically instead: `:cwd =
write` plus read-only `:project_roots` metadata subpaths.

This PR creates that cwd-free base so the rest of the stack can stop
threading cwd through profile construction. Callers that actually need a
concrete runtime filesystem policy for a specific cwd still have an
explicitly named cwd-bound conversion.

## What Changed

- `PermissionProfile::from_legacy_sandbox_policy` now takes only
`&SandboxPolicy`.
- `FileSystemSandboxPolicy::from_legacy_sandbox_policy` is now the
symbolic, cwd-free projection for profiles.
- The old concrete projection is retained as
`FileSystemSandboxPolicy::from_legacy_sandbox_policy_for_cwd` for
runtime/boundary code that must materialize legacy cwd behavior.
- Workspace-write profiles preserve `CurrentWorkingDirectory` and
`ProjectRoots` special entries instead of materializing cwd into
absolute paths.

## Verification

- `cargo check -p codex-protocol -p codex-core -p
codex-app-server-protocol -p codex-app-server -p codex-exec -p
codex-exec-server -p codex-tui -p codex-sandboxing -p
codex-linux-sandbox -p codex-analytics --tests`
- `just fix -p codex-protocol -p codex-core -p codex-app-server-protocol
-p codex-app-server -p codex-exec -p codex-exec-server -p codex-tui -p
codex-sandboxing -p codex-linux-sandbox -p codex-analytics`




---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/19414).
* #19395
* #19394
* #19393
* #19392
* #19391
* __->__ #19414
2026-04-24 13:42:05 -07:00
canvrno-oaiandCodex 7262c0c450 Skip disabled rows in selection menu numbering and default focus (#19170)
Selection menus in the TUI currently let disabled rows interfere with
numbering and default focus. This makes mixed menus harder to read and
can land selection on rows that are not actionable. This change updates
the shared selection-menu behavior in list_selection_view so disabled
rows are not selected when these views open, and prevents them from
being numbered like selectable rows.

- Disabled rows no longer receive numeric labels
- Digit shortcuts map to enabled rows only
- Default selection moves to the first enabled row in mixed menus
- Updated affected snapshot
- Added snapshot coverage for a plugin detail error popup
- Added a focused unit test for shared selection-view behavior

---------

Co-authored-by: Codex <noreply@openai.com>
2026-04-24 13:21:43 -07:00
Michael Bolin 7a4cd5fffe merge commit for archive created by Sapling 2026-04-24 13:19:21 -07:00
Michael Bolin 02de7201a6 permissions: finish profile-backed app surfaces 2026-04-24 13:18:17 -07:00