Commit Graph
2955 Commits
Author SHA1 Message Date
ae 7c20160676 feat: /prompts slash command (#1937)
- Shows several example prompts which include @-mentions 

------
https://chatgpt.com/codex/tasks/task_i_6894779ba8cc832ca0c871d17ee06aae
2025-08-07 11:55:59 +01:00
Ed Bayesandpap-openai 1e4bf81653 Update copy (#1935)
Updated copy

---------

Co-authored-by: pap-openai <pap@openai.com>
2025-08-07 03:29:33 -07:00
aibrahim-oai 5589c6089b approval ui (#1933)
Asking for approval:

<img width="269" height="41" alt="image"
src="https://github.com/user-attachments/assets/b9ced569-3297-4dae-9ce7-0b015c9e14ea"
/>

Allow:

<img width="400" height="31" alt="image"
src="https://github.com/user-attachments/assets/92056b22-efda-4d49-854d-e2943d5fcf17"
/>

Reject:

<img width="372" height="30" alt="image"
src="https://github.com/user-attachments/assets/be9530a9-7d41-4800-bb42-abb9a24fc3ea"
/>

Always Approve:

<img width="410" height="36" alt="image"
src="https://github.com/user-attachments/assets/acf871ba-4c26-4501-b303-7956d0151754"
/>
2025-08-07 02:02:56 -07:00
Michael Bolin c2c327c723 feat: change shell_environment_policy to default to inherit="all" (#1904)
Trying to use `core` as the default has been "too clever." Users can
always take responsibility for controlling the env without this setting
at all by specifying the `env` they use when calling `codex` in the
first place.

See https://github.com/openai/codex/issues/1249.
2025-08-07 01:55:41 -07:00
Ed Bayesandaibrahim-oai 20084facfe Add spinner animation to TUI status indicator (#1917)
## Summary
- add a pulsing dot loader before the shimmering `Working` label in the
status indicator widget and include a small test asserting the spinner
character is rendered
- also fix a small bug in the ran command header by adding a space
between the ⚡ and `Ran command`


https://github.com/user-attachments/assets/6768c9d2-e094-49cb-ad51-44bcac10aa6f

## Testing
- `just fmt`
- `just fix` *(failed: E0658 `let` expressions in core/src/client.rs)*
- `cargo test --all-features` *(failed: E0658 `let` expressions in
core/src/client.rs)*

------
https://chatgpt.com/codex/tasks/task_i_68941bffdb948322b0f4190bc9dbe7f6

---------

Co-authored-by: aibrahim-oai <aibrahim@openai.com>
2025-08-07 08:45:04 +00:00
Michael Bolin 8ffb674793 merge commit for archive created by Sapling 2025-08-07 01:37:45 -07:00
Michael Bolin a9a02305f2 feat: change shell_environment_policy to default to inherit="all" 2025-08-07 01:37:33 -07:00
Michael Bolin 7e8863be16 Merge 108d61f15b into sapling-pr-archive-bolinfest 2025-08-07 01:33:44 -07:00
Michael Bolin 108d61f15b feat: change shell_environment_policy to default to inherit="all" 2025-08-07 01:33:36 -07:00
Michael Bolin 13982d6b4e chore: fix outstanding review comments from the bot on #1919 (#1928)
I should have read the comments before submitting!
2025-08-07 01:30:13 -07:00
aeandMichael Bolin 0334476894 feat: parse info from auth.json and show in /status (#1923)
- `/status` renders
    ```
    signed in with chatgpt
      login: example@example.com
      plan: plus
    ```
- Setup for using this info in a few more places.

---------

Co-authored-by: Michael Bolin <mbolin@openai.com>
2025-08-07 01:27:45 -07:00
Gabriel Peal 6d19b73edf Add logout command to CLI and TUI (#1932)
## Summary
- support `codex logout` via new subcommand and helper that removes the
stored `auth.json`
- expose a `logout` function in `codex-login` and test it
- add `/logout` slash command in the TUI; command list is filtered when
not logged in and the handler deletes `auth.json` then exits

## Testing
- `just fix` *(fails: failed to get `diffy` from crates.io)*
- `cargo test --all-features` *(fails: failed to get `diffy` from
crates.io)*

------
https://chatgpt.com/codex/tasks/task_i_68945c3facac832ca83d48499716fb51
2025-08-07 04:17:33 -04:00
ae 28395df957 [fix] fix absolute and % token counts (#1931)
- For absolute, use non-cached input + output.
- For estimating what % of the model's context window is used, we need
to account for reasoning output tokens from prior turns being dropped
from the context window. We approximate this here by subtracting
reasoning output tokens from the total. This will be off for the current
turn and pending function calls. We can improve it later.
2025-08-07 08:13:36 +00:00
Ed Bayes eb80614a7c Tint chat composer background (#1921)
## Summary
- give the chat composer a subtle custom background and apply it across
the full area drawn

<img width="1008" height="718" alt="composer-bg"
src="https://github.com/user-attachments/assets/4b0f7f69-722a-438a-b4e9-0165ae8865a6"
/>

- update turn interrupted to be more human readable
<img width="648" height="170" alt="CleanShot 2025-08-06 at 22 44 47@2x"
src="https://github.com/user-attachments/assets/8d35e53a-bbfa-48e7-8612-c280a54e01dd"
/>

## Testing
- `cargo test --all-features` *(fails: `let` expressions in
`core/src/client.rs` require newer rustc)*
- `just fix` *(fails: `let` expressions in `core/src/client.rs` require
newer rustc)*

------
https://chatgpt.com/codex/tasks/task_i_68941f32c1008322bbcc39ee1d29a526
2025-08-07 00:46:45 -07:00
aibrahim-oai 04b40ac179 Move used tokens next to the hints (#1930)
Before:

<img width="341" height="58" alt="image"
src="https://github.com/user-attachments/assets/3b209e42-1157-4f7b-8385-825c865969e8"
/>

After:

<img width="490" height="53" alt="image"
src="https://github.com/user-attachments/assets/5d99b9bc-6ac2-4748-b62c-c0c3217622c2"
/>
2025-08-07 00:45:47 -07:00
easong-openaiandGabriel Peal 4e29c4afe4 Add a UI hint when you press @ (#1903)
This will make @ more discoverable (even though it is currently not
super useful, IMO it should be used to bring files into context from
outside CWD)

---------

Co-authored-by: Gabriel Peal <gpeal@users.noreply.github.com>
2025-08-07 07:41:48 +00:00
Michael Bolin 1c84ee4ea2 merge commit for archive created by Sapling 2025-08-07 00:20:12 -07:00
Michael Bolin a88f234a53 chore: fix outstanding review comments from the bot on #1919 2025-08-07 00:20:03 -07:00
Michael Bolin cd5f9074af feat: add /tmp by default (#1919)
Replaces the `include_default_writable_roots` option on
`sandbox_workspace_write` (that defaulted to `true`, which was slightly
weird/annoying) with `exclude_tmpdir_env_var`, which defaults to
`false`.

Though perhaps more importantly `/tmp` is now enabled by default as part
of `sandbox_mode = "workspace-write"`, though `exclude_slash_tmp =
false` can be used to disable this.
2025-08-07 00:17:00 -07:00
aibrahim-oai fff2bb39f9 change todo (#1925)
<img width="746" height="135" alt="image"
src="https://github.com/user-attachments/assets/1605b2fb-aa3a-4337-b9e9-93f6ff1361c5"
/>


<img width="747" height="126" alt="image"
src="https://github.com/user-attachments/assets/6b4366bd-8548-4d29-8cfa-cd484d9a2359"
/>
2025-08-07 00:01:38 -07:00
Michael Bolin 596b614ff0 merge commit for archive created by Sapling 2025-08-06 23:33:17 -07:00
Michael Bolin 41d9a4a7b8 feat: add /tmp by default 2025-08-06 23:33:12 -07:00
aibrahim-oai f15e0fe1df Ensure exec command end always emitted (#1908)
## Summary
- defer ExecCommandEnd emission until after sandbox resolution
- make sandbox error handler return final exec output and response
- align sandbox error stderr with response content and rename to
`final_output`
- replace unstable `let` chains in client command header logic

## Testing
- `just fmt`
- `just fix`
- `cargo test --all-features` *(fails: NotPresent in
core/tests/client.rs)*

------
https://chatgpt.com/codex/tasks/task_i_6893e63b0c408321a8e1ff2a052c4c51
2025-08-07 06:25:56 +00:00
ae f0fe61c667 feat: use ctrl c in interrupt hint (#1926)
https://chatgpt.com/codex/tasks/task_i_689441c33e1c832c85ceda166dab5d33
2025-08-06 23:22:58 -07:00
Michael Bolin 58043137e2 merge commit for archive created by Sapling 2025-08-06 23:00:55 -07:00
Michael Bolin 1e21a0af05 feat: add /tmp by default 2025-08-06 23:00:49 -07:00
ae 935ad5c6f2 feat: >_ (#1924) 2025-08-06 22:54:54 -07:00
Michael Bolin 5283816b19 merge commit for archive created by Sapling 2025-08-06 22:34:39 -07:00
Michael Bolin 3bddcfed9a feat: add /tmp by default 2025-08-06 22:34:34 -07:00
Michael Bolin 53a678c279 merge commit for archive created by Sapling 2025-08-06 22:33:08 -07:00
Michael Bolin ae87193102 feat: add /tmp by default 2025-08-06 22:33:02 -07:00
aibrahim-oaiandGabriel Peal ec20e84d80 Change the UI of apply patch (#1907)
<img width="487" height="108" alt="image"
src="https://github.com/user-attachments/assets/3f6ffd56-36f6-40bc-b999-64279705416a"
/>

---------

Co-authored-by: Gabriel Peal <gpeal@users.noreply.github.com>
2025-08-07 05:25:41 +00:00
Michael Bolin a2c42e0809 merge commit for archive created by Sapling 2025-08-06 22:18:43 -07:00
Michael Bolin c2630f8731 feat: add /tmp by default 2025-08-06 22:18:37 -07:00
Michael Bolin e3d4b5db08 merge commit for archive created by Sapling 2025-08-06 22:03:31 -07:00
Michael Bolin fb005bacef feat: add /tmp by default 2025-08-06 22:03:25 -07:00
easong-openai 2098b40369 Scrollable slash commands (#1830)
Scrollable slash commands. Part 1 of the multi PR.
2025-08-06 21:23:09 -07:00
Michael Bolin ae0b6705ea Merge f783157c27 into sapling-pr-archive-bolinfest 2025-08-06 21:21:41 -07:00
aibrahim-oai 4971d54ca7 Show timing and token counts in status indicator (#1909)
## Summary
- track start time and cumulative tokens in status indicator
- display dim "(Ns • N tokens • Ctrl z to interrupt)" text after
animated Working header
- propagate token usage updates to status indicator views



https://github.com/user-attachments/assets/b73210c1-1533-40b5-b6c2-3c640029fd54


## Testing
- `just fmt`
- `just fix` *(fails: let expressions in this position are unstable)*
- `cargo test --all-features` *(fails: let expressions in this position
are unstable)*

------
https://chatgpt.com/codex/tasks/task_i_6893ec0d74a883218b94005172d7bc4c
2025-08-06 21:20:09 -07:00
Michael Bolin f783157c27 feat: add /tmp by default 2025-08-06 21:15:10 -07:00
Gabriel Peal 8a990b5401 Migrate GitWarning to OnboardingScreen (#1915)
This paves the way to do per-directory approval settings
(https://github.com/openai/codex/pull/1912).

This also lets us pass in a Config/ChatWidgetArgs into onboarding which
can then mutate it and emit the ChatWidgetArgs it wants at the end which
may be modified by the said approval settings.

<img width="1180" height="428" alt="CleanShot 2025-08-06 at 19 30 55"
src="https://github.com/user-attachments/assets/4dcfda42-0f5e-4b6d-a16d-2597109cc31c"
/>
2025-08-06 22:39:07 -04:00
Michael Bolin 8a1aa77494 Merge af22387374 into sapling-pr-archive-bolinfest 2025-08-06 18:03:43 -07:00
Michael Bolin af22387374 feat: update UI for showing a diff 2025-08-06 18:03:14 -07:00
Michael Bolin 4e35af63c8 Merge 497b41d1a1 into sapling-pr-archive-bolinfest 2025-08-06 18:02:00 -07:00
Michael Bolin 497b41d1a1 feat: show diff for apply_patch in a nicer way 2025-08-06 17:59:24 -07:00
Michael Bolin ef0cc7938f merge commit for archive created by Sapling 2025-08-06 17:45:33 -07:00
Michael Bolin 17b92960e4 feat: change shell_environment_policy to default to inherit="all" 2025-08-06 17:45:27 -07:00
Michael Bolin b3c4ca244c Merge ab74210de6 into sapling-pr-archive-bolinfest 2025-08-06 17:40:39 -07:00
Michael Bolin ab74210de6 feat: change shell_environment_policy to default to inherit="all" 2025-08-06 17:40:31 -07:00
Michael Bolin 96c597f4f5 Merge 3136b5a616 into sapling-pr-archive-bolinfest 2025-08-06 17:34:31 -07:00