Commit Graph
1798 Commits
Author SHA1 Message Date
Charles Cunningham fa7f0bb551 compact: strip incoming model-switch before compaction 2026-02-17 17:13:17 -08:00
Charles Cunningham 09e08a5831 compact: snapshot reinjection above last summary 2026-02-17 17:13:17 -08:00
Charles Cunningham 959cf01a31 compact: reinsert context above last summary 2026-02-17 17:13:17 -08:00
Charles Cunningham 5b737fa853 Reinject context for summary-only compacted history 2026-02-17 17:13:17 -08:00
Charles Cunningham 7107158929 Document manual compact turn-context reinjection policy 2026-02-17 17:13:17 -08:00
Charles Cunningham d53761b33a Use explicit user-message predicate for compaction filtering 2026-02-17 17:13:17 -08:00
Charles Cunningham fb0f3d1cd5 Comment 2026-02-17 17:13:17 -08:00
Charles Cunningham 8703a0c79c Comments 2026-02-17 17:13:17 -08:00
Charles Cunningham 781896241e Move pre-turn auto-compact error handling into helper 2026-02-17 17:13:17 -08:00
Charles Cunningham ee34d879be Return sentinel error from model-switch compaction helper 2026-02-17 17:13:17 -08:00
Charles Cunningham 9f00db1395 Move previous-model compact failure handling into helper 2026-02-17 17:13:16 -08:00
Charles Cunningham 152602caa1 Add TODO for legacy compacted history context reinjection 2026-02-17 17:13:16 -08:00
Charles Cunningham 315ffc01df Add comment 2026-02-17 17:13:16 -08:00
Charles Cunningham 32b5f3406d Enable compaction tests and remove stale TODO markers 2026-02-17 17:13:16 -08:00
Charles Cunningham 02eb5152b3 Differentiate model-switch compaction failures from oversize input 2026-02-17 17:12:34 -08:00
Charles Cunningham 6f1f97c715 Rebase: align compaction snapshots and imports 2026-02-17 17:12:34 -08:00
Charles Cunningham 227fad55a3 Avoid wildcard pattern in ResponseEvent::Completed match 2026-02-17 17:12:34 -08:00
Charles Cunningham 8ede3474e6 Align compaction tests with incoming-item and empty-history behavior 2026-02-17 17:12:33 -08:00
Charles Cunningham 708c25cdc8 update snaps 2026-02-17 17:10:48 -08:00
Charles Cunningham b14e40cfeb Update snaps 2026-02-17 17:10:48 -08:00
Charles Cunningham b7be40245b Fix clippy useless_vec in compact_remote test 2026-02-17 17:10:48 -08:00
Charles Cunningham afe5c01d3b Reinject canonical context for model-switch pre-turn compaction 2026-02-17 17:10:48 -08:00
Charles Cunningham 5a5acddcc1 Persist pre-turn updates before apps tool-list cancellation 2026-02-17 17:10:48 -08:00
Charles Cunningham d02dfe4d0a codex: persist pre-turn updates when compaction fails 2026-02-17 17:10:48 -08:00
Charles Cunningham c40132caf9 compact: preserve incoming items during pre-turn trim retries 2026-02-17 17:10:48 -08:00
Charles Cunningham 1e6e4c15ea compact: split core logic changes from snapshot test coverage 2026-02-17 17:10:48 -08:00
Charles Cunningham a62b81cbbe Update pre-sampling model-switch compaction snapshot 2026-02-17 17:10:48 -08:00
Charles Cunningham 3658a2cc4d update snapshot 2026-02-17 17:10:47 -08:00
Charles Cunningham a919cb525b Simplify 2026-02-17 17:10:47 -08:00
Charles Cunningham 107fc70bd0 Fix model switch compaction 2026-02-17 17:10:47 -08:00
Charles Cunningham 8c7e53ed8d Use shared default remote compaction mock in core tests 2026-02-17 16:59:13 -08:00
Charles Cunningham 57e68647bb Document realistic remote compact test helpers 2026-02-17 15:58:57 -08:00
Charles Cunningham a64ec85956 Use realistic remote compact mocks in context-shape snapshots 2026-02-17 15:52:13 -08:00
Charles Cunningham fb757b74f4 Align extracted model-switch snapshots with main behavior 2026-02-17 15:25:39 -08:00
Charles Cunningham 86b296a47d Revert "Move newly added compaction snapshot tests to follow-up PR"
This reverts commit 4fb13213e031e906a2048f0a1caaa73627fd0c96.
2026-02-17 15:21:39 -08:00
gabec-openai 5341ad08f8 Use prompt-based co-author attribution with config override (#11617) 2026-02-17 20:15:54 +00:00
dependabot[bot] 15cd796749 chore(deps): bump arc-swap from 1.8.0 to 1.8.2 in /codex-rs (#11890)
Bumps [arc-swap](https://github.com/vorner/arc-swap) from 1.8.0 to
1.8.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md">arc-swap's
changelog</a>.</em></p>
<blockquote>
<h1>1.8.2</h1>
<ul>
<li>Proper gate of <code>Pin</code> (since 1.39 - we are not using only
<code>Pin</code>, but also
<code>Pin::into_inner</code>, <a
href="https://redirect.github.com/vorner/arc-swap/issues/197">#197</a>).</li>
</ul>
<h1>1.8.1</h1>
<ul>
<li>Some more careful orderings (<a
href="https://redirect.github.com/vorner/arc-swap/issues/195">#195</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vorner/arc-swap/commit/19f0d661a27bb6312c6ba9e19e1453db19c30ab5"><code>19f0d66</code></a>
Version 1.8.2</li>
<li><a
href="https://github.com/vorner/arc-swap/commit/c222a22864dce497f1924eb788f6b05b760a9c10"><code>c222a22</code></a>
Release 1.8.1</li>
<li><a
href="https://github.com/vorner/arc-swap/commit/cccf3548a8c1c83028f3a9cff83d89d1b89b17b8"><code>cccf354</code></a>
Upgrade the other ordering too, for transitivity</li>
<li><a
href="https://github.com/vorner/arc-swap/commit/e94df5511ab2eb0b04959af2505ea1be51e67242"><code>e94df55</code></a>
Merge pull request <a
href="https://redirect.github.com/vorner/arc-swap/issues/195">#195</a>
from 0xfMel/master</li>
<li><a
href="https://github.com/vorner/arc-swap/commit/bd5d3276e4cfc37b90676260c93d8545d9b9b911"><code>bd5d327</code></a>
Fix Debt::pay failure ordering</li>
<li><a
href="https://github.com/vorner/arc-swap/commit/22431daf6411cedfa3ebdf7fd8777dc579858b9a"><code>22431da</code></a>
Merge pull request <a
href="https://redirect.github.com/vorner/arc-swap/issues/189">#189</a>
from atouchet/rdm</li>
<li><a
href="https://github.com/vorner/arc-swap/commit/b142bd81dae89d5f7a934bb399103f7f029faeed"><code>b142bd8</code></a>
Update Readme</li>
<li>See full diff in <a
href="https://github.com/vorner/arc-swap/compare/v1.8.0...v1.8.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=arc-swap&package-manager=cargo&previous-version=1.8.0&new-version=1.8.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-17 11:45:45 -08:00
Matthew Zeng 16fa195fce [apps] Expose more fields from apps listing endpoints. (#11706)
- [x] Expose app_metadata, branding, and labels in AppInfo.
2026-02-17 11:45:04 -08:00
sayan-oai 41800fc876 chore: rm remote models fflag (#11699)
rm `remote_models` feature flag.

We see issues like #11527 when a user has `remote_models` disabled, as
we always use the default fallback `ModelInfo`. This causes issues with
model performance.

Builds on #11690, which helps by warning the user when they are using
the default fallback. This PR will make that happen much less frequently
as an accidental consequence of disabling `remote_models`.
2026-02-17 11:43:16 -08:00
xl-openai 314029ffa3 Add remote skill scope/product_surface/enabled params and cleanup (#11801)
skills/remote/list: params=hazelnutScope, productSurface, enabled;
returns=data: { id, name, description }[]
skills/remote/export: params=hazelnutId; returns={ id, path }
2026-02-17 11:05:22 -08:00
Shijie Rao 48018e9eac Feat: add model reroute notification (#12001)
### Summary
Builiding off
https://github.com/openai/codex/pull/11964/files/5c75aa7b89a70bc2cc410a6fd238749306ec4c5e#diff-058ae8f109a8b84b4b79bbfa45f522c2233b9d9e139696044ae374d50b6196e0,
we have created a `model/rerouted` notification that captures the event
so that consumers can render as expected. Keep the `EventMsg::Warning`
path in core so that this does not affect TUI rendering.

`model/rerouted` is meant to be generic to account for future usage
including capacity planning etc.
2026-02-17 11:02:23 -08:00
sayan-oai a1b8e34938 chore: clarify web_search deprecation notices and consolidate tests (#11224)
follow up to #10406, clarify default-enablement of web_search.

also consolidate pseudo-redundant tests

Tests pass
2026-02-17 18:20:24 +00:00
jif-oai 76283e6b4e feat: move agents config to main config (#11982) 2026-02-17 18:17:19 +00:00
Charley Cunningham cab607befb Centralize context update diffing logic (#11807)
## Summary
This PR centralizes model-visible state diffing for turn context updates
into one module, while keeping existing behavior and call sites stable.

### What changed
- Added `core/src/context_updates.rs` with the consolidated diffing
logic for:
  - environment context updates
  - permissions/policy updates
  - collaboration mode updates
  - model-instruction switch updates
  - personality updates
- Added `BuildSettingsUpdateItemsParams` so required dependencies are
passed explicitly.
- Updated `Session::build_settings_update_items` in `core/src/codex.rs`
to delegate to the centralized module.
- Reused the same centralized `personality_message_for` helper from
initial-context assembly to avoid duplicated logic.
- Registered the new module in `core/src/lib.rs`.

## Why
This is a minimal, shippable step toward the model-visible-state design:
all state diff decisions for turn-context update items now live in one
place, improving reviewability and reducing drift risk without expanding
scope.

## Behavior
- Intended to be behavior-preserving.
- No protocol/schema changes.
- No call-site behavior changes beyond routing through the new
centralized logic.

## Testing
Ran targeted tests in this worktree:
- `cargo test -p codex-core
build_settings_update_items_emits_environment_item_for_network_changes`
- `cargo test -p codex-core collaboration_instructions --test all`

Both passed.

## Codex author
`codex resume 019c540f-3951-7352-a3fa-6f07b834d4ce`
2026-02-17 09:21:44 -08:00
Eric Traut 281b0eae8b Don't allow model_supports_reasoning_summaries to disable reasoning (#11833)
The `model_supports_reasoning_summaries` config option was originally
added so users could enable reasoning for custom models (models that
codex doesn't know about). This is how it was documented in the source,
but its implementation didn't match. It was implemented such that it can
also be used to disable reasoning for models that otherwise support
reasoning. This leads to bad behavior for some reasoning models like
`gpt-5.3-codex`. Diagnosing this is difficult, and it has led to many
support issues.

This PR changes the handling of `model_supports_reasoning_summaries` so
it matches its original documented behavior. If it is set to false, it
is a no-op. That is, it never disables reasoning for models that are
known to support reasoning. It can still be used for its intended
purpose -- to enable reasoning for unknown models.
2026-02-17 07:19:28 -08:00
jif-oai 56cd85cd4b nit: wording multi-agent (#11986) 2026-02-17 11:45:59 +00:00
jif-oai 77f74a5c17 fix: race in js repl (#11922)
js_repl_reset previously raced with in-flight/new js_repl executions
because reset() could clear exec_tool_calls without synchronizing with
execute(). In that window, a running exec could lose its per-exec
tool-call context, and subsequent kernel RunTool messages would fail
with js_repl exec context not found. The fix serializes reset and
execute on the same exec_lock, so reset cannot run concurrently with
exec setup/teardown. We also keep the timeout path safe by performing
reset steps inline while execute() already holds the lock, avoiding
re-entrant lock acquisition. A regression test now verifies that reset
waits for the exec lock and does not clear tool-call state early.
2026-02-17 11:06:14 +00:00
jif-oai 846464e869 fix: js_repl reset hang by clearing exec tool calls without waiting (#11932)
Remove the waiting loop in `reset` so it no longer blocks on potentially
hanging exec tool calls + add `clear_all_exec_tool_calls_map` to drain
the map and notify waiters so `reset` completes immediately
2026-02-17 08:40:54 +00:00
Dylan Hurd 0fbe10a807 fix(core) exec_policy parsing fixes (#11951)
## Summary
Fixes a few things in our exec_policy handling of prefix_rules:
1. Correctly match redirects specifically for exec_policy parsing. i.e.
if you have `prefix_rule(["echo"], decision="allow")` then `echo hello >
output.txt` should match - this should fix #10321
2. If there already exists any rule that would match our prefix rule
(not just a prompt), then drop it, since it won't do anything.


## Testing
- [x] Updated unit tests, added approvals ScenarioSpecs
2026-02-16 23:11:59 -08:00
Fouad Matin 02e9006547 add(core): safety check downgrade warning (#11964)
Add per-turn notice when a request is downgraded to a fallback model due
to cyber safety checks.

**Changes**

- codex-api: Emit a ServerModel event based on the openai-model response
header and/or response payload (SSE + WebSocket), including when the
model changes mid-stream.
- core: When the server-reported model differs from the requested model,
emit a single per-turn warning explaining the reroute to gpt-5.2 and
directing users to Trusted
    Access verification and the cyber safety explainer.
- app-server (v2): Surface these cyber model-routing warnings as
synthetic userMessage items with text prefixed by Warning: (and document
this behavior).
2026-02-16 22:13:36 -08:00