Commit Graph
3941 Commits
Author SHA1 Message Date
Michael Bolin 5fa61a5969 merge commit for archive created by Sapling 2025-09-25 16:41:15 -07:00
Michael Bolin 4bc5389c28 feat: introduce responses-api-proxy 2025-09-25 16:40:24 -07:00
Michael Bolin b9a73c3617 merge commit for archive created by Sapling 2025-09-25 16:25:50 -07:00
Michael Bolin 2ea027f55f feat: introduce responses-api-proxy 2025-09-25 16:25:44 -07:00
Michael Bolin a0b2bafb68 merge commit for archive created by Sapling 2025-09-25 15:59:30 -07:00
Michael Bolin 4b50983b5d feat: introduce responses-api-proxy 2025-09-25 15:59:07 -07:00
Michael Bolin 53fdaceb28 merge commit for archive created by Sapling 2025-09-25 15:34:57 -07:00
Michael Bolin 03889eaf91 feat: introduce responses-api-proxy 2025-09-25 15:34:42 -07:00
Michael Bolin 5ffa699866 merge commit for archive created by Sapling 2025-09-25 13:28:53 -07:00
Michael Bolin 5c39f91f04 feat: introduce responses-api-proxy 2025-09-25 13:28:43 -07:00
Michael Bolin ded6672ae6 feat: remove OPENAI_API_KEY from env and mlock if set 2025-09-25 13:28:43 -07:00
Michael Bolin 81362c2574 merge commit for archive created by Sapling 2025-09-25 13:10:07 -07:00
Michael Bolin 7d10a85901 feat: introduce responses-api-proxy 2025-09-25 13:09:53 -07:00
Michael Bolin 92e8631cde feat: remove OPENAI_API_KEY from env and mlock if set 2025-09-25 13:07:32 -07:00
Michael Bolin 4816b8d921 merge commit for archive created by Sapling 2025-09-25 12:24:48 -07:00
Michael Bolin adab50b9ac feat: remove OPENAI_API_KEY from env and mlock if set 2025-09-25 12:24:38 -07:00
Michael Bolin 835f571d53 Merge 4670b0c561 into sapling-pr-archive-bolinfest 2025-09-25 12:13:58 -07:00
Michael Bolin 4670b0c561 feat: remove OPENAI_API_KEY from env and mlock if set 2025-09-25 12:13:50 -07:00
Michael Bolin fad5a3792c merge commit for archive created by Sapling 2025-09-25 10:13:02 -07:00
Michael Bolin 3fbf9996f1 chore: refactor attempt_stream_responses() out of stream_responses() 2025-09-25 10:12:55 -07:00
Jeremy Rose 103adcdf2d fix: esc w/ queued messages overwrites draft in composer (#4237)
Instead of overwriting the contents of the composer when pressing
<kbd>Esc</kbd> when there's a queued message, prepend the queued
message(s) to the composer draft.
2025-09-25 10:07:27 -07:00
Michael Bolin d61dea6fe6 feat: add support for CODEX_SECURE_MODE=1 to restrict process observability (#4220)
Because the `codex` process could contain sensitive information in
memory, such as API keys, we add logic so that when
`CODEX_SECURE_MODE=1` is specified, we avail ourselves of whatever the
operating system provides to restrict observability/tampering, which
includes:

- disabling `ptrace(2)`, so it is not possible to attach to the process
with a debugger, such as `gdb`
- disabling core dumps

Admittedly, a user with root privileges can defeat these safeguards.

For now, we only add support for this in the `codex` multitool, but we
may ultimately want to support this in some of the smaller CLIs that are
buildable out of our Cargo workspace.
2025-09-25 10:02:28 -07:00
Michael Bolin 55787ccfaa Merge 6587f82484 into sapling-pr-archive-bolinfest 2025-09-25 09:37:49 -07:00
Michael Bolin 6587f82484 chore: refactor attempt_stream_responses() out of stream_responses() 2025-09-25 09:37:41 -07:00
Michael Bolin 375c2638fd merge commit for archive created by Sapling 2025-09-25 09:25:48 -07:00
Michael Bolin 8bdb940340 feat: add support for CODEX_SECURE_MODE=1 to restrict process observability 2025-09-25 09:25:41 -07:00
Michael Bolin 1c9284fc39 merge commit for archive created by Sapling 2025-09-25 09:18:39 -07:00
Michael Bolin 943b8af3b7 feat: add support for CODEX_SECURE_MODE=1 to restrict process observability 2025-09-25 09:18:34 -07:00
Michael Bolin abf89d2293 merge commit for archive created by Sapling 2025-09-25 09:17:49 -07:00
Michael Bolin 9415870df6 feat: add support for CODEX_SECURE_MODE=1 to restrict process observability 2025-09-25 09:17:43 -07:00
Michael Bolin f83923be42 merge commit for archive created by Sapling 2025-09-25 09:14:22 -07:00
Michael Bolin 6590790931 feat: add support for CODEX_SECURE_MODE=1 to restrict process observability 2025-09-25 09:14:16 -07:00
Michael Bolin 38f6272639 merge commit for archive created by Sapling 2025-09-25 08:52:17 -07:00
Michael Bolin 948aaa703d feat: add support for CODEX_SECURE_MODE=1 to restrict process observability 2025-09-25 08:52:08 -07:00
Ahmed Ibrahim e363dac249 revamp /status (#4196)
<img width="543" height="520" alt="image"
src="https://github.com/user-attachments/assets/bbc0eec0-e40b-45e7-bcd0-a997f8eeffa2"
/>
2025-09-25 15:38:50 +00:00
jif-oai 250b244ab4 ref: full state refactor (#4174)
## Current State Observations
- `Session` currently holds many unrelated responsibilities (history,
approval queues, task handles, rollout recorder, shell discovery, token
tracking, etc.), making it hard to reason about ownership and lifetimes.
- The anonymous `State` struct inside `codex.rs` mixes session-long data
with turn-scoped queues and approval bookkeeping.
- Turn execution (`run_task`) relies on ad-hoc local variables that
should conceptually belong to a per-turn state object.
- External modules (`codex::compact`, tests) frequently poke the raw
`Session.state` mutex, which couples them to implementation details.
- Interrupts, approvals, and rollout persistence all have bespoke
cleanup paths, contributing to subtle bugs when a turn is aborted
mid-flight.

## Desired End State
- Keep a slim `Session` object that acts as the orchestrator and façade.
It should expose a focused API (submit, approvals, interrupts, event
emission) without storing unrelated fields directly.
- Introduce a `state` module that encapsulates all mutable data
structures:
- `SessionState`: session-persistent data (history, approved commands,
token/rate-limit info, maybe user preferences).
- `ActiveTurn`: metadata for the currently running turn (sub-id, task
kind, abort handle) and an `Arc<TurnState>`.
- `TurnState`: all turn-scoped pieces (pending inputs, approval waiters,
diff tracker, review history, auto-compact flags, last agent message,
outstanding tool call bookkeeping).
- Group long-lived helpers/managers into a dedicated `SessionServices`
struct so `Session` does not accumulate "random" fields.
- Provide clear, lock-safe APIs so other modules never touch raw
mutexes.
- Ensure every turn creates/drops a `TurnState` and that
interrupts/finishes delegate cleanup to it.
2025-09-25 12:16:06 +02:00
Michael Bolin 5e3ba737cc merge commit for archive created by Sapling 2025-09-25 00:44:56 -07:00
Michael Bolin f3615680cc feat: add support for CODEX_SECURE_MODE=1 to restrict process observability 2025-09-25 00:44:51 -07:00
Michael Bolin da9d9fa328 merge commit for archive created by Sapling 2025-09-25 00:39:50 -07:00
Michael Bolin 1470e85b5b feat: add support for CODEX_SECURE_MODE=1 to restrict process observability 2025-09-25 00:39:43 -07:00
Michael Bolin 592662ea38 Merge e5594b1680 into sapling-pr-archive-bolinfest 2025-09-25 00:26:46 -07:00
Michael Bolin e5594b1680 feat: add support for CODEX_SECURE_MODE=1 to restrict process observability 2025-09-25 00:25:38 -07:00
pakrym-oai d1ed3a4cef github: update codespell action to v2.1 in workflow (#4205)
Old version fails to find python 3.8 docker image
2025-09-25 04:05:00 +00:00
pakrym-oai e85742635f Send text parameter for non-gpt-5 models (#4195)
We had a hardcoded check for gpt-5 before.

Fixes: https://github.com/openai/codex/issues/4181
2025-09-24 22:00:06 +00:00
Michael Bolin de7158cc75 Merge 49f836ea86 into sapling-pr-archive-bolinfest 2025-09-24 14:31:46 -07:00
Michael Bolin 49f836ea86 chore: refactor attempt_stream_responses() out of stream_responses() 2025-09-24 14:31:38 -07:00
Michael Bolin 87b299aa3f chore: drop unused values from env_flags (#4188)
For the most part, we try to avoid environment variables in favor of
config options so the environment variables do not leak into child
processes. These environment variables are no longer honored, so let's
delete them to be clear.

Ultimately, I would also like to eliminate `CODEX_RS_SSE_FIXTURE` in
favor of something cleaner.
2025-09-24 14:29:51 -07:00
iceweasel-oai 0e58870634 adds a windows-specific method to check if a command is safe (#4119)
refactors command_safety files into its own package, so we can add
platform-specific ones
Also creates a windows-specific of `is_known_safe_command` that just
returns false always, since that is what happens today.
2025-09-24 14:03:43 -07:00
Jeremy Rose 42847baaf7 pageless session list (#3194) 2025-09-24 13:44:48 -07:00
Jeremy Rose 6032d784ee improve MCP tool call styling (#3871)
<img width="760" height="213" alt="Screenshot 2025-09-18 at 12 29 15 PM"
src="https://github.com/user-attachments/assets/48a205b7-b95a-4988-8c76-efceb998dee7"
/>
2025-09-24 13:36:01 -07:00