Commit Graph

237 Commits

Author SHA1 Message Date
Mahesh Rijal
b6e3f3f8dd chore: reduce docker image size (#194)
This PR makes changes in the Dockerfile to reduce the final image size.
I'm sure this can be optimized further. But I didn't want to make too
many changes at once.

Original: 
```
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
codex        latest    c8f66942ded3   4 minutes ago   1.91GB
```

Now: 
```
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
codex        latest    2a6d6450609c   4 minutes ago   747MB
```
2025-04-17 07:12:14 -07:00
Ikko Eltociear Ashimine
709a89d88f chore: update task.yaml (#237)
ouput -> output
2025-04-17 07:08:38 -07:00
Brayden Moon
b0ccca5556 fix: allow continuing after interrupting assistant (#178)
## Description
This PR fixes the issue where the CLI can't continue after interrupting
the assistant with ESC ESC (Fixes #114). The problem was caused by
duplicate code in the `cancel()` method and improper state reset after
cancellation.

## Changes
- Fixed duplicate code in the `cancel()` method of the `AgentLoop` class
- Added proper reset of the `currentStream` property in the `cancel()`
method
- Created a new `AbortController` after aborting the current one to
ensure future tool calls work
- Added a system message to indicate the interruption to the user
- Added a comprehensive test to verify the fix

## Benefits
- Users can now continue using the CLI after interrupting the assistant
- Improved user experience by providing feedback when interruption
occurs
- Better state management in the agent loop

## Testing
- Added a dedicated test that verifies the agent can process new input
after cancellation
- Manually tested the fix by interrupting the assistant and confirming
that new input is processed correctly

---------

Signed-off-by: crazywolf132 <crazywolf132@gmail.com>
2025-04-16 22:20:19 -07:00
Jake Kay
b5fad66e2c fix: add missing "as" in prompt prefix in agent loop (#186)
# Description

This PR fixes a typo where the prompt prefix for the agent loop was
missing the word "as"

# Changes

* Added missing word "as" within the agent loop prompt prefix

# Benefits

* The prompt is now grammatically correct and clearer

# Testing

* Manually tested the fix
2025-04-16 22:16:16 -07:00
Demircan Celebi
f5b02ed1e1 fix: correct typos in thinking texts (transcendent & parroting) (#108)
Ran codex on its own source code to find mistakes & commit, even though
they are commented out.
2025-04-16 21:01:24 -07:00
Thibault Sottiaux
f3f9e41a15 (fix) do not transitively rely on deprecated lodash deps (#175)
Signed-off-by: Thibault Sottiaux <tibo@openai.com>
2025-04-16 20:52:35 -07:00
Cody Peterson
b8663180ed feat: --config/-c flag to open global instructions in nvim (#158)
I promised I'd never write JavaScript code, but I never said anything
about using AI to write it for me...entirely authored with `codex`. No
idea how good the code is, didn't read it (sorta joking but I really
don't know js/ts)

closes #154


https://github.com/user-attachments/assets/94cf2276-bfcf-4ba1-ad2f-aaefebbf8f06
2025-04-16 18:01:33 -07:00
Thibault Sottiaux
47c683480f (feat) expontential back-off when encountering rate limit errors (#153)
...and try to parse the suggested time from the error message while we
don't yet have this in a structured way

---------

Signed-off-by: Thibault Sottiaux <tibo@openai.com>
2025-04-16 17:37:12 -07:00
Tomas Cupr
33d0d73b82 feat: add shell completion subcommand (#138)
Why
---
Improves the usability of the `codex` CLI by adding shell completion for
file paths. This allows users to quickly complete file arguments using
tab completion in bash, zsh, and fish shells. Enable via `eval "$(codex
completion <shell>)"`.
2025-04-16 16:34:44 -07:00
Alpha Diop
6829a5a012 fix(text-buffer): correct word deletion logic for trailing spaces (Ctrl+Backspace) (#131)
## Description
This fix resolves a bug where Ctrl+Backspace (hex 0x17) deletes the
entire line when the cursor is positioned after a trailing space.

## Problem
When the user has a line like "I want you to refactor my view " (with a
space at the end) and the cursor is after that space, Ctrl+Backspace
deletes the entire line instead of just removing the word "view".

## Solution
- Added a check to detect if the cursor is after spaces
- Modified the logic to delete only one space at a time in this case
- Added a unit test to verify this behavior

## Tests
All tests pass, including the new test that verifies the corrected
behavior.

---------

Signed-off-by: Alpha Diop <alphakhoss@gmail.com>
Co-authored-by: Thibault Sottiaux <tibo@openai.com>
2025-04-16 16:25:08 -07:00
Yonatan Lavy
6d4c4b1bdd refactor: improve performance of renderFilesToXml using Array.join (#127)
### Summary

Refactored the `renderFilesToXml` function to improve performance and
readability by replacing iterative string concatenation with
`Array.map().join()`.

### Changes

- Replaced the `for...of` loop with `files.map(...).join('')`
- Reduced number of string mutation operations
- Preserved the existing XML structure and CDATA safety

### Why

Using `join` avoids repeated string concatenation in loops, which can
improve performance, especially when rendering a large number of files.
It also results in more concise and idiomatic code.


I have read the CLA Document and I hereby sign the CLA
---

Let me know if this needs any adjustments!

Signed-off-by: yonatanlavy <yehonatanmind@gmail.com>
2025-04-16 16:14:57 -07:00
Fouad Matin
13c776411a bump(version): 0.1.2504161510 (#135)
Signed-off-by: Fouad Matin <fouad@openai.com>
2025-04-16 15:49:32 -07:00
Felix Waweru
7b70ff42fa chore: fixed gramatical errors in prompt examples (#136)
Fixed minor gramatical errors in the prompt engineering examples.
2025-04-16 15:45:29 -07:00
Michael Bolin
fb6f798671 Removes computeAutoApproval() and tightens up canAutoApprove() as the source of truth (#126)
Previously, `parseToolCall()` was using `computeAutoApproval()`, which
was a somewhat parallel implementation of `canAutoApprove()` in order to
get `SafeCommandReason` metadata for presenting information to the user.
The only function that was using `SafeCommandReason` was
`useMessageGrouping()`, but it turns out that function was unused, so
this PR removes `computeAutoApproval()` and all code related to it.

More importantly, I believe this fixes
https://github.com/openai/codex/issues/87 because
`computeAutoApproval()` was calling `parse()` from `shell-quote` without
wrapping it in a try-catch. This PR updates `canAutoApprove()` to use a
tighter try-catch block that is specific to `parse()` and returns an
appropriate `SafetyAssessment` in the event of an error, based on the
`ApprovalPolicy`.

Signed-off-by: Michael Bolin <mbolin@openai.com>
2025-04-16 15:39:41 -07:00
Aron Jones
40266beebe dotenv support (#122)
Signed-off-by: Aron Jones <aron.jones@gmail.com>
2025-04-16 15:33:12 -07:00
Jon Church
05c458b51e fix: silence deprecation warnings without NODE_OPTIONS (#80)
Signed-off-by: Jon Church <me@jonchurch.com>
2025-04-16 15:25:32 -07:00
Fouad Matin
7d21ebea4a bump(version): 0.1.04161352 (#125)
Signed-off-by: Fouad Matin <fouad@openai.com>
2025-04-16 15:11:02 -07:00
Michael Bolin
9b733fc48f Back out @lib indirection in tsconfig.json (#111) 2025-04-16 14:16:53 -07:00
Fouad Matin
7ac633b69c update: release (#109)
Signed-off-by: Fouad Matin <fouad@openai.com>
2025-04-16 13:47:36 -07:00
Thibault Sottiaux
1c4e2e19ea (feat) basic retries when hitting rate limit errors (#105)
* w

Signed-off-by: Thibault Sottiaux <tibo@openai.com>

* w

Signed-off-by: Thibault Sottiaux <tibo@openai.com>

* w

Signed-off-by: Thibault Sottiaux <tibo@openai.com>

* w

Signed-off-by: Thibault Sottiaux <tibo@openai.com>

* w

Signed-off-by: Thibault Sottiaux <tibo@openai.com>

---------

Signed-off-by: Thibault Sottiaux <tibo@openai.com>
2025-04-16 13:47:23 -07:00
Jonathan Yang
090140da09 fix: miss catching auto-edit (#99) 2025-04-16 13:23:18 -07:00
Fouad Matin
3cd31c8e13 add: release script (#96)
* add: release script

* add: src to npm module

* fix: readme

Signed-off-by: Fouad Matin <fouad@openai.com>

---------

Signed-off-by: Fouad Matin <fouad@openai.com>
2025-04-16 13:21:22 -07:00
Varun Khalate
71a1ff6ee2 fix: prompt typo (#81)
* fix: developer typo

* fix: typo
2025-04-16 12:43:10 -07:00
easong-openai
75e2454d1d (feat) gracefully handle invalid commands (#79)
* handle invalid commands
* better test
* format
2025-04-16 12:30:43 -07:00
Eric Burke
b6846ce07f (fix) update Docker container scripts (#47)
* Fix Docker container scripts

Signed-off-by:: Eric Burke <eburke@openai.com>

* Build codex TGZ

* fix run_in_container

---------

Co-authored-by: Kyle Kosic <kylekosic@openai.com>
2025-04-16 12:02:41 -07:00
Thibault Sottiaux
e323b2cc95 remove rg requirement (#50)
Signed-off-by: Thibault Sottiaux <tibo@openai.com>
2025-04-16 11:37:16 -07:00
Adam Montgomery
94889dd76e (feat) add request error details (#31)
Signed-off-by: Adam Montgomery <montgomery.adam@gmail.com>
2025-04-16 11:23:42 -07:00
Yashraj Yadav
e9f84eab01 (fix) o3 instead of o3-mini (#37)
* o3 instead of o3-mini
2025-04-16 11:18:41 -07:00
Rasmus Rygaard
cc46d3e359 Update model in code to o4-mini (#39)
Old docs had o3 as the default
2025-04-16 11:17:52 -07:00
Jon Church
ae3958b5a0 (cleanup) remove unused express dep (#20)
* remove unused express dep
* update package-lock.json
2025-04-16 11:09:05 -07:00
Trevor Creech
443ffb7373 update summary to auto (#1) 2025-04-16 10:44:19 -07:00
Thibault Sottiaux
4ad39fc4e1 remove triaging labels section + avoid capturing exitOnCtrlC for full-context mode
Signed-off-by: Thibault Sottiaux <tibo@openai.com>
2025-04-16 10:41:44 -07:00
Thibault Sottiaux
1b40e19baf w (#8) 2025-04-16 10:32:45 -07:00
Thibault Sottiaux
8794df3c08 move all tests under tests/ (#3) 2025-04-16 10:21:48 -07:00
Thibault Sottiaux
1c26c272c8 Add link to cookbook (#2) 2025-04-16 13:15:46 -04:00
Ilan Bigio
ae7b518c53 Initial commit
Signed-off-by: Ilan Bigio <ilan@openai.com>
2025-04-16 13:00:18 -04:00
Ilan Bigio
59a180ddec Initial commit
Signed-off-by: Ilan Bigio <ilan@openai.com>
2025-04-16 12:56:08 -04:00