Commit Graph
116 Commits
Author SHA1 Message Date
James Peter 5ca7c05d85 docs(acp): document coder acp minimal config 2025-09-22 15:49:13 +10:00
James Peter 237d2446ed feat(cli): add acp alias for mcp subcommand 2025-09-22 15:42:26 +10:00
James Peter e11cb6ba33 merge code-branch-20250921-231422 via /merge 2025-09-22 14:02:51 +10:00
James Peter edccb279f1 feat(acp): integrate ACP support and rename MCP server 2025-09-22 13:17:51 +10:00
James Peter 0fac49bc5f Merge branch 'code-branch-20250922-013220' into main
# Conflicts:
#	codex-rs/cli/src/main.rs
2025-09-22 12:42:06 +10:00
James Peter a69fc2ad3c fix(cli/resume): restore coder resume support
Closes #214.
2025-09-22 12:19:12 +10:00
James Peter c347051ba2 fix(cli/completion): generate scripts with code command name
Ensure the completion helper always emits the new code command prefix and add a regression test to prevent the legacy codex name from resurfacing. Fixes #197.
2025-09-22 11:52:54 +10:00
James Peter ba4c5959c5 fix(cli/completion): emit code command in completions
Update completion generator and docs to use the code binary name.\n\nCloses #197.
2025-09-20 06:04:09 +10:00
just-every-code 959a409129 merge(upstream): bring in upstream/main into upstream-merge
- Adopt upstream exec sandbox cwd parameter and wire through Session
- Keep our core codex.rs and MCP codex_message_processor to preserve UA/tool invariants
- Align CLI debug_sandbox with new sandbox_cwd APIs
- Preserve fork policies (browser/agent tools, UA/version)

