Commit Graph
10646 Commits
Author SHA1 Message Date
Michael Bolin 9d5e36c3dc Use released DotSlash package for argument-comment lint 2026-03-19 18:02:11 -07:00
Michael Bolin 324e3accef Merge c3d50256f6 into sapling-pr-archive-bolinfest 2026-03-19 17:51:08 -07:00
Michael Bolin e0fc92b202 merge commit for archive created by Sapling 2026-03-19 17:36:16 -07:00
Michael Bolin bffb0e5530 Use released DotSlash package for argument-comment lint 2026-03-19 17:35:50 -07:00
Michael Bolin 1afeb72376 merge commit for archive created by Sapling 2026-03-19 17:32:16 -07:00
Michael Bolin 0557b94bdf Use released DotSlash package for argument-comment lint 2026-03-19 17:31:56 -07:00
Michael Bolin f046a05883 merge commit for archive created by Sapling 2026-03-19 17:22:01 -07:00
Michael Bolin 009d64a643 Use released DotSlash package for argument-comment lint 2026-03-19 17:21:56 -07:00
Michael Bolin c3d50256f6 core: add an exec capture policy for full output 2026-03-19 17:20:27 -07:00
Michael Bolin f1060f152f merge commit for archive created by Sapling 2026-03-19 17:17:26 -07:00
Michael Bolin 892eba75be Use released DotSlash package for argument-comment lint 2026-03-19 17:16:59 -07:00
Michael Bolin 8cde79bc5b merge commit for archive created by Sapling 2026-03-19 17:09:07 -07:00
Michael Bolin 1f7c71f5c9 Use released DotSlash package for argument-comment lint 2026-03-19 17:08:55 -07:00
pakrym-oai 403b397e4e Refactor ExecServer filesystem split between local and remote (#15232)
For each feature we have:
1. Trait exposed on environment
2. **Local Implementation** of the trait
3. Remote implementation that uses the client to proxy via network
4. Handler implementation that handles PRC requests and calls into
**Local Implementation**
2026-03-19 17:08:04 -07:00
Michael Bolin 272046cb7d Merge eb580e7573 into sapling-pr-archive-bolinfest 2026-03-19 16:46:36 -07:00
Michael Bolin eb580e7573 Use released DotSlash package for argument-comment lint 2026-03-19 16:46:30 -07:00
Michael Bolin 17b3866cc0 merge commit for archive created by Sapling 2026-03-19 16:07:43 -07:00
Michael Bolin 9e9ec8983c core: add a sandbox-backed fs helper 2026-03-19 16:07:25 -07:00
Michael Bolin 44b5edc19c merge commit for archive created by Sapling 2026-03-19 16:04:25 -07:00
Michael Bolin 7bda0558f8 core: add a sandbox-backed fs helper 2026-03-19 16:03:52 -07:00
Michael Bolin bf55a786b1 merge commit for archive created by Sapling 2026-03-19 16:01:11 -07:00
Michael Bolin a65e55d571 core: add a sandbox-backed fs helper 2026-03-19 16:01:06 -07:00
Michael Bolin c5f37f6bea merge commit for archive created by Sapling 2026-03-19 15:59:41 -07:00
Michael Bolin 9e4562b3fc core: add a sandbox-backed fs helper 2026-03-19 15:59:31 -07:00
Michael Bolin 27ffb0b768 merge commit for archive created by Sapling 2026-03-19 15:43:47 -07:00
Michael Bolin 21a06c2db7 core: add a sandbox-backed fs helper 2026-03-19 15:43:39 -07:00
Michael Bolin b5745700d0 merge commit for archive created by Sapling 2026-03-19 15:42:17 -07:00
Michael Bolin ad6148a101 core: add a sandbox-backed fs helper 2026-03-19 15:42:03 -07:00
Michael Bolin 01ad93d499 merge commit for archive created by Sapling 2026-03-19 15:38:57 -07:00
Michael Bolin 1ed9cf650a core: add a sandbox-backed fs helper 2026-03-19 15:38:45 -07:00
Michael Bolin b89317a39a merge commit for archive created by Sapling 2026-03-19 15:32:58 -07:00
Michael Bolin b3f5cda400 core: add a sandbox-backed fs helper 2026-03-19 15:32:40 -07:00
Won Park 6b8175c734 changed save directory to codex_home (#15222)
saving image gen default save directory to
codex_home/imagegen/thread_id/
2026-03-19 15:16:26 -07:00
Owen Lin 9e695fe830 feat(app-server): add mcpServer/startupStatus/updated notification (#15220)
Exposes the legacy `codex/event/mcp_startup_update` event as an API v2
notification.

The legacy event has this shape:
```
#[derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS)]
pub struct McpStartupUpdateEvent {
    /// Server name being started.
    pub server: String,
    /// Current startup status.
    pub status: McpStartupStatus,
}

#[derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS)]
#[serde(rename_all = "snake_case", tag = "state")]
#[ts(rename_all = "snake_case", tag = "state")]
pub enum McpStartupStatus {
    Starting,
    Ready,
    Failed { error: String },
    Cancelled,
}
```
2026-03-19 15:09:59 -07:00
nicholasclark-openaiandCodex 2bee37fe69 Plumb MCP turn metadata through _meta (#15190)
## Summary

Some background. We're looking to instrument GA turns end to end. Right
now a big gap is grouping mcp tool calls with their codex sessions. We
send session id and turn id headers to the responses call but not the
mcp/wham calls.

Ideally we could pass the args as headers like with responses, but given
the setup of the rmcp client, we can't send as headers without either
changing the rmcp package upstream to allow per request headers or
introducing a mutex which break concurrency. An earlier attempt made the
assumption that we had 1 client per thread, which allowed us to set
headers at the start of a turn. @pakrym mentioned that this assumption
might break in the near future.

So the solution now is to package the turn metadata/session id into the
_meta field in the post body and pull out in codex-backend.

- send turn metadata to MCP servers via `tools/call` `_meta` instead of
assuming per-thread request headers on shared clients
- preserve the existing `_codex_apps` metadata while adding
`x-codex-turn-metadata` for all MCP tool calls
- extend tests to cover both custom MCP servers and the codex apps
search flow

---------

Co-authored-by: Codex <noreply@openai.com>
2026-03-19 22:05:13 +00:00
xl-openai 2254ec4f30 feat: expose needs_auth for plugin/read. (#15217)
So UI can render it properly.
2026-03-19 15:02:45 -07:00
Won Park 27977d6716 adding full imagepath to tui (#15154)
adding full path to TUI so image is open-able in the TUI after being
generated. LImited to VSCode Terminal for now.
2026-03-19 21:29:22 +00:00
Michael Bolin e5fecd42b3 merge commit for archive created by Sapling 2026-03-19 14:27:54 -07:00
Michael Bolin 7913ce9352 core: add stdin-backed sandboxed fs writes 2026-03-19 14:26:54 -07:00
Michael Bolin 1ff97ac085 core: route view_image through a sandbox-backed fs helper 2026-03-19 14:26:54 -07:00
Michael Bolin 45fb34f99c core: add a sandbox-backed fs helper 2026-03-19 14:26:54 -07:00
iceweasel-oai 69750a0b5a add specific tool guidance for Windows destructive commands (#15207)
updated Windows shell/unified_exec tool descriptions:

`exec_command`
```text
Runs a command in a PTY, returning output or a session ID for ongoing interaction.

Windows safety rules:
- Do not compose destructive filesystem commands across shells. Do not enumerate paths in PowerShell and then pass them to `cmd /c`, batch builtins, or another shell for deletion or moving. Use one shell end-to-end, prefer native PowerShell cmdlets such as `Remove-Item` / `Move-Item` with `-LiteralPath`, and avoid string-built shell commands for file operations.
- Before any recursive delete or move on Windows, verify the resolved absolute target paths stay within the intended workspace or explicitly named target directory. Never issue a recursive delete or move against a computed path if the final target has not been checked.
```

`shell`
```text
Runs a Powershell command (Windows) and returns its output. Arguments to `shell` will be passed to CreateProcessW(). Most commands should be prefixed with ["powershell.exe", "-Command"].

Examples of valid command strings:

- ls -a (show hidden): ["powershell.exe", "-Command", "Get-ChildItem -Force"]
- recursive find by name: ["powershell.exe", "-Command", "Get-ChildItem -Recurse -Filter *.py"]
- recursive grep: ["powershell.exe", "-Command", "Get-ChildItem -Path C:\\myrepo -Recurse | Select-String -Pattern 'TODO' -CaseSensitive"]
- ps aux | grep python: ["powershell.exe", "-Command", "Get-Process | Where-Object { $_.ProcessName -like '*python*' }"]
- setting an env var: ["powershell.exe", "-Command", "$env:FOO='bar'; echo $env:FOO"]
- running an inline Python script: ["powershell.exe", "-Command", "@'\nprint('Hello, world!')\n'@ | python -"]

Windows safety rules:
- Do not compose destructive filesystem commands across shells. Do not enumerate paths in PowerShell and then pass them to `cmd /c`, batch builtins, or another shell for deletion or moving. Use one shell end-to-end, prefer native PowerShell cmdlets such as `Remove-Item` / `Move-Item` with `-LiteralPath`, and avoid string-built shell commands for file operations.
- Before any recursive delete or move on Windows, verify the resolved absolute target paths stay within the intended workspace or explicitly named target directory. Never issue a recursive delete or move against a computed path if the final target has not been checked.
```

`shell_command`
```text
Runs a Powershell command (Windows) and returns its output.

Examples of valid command strings:

- ls -a (show hidden): "Get-ChildItem -Force"
- recursive find by name: "Get-ChildItem -Recurse -Filter *.py"
- recursive grep: "Get-ChildItem -Path C:\\myrepo -Recurse | Select-String -Pattern 'TODO' -CaseSensitive"
- ps aux | grep python: "Get-Process | Where-Object { $_.ProcessName -like '*python*' }"
- setting an env var: "$env:FOO='bar'; echo $env:FOO"
- running an inline Python script: "@'\nprint('Hello, world!')\n'@ | python -"

Windows safety rules:
- Do not compose destructive filesystem commands across shells. Do not enumerate paths in PowerShell and then pass them to `cmd /c`, batch builtins, or another shell for deletion or moving. Use one shell end-to-end, prefer native PowerShell cmdlets such as `Remove-Item` / `Move-Item` with `-LiteralPath`, and avoid string-built shell commands for file operations.
- Before any recursive delete or move on Windows, verify the resolved absolute target paths stay within the intended workspace or explicitly named target directory. Never issue a recursive delete or move against a computed path if the final target has not been checked.
```
2026-03-19 21:09:34 +00:00
Ahmed IbrahimandCodex 7eb19e5319 Move terminal module to terminal-detection crate (#15216)
- Move core/src/terminal.rs and its tests into a standalone
terminal-detection workspace crate.
- Update direct consumers to depend on codex-terminal-detection and
import terminal APIs directly.

---------

Co-authored-by: Codex <noreply@openai.com>
2026-03-19 14:08:04 -07:00
Owen Lin 668330acc1 feat(tracing): tag app-server turn spans with turn_id (#15206)
So we can find and filter spans by `turn.id`.

We do this for the `turn/start`, `turn/steer`, and `turn/interrupt`
APIs.
2026-03-19 13:07:19 -07:00
Michael Bolin 3b141a1aa1 Merge 399badc0b3 into sapling-pr-archive-bolinfest 2026-03-19 12:54:16 -07:00
Michael Bolin 399badc0b3 core: add stdin-backed sandboxed fs writes 2026-03-19 12:53:49 -07:00
Michael Bolin d5d4a98eb8 merge commit for archive created by Sapling 2026-03-19 12:53:36 -07:00
Michael Bolin b1141b486a core: route view_image through a sandbox-backed fs helper 2026-03-19 12:53:13 -07:00
Michael Bolin 2e1d27522b core: add a sandbox-backed fs helper 2026-03-19 12:53:13 -07:00
Michael Bolin 44f27b32bd Merge 294e1da6d7 into sapling-pr-archive-bolinfest 2026-03-19 12:36:25 -07:00