Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
c09cdc3
adding session naming with /rename and metadata storage in SessionMeta
pap-openai Jan 5, 2026
a02fc5f
[MCP] Sanitize MCP tool names to ensure they are compatible with the …
gpeal Jan 5, 2026
9b2c216
feat(tui2): transcript scrollbar (auto-hide + drag) (#8728)
joshka-oai Jan 5, 2026
1f4356b
fix(codex-api): handle Chat Completions DONE sentinel (#8708)
joshka-oai Jan 5, 2026
047110f
(MacOS) Load config requirements from MDM (#8743)
gt-oai Jan 5, 2026
9a139ae
feat: expose outputSchema to user_turn/turn_start app_server API (#8377)
apanasenko-oai Jan 5, 2026
388cac7
chore: GH pager (#8747)
jif-oai Jan 5, 2026
126a20f
better idempotency for creating/updating firewall rules during setup.…
iceweasel-oai Jan 5, 2026
eb4bea6
never let sandbox write to .codex/ or .codex/.sandbox/ (#8683)
iceweasel-oai Jan 5, 2026
ee601e4
chore: improve skills render section (#8459)
gverma-openai Jan 5, 2026
cce98e8
Use issuer URL in device auth prompt link (#7858)
abrar71 Jan 5, 2026
ff20877
best effort to "hide" Sandbox users (#8492)
iceweasel-oai Jan 5, 2026
0eb388a
feat: add justification arg to prefix_rule() in *.rules (#8751)
bolinfest Jan 5, 2026
a1fb1ff
[device-auth] Update login instruction for headless environments. (#8…
mzeng-openai Jan 5, 2026
eeae40f
Use ConfigLayerStack for skills discovery. (#8497)
xl-openai Jan 5, 2026
b79cc88
Allow global exec flags after `resume` and fix CI codex build/timeout…
fjord-oai Jan 5, 2026
24f9fab
chore(apply-patch) additional scenarios (#8230)
dylan-hurd-oai Jan 5, 2026
a54bd8e
fix: accept whitespace-padded patch markers (#8746)
tibo-openai Jan 6, 2026
f69cba4
tui2: stop baking streaming wraps; reflow agent markdown (#8761)
joshka-oai Jan 6, 2026
856ee37
fix: render cwd-relative paths in tui (#8771)
joshka-oai Jan 6, 2026
0b1b363
fix: fix readiness subscribe token wrap-around (#8770)
tibo-openai Jan 6, 2026
1de65ba
chore: emit unified exec begin only when PTY exist (#8780)
jif-oai Jan 6, 2026
89a9c94
fix: stop honoring CODEX_MANAGED_CONFIG_PATH environment variable in …
bolinfest Jan 6, 2026
0257070
fix: update model examples to gpt-5.2 (#8566)
seuros Jan 6, 2026
e4a3fb1
feat: add head-tail buffer for `unified_exec` (#8735)
jif-oai Jan 6, 2026
e360924
chore: add model/list call to app-server-test-client (#8331)
owenlin0 Jan 6, 2026
9933c01
feat: forced tool tips (#8752)
jif-oai Jan 6, 2026
a660a98
chore: clear background terminals on interrupt (#8786)
jif-oai Jan 6, 2026
cac421c
feat: add analytics config setting (#8350)
JaviSoto Jan 6, 2026
b43e04d
feat: agent controller (#8783)
jif-oai Jan 6, 2026
c7d6de5
suppress popups while browsing input history (#8772)
xl-openai Jan 6, 2026
7be7f03
Clear copy pill background and add snapshot test (#8777)
joshka-oai Jan 6, 2026
536518c
feat: drop agent bus and store the agent status in codex directly (#8…
jif-oai Jan 6, 2026
6d97c46
feat(app-server): thread/rollback API (#8454)
owenlin0 Jan 6, 2026
57bf1cd
[app-server] fix config loading for conversations (#8765)
celia-oai Jan 6, 2026
0d756d2
add web_search_cached flag (#8795)
sayan-oai Jan 6, 2026
546c99d
fix: populate the release notes when the release is created (#8799)
bolinfest Jan 6, 2026
0c8493b
fix: truncate long approval prefixes when rendering (#8734)
tibo-openai Jan 6, 2026
0258e92
Enable model upgrade popup even when selected model is no longer in p…
charley-oai Jan 7, 2026
113a746
chore: stabilize core tool parallelism test (#8805)
tibo-openai Jan 7, 2026
323694e
chore: silent just fmt (#8820)
jif-oai Jan 7, 2026
0ba8aea
fix: parse git apply paths correctly (#8824)
tibo-openai Jan 7, 2026
fe46f2a
fix: handle /review arguments in TUI (#8823)
tibo-openai Jan 7, 2026
acd47ec
chore: rename unified exec sessions (#8822)
jif-oai Jan 7, 2026
137b26b
fix: handle early codex exec exit (#8825)
tibo-openai Jan 7, 2026
ef39b12
chore: unify conversation with thread name (#8830)
jif-oai Jan 7, 2026
6aba120
Move tests below auth manager (#8840)
pakrym-oai Jan 7, 2026
d264103
fix: upgrade lru crate to 0.16.3 (#8845)
bolinfest Jan 7, 2026
6a2a633
Merge Modelfamily into modelinfo (#8763)
aibrahim-oai Jan 7, 2026
263e30e
remove unnecessary todos (#8842)
aibrahim-oai Jan 7, 2026
520f0ce
Stop using AuthManager as the source of codex_home (#8846)
pakrym-oai Jan 7, 2026
74bd722
Fix app-server `write_models_cache` to treat models with less priorit…
aibrahim-oai Jan 7, 2026
f64921e
chore: drop useless feature flags (#8850)
jif-oai Jan 7, 2026
a6b3fbc
chore: drop some deprecated (#8848)
jif-oai Jan 7, 2026
4211211
[chore] update app server doc with skills (#8853)
celia-oai Jan 7, 2026
9afc768
fix: implement 'Allow this session' for apply_patch approvals (#8451)
owenlin0 Jan 7, 2026
8fc7897
Override truncation policy at model info level (#8856)
aibrahim-oai Jan 7, 2026
dfdfa6c
Simplify error managment in `run_turn` (#8849)
aibrahim-oai Jan 7, 2026
4e59cea
Add feature for optional request compression (#8767)
cconger Jan 7, 2026
dbb4daa
Clarify YAML frontmatter formatting in skill-creator (#8610)
darlingm Jan 7, 2026
4240c0d
Warn in /model if BASE_URL set (#8847)
gt-oai Jan 7, 2026
afda13e
Support symlink for skills discovery. (#8801)
xl-openai Jan 7, 2026
c3ec1d7
Feat: appServer.requirementList for requirement.toml (#8800)
shijie-oai Jan 7, 2026
0fd5fd7
fix: update resource path resolution logic so it works with Bazel (#8…
bolinfest Jan 7, 2026
6127ed4
fix: use tokio for I/O in an async function (#8868)
bolinfest Jan 8, 2026
0c64186
add footer note to TUI (#8867)
iceweasel-oai Jan 8, 2026
9e9858e
feat: introduce find_resource! macro that works with Cargo or Bazel (…
bolinfest Jan 8, 2026
6a43a2d
Support UserInput::Skill in V2 API. (#8864)
xl-openai Jan 8, 2026
55c6894
add ability to disable input temporarily in the TUI. (#8876)
iceweasel-oai Jan 8, 2026
c801944
fix: make the find_resource! macro responsible for the absolutize() c…
bolinfest Jan 8, 2026
4739d5c
fix: windows can now paste non-ascii multiline text (#8774)
dylan-hurd-oai Jan 8, 2026
c6fddef
chore: add list thread ids on manager (#8855)
jif-oai Jan 8, 2026
0b64a4e
feat: metrics capabilities (#8318)
jif-oai Jan 8, 2026
56e1b23
fix: stabilize list_dir pagination order (#8826)
tibo-openai Jan 8, 2026
6119cb2
adding session naming with /rename and metadata storage in SessionMeta
pap-openai Jan 5, 2026
7243698
fix Restore writer file handle on rename failure
pap-openai Jan 6, 2026
9f1ca04
changing attribute to name + support command with arg
pap-openai Jan 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 21 additions & 0 deletions .github/workflows/rust-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,26 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v6

- name: Generate release notes from tag commit message
id: release_notes
shell: bash
run: |
set -euo pipefail
# On tag pushes, GITHUB_SHA may be a tag object for annotated tags;
# peel it to the underlying commit.
commit="$(git rev-parse "${GITHUB_SHA}^{commit}")"
notes_path="${RUNNER_TEMP}/release-notes.md"
# Use the commit message for the commit the tag points at (not the
# annotated tag message).
git log -1 --format=%B "${commit}" > "${notes_path}"
# Ensure trailing newline so GitHub's markdown renderer doesn't
# occasionally run the last line into subsequent content.
echo >> "${notes_path}"
echo "path=${notes_path}" >> "${GITHUB_OUTPUT}"
- uses: actions/download-artifact@v7
with:
path: dist
Expand Down Expand Up @@ -395,6 +415,7 @@ jobs:
with:
name: ${{ steps.release_name.outputs.name }}
tag_name: ${{ github.ref_name }}
body_path: ${{ steps.release_notes.outputs.path }}
files: dist/**
# Mark as prerelease only when the version has a suffix after x.y.z
# (e.g. -alpha, -beta). Otherwise publish a normal release.
Expand Down
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,11 @@ If you don’t have the tool:
- Prefer deep equals comparisons whenever possible. Perform `assert_eq!()` on entire objects, rather than individual fields.
- Avoid mutating process environment in tests; prefer passing environment-derived flags or dependencies from above.

### Spawning workspace binaries in tests (Cargo vs Buck2)
### Spawning workspace binaries in tests (Cargo vs Bazel)

- Prefer `codex_utils_cargo_bin::cargo_bin("...")` over `assert_cmd::Command::cargo_bin(...)` or `escargot` when tests need to spawn first-party binaries.
- Under Buck2, `CARGO_BIN_EXE_*` may be project-relative (e.g. `buck-out/...`), which breaks if a test changes its working directory. `codex_utils_cargo_bin::cargo_bin` resolves to an absolute path first.
- When locating fixture files under Buck2, avoid `env!("CARGO_MANIFEST_DIR")` (Buck codegen sets it to `"."`). Prefer deriving paths from `codex_utils_cargo_bin::buck_project_root()` when needed.
- Under Bazel, binaries and resources may live under runfiles; use `codex_utils_cargo_bin::cargo_bin` to resolve absolute paths that remain stable after `chdir`.
- When locating fixture files or test resources under Bazel, avoid `env!("CARGO_MANIFEST_DIR")`. Prefer `codex_utils_cargo_bin::find_resource!` so paths resolve correctly under both Cargo and Bazel runfiles.

### Integration tests (core)

Expand Down
16 changes: 16 additions & 0 deletions announcement_tip.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Example announcement tips for Codex TUI.
# Each [[announcements]] entry is evaluated in order; the last matching one is shown.
# Dates are UTC, formatted as YYYY-MM-DD. The from_date is inclusive and the to_date is exclusive.
# version_regex matches against the CLI version (env!("CARGO_PKG_VERSION")); omit to apply to all versions.
# target_app specify which app should display the announcement (cli, vsce, ...).

[[announcements]]
content = "Welcome to Codex! Check out the new onboarding flow."
from_date = "2024-10-01"
to_date = "2024-10-15"
target_app = "cli"

[[announcements]]
content = "This is a test announcement"
version_regex = "^0\\.0\\.0$"
to_date = "2026-01-10"
Loading