Commit Graph
12723 Commits
Author SHA1 Message Date
Michael Bolin 3345efcd9c merge commit for archive created by Sapling 2026-04-23 00:26:37 -07:00
Michael Bolin b9f3035801 tui: sync session permission profiles 2026-04-23 00:24:41 -07:00
Michael Bolin 1dad810719 Merge d01ecbfa32 into sapling-pr-archive-bolinfest 2026-04-23 00:05:53 -07:00
Michael Bolin d01ecbfa32 tests: isolate approval fixtures from host rules 2026-04-23 00:04:00 -07:00
Michael Bolin cace7abb86 shell-escalation: carry resolved permission profiles 2026-04-23 00:03:59 -07:00
Michael Bolin 9e570af5d5 mcp: include permission profiles in sandbox state 2026-04-23 00:03:59 -07:00
Michael Bolin 7173ed7d31 tui: carry permission profiles on user turns 2026-04-23 00:03:59 -07:00
Michael Bolin a10f86b2e7 tui: sync session permission profiles 2026-04-23 00:03:58 -07:00
Michael Bolin 4de7e963c7 merge commit for archive created by Sapling 2026-04-23 00:01:56 -07:00
Michael Bolin a29e38d929 tui: sync session permission profiles 2026-04-23 00:01:27 -07:00
Michael Bolin b8576ebdb8 Merge 4ed92c2192 into sapling-pr-archive-bolinfest 2026-04-22 23:38:28 -07:00
Shijie Rao 993e3f407e Persist target default reasoning on model upgrade (#19085)
## Why

When the TUI upgrade flow moves a user to a newer model, the accepted
migration should also persist the target model's default reasoning
effort. That keeps the upgraded model and reasoning setting aligned
instead of carrying forward a stale previously saved effort from the old
model.

## What changed

- The accepted model migration path now updates in-memory config, TUI
state, and persisted model selection with the target preset's
`default_reasoning_effort`.
- The upgrade destructuring keeps `reasoning_effort_mapping` explicitly
unused because mappings are no longer consulted on accepted migrations.
- Added a catalog test that starts with a pre-existing saved reasoning
effort and verifies the accepted upgrade overwrites it with the target
model default and emits the expected persistence events.
- Rebasing onto current `main` also updates a TUI thread-session test
helper for the latest `permission_profile` field and
`ApprovalsReviewer::AutoReview` rename so CI compiles on the new base.

## Verification

- `cargo test -p codex-tui model_catalog`
- `cargo test -p codex-tui
permission_settings_sync_updates_active_snapshot_without_rewriting_side_thread`
2026-04-22 23:36:15 -07:00
Michael Bolin 4ed92c2192 app-server: include filesystem entries in permission requests
item/permissions/requestApproval sends a requested permission profile to app-server clients. Populate AdditionalFileSystemPermissions.entries when converting legacy read/write roots so clients that consume the canonical v2 shape see the requested filesystem entries.

Keep read/write fields for compatibility, mark them as transitional in the generated schema, and update app-server/TUI regression coverage plus generated fixtures.
2026-04-22 23:33:57 -07:00
Michael Bolin 4f63342d72 fix(tui): update permission sync test helpers
Commit 08b5e96678 added the permission sync regression test before ThreadSessionState grew permission_profile and before the reviewer enum settled on AutoReview. Update the fixture so codex-tui builds against current main.
2026-04-22 23:33:57 -07:00
Michael Bolin 4a427f399e merge commit for archive created by Sapling 2026-04-22 23:23:51 -07:00
Michael Bolin 877d0fbe4d ensure AdditionalFileSystemPermissions is created with entries field set 2026-04-22 23:23:35 -07:00
Michael Bolin 16464b9073 Merge 1b2298ff88 into sapling-pr-archive-bolinfest 2026-04-22 23:20:30 -07:00
Michael Bolin d75207dec4 Merge 731b2ed1a0 into sapling-pr-archive-bolinfest 2026-04-22 23:19:12 -07:00
Michael Bolin cf4848b4a4 Merge 85fa5c059b into sapling-pr-archive-bolinfest 2026-04-22 23:15:01 -07:00
Michael Bolin 85fa5c059b ensure AdditionalFileSystemPermissions is created with entries field set 2026-04-22 23:14:53 -07:00
Michael Bolin 1b2298ff88 tests: isolate approval fixtures from host rules 2026-04-22 23:13:51 -07:00
Michael Bolin 731b2ed1a0 tui: sync session permission profiles 2026-04-22 23:13:51 -07:00
Michael Bolin bcccab7ad7 shell-escalation: carry resolved permission profiles 2026-04-22 23:13:51 -07:00
Michael Bolin 24e5f89cd0 mcp: include permission profiles in sandbox state 2026-04-22 23:13:51 -07:00
Michael Bolin 9d5b125ddd tui: carry permission profiles on user turns 2026-04-22 23:13:51 -07:00
Gav Verma 2ef2d675d6 Clarify cloud requirements error messages (#19078)
## Why
The current cloud-requirements failures say `workspace-managed config`,
which is ambiguous and can read like it refers to local managed config
such as `managed_config.toml`.

This code path only applies to cloud requirements, so the user-facing
message should name that source directly.

## What changed
- Updated the load failure in
[`codex-rs/cloud-requirements/src/lib.rs`](https://github.com/openai/codex/blob/46e704d1f93054daa9a3b5a9100333c540c81d50/codex-rs/cloud-requirements/src/lib.rs)
to say `failed to load cloud requirements (workspace-managed policies)`.
- Updated the parse failure in the same file to use the same `cloud
requirements (workspace-managed policies)` terminology.
- Kept `workspace-managed` hyphenated because it is used as a compound
modifier.
- Updated the matching assertion in
[`codex-rs/app-server/src/codex_message_processor.rs`](https://github.com/openai/codex/blob/46e704d1f93054daa9a3b5a9100333c540c81d50/codex-rs/app-server/src/codex_message_processor.rs).
- Reused `CLOUD_REQUIREMENTS_LOAD_FAILED_MESSAGE` in the
`codex-cloud-requirements` test where the test is asserting that
crate-local contract directly.

## Testing
`cargo test -p codex-cloud-requirements`
2026-04-22 23:07:08 -07:00
Michael Bolin 9f3158defe Merge b53ebc2774 into sapling-pr-archive-bolinfest 2026-04-22 23:02:29 -07:00
Michael Bolin b53ebc2774 ensure AdditionalFileSystemPermissions is created with entries field set 2026-04-22 23:02:19 -07:00
Michael Bolin c91196f343 Merge 73b88f95ee into sapling-pr-archive-bolinfest 2026-04-22 22:57:57 -07:00
Michael Bolin 923084d81c Merge 08df3a31f3 into sapling-pr-archive-bolinfest 2026-04-22 22:55:08 -07:00
Michael Bolin 73b88f95ee tests: isolate approval fixtures from host rules 2026-04-22 22:54:41 -07:00
Michael Bolin 9c6bee159d shell-escalation: carry resolved permission profiles 2026-04-22 22:54:41 -07:00
Michael Bolin f3618d2cd0 mcp: include permission profiles in sandbox state 2026-04-22 22:54:41 -07:00
Michael Bolin b6e06a7c84 tui: carry permission profiles on user turns 2026-04-22 22:54:41 -07:00
Michael Bolin 08df3a31f3 tui: sync session permission profiles 2026-04-22 22:54:40 -07:00
xl-openai 951be1a8a1 feat: Warn and continue on unknown feature requirements (#19038)
Requirements feature flags now fail open like config feature flags, but
with a startup warning.

<img width="443" height="68" alt="image"
src="https://github.com/user-attachments/assets/76767fa7-8ce8-4fc7-8a09-902fcdda6298"
/>
2026-04-22 22:50:44 -07:00
xl-openai fb6308cf64 Use remote plugin IDs for detail reads and enlarge list pages (#19079)
1. For remote plugin use plugin id (plugin name) directly for read
plugin details;
2. Request up to 200 remote plugins per directory list page.
2026-04-22 22:50:20 -07:00
Leo ShimonakaandDylan Hurd 7730fb3ab8 Add computer_use feature requirement key (#19071)
## Summary
- add the `computer_use` requirements-only feature key
- include it in generated config schema output
- cover the new key in feature metadata tests

## Testing
- `cargo test -p codex-features`
- `just write-config-schema`
- `just fmt`
- `just fix -p codex-features`

cc @xl-openai

---------

Co-authored-by: Dylan Hurd <dylan.hurd@openai.com>
2026-04-22 22:49:26 -07:00
Michael Bolin 88520afe2c Merge f2e091cc3e into sapling-pr-archive-bolinfest 2026-04-22 22:45:51 -07:00
Michael Bolin 3f51be045d merge commit for archive created by Sapling 2026-04-22 22:44:53 -07:00
Michael Bolin f2e091cc3e tests: isolate approval fixtures from host rules 2026-04-22 22:44:21 -07:00
Michael Bolin c69c677311 tui: sync session permission profiles 2026-04-22 22:44:21 -07:00
Michael Bolin e8205156ee shell-escalation: carry resolved permission profiles 2026-04-22 22:44:21 -07:00
Michael Bolin cb931f3cf8 mcp: include permission profiles in sandbox state 2026-04-22 22:44:21 -07:00
Michael Bolin 98e4cb1cad tui: carry permission profiles on user turns 2026-04-22 22:44:21 -07:00
Eric Traut 08b5e96678 TUI: preserve permission state after side conversations (#18924)
Addresses #18854

## Why

The `/permissions` selector updates the active TUI session state, but
the cached session snapshot used when replaying a thread could still
contain the old approval or sandbox settings. After opening and leaving
`/side`, the main thread replay could restore those stale settings into
the `ChatWidget`, so the UI and the next submitted turn could fall back
to the old permission mode.

## What

- Sync the active thread's cached `ThreadSessionState` whenever approval
policy, sandbox policy, or approval reviewer changes.

## Verification

Confirmed bug prior to fix and correct behavior after fix.
2026-04-22 22:40:35 -07:00
Michael Bolin 1de4254d2d Merge a21b9e5173 into sapling-pr-archive-bolinfest 2026-04-22 22:36:12 -07:00
Michael Bolin a21b9e5173 tests: isolate approval fixtures from host rules 2026-04-22 22:36:00 -07:00
Michael Bolin b68382f42c shell-escalation: carry resolved permission profiles 2026-04-22 22:36:00 -07:00
Michael Bolin 17d296a6de mcp: include permission profiles in sandbox state 2026-04-22 22:36:00 -07:00