Commit Graph

5327 Commits

Author SHA1 Message Date
Eric Traut
668325efde codex: address PR review feedback (#17380) 2026-04-12 14:00:05 -07:00
Eric Traut
c2b92ccf40 Harden timer integration test waits 2026-04-12 14:00:05 -07:00
Eric Traut
bb13e4a0d1 codex: enforce timer db cap in core (#17380) 2026-04-12 14:00:05 -07:00
Eric Traut
2874c0fdac codex: enforce queue timer limit (#17380) 2026-04-12 14:00:05 -07:00
Eric Traut
517cfb769e codex: use literal windows timer ignore reason (#17380) 2026-04-12 14:00:05 -07:00
Eric Traut
c7968f0ead codex: clean up queue rows for archived threads (#17380) 2026-04-12 14:00:05 -07:00
Eric Traut
8211c56154 codex: stabilize queued mail pending input test (#17380) 2026-04-12 14:00:05 -07:00
Eric Traut
667d2a2d95 codex: keep timer runtime on delete failure (#17380) 2026-04-12 14:00:05 -07:00
Eric Traut
b6ab1b1e5f codex: avoid windows timer integration timeout (#17380) 2026-04-12 14:00:05 -07:00
Eric Traut
fc6dd9bb00 codex: stabilize timer integration tests (#17380) 2026-04-12 14:00:05 -07:00
Eric Traut
520e3b091e codex: stabilize resume timer history regression (#17380) 2026-04-12 14:00:05 -07:00
Eric Traut
6fe44104f3 codex: restore timers after resume history replay (#17380) 2026-04-12 14:00:05 -07:00
Eric Traut
108679a91f codex: respect ephemeral timer storage mode (#17380) 2026-04-12 14:00:05 -07:00
Eric Traut
548b035edc codex: stabilize queued message timer tests (#17380) 2026-04-12 14:00:05 -07:00
Eric Traut
4f33051313 codex: address recurring timer message starvation (#17380) 2026-04-12 14:00:05 -07:00
Eric Traut
dfb83d6a4c codex: address recurring timer restart review (#17380) 2026-04-12 14:00:04 -07:00
Eric Traut
529b855d60 codex: fix overdue one-shot timer claim on restart (#17380) 2026-04-12 14:00:04 -07:00
Eric Traut
9976a36c39 codex: stabilize queued message timer test (#17380) 2026-04-12 14:00:04 -07:00
Eric Traut
70edc61fde codex: fix timer runtime clippy lint (#17380) 2026-04-12 14:00:04 -07:00
Eric Traut
b4f738def9 codex: stabilize queued message timer ordering (#17380) 2026-04-12 14:00:04 -07:00
Eric Traut
b19709c649 codex: preserve exhausted schedule restore state (#17380) 2026-04-12 14:00:04 -07:00
Eric Traut
0d00ec0f8d codex: delete exhausted recurring timers (#17380) 2026-04-12 14:00:04 -07:00
Eric Traut
5bdc7b59c6 codex: fix state argument lint (#17380) 2026-04-12 14:00:04 -07:00
Eric Traut
15bfff63f3 codex: validate queue thread names (#17380) 2026-04-12 14:00:04 -07:00
Eric Traut
86361563a2 codex: fix timer tool argument lint (#17380) 2026-04-12 14:00:04 -07:00
Eric Traut
08554a2378 codex: address queue and timer race feedback (#17380) 2026-04-12 14:00:04 -07:00
Eric Traut
6e0ba130a7 codex: prevent idle timer message starvation (#17380) 2026-04-12 14:00:03 -07:00
Eric Traut
77a7287eeb codex: fix core timer test lint (#17380) 2026-04-12 14:00:03 -07:00
Eric Traut
d5641c3aef codex: fix queue argument lint (#17380) 2026-04-12 14:00:03 -07:00
Eric Traut
e03b0f8214 codex: address PR review feedback (#17380) 2026-04-12 14:00:03 -07:00
Eric Traut
cbe466866c Split timer and queued message flags 2026-04-12 14:00:03 -07:00
Eric Traut
2a6526c9fd Clear delivery state when archiving threads 2026-04-12 13:59:43 -07:00
Eric Traut
416d2e5fc3 Fix queue subcommand parsing 2026-04-12 13:59:43 -07:00
Eric Traut
05e49afbcf Remove unrelated branch churn 2026-04-12 13:59:43 -07:00
Eric Traut
b60311ab2a Remove queue message tool 2026-04-12 13:59:42 -07:00
Eric Traut
1460cc5ff5 Remove unrelated TUI app changes 2026-04-12 13:59:42 -07:00
Eric Traut
919e68003f Refine queued message delivery 2026-04-12 13:59:42 -07:00
Eric Traut
54f5a4b0fa Add thread message delivery 2026-04-12 13:59:42 -07:00
mcgrew-oai
a4d5112b37 build(pnpm): require reviewed dependency build scripts (#17558)
## Description

Enable pnpm's reviewed build-script gate for this repo.

## What changed

- added `strictDepBuilds: true` to `pnpm-workspace.yaml`

## Why

The repo already uses pinned pnpm and frozen installs in CI. This adds
the remaining guard so dependency build scripts do not run unless they
are explicitly reviewed.

## Validation

- ran `pnpm install --frozen-lockfile`

Co-authored-by: Codex <noreply@openai.com>
2026-04-12 16:27:44 -04:00
Francis Chalissery
720932ca3d [codex] Support flattened deferred MCP tool calls (#17556)
## Summary
- register flattened handler aliases for deferred MCP tools
- cover the node_repl-shaped deferred MCP call path in tool registry
tests

## Root Cause
Deferred MCP tools were registered only under their namespaced handler
key, e.g. `mcp__node_repl__:js`. If the model/bridge emitted the
flattened qualified name `mcp__node_repl__js`, core parsed it as an MCP
payload but dispatch looked up the flattened handler key and returned
`unsupported call` before reaching the MCP handler.

## Validation
- `just fmt`
- `cargo test -p codex-tools
search_tool_registers_deferred_mcp_flattened_handlers`
- `cargo test -p codex-core
search_tool_registers_namespaced_mcp_tool_aliases`
- `git diff --check`
2026-04-12 13:19:36 -07:00
Ahmed Ibrahim
4db60d5d8b Budget realtime current thread context (#17519)
Select Current Thread startup context by budget from newest turns, cap
each rendered turn at 300 approximate tokens, and add formatter plus
integration snapshot coverage.
2026-04-12 11:59:09 -07:00
viyatb-oai
1288bb60a1 [codex] Support bubblewrap in secure Docker devcontainer (#17547)
## Summary

- leave the default contributor devcontainer on its lightweight
platform-only Docker runtime
- install bubblewrap in setuid mode only in the secure devcontainer
image for running Codex inside Docker
- add Docker run args to the secure profile for bubblewrap's required
capabilities
- use explicit `seccomp=unconfined` and `apparmor=unconfined` in the
secure profile instead of shipping a custom seccomp profile
- document that the relaxed Docker security options are scoped to the
secure profile

## Why

Docker's default seccomp profile blocks bubblewrap with `pivot_root:
Operation not permitted`, even when the container has `CAP_SYS_ADMIN`.
Docker's default AppArmor profile also blocks bubblewrap with `Failed to
make / slave: Permission denied`.

A custom seccomp profile works, but it is hard for customers to audit
and understand. Using Docker's standard `seccomp=unconfined` option is
clearer: the secure profile intentionally relaxes Docker's outer sandbox
just enough for Codex to construct its own bubblewrap/seccomp sandbox
inside the container. The default contributor profile does not get these
expanded runtime settings.

## Validation

- `sed '/\\/\\*/,/\\*\\//d' .devcontainer/devcontainer.json | jq empty`
- `jq empty .devcontainer/devcontainer.secure.json`
- `git diff --check`
- `docker build --platform=linux/arm64 -t
codex-devcontainer-bwrap-test-arm64 ./.devcontainer`
- `docker build --platform=linux/arm64 -f
.devcontainer/Dockerfile.secure -t
codex-devcontainer-secure-bwrap-test-arm64 .`
- interactive `docker run -it` smoke tests:
  - verified non-root users `ubuntu` and `vscode`
  - verified secure image `/usr/bin/bwrap` is setuid
- verified user/pid namespace, user/network namespace, and preserved-fd
`--ro-bind-data` bwrap commands
- reran secure-image smoke test with simplified `seccomp=unconfined`
setup:
  - `bwrap-basic-ok`
  - `bwrap-netns-ok`
  - `codex-ok`
- ran Codex inside the secure image:
  - `codex --version` -> `codex-cli 0.120.0`
- `codex sandbox linux --full-auto -- /bin/sh -lc '...'` -> exited 0 and
printed `codex-inner-ok`

Note: direct `bwrap --proc /proc` is still denied by this Docker
runtime, and Codex's existing proc-mount preflight fallback handles that
by retrying without `--proc`.

---------

Co-authored-by: Codex <noreply@openai.com>
2026-04-12 10:49:50 -07:00
Won Park
3895ddd6b1 Clarify guardian timeout guidance (#17521)
## Summary
- update the guardian timeout guidance to say permission approval review
timed out
- simplify the retry guidance to say retry once or ask the user for
guidance or explicit approval

## Testing
- cargo test -p codex-core
guardian_timeout_message_distinguishes_timeout_from_policy_denial
- cargo test -p codex-core
guardian_review_decision_maps_to_mcp_tool_decision
2026-04-12 02:03:53 -07:00
Won Park
ba839c23f3 changing decision semantics after guardian timeout (#17486)
**Summary**

This PR treats Guardian timeouts as distinct from explicit denials in
the core approval paths.
Timeouts now return timeout-specific guidance instead of Guardian
policy-rejection messaging.
It updates the command, shell, network, and MCP approval flows and adds
focused test coverage.
2026-04-12 00:00:50 -07:00
sayan-oai
1325bcd3f6 chore: refactor name and namespace to single type (#17402)
avoid passing them both around, unify on a type. this now also keys
`ToolRegistry`.

tests pass
2026-04-11 23:06:22 +00:00
Eric Traut
7a6266323c Restore codex-tui resume hint on exit (#17415)
Addresses #17303

Problem: The standalone codex-tui entrypoint only printed token usage on
exit, so resumable sessions could omit the codex resume footer even when
thread metadata was available.

Solution: Format codex-tui exit output from AppExitInfo so it includes
the same resume hint as the main CLI and reports fatal exits
consistently.
2026-04-11 15:46:54 -07:00
Eric Traut
1e27028360 Clear /ps after /stop (#17416)
Addresses #17311

Problem: `/stop` stops background terminals, but `/ps` can still show
stale entries because the TUI process cache is cleared only after later
exec end events arrive.

Solution: Clear the TUI's tracked unified exec process list and footer
immediately when `/stop` submits background terminal cleanup.
2026-04-11 15:45:58 -07:00
Eric Traut
3b948d9dd8 Support prolite plan type (#17419)
Addresses #17353

Problem: Codex rate-limit fetching failed when the backend returned the
new `prolite` subscription plan type.

Solution: Add `prolite` to the backend/account/auth plan mappings, keep
unknown WHAM plan values decodable, and regenerate app-server plan
schemas.
2026-04-11 13:58:16 -07:00
Ahmed Ibrahim
163ae7d3e6 fix (#17493)
# 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-04-11 13:52:17 -07:00
Eric Traut
640d3a036f Update issue labeler agent labels (#17483)
Problem: The automatic issue labeler still treated agent-related issues
as one broad category, even though more specific agent-area labels now
exist.

Solution: Update the issue labeler prompt to prefer the new agent-area
labels and keep "agent" as the fallback for uncategorized core agent
issues.
2026-04-11 11:55:14 -07:00