Commit Graph
6987 Commits
Author SHA1 Message Date
Chris Bookholt 061e51e43e git-utils: isolate async status guard 2026-07-01 19:26:53 -07:00
Chris Bookholt c1ca3c54ea git-utils: preserve sentinel filter status checks 2026-07-01 19:23:23 -07:00
Chris Bookholt 24af5563ec Merge commit 'f751377d1e3c9007e1ffa57fd9e4dccfc5c47f91' into codex/psec-4396-git-07-status-guard 2026-07-01 19:18:45 -07:00
Chris Bookholt f751377d1e git-utils: harden reverse patch staging 2026-07-01 19:14:52 -07:00
Chris Bookholt 51ee6d1955 Merge commit '17f491ab674d00026b4481d9ef373782bdf6a332' into codex/psec-4394-git-06-merge-guard
# Conflicts:
#	codex-rs/git-utils/src/patch_paths.rs
2026-07-01 19:02:20 -07:00
Chris Bookholt 17f491ab67 git-utils: stage patch paths without recursive add 2026-07-01 18:57:30 -07:00
Chris Bookholt 4761533064 git-utils: fix direct reverse apply reporting 2026-07-01 16:38:24 -07:00
Chris Bookholt d98e980a31 git-utils: scope filter test helpers to tests 2026-07-01 16:34:53 -07:00
Chris Bookholt d3be0bb9ba Merge commit 'f2874f80f9bed1a1c8721322987ca30823459ac2' into codex/psec-4394-git-06-merge-guard 2026-07-01 16:24:28 -07:00
Chris Bookholt 1c13ea9533 git-utils: close merge-driver apply races 2026-07-01 16:24:15 -07:00
Chris Bookholt 01706485c3 Merge branch 'codex/psec-4394-git-05b-stage-filters' into codex/psec-4394-git-06-merge-guard
# Conflicts:
#	codex-rs/git-utils/src/apply.rs
2026-07-01 16:22:49 -07:00
Chris Bookholt f2874f80f9 Merge branch 'codex/psec-4394-git-05a-apply-filters' into codex/psec-4394-git-05b-stage-filters 2026-07-01 16:21:28 -07:00
Chris Bookholt 68da17b9d8 Merge branch 'codex/psec-4394-git-03-path-containment' into codex/psec-4394-git-05a-apply-filters 2026-07-01 16:21:13 -07:00
Chris Bookholt 21bcee35e4 Merge branch 'codex/psec-4394-git-02-effective-patch-paths' into codex/psec-4394-git-03-path-containment 2026-07-01 16:21:00 -07:00
Chris Bookholt e76a347987 Merge branch 'codex/psec-4394-trusted-git-runner' into codex/psec-4394-git-02-effective-patch-paths 2026-07-01 16:20:46 -07:00
Chris Bookholt f062f6916e git-utils: reject raw Windows PATH traversal 2026-07-01 16:20:33 -07:00
Chris Bookholt 9e5c564829 git-utils: serialize Git error paths safely 2026-07-01 16:18:03 -07:00
Chris Bookholt 19a85ed470 git-utils: normalize required filter booleans 2026-07-01 16:13:43 -07:00
Chris Bookholt 9dcd750de7 Merge apply filter neutralization into staging guard 2026-07-01 16:09:25 -07:00
Chris Bookholt edce1cb0c5 git-utils: refine staging filter policy 2026-07-01 16:00:25 -07:00
Chris Bookholt 98635fbb42 Merge branch 'codex/psec-4394-git-03-path-containment' into codex/psec-4394-git-05a-apply-filters 2026-07-01 15:59:00 -07:00
Chris Bookholt bed78fad06 git-utils: neutralize off-path filter helpers 2026-07-01 15:58:52 -07:00
Chris Bookholt 48fde8c368 Merge branch 'codex/psec-4394-git-02-effective-patch-paths' into codex/psec-4394-git-03-path-containment 2026-07-01 15:51:09 -07:00
Chris Bookholt 5045e45bf8 Merge branch 'codex/psec-4394-trusted-git-runner' into codex/psec-4394-git-02-effective-patch-paths 2026-07-01 15:51:00 -07:00
Chris Bookholt b262c52803 git-utils: mirror resolver roots in traversal test 2026-07-01 15:50:37 -07:00
Chris Bookholt 4bf391509e Merge branch 'codex/psec-4394-git-03-path-containment' into codex/psec-4394-git-05a-apply-filters
# Conflicts:
#	codex-rs/git-utils/src/apply.rs
2026-07-01 15:25:38 -07:00
Chris Bookholt 17920f9a57 Merge branch 'codex/psec-4394-git-02-effective-patch-paths' into codex/psec-4394-git-03-path-containment 2026-07-01 15:24:02 -07:00
Chris Bookholt 6a7530f161 Merge branch 'codex/psec-4394-trusted-git-runner' into codex/psec-4394-git-02-effective-patch-paths 2026-07-01 15:23:52 -07:00
Chris Bookholt 9ec1720f7c git-utils: reject Git from enclosing repositories 2026-07-01 15:22:59 -07:00
Chris Bookholt 5b1fe8c0f2 git-utils: fix selected filter edge cases 2026-07-01 15:17:42 -07:00
Chris Bookholt 52b2106666 git-utils: report safe status refusals 2026-07-01 12:43:06 -07:00
Chris Bookholt 49a1515c1a git-utils: gate selected merge drivers before three-way apply 2026-07-01 11:12:26 -07:00
Chris Bookholt db8a0aeadf git-utils: block selected filters before staging 2026-07-01 10:43:30 -07:00
Chris Bookholt 0b84913ea8 git-utils: block selected patch filters 2026-07-01 10:21:29 -07:00
Chris Bookholt c21e78bbd6 git-utils: normalize Windows junction test paths 2026-07-01 10:20:33 -07:00
Chris Bookholt 4c0a1feded git-utils: consume confined staging candidates 2026-07-01 09:57:14 -07:00
Chris Bookholt 7cdf6b09bc git-utils: confine staged paths to the worktree 2026-07-01 09:34:06 -07:00
Chris Bookholt 843f07e265 Derive effective patch paths through Git 2026-07-01 08:37:37 -07:00
Chris Bookholt 2ca4f55c0d Bind Git worktree helpers to a trusted executable 2026-07-01 07:45:11 -07:00
Chris Bookholt ec69e784c2 Handle Windows environment overrides safely 2026-06-30 11:54:44 -07:00
Chris Bookholt f6122dbf59 Deny transport for local-only Git operations 2026-06-29 15:46:01 -07:00
Eric Traut 9d13291955 Update safety check links (#30491)
## Summary

Bio/Cyber safety surfaces in the TUI could send users to stale Trusted
Access pages, and safety buffering did not always expose the Help
Center.

This follow-up to #30317 adds the missing Learn more action, refreshes
the Bio access URL and block copy, and updates the affected snapshots
while preserving the existing retry and wait behavior.
2026-06-29 11:10:11 -07:00
Shijie Rao 80f54d1266 [codex] Treat max as a first-class reasoning effort (#30467)
## Why

The Bedrock GPT-5.6 catalog advertises `max`, but Codex treated it as an
opaque custom effort. That made the reasoning picker render it as
lowercase `max` while known efforts use productized labels.

Making `max` a known effort aligns catalog data, parsing, and UI
presentation without changing the `max` wire value or persisted
representation.

## What changed

- Add first-class `ReasoningEffort::Max` parsing and serialization.
- Use the typed effort in the Bedrock catalog and render it as `Max` in
the TUI.
- Preserve forward-compatible custom-effort coverage with a genuinely
unknown `future` value.

### Before
<img width="559" height="124" alt="Screenshot 2026-06-28 at 12 08 47 PM"
src="https://github.com/user-attachments/assets/7c43cf4f-020b-4605-9239-0a9c97eb7364"
/>

### After
<img width="558" height="107" alt="Screenshot 2026-06-28 at 12 09 10 PM"
src="https://github.com/user-attachments/assets/b9cc5ded-c940-43b4-b024-bba25abe0a17"
/>
2026-06-29 09:38:49 -07:00
Dylan Hurd ccdfb4f342 Revert "Make auto-review on-request prompt more proactive" (#30508)
Reverts openai/codex#26496
2026-06-28 20:40:55 -07:00
Ahmed Ibrahim 8dac605901 [codex] Restore v1 delegation guidance (#30511)
## Summary

- restore the v1 clarification that requests for depth, research, or
investigation do not authorize subagent spawning
- restore guidance for keeping critical-path, urgent, tightly coupled,
or difficult work local
- update the focused v1 tool-search and spawn-description coverage

## Why

PR #27919 simplified the v1 `spawn_agent` prompt by removing its
delegation decision guidance. That left the authorization rule intact,
but removed the instructions that constrained what should be delegated
after spawning was authorized.

Restore those guardrails while preserving later support for explicit
delegation authorization from applicable AGENTS.md and skill
instructions. Multi-agent v2 prompts are unchanged.

## User impact

Models using the v1 multi-agent tool surface receive clearer guidance to
delegate independent side work while keeping blocking work on the main
rollout.

## Validation

- `just fmt`
- `git diff --check`
- tests not run locally per repository guidance; CI will validate the
focused coverage
2026-06-28 20:34:47 -07:00
ani-oai 6b5f5743b3 [codex] Use model metadata for skills usage instructions (#29740)
## Summary

- add a false-by-default `include_skills_usage_instructions` model
metadata field
- enable the field for the bundled `gpt-5.5` model metadata
- consume the metadata in both core and extension skill rendering
- remove hardcoded legacy-model matching and its marker plumbing
2026-06-29 09:44:36 +09:00
Felipe Coury 850da19dc4 fix(tui): clear completed safety buffering prompt (#30490)
## Why

The safety-buffering prompt is a modal TUI view, but the normal
successful-turn path only hid the running status indicator. If the turn
completed while the prompt was open, the stale modal remained over the
composer until the user dismissed it or another turn started.

This aligns the TUI with the app behavior: keep the safety notice
visible while the turn is active, then remove it when the turn becomes
terminal. It also prevents the stale retry action from changing the
model and reasoning effort for a future turn after the buffered turn has
already completed.

| New copy |
|---|
| <img width="1014" height="313" alt="CleanShot 2026-06-28 at 20 27 18"
src="https://github.com/user-attachments/assets/f0f37359-5d77-442f-add2-9d1874bdc422"
/> |

## What changed

- Clear the active safety-buffering view and retry state when a turn
completes successfully.
- Update the retry-capable message to say “Hang tight or retry with a
faster model”.
- Extend the safety-buffering regression coverage to verify that the
prompt remains visible after assistant output starts and disappears when
the turn completes.
- Update the TUI snapshot for the revised copy.

This is a follow-up to #29919.

## How to Test

1. Start a TUI turn that receives `model/safetyBuffering/updated` with
`showBufferingUi: true` and a `fasterModel`.
2. Confirm the prompt says “Hang tight or retry with a faster model”.
3. Let the turn continue and confirm the prompt remains visible while
the turn is active.
4. Let the turn finish successfully and confirm the prompt disappears
and the composer is restored without requiring an extra keypress.
5. Confirm a buffering update without a faster model still shows the
shorter non-retry message.

Targeted automated coverage:

- `just test -p codex-tui safety_buffering` — 4 passed.
- `just test -p codex-tui` — 2,951 passed; two unrelated Guardian
feature-flag tests failed identically on `main` in this environment.

The argument-comment lint was also audited manually. The workspace Bazel
invocation was blocked by a missing external LLVM `compiler-rt` BUILD
file, and the packaged per-crate fallback uses a nightly older than the
current `sqlx` minimum Rust version.
2026-06-28 20:55:53 -03:00
xl-openai e428a12d22 [codex] Enable remote plugins by default (#30297)
## Summary

- enable the remote plugin feature by default
- promote the remote plugin feature from under development to stable
- preserve the existing `features.remote_plugin` override for explicitly
disabling it
- keep legacy disabled-path coverage explicit in TUI and app-server
tests

## Impact

Remote plugin functionality is enabled by default for configurations
that do not set the feature flag. The existing Codex backend
authentication gate still applies.

## Validation

- `just fmt`
- `just test -p codex-features`
- `just test -p codex-tui
plugins_popup_remote_section_fallback_states_snapshot`
- targeted `codex-app-server` plugin-list and skills-list tests
- `git diff --check`

The full TUI and app-server suites were also exercised locally. All
remote-plugin-related coverage passed; unrelated local
sandbox/test-binary failures remain outside this change.
2026-06-28 11:46:25 -07:00
rka-oai bdd282f3bb [app-server] increase currentTime/read timeout (#30384)
## Summary

Increase the external currentTime/read request timeout from 5 seconds to
10 seconds.

## Validation

- just fmt
- Focused app-server test build was stopped to defer validation to CI.
2026-06-27 16:42:03 -07:00
xl-openai 9dbdb4e2c0 [plugins] Enforce marketplace source policy at runtime (#29691)
## Summary

- project effective marketplace/plugin config through the enterprise
source policy so blocked installed plugins become inactive
- filter plugin list/read/discovery and CLI marketplace source/snapshot
reporting using the same policy
- enforce source admission for background marketplace cache refreshes
- continue refreshing/upgrading independent marketplaces and plugins
when one entry fails, returning per-entry errors
- include policy-projected plugin state in cache and refresh keys so
requirement changes invalidate stale results

## Stack

This is PR 2 of 2 and is based on #29690. Review the admission model and
source matcher in #29690 first; this PR contains only runtime
enforcement.

## Test plan

- `just test -p codex-core-plugins` (287 tests)
- `just test -p codex-cli
plugin_list_ignores_implicit_system_marketplace_roots_without_manifests`
- `cargo check -p codex-cli -p codex-app-server --tests`
2026-06-27 15:22:05 -07:00