Build: ./build-fast.sh ok; verify.sh passed
2025-09-18 22:04:09 +00:00
Michael BolinandGitHub f5d07b56c5 fix: ensure cwd for conversation and sandbox are separate concerns (#3874)
Previous to this PR, both of these functions take a single `cwd`:


https://github.com/openai/codex/blob/d770cd22af56aa0fab448704bd74a849c70fa1d6/codex-rs/core/src/seatbelt.rs#L19-L25


https://github.com/openai/codex/blob/d770cd22af56aa0fab448704bd74a849c70fa1d6/codex-rs/core/src/landlock.rs#L16-L23

whereas `cwd` and `sandbox_cwd` should be set independently (fixed in
this PR).

Added `sandbox_distinguishes_command_and_policy_cwds()` to
`codex-rs/exec/tests/suite/sandbox.rs` to verify this.
2025-09-18 14:37:06 -07:00
Jeremy RoseandGitHub 96861c69da hint for codex resume on tui exit (#3757)
<img width="931" height="438" alt="Screenshot 2025-09-16 at 4 25 19 PM"
src="https://github.com/user-attachments/assets/ccfb8df1-feaf-45b4-8f7f-56100de916d5"
/>
2025-09-18 09:28:32 -07:00
James Peter 2f18e78f04 docs: clarify config directories (closes #181) 2025-09-18 17:21:12 +10:00
just-every-code dd97910d3b merge(upstream): sync upstream/main into upstream-merge; keep forked TUI, adopt upstream rust crates\n\n- Prefer ours in TUI conflict files; preserve fork UX and tools\n- Adopt upstream in common/exec/file-search; update frames assets\n- Remove unused upstream frames module to maintain zero warnings\n\nBuild: ./build-fast.sh passed with no warnings; verify.sh guards OK 2025-09-15 08:39:02 +00:00
37c085d29e chore(deps): bump tracing-subscriber from 0.3.19 to 0.3.20 in /codex-rs (#3620)
Bumps [tracing-subscriber](https://github.com/tokio-rs/tracing) from
0.3.19 to 0.3.20.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tracing/releases">tracing-subscriber's
releases</a>.</em></p>
<blockquote>
<h2>tracing-subscriber 0.3.20</h2>
<p><strong>Security Fix</strong>: ANSI Escape Sequence Injection
(CVE-TBD)</p>
<h2>Impact</h2>
<p>Previous versions of tracing-subscriber were vulnerable to ANSI
escape sequence injection attacks. Untrusted user input containing ANSI
escape sequences could be injected into terminal output when logged,
potentially allowing attackers to:</p>
<ul>
<li>Manipulate terminal title bars</li>
<li>Clear screens or modify terminal display</li>
<li>Potentially mislead users through terminal manipulation</li>
</ul>
<p>In isolation, impact is minimal, however security issues have been
found in terminal emulators that enabled an attacker to use ANSI escape
sequences via logs to exploit vulnerabilities in the terminal
emulator.</p>
<h2>Solution</h2>
<p>Version 0.3.20 fixes this vulnerability by escaping ANSI control
characters in when writing events to destinations that may be printed to
the terminal.</p>
<h2>Affected Versions</h2>
<p>All versions of tracing-subscriber prior to 0.3.20 are affected by
this vulnerability.</p>
<h2>Recommendations</h2>
<p>Immediate Action Required: We recommend upgrading to
tracing-subscriber 0.3.20 immediately, especially if your
application:</p>
<ul>
<li>Logs user-provided input (form data, HTTP headers, query parameters,
etc.)</li>
<li>Runs in environments where terminal output is displayed to
users</li>
</ul>
<h2>Migration</h2>
<p>This is a patch release with no breaking API changes. Simply update
your Cargo.toml:</p>
<pre lang="toml"><code>[dependencies]
tracing-subscriber = &quot;0.3.20&quot;
</code></pre>
<h2>Acknowledgments</h2>
<p>We would like to thank <a href="http://github.com/zefr0x">zefr0x</a>
who responsibly reported the issue at
<code>[email protected]</code>.</p>
<p>If you believe you have found a security vulnerability in any
tokio-rs project, please email us at <code>[email protected]</code>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tokio-rs/tracing/commit/4c52ca5266a3920fc5dfeebda2accf15ee7fb278"><code>4c52ca5</code></a>
fmt: fix ANSI escape sequence injection vulnerability (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3368">#3368</a>)</li>
<li><a
href="https://github.com/tokio-rs/tracing/commit/f71cebe41e4c12735b1d19ca804428d4ff7d905d"><code>f71cebe</code></a>
subscriber: impl Clone for EnvFilter (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3360">#3360</a>)</li>
<li><a
href="https://github.com/tokio-rs/tracing/commit/3a1f571102b38bcdca13d59f3c454989d179055d"><code>3a1f571</code></a>
Fix CI (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3361">#3361</a>)</li>
<li><a
href="https://github.com/tokio-rs/tracing/commit/e63ef57f3d686abe3727ddd586eb9af73d6715b7"><code>e63ef57</code></a>
chore: prepare tracing-attributes 0.1.30 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3316">#3316</a>)</li>
<li><a
href="https://github.com/tokio-rs/tracing/commit/6e59a13b1a7bcdd78b8b5a7cbcf70a0b2cdd76f0"><code>6e59a13</code></a>
attributes: fix tracing::instrument regression around shadowing (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3311">#3311</a>)</li>
<li><a
href="https://github.com/tokio-rs/tracing/commit/e4df76127538aa8370d7dee32a6f84bbec6bbf10"><code>e4df761</code></a>
tracing: update core to 0.1.34 and attributes to 0.1.29 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3305">#3305</a>)</li>
<li><a
href="https://github.com/tokio-rs/tracing/commit/643f392ebb73c4fb856f56a78c066c82582dd22c"><code>643f392</code></a>
chore: prepare tracing-attributes 0.1.29 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3304">#3304</a>)</li>
<li><a
href="https://github.com/tokio-rs/tracing/commit/d08e7a6eea1833810ea527e18ea03b08cd402c9d"><code>d08e7a6</code></a>
chore: prepare tracing-core 0.1.34 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3302">#3302</a>)</li>
<li><a
href="https://github.com/tokio-rs/tracing/commit/6e70c571d319a033d5f37c885ccf99aa675a9eac"><code>6e70c57</code></a>
tracing-subscriber: count numbers of enters in <code>Timings</code> (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/2944">#2944</a>)</li>
<li><a
href="https://github.com/tokio-rs/tracing/commit/c01d4fd9def2fb061669a310598095c789ca0a32"><code>c01d4fd</code></a>
fix docs and enable CI on <code>main</code> branch (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3295">#3295</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.3.19...tracing-subscriber-0.3.20">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tracing-subscriber&package-manager=cargo&previous-version=0.3.19&new-version=0.3.20)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)

</details>

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: Hanzo Dev <[email protected]>
2025-09-15 00:51:33 -07:00
just-every-code c2b20e3dc9 merge(upstream): by-bucket merge of upstream/main; keep TUI, adopt CLI resume
- Preserved fork in codex-rs/tui/** and core openai_tools/codex.rs per policy
- Adopted upstream CLI resume flow, adapted to our TUI Cli
- Ran scripts/upstream-merge/verify.sh: PASS
- Ran ./build-fast.sh: PASS (no warnings)
2025-09-15 06:43:24 +00:00
Ahmed IbrahimandGitHub a2a5f26f15 Fix codex resume so flags (cd, model, search, etc.) still work (#3625)
Bug: now we can add flags/config values only before resume. 

`codex -m gpt-5 resume` works

However, `codex resume -m gpt-5` should also work.

This PR is following this
[approach](https://stackoverflow.com/questions/76408952/rust-clap-re-use-same-arguments-in-different-subcommand)
in doing so.

I didn't convert those flags to global because we have `codex login`
that shouldn't expect them.
2025-09-15 06:16:17 +00:00
just-every-code 512080e132 merge(upstream): sync upstream/main into upstream-merge
- Adopt upstream changes by bucket per policy
- Keep our core/TUI invariants and tool gating
- Purge upstream codex-cli image assets
- Verify: scripts/upstream-merge/verify.sh ok; ./build-fast.sh ok
2025-09-15 05:05:11 +00:00
easong-openaiandGitHub 70c3e2bc87 initial mcp add interface (#3543)
Adds `codex mcp add`, `codex mcp list`, `codex mcp remove`. Currently writes to global config.
2025-09-15 04:30:56 +00:00
just-every-code 7e82930009 Merge upstream/main: preserve TUI/tooling; adopt core updates (verify.sh ok, build-fast: zero warnings) 2025-09-15 01:30:16 +00:00
just-every-code 9c3a0b2ece merge(upstream): sync upstream/main into upstream-merge with selective reconciliation
- Prefer ours for TUI and core API invariants; adopted upstream for exec/common where safe
- Restored fork invariants (browser/agent tools, UA/version) and added missing deps
- Aligned conversation manager to session_id flow; added resume wiring via config
- Re-exported rollout helpers at crate root for exec; fixed MCP/TUI call sites
- Build passes verify.sh and ./build-fast.sh with zero errors
2025-09-15 00:11:46 +00:00
Ahmed IbrahimandGitHub 45ac09102a enable-resume (#3537)
Adding the ability to resume conversations.
we have one verb `resume`. 

Behavior:

`tui`:
`codex resume`: opens session picker
`codex resume --last`: continue last message
`codex resume <session id>`: continue conversation with `session id`

`exec`:
`codex resume --last`: continue last conversation
`codex resume <session id>`: continue conversation with `session id`

Implementation:
- I added a function to find the path in `~/.codex/sessions/` with a
`UUID`. This is helpful in resuming with session id.
- Added the above mentioned flags
- Added lots of testing
2025-09-14 19:33:19 -04:00
Eric TrautandGitHub 0a982f6d27 Simplify auth flow and reconcile differences between ChatGPT and API Key auth (#3189)
This PR does the following:
* Adds the ability to paste or type an API key.
* Removes the `preferred_auth_method` config option. The last login
method is always persisted in auth.json, so this isn't needed.
* If OPENAI_API_KEY env variable is defined, the value is used to
prepopulate the new UI. The env variable is otherwise ignored by the
CLI.
* Adds a new MCP server entry point "login_api_key" so we can implement
this same API key behavior for the VS Code extension.
<img width="473" height="140" alt="Screenshot 2025-09-04 at 3 51 04 PM"
src="https://github.com/user-attachments/assets/c11bbd5b-8a4d-4d71-90fd-34130460f9d9"
/>
<img width="726" height="254" alt="Screenshot 2025-09-04 at 3 51 32 PM"
src="https://github.com/user-attachments/assets/6cc76b34-309a-4387-acbc-15ee5c756db9"
/>
2025-09-11 09:16:34 -07:00
just-every-code 2c5c3b42da merge(upstream): sync with openai/codex main into upstream-merge\n\n- Prefer upstream in core: adopt new ToolsConfig API and OpenAI tools plumbing\n- Keep our TUI/tooling; no conflicts in prefer-ours buckets\n- Purge rules respected; no reintroduced assets\n\nBuild: ./build-fast.sh ok; verify.sh ok 2025-09-10 22:27:14 +00:00
James Peter 019266c865 feat(tui/spinner): LLM-driven custom spinner flow with live streaming, JSON schema, and preview\n\n- Replace manual custom form with prompt-based generator\n- Send text.format=json_schema (strict), enforce interval 50–300ms, 2–50 frames, 1–20 chars; truncate + left-pad frames\n- Live in-box streaming during generation with wrapping; dimmed line with postfix\n- Loading view: title + spinner + "Generating spinner with AI…"\n- Review view: list-style preview row; [Save] [Retry] below preview\n- Enter on Description submits immediately\n- Add CLI: for side-channel structured requests\n- Core: add TextFormat + Prompt.text_format; include text.format in requests 2025-09-10 21:07:43 +10:00
James Peter e6c2be6f6a ux(tui/appearance): overview labels + spinner table with live preview; keep anchored 9-row viewport\n\n- Overview: 'Change theme' / 'Change spinner'\n- Spinner list: ratatui Table [name | Working… <frame>] for easy visual compare\n- Animate table previews; keep colored selector and anchored window\n- Factor list_window::anchored_window for reuse\n\nBuild: ./build-fast.sh clean (no warnings) 2025-09-10 09:47:54 +10:00
James Peter 0b474d3aa0 fix(tui/appearance): implement anchored scrolling (top→center→bottom) and ensure selection visible on entry\n\n- Render-time windowing: top until reaching middle, center while scrolling, bottom shows end\n- Make initial entry show selected row at top one time (then anchor)\n- Remove stateful offsets; keep simple Up/Down selection updates\n- Keep selector colored for dark themes\n\nBuild: ./build-fast.sh clean (no warnings) 2025-09-10 09:28:27 +10:00
Gabriel PealandGitHub 7f496aa29a Replace config.responses_originator_header_internal_override with CODEX_INTERNAL_ORIGINATOR_OVERRIDE_ENV_VAR (#3388)
The previous config approach had a few issues:
1. It is part of the config but not designed to be used externally
2. It had to be wired through many places (look at the +/- on this PR
3. It wasn't guaranteed to be set consistently everywhere because we
don't have a super well defined way that configs stack. For example, the
extension would configure during newConversation but anything that
happened outside of that (like login) wouldn't get it.

This env var approach is cleaner and also creates one less thing we have
to deal with when coming up with a better holistic story around configs.

One downside is that I removed the unit test testing for the override
because I don't want to deal with setting the global env or spawning
child processes and figuring out how to introspect their originator
header. The new code is sufficiently simple and I tested it e2e that I
feel as if this is still worth it.
2025-09-09 17:23:23 -04:00
James Peter b01c52c6d4 feat(cli/preview): save downloads under ~/.code/bin and suffix with PR id\n\nDefault out dir is now ~/.code/bin when -o is not provided.\nRename extracted binary to <name>-<pr> to avoid dropping artifacts into repo. 2025-09-09 20:35:45 +10:00
James Peter d2eed41dfc feat(cli/preview): run binary without --help; simplify PR preview
- Launch binary directly and pass args (no implicit --help)
- Simplify PR preview comment format
- Keep history free of platform binaries
2025-09-09 20:30:55 +10:00
James Peter 9725fdba93 feat(preview): publish prerelease on PR with assets (no auth downloads); update PR comment to recommend 'code preview pr:<number>'; CLI supports pr:<number> and downloads from releases; keep run-id path as fallback 2025-09-09 16:12:04 +10:00
James Peter ee37eca746 feat(ci/preview-build): upload preview-helper script artifact once; list in PR comment 2025-09-09 12:56:17 +10:00
James Peter 83e07abd99 revert: drop unintended preflight test files and release.yml edits; keep only core API tests and upstream-merge prompt/checks 2025-09-09 10:56:07 +10:00
James Peter 74b0c1ca1c test(core/api): add compile-only API surface checks for core re-exports and models alias 2025-09-09 10:54:43 +10:00
James Peter f3cdc6fe59 fix(login): remove /oauth2/token fallback; adopt upstream-visible request shape
- Revert c8b4584 OAuth fallback and Accept header changes.
- Add originator param to authorize URL and ServerOptions.
- Add cancel flow (/cancel route) and bind retry to replace prior server.
- Keep shared HTTP client for TLS robustness; token requests now match upstream path and headers.
2025-09-06 20:56:23 +10:00
James Peter 276ae527af refactor(tui/input): adopt upstream reader-thread Release filtering for #40\n\nMatch origin/main by forwarding only Press|Repeat from the input thread and keeping simple normalization for non-enhanced keyboards. This centralizes the fix and avoids later conditional drops.\n\nNo functional change vs upstream; aligns our tree with main’s solution. 2025-09-06 19:00:24 +10:00
James Peter 1759c50dae feat(tui/layout): align composer/history wrap; add sanitize markers
Introduce layout_consts and replace hardcoded paddings to keep composer and history wrapping identical.

Extend sanitize::Options with debug_markers (default false) and plumb to history cell render paths.

Use codex-version crate for version reporting in TUI and wire crate deps.

Cleanup GitHub CI: remove unused workflows/assets; update issue-triage.
2025-09-05 23:07:36 +10:00
James Peter deb63687bf fix(tui/redraw): ensure scheduled animation frames are not suppressed by debounce
- Add  flag independent of
- Arm exactly one timer for AppEvent::ScheduleFrameIn while allowing immediate redraw debounce
- Prevents welcome logo animation from stalling until input

Also: revert intro color fade profile to original (no visual change request).
2025-09-05 08:21:47 +10:00
pakrym-oaiandGitHub d53ef6fdc1 Include originator in authentication URL parameters (#3117)
Associates the client with an authentication session.
2025-09-03 16:51:00 -07:00
James Peter 9c650fbad8 fix(core): complete upstream integration
- Update all AuthManager::shared and CodexAuth::from_codex_home call sites with originator
- Use rollout::policy helper to filter persisted items
- Fix shell tool description formatting and UA helper reference
- Remove unused import in chatgpt_client

Build: ./build-fast.sh clean with zero warnings
2025-09-04 07:21:34 +10:00
pakrym-oaiandGitHub 523e1e9f19 Add a common way to create HTTP client (#3110)
Ensure User-Agent and originator are always sent.
2025-09-03 10:11:02 -07:00
James Peter 08609e46c7 merge: integrate upstream/main (prefer ours); keep TUI fork, drop legacy vt100 tests, retain local common.rs 2025-09-03 19:49:35 +10:00
James Peter e3a13174f4 chore(codex-rs): clean up tree; add CLI order_replay
- Remove legacy TUI test suite and large fixtures
- Add cli/src/bin/order_replay.rs for output-order analysis
- Update TUI streaming and widgets; minor core protocol/client tweaks
- Update Cargo manifests/lockfile

Build verified with ./build-fast.sh
2025-09-03 19:47:03 +10:00
pakrym-oaiandGitHub e5e9f27c79 Move CodexAuth and AuthManager to the core crate (#3074)
Fix a long standing layering issue.
2025-09-02 18:36:19 -07:00
James Peter 9c95a987a6 Prefer CODE_VERSION with fallback to CARGO_PKG_VERSION across codex-rs\n\n- Replace direct env!("CARGO_PKG_VERSION") with option_env!("CODE_VERSION").unwrap_or(env!("CARGO_PKG_VERSION"))\n- Update clap version field, TUI upgrade banners, user agent, MCP client init, and OpenAI header\n- Verified via ./build-fast.sh 2025-08-25 08:39:26 +10:00
James Peter b60a88d2a1 Merge upstream/main; align protocol/core; revert TUI to fork and adapt; fix build 2025-08-23 18:13:52 +10:00
Eric TrautandGitHub 436bfc2bc9 Add AuthManager and enhance GetAuthStatus command (#2577)
This PR adds a central `AuthManager` struct that manages the auth
information used across conversations and the MCP server. Prior to this,
each conversation and the MCP server got their own private snapshots of
the auth information, and changes to one (such as a logout or token
refresh) were not seen by others.

This is especially problematic when multiple instances of the CLI are
run. For example, consider the case where you start CLI 1 and log in to
ChatGPT account X and then start CLI 2 and log out and then log in to
ChatGPT account Y. The conversation in CLI 1 is still using account X,
but if you create a new conversation, it will suddenly (and
unexpectedly) switch to account Y.

With the `AuthManager`, auth information is read from disk at the time
the `ConversationManager` is constructed, and it is cached in memory.
All new conversations use this same auth information, as do any token
refreshes.

The `AuthManager` is also used by the MCP server's GetAuthStatus
command, which now returns the auth method currently used by the MCP
server.

This PR also includes an enhancement to the GetAuthStatus command. It
now accepts two new (optional) input parameters: `include_token` and
`refresh_token`. Callers can use this to request the in-use auth token
and can optionally request to refresh the token.

The PR also adds tests for the login and auth APIs that I recently added
to the MCP server.
2025-08-22 13:10:11 -07:00
James Peter 9aad892f29 Merge remote-tracking branch 'upstream/main' into merge-upstream-20250822-232701 2025-08-22 23:27:10 +10:00
Eric TrautandGitHub d10eeefaf0 Added new auth-related methods and events to mcp server (#2496)
This PR adds the following:
* A getAuthStatus method on the mcp server. This returns the auth method
currently in use (chatgpt or apikey) or none if the user is not
authenticated. It also returns the "preferred auth method" which
reflects the `preferred_auth_method` value in the config.
* A logout method on the mcp server. If called, it logs out the user and
deletes the `auth.json` file — the same behavior in the cli's `/logout`
command.
* An `authStatusChange` event notification that is sent when the auth
status changes due to successful login or logout operations.
* Logic to pass command-line config overrides to the mcp server at
startup time. This allows use cases like `codex mcp -c
preferred_auth_method=apikey`.
2025-08-20 20:36:34 -07:00
James Peter 14148bbdab merge: upstream/main into fork (prefer ours)\n\n- TUI: adopt upstream custom_terminal and auth widget; keep themes/browser/agents intact\n- Fix stable Rust let-chains across core/tui/cli/mcp-server\n- Align toolchains: build-fast.sh uses rustup (1.89.0 via rust-toolchain.toml); release.yml -> 1.89.0\n- core: file locking via fs2, remove std TryLockError usage\n- mcp-server: keep our impl; avoid upstream-only EventMsg variant\n- TUI fixes: selection list module/export, render_rows arg, history token usage, formatting utils\n- cli/login: remove preferred_auth_method, fix env var let-chain\n\nBuild: ./build-fast.sh passes with Rust 1.89.0 2025-08-20 09:55:17 +10:00
James Peter 0e00fafc15 Merge upstream/main into fork (prefer ours)
# Conflicts:
#	codex-rs/tui/src/custom_terminal.rs
2025-08-20 08:13:33 +10:00