Commit Graph

6857 Commits

Author SHA1 Message Date
Michael Bolin
e04df285d2 Merge 0166c1b156 into sapling-pr-archive-bolinfest 2026-01-30 10:33:28 -08:00
Michael Bolin
0166c1b156 chore: rename Chatgpt -> ChatGpt in type names 2026-01-30 10:30:50 -08:00
Michael Bolin
40bf11bd52 chore: fix the build breakage that came from a merge race (#10239)
I think I needed to rebase on top of
https://github.com/openai/codex/pull/10167 before merging
https://github.com/openai/codex/pull/10208.
2026-01-30 10:29:54 -08:00
Michael Bolin
d9e5bb54c0 merge commit for archive created by Sapling 2026-01-30 10:27:00 -08:00
Michael Bolin
0a9767f5a9 chore: fix the build breakage that came from a merge race 2026-01-30 10:26:54 -08:00
Michael Bolin
d4d50d50eb merge commit for archive created by Sapling 2026-01-30 10:23:49 -08:00
Michael Bolin
51c4d20959 chore: fix the build breakage that came from a merge race 2026-01-30 10:23:38 -08:00
baumann-oai
1ce722ed2e plan mode: add TL;DR checkpoint and client behavior note (#10195)
## Summary
- Tightens Plan Mode to encourage exploration-first behavior and more
back-and-forth alignment.
- Adds a required TL;DR checkpoint before drafting the full plan.
- Clarifies client behavior that can cause premature “Implement this
plan?” prompts.

## What changed
- Require at least one targeted non-mutating exploration pass before the
first user question.
- Insert a TL;DR checkpoint between Phase 2 (intent) and Phase 3
(implementation).
- TL;DR checkpoint guidance:
  - Label: “Proposed Plan (TL;DR)”
  - Format: 3–5 bullets using `- `
  - Options: exactly one option, “Approve”
- `isOther: true`, with explicit guidance that “None of the above” is
the edit path in the current UI.
- Require the final plan to include a TL;DR consistent with the approved
checkpoint.

## Why
- In Plan Mode, any normal assistant message at turn completion is
treated as plan content by the client. This can trigger premature
“Implement this plan?” prompts.
- The TL;DR checkpoint aligns on direction before Codex drafts a long,
decision-complete plan.

## Testing
- Manual: built the local CLI and verified the flow now explores first,
presents a TL;DR checkpoint, and only drafts the full plan after
approval.

---------

Co-authored-by: Nick Baumann <@openai.com>
2026-01-30 10:14:46 -08:00
Michael Bolin
b755941563 merge commit for archive created by Sapling 2026-01-30 10:06:44 -08:00
Michael Bolin
8d29f5fb33 feat: codex app-server --default-chatgpt-proxy-auth 2026-01-30 10:06:34 -08:00
gt-oai
5662eb8b75 Load exec policy rules from requirements (#10190)
`requirements.toml` should be able to specify rules which always run. 

My intention here was that these rules could only ever be restrictive,
which means the decision can be "prompt" or "forbidden" but never
"allow". A requirement of "you must always allow this command" didn't
make sense to me, but happy to be gaveled otherwise.

Rules already applies the most restrictive decision, so we can safely
merge these with rules found in other config folders.
2026-01-30 18:04:09 +00:00
Michael Bolin
3eb472e389 Merge 373183c9a5 into sapling-pr-archive-bolinfest 2026-01-30 09:54:03 -08:00
Michael Bolin
373183c9a5 feat: codex app-server --default-chatgpt-proxy-auth 2026-01-30 09:53:59 -08:00
Michael Bolin
6a67d24b1f Merge 1286b29a65 into sapling-pr-archive-bolinfest 2026-01-30 09:51:35 -08:00
Michael Bolin
1286b29a65 feat: codex app-server --default-chatgpt-proxy-auth 2026-01-30 09:51:12 -08:00
Dylan Hurd
23db79fae2 chore(feature) Experimental: Smart Approvals (#10211)
## Summary
Let's start getting feedback on this feature 😅 

## Testing
- [x] existing tests pass
2026-01-30 10:41:37 -07:00
Dylan Hurd
dfafc546ab chore(feature) Experimental: Personality (#10212)
## Summary
Let users start opting in to trying out personalities

## Testing
- [x] existing tests pass
2026-01-30 10:41:22 -07:00
Michael Bolin
377ab0c77c feat: refactor CodexAuth so invalid state cannot be represented (#10208)
Previously, `CodexAuth` was defined as follows:


d550fbf41a/codex-rs/core/src/auth.rs (L39-L46)

But if you looked at its constructors, we had creation for
`AuthMode::ApiKey` where `storage` was built using a nonsensical path
(`PathBuf::new()`) and `auth_dot_json` was `None`:


d550fbf41a/codex-rs/core/src/auth.rs (L212-L220)

By comparison, when `AuthMode::ChatGPT` was used, `api_key` was always
`None`:


d550fbf41a/codex-rs/core/src/auth.rs (L665-L671)

https://github.com/openai/codex/pull/10012 took things further because
it introduced a new `ChatgptAuthTokens` variant to `AuthMode`, which is
important in when invoking `account/login/start` via the app server, but
most logic _internal_ to the app server should just reason about two
`AuthMode` variants: `ApiKey` and `ChatGPT`.

This PR tries to clean things up as follows:

- `LoginAccountParams` and `AuthMode` in `codex-rs/app-server-protocol/`
both continue to have the `ChatgptAuthTokens` variant, though it is used
exclusively for the on-the-wire messaging.
- `codex-rs/core/src/auth.rs` now has its own `AuthMode` enum, which
only has two variants: `ApiKey` and `ChatGPT`.
- `CodexAuth` has been changed from a struct to an enum. It is a
disjoint union where each variant (`ApiKey`, `ChatGpt`, and
`ChatGptAuthTokens`) have only the associated fields that make sense for
that variant.

---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/10208).
* #10224
* __->__ #10208
2026-01-30 09:33:23 -08:00
jif-oai
0212f4010e nit: fix db with multiple metadata lines (#10237) 2026-01-30 17:32:10 +00:00
jif-oai
079f4952e0 feat: heuristic coloring of logs (#10228) 2026-01-30 18:26:49 +01:00
jif-oai
eff11f792b feat: improve logs client (#10229) 2026-01-30 18:23:18 +01:00
jif-oai
887bec0dee chore: do not clean the DB anymore (#10232) 2026-01-30 18:23:00 +01:00
jif-oai
09d25e91e9 fix: make sure the shell exists (#10222) 2026-01-30 14:18:31 +01:00
jif-oai
6cee538380 explorer prompt (#10225) 2026-01-30 13:50:33 +01:00
gt-oai
e85d019daa Fetch Requirements from cloud (#10167)
Load requirements from Codex Backend. It only does this for enterprise
customers signed in with ChatGPT.

Todo in follow-up PRs:
* Add to app-server and exec too
* Switch from fail-open to fail-closed on failure
2026-01-30 12:03:29 +00:00
pap-openai
1ef5455eb6 Conversation naming (#8991)
Session renaming:
- `/rename my_session`
- `/rename` without arg and passing an argument in `customViewPrompt`
- AppExitInfo shows resume hint using the session name if set instead of
uuid, defaults to uuid if not set
- Names are stored in `CODEX_HOME/sessions.jsonl`

Session resuming:
- codex resume <name> lookup for `CODEX_HOME/sessions.jsonl` first entry
matching the name and resumes the session

---------

Co-authored-by: jif-oai <jif@openai.com>
2026-01-30 10:40:09 +00:00
Michael Bolin
c6be423f7d merge commit for archive created by Sapling 2026-01-30 02:18:57 -08:00
Michael Bolin
87515b095d feat: codex app-server --default-chatgpt-proxy-auth 2026-01-30 02:18:45 -08:00
jif-oai
25ad414680 chore: unify metric (#10220) 2026-01-30 11:13:43 +01:00
Michael Bolin
69b5614606 Merge ffb4fe6e7d into sapling-pr-archive-bolinfest 2026-01-30 01:56:48 -08:00
Michael Bolin
ffb4fe6e7d feat: annotate experimental fields in app server protocol 2026-01-30 01:56:43 -08:00
Michael Bolin
0641b2802f Merge ef4ef22a73 into sapling-pr-archive-bolinfest 2026-01-30 01:45:43 -08:00
Michael Bolin
ef4ef22a73 feat: annotate experimental fields in app server protocol 2026-01-30 01:45:38 -08:00
Michael Bolin
33648583f0 Merge b53b2de0c0 into sapling-pr-archive-bolinfest 2026-01-30 01:39:22 -08:00
Michael Bolin
b53b2de0c0 feat: annotate experimental fields in app server protocol 2026-01-30 01:39:13 -08:00
jif-oai
129787493f feat: backfill timing metric (#10218)
1. Add a metric to measure the backfill time
2. Add a unit to the timing histogram
2026-01-30 10:19:41 +01:00
Shijie Rao
a0ccef9d5c Chore: plan mode do not include free form question and always include isOther (#10210)
We should never ask a freeform question when planning and we should
always include isOther as an escape hatch.
2026-01-30 01:19:24 -08:00
Josh McKinney
c0cad80668 Add community links to startup tooltips (#10177)
## Summary
- add startup tooltip for OpenAI community Discord
- add startup tooltip for Codex community forum

## Testing
- not run (text-only tooltip change)
2026-01-30 10:14:15 +01:00
jif-oai
f8056e62d4 nit: actually run tests (#10217) 2026-01-30 10:02:46 +01:00
jif-oai
a270a28a06 feat: add output to /ps (#10154)
<img width="599" height="238" alt="Screenshot 2026-01-29 at 13 24 57"
src="https://github.com/user-attachments/assets/1e9a5af2-f649-476c-b310-ae4938814538"
/>
2026-01-30 09:00:44 +01:00
Matthew Zeng
34f89b12d0 MCP tool call approval (simplified version) (#10200)
Add elicitation approval request for MCP tool call requests.
2026-01-29 23:40:32 -08:00
Dylan Hurd
e3ab0bd973 chore(personality) new schema with fallbacks (#10147)
## Summary
Let's dial in this api contract in a bit more with more robust fallback
behavior when model_instructions_template is false.

Switches to a more explicit template / variables structure, with more
fallbacks.

## Testing
- [x] Adding unit tests
- [x] Tested locally
2026-01-30 00:10:12 -07:00
Michael Bolin
b3e19c3ba3 Merge a2f33ae5c8 into sapling-pr-archive-bolinfest 2026-01-29 23:08:24 -08:00
Michael Bolin
bc5c3df7cd merge commit for archive created by Sapling 2026-01-29 22:59:42 -08:00
Michael Bolin
4f2a604b04 feat: refactor CodexAuth so invalid state cannot be represented 2026-01-29 22:59:37 -08:00
Michael Bolin
a2f33ae5c8 feat: migrate TUI to use app-server v2 2026-01-29 22:59:14 -08:00
Michael Bolin
73b370b74e merge commit for archive created by Sapling 2026-01-29 22:52:02 -08:00
Michael Bolin
9988f3198a feat: refactor CodexAuth so invalid state cannot be represented 2026-01-29 22:51:55 -08:00
Michael Bolin
34d399aba8 Merge bac0597b69 into sapling-pr-archive-bolinfest 2026-01-29 22:27:05 -08:00
Michael Bolin
bac0597b69 feat: refactor CodexAuth so invalid state cannot be represented 2026-01-29 22:26:54 -08:00