Commit Graph

3520 Commits

Author SHA1 Message Date
Charles Cunningham
ff8a11ffce tui: clarify pending steer normalization invariant 2026-03-02 16:56:50 -08:00
Charles Cunningham
8fac38214c tui: normalize pending steer matching 2026-03-02 16:50:28 -08:00
Charles Cunningham
4ea67e5578 tui: reduce mode submit diff 2026-03-02 16:40:35 -08:00
Charles Cunningham
5fc2f46545 tui: group raw response item with ignored events 2026-03-02 16:39:10 -08:00
Charles Cunningham
6ead619cae tui: clarify plan popup latch semantics 2026-03-02 16:37:37 -08:00
Charles Cunningham
8023f9c8b7 tui: remove dead local history flag 2026-03-02 16:36:25 -08:00
Charles Cunningham
c9d15add61 tui: preserve pending steer mention bindings 2026-03-02 16:34:40 -08:00
Charles Cunningham
238d2fa00f tui: move interrupt restore comment 2026-03-02 16:29:56 -08:00
Charles Cunningham
4a03589330 core: emit leftover user-message lifecycle 2026-03-02 16:15:27 -08:00
Charles Cunningham
625ed448f3 tui: remove stale steer comment 2026-03-02 16:14:52 -08:00
Charles Cunningham
2117d1c365 tui: avoid duplicate replayed assistant messages 2026-03-02 16:14:52 -08:00
Charles Cunningham
4a377df0ec tui: reset plan popup state after steer 2026-03-02 16:14:52 -08:00
Charles Cunningham
5f141c3485 tui: restore pending steers on interrupt 2026-03-02 16:14:52 -08:00
Charles Cunningham
0409dfeea4 tui: share text element rebasing helper 2026-03-02 16:14:52 -08:00
Charles Cunningham
d7e52bc3b2 tui: clear pending steers on interrupt 2026-03-02 16:14:52 -08:00
Charles Cunningham
90b671fbea tui: normalize pending steer keys directly 2026-03-02 16:14:52 -08:00
Charles Cunningham
76c2da4f96 tui: rename queued messages in pending preview 2026-03-02 16:14:52 -08:00
Charles Cunningham
a8a4b7cc17 tui: render committed pending steers 2026-03-02 16:14:52 -08:00
Charles Cunningham
d849e0d7a8 tui: clarify pending steer snapshot text 2026-03-02 16:14:52 -08:00
Charles Cunningham
8d59837ccd tui: reconcile pending steers on item completion 2026-03-02 16:14:51 -08:00
Charles Cunningham
85321ce850 rename nudge to steer 2026-03-02 16:14:31 -08:00
Charles Cunningham
5a548d14b1 tui: refactor assistant message finalization 2026-03-02 16:14:31 -08:00
Charles Cunningham
5b0322599e tui: ignore mirrored live agent messages 2026-03-02 16:14:31 -08:00
Charles Cunningham
0f5a58be65 tui: avoid duplicate user prompt rendering 2026-03-02 16:14:31 -08:00
Charles Cunningham
659768831d tui: simplify pending nudge submit gating 2026-03-02 16:14:31 -08:00
Charles Cunningham
a4025aa62e tui: inline pending nudge submit helper 2026-03-02 16:14:31 -08:00
Charles Cunningham
f3bfc7a07e tui: match pending nudges in queue order 2026-03-02 16:14:31 -08:00
Charles Cunningham
507ea2c601 tui: canonicalize pending nudge matching 2026-03-02 16:14:31 -08:00
Charles Cunningham
6bea79630c tui: drop stale legacy message snapshot test 2026-03-02 16:14:31 -08:00
Charles Cunningham
4fe09d4434 tui: ignore live legacy agent messages while streaming 2026-03-02 16:14:30 -08:00
Charles Cunningham
d566192a01 tui: align pending nudges with core acceptance 2026-03-02 16:14:30 -08:00
Charles Cunningham
781ad5968f tui: simplify interrupt op test helper 2026-03-02 16:13:52 -08:00
Charles Cunningham
cca2112626 tui: flush pending nudges after manual interrupt 2026-03-02 16:13:52 -08:00
Charles Cunningham
ed3606e65b Revert "tui: avoid loop-shaped op drain helpers in tests"
This reverts commit ac277351ad41bad7161ba0b9671890e40c083b59.
2026-03-02 16:13:51 -08:00
Charles Cunningham
4c79524820 tui: avoid loop-shaped op drain helpers in tests 2026-03-02 16:13:51 -08:00
Charles Cunningham
253eeb16b5 tui: format rebased bottom pane imports 2026-03-02 16:13:51 -08:00
Charles Cunningham
985283b7f4 tui: rename preview snapshots 2026-03-02 16:13:51 -08:00
Charles Cunningham
1d5cad006f tui: rename pending input preview 2026-03-02 16:13:51 -08:00
Charles Cunningham
dbb69dd163 tui: submit pending nudges after message boundaries 2026-03-02 16:13:51 -08:00
Ahmed Ibrahim
b20b6aa46f Update realtime websocket API (#13265)
- migrate the realtime websocket transport to the new session and
handoff flow
- make the realtime model configurable in config.toml and use API-key
auth for the websocket

---------

Co-authored-by: Codex <noreply@openai.com>
2026-03-02 16:05:40 -08:00
Owen Lin
d473e8d56d feat(app-server): add tracing to all app-server APIs (#13285)
### Overview
This PR adds the first piece of tracing for app-server JSON-RPC
requests.

There are two main changes:
- JSON-RPC requests can now take an optional W3C trace context at the
top level via a `trace` field (`traceparent` / `tracestate`).
- app-server now creates a dedicated request span for every inbound
JSON-RPC request in `MessageProcessor`, and uses the request-level trace
context as the parent when present.

For compatibility with existing flows, app-server still falls back to
the TRACEPARENT env var when there is no request-level traceparent.

This PR is intentionally scoped to the app-server boundary. In a
followup, we'll actually propagate trace context through the async
handoff into core execution spans like run_turn, which will make
app-server traces much more useful.

### Spans
A few details on the app-server span shape:
- each inbound request gets its own server span
- span/resource names are based on the JSON-RPC method (`initialize`,
`thread/start`, `turn/start`, etc.)
- spans record transport (stdio vs websocket), request id, connection
id, and client name/version when available
- `initialize` stores client metadata in session state so later requests
on the same connection can reuse it
2026-03-02 16:01:41 -08:00
Ruslan Nigmatullin
14fcb6645c app-server: Update thread/name/set to support not-loaded threads (#13282)
Currently `thread/name/set` does only work for loaded threads.
Expand the scope to also support persisted but not-yet-loaded ones for a
more predictable API surface.
This will make it possible to rename threads discovered via
`thread/list` and similar operations.
2026-03-02 15:13:18 -08:00
Josh McKinney
75e7c804ea test(app-server): increase flow test timeout to reduce flake (#11814)
## Summary
- increase `DEFAULT_READ_TIMEOUT` in `codex_message_processor_flow` from
20s to 45s
- keep test behavior the same while avoiding platform timing flakes

## Why
Windows ARM64 CI showed these tests taking about 24s before
`task_complete`, which could fail early and produce wiremock
request-count mismatches.

## Testing
- just fmt
- cargo test -p codex-app-server codex_message_processor_flow --
--nocapture
2026-03-02 12:29:28 -08:00
Dylan Hurd
e10df4ba10 fix(core) shell_snapshot multiline exports (#12642)
## Summary
Codex discovered this one - shell_snapshot tests were breaking on my
machine because I had a multiline env var. We should handle these!

## Testing
- [x] existing tests pass
- [x] Updated unit tests
2026-03-02 12:08:17 -07:00
jif-oai
f8838fd6f3 feat: enable ma through /agent (#13246)
<img width="639" height="139" alt="Screenshot 2026-03-02 at 16 06 41"
src="https://github.com/user-attachments/assets/c006fcec-c1e7-41ce-bb84-c121d5ffb501"
/>

Then
<img width="372" height="37" alt="Screenshot 2026-03-02 at 16 06 49"
src="https://github.com/user-attachments/assets/aa4ad703-e7e7-4620-9032-f5cd4f48ff79"
/>
2026-03-02 18:37:29 +00:00
Charley Cunningham
7979ce453a tui: restore draft footer hints (#13202)
## Summary
- restore `Tab to queue` when a draft is present and the agent is
running
- keep draft-idle footers passive by showing the normal footer or status
line instead of `? for shortcuts`
- align footer snapshot coverage with the updated draft footer behavior

## Codex author
`codex resume 019c7f1c-43aa-73e0-97c7-40f457396bb0`

---------

Co-authored-by: Codex <noreply@openai.com>
2026-03-02 10:26:13 -08:00
Eric Traut
7709bf32a3 Fix project trust config parsing so CLI overrides work (#13090)
Fixes #13076

This PR fixes a bug that causes command-line config overrides for MCP
subtables to not be merged correctly.

Summary
- make project trust loading go through the dedicated struct so CLI
overrides can update trusted project-local MCP transports

---------

Co-authored-by: jif-oai <jif@openai.com>
2026-03-02 11:10:38 -07:00
Michael Bolin
3241c1c6cc fix: use https://git.savannah.gnu.org/git/bash instead of https://github.com/bolinfest/bash (#13057)
Historically, we cloned the Bash repo from
https://github.com/bminor/bash, but for whatever reason, it was removed
at some point.

I had a local clone of it, so I pushed it to
https://github.com/bolinfest/bash so that we could continue running our
CI job. I did this in https://github.com/openai/codex/pull/9563, and as
you can see, I did not tamper with the commit hash we used as the basis
of this build.

Using a personal fork is not great, so this PR changes the CI job to use
what appears to be considered the source of truth for Bash, which is
https://git.savannah.gnu.org/git/bash.git.

Though in testing this out, it appears this Git server does not support
the combination of `git clone --depth 1
https://git.savannah.gnu.org/git/bash` and `git fetch --depth 1 origin
a8a1c2fac029404d3f42cd39f5a20f24b6e4fe4b`, as it fails with the
following error:

```
error: Server does not allow request for unadvertised object a8a1c2fac029404d3f42cd39f5a20f24b6e4fe4b
```

so unfortunately this means that we have to do a full clone instead of a
shallow clone in our CI jobs, which will be a bit slower.

Also updated `codex-rs/shell-escalation/README.md` to reflect this
change.
2026-03-02 09:09:54 -08:00
jif-oai
9a42a56d8f chore: /multiagent alias for /agent (#13249)
Add a `/mutli-agents` alias for `/agent` and update the wording
2026-03-02 16:51:54 +00:00
daveaitel-openai
c2e126f92a core: reuse parent shell snapshot for thread-spawn subagents (#13052)
## Summary
- reuse the parent shell snapshot when spawning/forking/resuming
`SessionSource::SubAgent(SubAgentSource::ThreadSpawn { .. })` sessions
- plumb inherited snapshot through `AgentControl -> ThreadManager ->
Codex::spawn -> SessionConfiguration`
- skip shell snapshot refresh on cwd updates for thread-spawn subagents
so inherited snapshots are not replaced

## Why
- avoids per-subagent shell snapshot creation and cleanup work
- keeps thread-spawn subagents on the parent snapshot path, matching the
intended parent/child snapshot model

## Validation
- `just fmt` (in `codex-rs`)
- `cargo test -p codex-core --no-run`
- `cargo test -p codex-core spawn_agent -- --nocapture`
- `cargo test -p codex-core --test all
suite::agent_jobs::spawn_agents_on_csv_runs_and_exports`

## Notes
- full `cargo test -p codex-core --test all` was left running separately
for broader verification

Co-authored-by: Codex <noreply@openai.com>
2026-03-02 15:53:15 +00:00