Michael Bolin
e075405903
merge commit for archive created by Sapling
2026-02-23 19:46:13 -08:00
Michael Bolin
4452a8dcc6
refactor: remove exec-server MCP shell tool support
2026-02-23 19:46:04 -08:00
Michael Bolin
dd05ef913f
Merge fcf0efa701 into sapling-pr-archive-bolinfest
2026-02-23 19:38:10 -08:00
Michael Bolin
fcf0efa701
refactor: remove exec-server MCP shell tool support
2026-02-23 19:37:37 -08:00
Michael Bolin
a00e85c008
merge commit for archive created by Sapling
2026-02-23 19:31:56 -08:00
Michael Bolin
b1f51a204b
refactor: remove exec-server MCP shell tool support
2026-02-23 19:31:47 -08:00
Michael Bolin
a1cc382117
merge commit for archive created by Sapling
2026-02-23 19:20:27 -08:00
Michael Bolin
54cb0c67c4
refactor: remove exec-server MCP shell tool support
2026-02-23 19:20:08 -08:00
Michael Bolin
e6569f81f8
Merge 9c3cbc35b4 into sapling-pr-archive-bolinfest
2026-02-23 19:13:29 -08:00
Michael Bolin
9c3cbc35b4
refactor: remove exec-server MCP shell tool support
2026-02-23 19:13:19 -08:00
Javi
5a3bdcb27b
app-server: fix connecting via websockets with Sec-WebSocket-Extensions: permessage-deflate ( #12629 )
...
# External (non-OpenAI) Pull Request Requirements
Before opening this Pull Request, please read the dedicated
"Contributing" markdown file or your PR may be closed:
https://github.com/openai/codex/blob/main/docs/contributing.md
If your PR conforms to our contribution guidelines, replace this text
with a detailed and high quality description of your changes.
Include a link to a bug report or enhancement request.
2026-02-24 02:41:03 +00:00
Michael Bolin
dd1589e8b5
Merge b8ff8d0b27 into sapling-pr-archive-bolinfest
2026-02-23 18:37:39 -08:00
d580995957
Update models.json ( #11408 )
...
Automated update of models.json.
---------
Co-authored-by: sayan-oai <244841968+sayan-oai@users.noreply.github.com >
Co-authored-by: sayan-oai <sayan@openai.com >
2026-02-23 18:37:31 -08:00
Michael Bolin
b8ff8d0b27
refactor: remove exec-server MCP shell tool support
2026-02-23 18:37:24 -08:00
Michael Bolin
bccdf77885
merge commit for archive created by Sapling
2026-02-23 18:31:49 -08:00
Michael Bolin
a14abcb915
refactor: remove exec-server MCP shell tool support
2026-02-23 18:31:33 -08:00
Michael Bolin
7cc91939a6
Merge beaffad47e into sapling-pr-archive-bolinfest
2026-02-23 17:34:32 -08:00
Michael Bolin
beaffad47e
refactor: adapt exec-server to shell-escalation executor API
2026-02-23 17:34:21 -08:00
Michael Bolin
b9fe46fb04
refactor: prepare shell-escalation for reusable executors
2026-02-23 17:34:21 -08:00
Michael Bolin
b08c226878
merge commit for archive created by Sapling
2026-02-23 17:06:43 -08:00
Michael Bolin
df088e0219
refactor: adapt exec-server to shell-escalation executor API
2026-02-23 17:06:31 -08:00
Michael Bolin
420df62354
refactor: prepare shell-escalation for reusable executors
2026-02-23 17:06:31 -08:00
Ahmed Ibrahim
10a3adad8e
Handle realtime spawn_transcript delegation ( #12619 )
2026-02-23 14:39:07 -08:00
855e275591
voice transcription ( #3381 )
...
Adds voice transcription on press-and-hold of spacebar.
https://github.com/user-attachments/assets/85039314-26f3-46d1-a83b-8c4a4a1ecc21
---------
Co-authored-by: Codex <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>
Co-authored-by: David Zbarsky <zbarsky@openai.com >
2026-02-23 22:15:18 +00:00
Michael Bolin
6652aa9587
merge commit for archive created by Sapling
2026-02-23 13:12:55 -08:00
Michael Bolin
7af1a1d42e
refactor: adapt exec-server to shell-escalation executor API
2026-02-23 13:12:45 -08:00
Michael Bolin
a4a59f9f34
refactor: prepare shell-escalation for reusable executors
2026-02-23 13:12:45 -08:00
Michael Bolin
5284f88084
merge commit for archive created by Sapling
2026-02-23 13:05:24 -08:00
Michael Bolin
d112a5a8c8
refactor: adapt exec-server to shell-escalation executor API
2026-02-23 13:04:58 -08:00
Michael Bolin
7daa75e136
refactor: prepare shell-escalation for reusable executors
2026-02-23 13:04:58 -08:00
sayan-oai
50953ea39a
fix: show command running in background terminal in details under status indicator ( #12549 )
...
#### What
Display in-progress background terminal command in `status.details`
(right under header) rather than inline, as it gets cut off currently.
###### Before
<img width="993" height="395" alt="image"
src="https://github.com/user-attachments/assets/6792b666-8184-40f7-bf29-409bb06c21d5 "
/>
###### After
<img width="469" height="137" alt="image"
src="https://github.com/user-attachments/assets/4d6a2481-bd19-4333-8c1a-92f521b09b3d "
/>
#### Tests
Added/updated tests
2026-02-23 21:04:24 +00:00
dependabot[bot]
cd5acf6af7
chore(deps): bump owo-colors from 4.2.3 to 4.3.0 in /codex-rs ( #12530 )
...
Bumps [owo-colors](https://github.com/owo-colors/owo-colors ) from 4.2.3
to 4.3.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/owo-colors/owo-colors/releases ">owo-colors's
releases</a>.</em></p>
<blockquote>
<h2>owo-colors 4.3.0</h2>
<h3>Fixed</h3>
<ul>
<li>Scripts in the <code>scripts/</code> directory are no longer
published in the crate package. Thanks <a
href="https://redirect.github.com/owo-colors/owo-colors/pull/152 ">weiznich</a>
for your first contribution!</li>
</ul>
<h3>Changed</h3>
<ul>
<li>
<p>Mark methods with
<code>#[rust_analyzer::completions(ignore_flyimport)]</code> and the
<code>OwoColorize</code> trait with
<code>#[rust_analyzer::completions(ignore_flyimport_methods)]</code>.
This prevents owo-colors methods from being completed with rust-analyzer
unless the <code>OwoColorize</code> trait is included.</p>
<p>Unfortunately, this also breaks explicit autocomplete commands such
as Ctrl-Space in many editors. (The language server protocol doesn't
appear to have a way to differentiate between implicit and explicit
autocomplete commands.) On balance we believe this is the right
approach, but please do provide feedback on [PR <a
href="https://redirect.github.com/owo-colors/owo-colors/issues/141 ">#141</a>](<a
href="https://redirect.github.com/owo-colors/owo-colors/pull/141 ">owo-colors/owo-colors#141</a>)
if it negatively affects you.</p>
</li>
<li>
<p>Updated MSRV to Rust 1.81.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/owo-colors/owo-colors/blob/main/CHANGELOG.md ">owo-colors's
changelog</a>.</em></p>
<blockquote>
<h2>[4.3.0] - 2026-02-22</h2>
<h3>Fixed</h3>
<ul>
<li>Scripts in the <code>scripts/</code> directory are no longer
published in the crate package. Thanks <a
href="https://redirect.github.com/owo-colors/owo-colors/pull/152 ">weiznich</a>
for your first contribution!</li>
</ul>
<h3>Changed</h3>
<ul>
<li>
<p>Mark methods with
<code>#[rust_analyzer::completions(ignore_flyimport)]</code> and the
<code>OwoColorize</code> trait with
<code>#[rust_analyzer::completions(ignore_flyimport_methods)]</code>.
This prevents owo-colors methods from being completed with rust-analyzer
unless the <code>OwoColorize</code> trait is included.</p>
<p>Unfortunately, this also breaks explicit autocomplete commands such
as Ctrl-Space in many editors. (The language server protocol doesn't
appear to have a way to differentiate between implicit and explicit
autocomplete commands.) On balance we believe this is the right
approach, but please do provide feedback on [PR <a
href="https://redirect.github.com/owo-colors/owo-colors/issues/141 ">#141</a>](<a
href="https://redirect.github.com/owo-colors/owo-colors/pull/141 ">owo-colors/owo-colors#141</a>)
if it negatively affects you.</p>
</li>
<li>
<p>Updated MSRV to Rust 1.81.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/owo-colors/owo-colors/commit/baf10f9a74007501379afdc002394a15a787dc59 "><code>baf10f9</code></a>
[owo-colors] version 4.3.0</li>
<li><a
href="https://github.com/owo-colors/owo-colors/commit/6abe2026c56ef6eefda30d417462f28f9ea8854d "><code>6abe202</code></a>
[meta] prepare changelog</li>
<li><a
href="https://github.com/owo-colors/owo-colors/commit/ca814470410c819568b381b9b2b3f7a184e7de28 "><code>ca81447</code></a>
[RFC] add ignore_flyimport and ignore_flyimport_methods (<a
href="https://redirect.github.com/owo-colors/owo-colors/issues/141 ">#141</a>)</li>
<li><a
href="https://github.com/owo-colors/owo-colors/commit/61de72e7f9487a945e8ea59afb9aa1b2046a2bd7 "><code>61de72e</code></a>
Exclude development script from published package (<a
href="https://redirect.github.com/owo-colors/owo-colors/issues/152 ">#152</a>)</li>
<li><a
href="https://github.com/owo-colors/owo-colors/commit/b2ad6bcd4156207bcbc4c756c0c926e02667a872 "><code>b2ad6bc</code></a>
update MSRV to Rust 1.81 (<a
href="https://redirect.github.com/owo-colors/owo-colors/issues/156 ">#156</a>)</li>
<li>See full diff in <a
href="https://github.com/owo-colors/owo-colors/compare/v4.2.3...v4.3.0 ">compare
view</a></li>
</ul>
</details>
<br />
[](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-23 13:01:15 -08:00
Beehive Innovations
be4203023d
fix(tui): queue steer Enter while final answer is still streaming to prevent dead state ( #12569 )
...
## Summary
This fixes a TUI race (https://github.com/openai/codex/issues/11008 )
where pressing Enter with Steer enabled while the assistant is still
streaming the final answer could put Codex into a non-recoverable
“running” state (no further prompts handled until exiting and resuming).
## Root Cause
In steer mode, `InputResult::Submitted` could submit immediately even
while a final-answer stream was active. That immediate submission races
with turn completion and can strand turn state.
## Fix
When handling `InputResult::Submitted`, we now queue instead of
immediate-submit if a final-answer stream is active
(`stream_controller.is_some()`).
This keeps behavior deterministic:
- Prompt is preserved in the queue.
- `on_task_complete()` drains queued input through
`maybe_send_next_queued_input()`.
- Follow-up prompts continue in FIFO order after completion.
## Why this resolves the “dead mode”
The problematic timing window is now converted into queueing, so prompts
entered during final streaming are not lost and are processed after the
current output ends. The model continues handling prompts normally
without requiring `/quit` + `resume`.
## Tests
Added regression coverage in `tui/src/chatwidget/tests.rs`:
- `steer_enter_queues_while_final_answer_stream_is_active`
- `steer_enter_during_final_stream_preserves_follow_up_prompts_in_order`
Both fail on old behavior and pass with this fix.
2026-02-23 12:58:40 -08:00
Michael Bolin
ebe8b8b852
Merge 59d883e8e1 into sapling-pr-archive-bolinfest
2026-02-23 12:15:20 -08:00
Felipe Coury
48e08a1561
fix(tui): recover on owned wrap mapping mismatch ( #12609 )
...
## Summary
- Replace the `panic!` in `map_owned_wrapped_line_to_range` with a
recoverable flow that skips synthetic leading characters, logs a warning
on mid-line mismatch, and returns the mapped prefix range instead of
crashing
- Fixes a crash when `textwrap` produces owned lines with synthetic
indent prefixes (e.g. non-space indents via
`initial_indent`/`subsequent_indent`)
## Test plan
- [x] Added unit test for direct mismatch recovery
(`map_owned_wrapped_line_to_range_recovers_on_non_prefix_mismatch`)
- [x] Added end-to-end `wrap_ranges` test with non-space indents that
forces owned wrapped lines and validates full source reconstruction
- [x] Verify no regressions in existing `wrapping.rs` tests (`cargo test
-p codex-tui`)
2026-02-23 20:14:50 +00:00
Michael Bolin
59d883e8e1
refactor: adapt exec-server to shell-escalation executor API
2026-02-23 12:14:32 -08:00
Michael Bolin
3a5ddec697
refactor: prepare shell-escalation for reusable executors
2026-02-23 12:14:32 -08:00
Michael Bolin
af4b113f16
Merge b5f7151ee5 into sapling-pr-archive-bolinfest
2026-02-23 12:06:42 -08:00
Michael Bolin
b5f7151ee5
refactor: adapt exec-server to shell-escalation executor API
2026-02-23 11:57:12 -08:00
Michael Bolin
97687a49a5
refactor: prepare shell-escalation for reusable executors
2026-02-23 11:55:06 -08:00
sayan-oai
bfe622f495
fix: add ellipsis for truncated status indicator ( #12540 )
...
#### What
- Add ellipsis truncation of the status indicator, similar to equivalent
truncation done in the footer.
- Extract truncation helpers into separate file
https://github.com/user-attachments/assets/a2d5f22f-8adc-456e-8059-97359194c25c
#### Tests
Updated relevant snapshot tests
2026-02-23 11:45:46 -08:00
Michael Bolin
27fd7e82f3
Merge e5d2c4eab0 into sapling-pr-archive-bolinfest
2026-02-23 11:42:00 -08:00
Michael Bolin
e5d2c4eab0
feat: implement zsh shell tool via shell-escalation
2026-02-23 11:41:54 -08:00
Michael Bolin
891f6bcb40
merge commit for archive created by Sapling
2026-02-23 11:37:54 -08:00
Michael Bolin
2321db1a2a
feat: implement zsh shell tool via shell-escalation
2026-02-23 11:37:45 -08:00
Michael Bolin
08294826e4
merge commit for archive created by Sapling
2026-02-23 11:13:59 -08:00
Michael Bolin
a354fe49c3
feat: implement zsh shell tool via shell-escalation
2026-02-23 11:13:48 -08:00
Michael Bolin
f9acca4781
Merge 063035d996 into sapling-pr-archive-bolinfest
2026-02-23 10:46:11 -08:00
Michael Bolin
063035d996
feat: implement zsh shell tool via shell-escalation
2026-02-23 10:32:37 -08:00
Michael Bolin
7f75e74201
Use Arc-based ToolCtx in tool runtimes ( #12583 )
...
## Why
Tool handlers and runtimes needed to pass the same turn/session context
for shell and non-shell workflows without duplicative ownership churn.
Using shared pointers avoids temporary lifetimes and keeps existing
behavior unchanged while simplifying call sites.
## What changed
- Converted `ToolCtx` to store shared context handles (`Arc`-based),
including updates across shell, apply-patch, and unified-exec paths.
- Updated orchestrator/runtime call sites to consume the shared context
consistently and remove brittle move/borrow patterns.
- Kept behavior unchanged while preparing the type surface for the new
shell escalation integration in the next stack commit.
## Verification
- Validated this commit stack point with `just clippy` and confirmed
workspace compiles cleanly in this stack state.
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com ). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/12583 ).
* #12584
* __->__ #12583
* #12556
2026-02-23 18:29:26 +00:00