Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: openai/codex
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: rust-v0.85.0
Choose a base ref
...
head repository: openai/codex
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: rust-v0.86.0
Choose a head ref
  • 9 commits
  • 26 files changed
  • 7 contributors

Commits on Jan 15, 2026

  1. Configuration menu
    Copy the full SHA
    393a5a0 View commit details
    Browse the repository at this point in the history
  2. nit: clean unified exec background processes (#9304)

    To fix the occurences where the End event is received after the listener
    stopped listenning
    jif-oai authored Jan 15, 2026
    Configuration menu
    Copy the full SHA
    da44569 View commit details
    Browse the repository at this point in the history
  3. Revert recent styling change for input prompt placeholder text (#9307)

    A recent change in commit ccba737 modified the styling of the
    placeholder text (e.g. "Implement {feature}") in the input box of the
    CLI, changing it from non-italic to italic. I think this was likely
    unintentional. It results in a bad display appearance on some terminal
    emulators, and several users have complained about it.
    
    This change switches back to non-italic styling, restoring the older
    behavior.
    
    It addresses #9262
    etraut-openai authored Jan 15, 2026
    Configuration menu
    Copy the full SHA
    5f10548 View commit details
    Browse the repository at this point in the history
  4. Support SKILL.toml file. (#9125)

    We’re introducing a new SKILL.toml to hold skill metadata so Codex can
    deliver a richer Skills experience.
    
    Initial focus is the interface block:
    ```
    [interface]
    display_name = "Optional user-facing name"
    short_description = "Optional user-facing description"
    icon_small = "./assets/small-400px.png"
    icon_large = "./assets/large-logo.svg"
    brand_color = "#3B82F6"
    default_prompt = "Optional surrounding prompt to use the skill with"
    ```
    
    All fields are exposed via the app server API.
    display_name and short_description are consumed by the TUI.
    xl-openai authored Jan 15, 2026
    Configuration menu
    Copy the full SHA
    42fa4c2 View commit details
    Browse the repository at this point in the history
  5. [search] allow explicitly disabling web search (#9249)

    moving `web_search` rollout serverside, so need a way to explicitly
    disable search + signal eligibility from the client.
    
    - Add `x‑oai‑web‑search‑eligible` header that signifies whether the
    request can have web search.
    - Only attach the `web_search` tool when the resolved `WebSearchMode` is
    `Live` or `Cached`.
    sayan-oai authored Jan 15, 2026
    Configuration menu
    Copy the full SHA
    169201b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    d886a86 View commit details
    Browse the repository at this point in the history
  7. Revert empty paste image handling (#9318)

    Revert #9049 behavior so empty paste events no longer trigger a
    clipboard image read.
    aibrahim-oai authored Jan 15, 2026
    Configuration menu
    Copy the full SHA
    749b583 View commit details
    Browse the repository at this point in the history
  8. fix: send non-null content on elicitation Accept (#9196)

    ## Summary
    
    - When a user accepts an MCP elicitation request, send `content:
    Some(json!({}))` instead of `None`
    - MCP servers that use elicitation expect content to be present when
    action is Accept
    - This matches the expected behavior shown in tests at
    `exec-server/tests/common/lib.rs:171`
    
    ## Root Cause
    
    In `codex-rs/core/src/codex.rs`, the `resolve_elicitation` function
    always sent `content: None`:
    
    ```rust
    let response = ElicitationResponse {
        action,
        content: None,  // Always None, even for Accept
    };
    ```
    
    ## Fix
    
    Send an empty object when accepting:
    
    ```rust
    let content = match action {
        ElicitationAction::Accept => Some(serde_json::json!({})),
        ElicitationAction::Decline | ElicitationAction::Cancel => None,
    };
    ```
    
    ## Test plan
    
    - [x] Code compiles with `cargo check -p codex-core`
    - [x] Formatted with `just fmt`
    - [ ] Integration test `accept_elicitation_for_prompt_rule` (requires
    MCP server binary)
    
    Fixes #9053
    yuvrajangadsingh authored Jan 15, 2026
    Configuration menu
    Copy the full SHA
    004a749 View commit details
    Browse the repository at this point in the history

Commits on Jan 16, 2026

  1. ## New Features

    - Skill metadata can now be defined in `SKILL.toml` (names, descriptions, icons, brand color, default prompt) and surfaced in the app server and TUI (#9125)
    - Clients can explicitly disable web search and signal eligibility via a header to align with server-side rollout controls (#9249)
    
    ## Bug Fixes
    - Accepting an MCP elicitation now sends an empty JSON payload instead of null to satisfy servers expecting content (#9196)
    - Input prompt placeholder styling is back to non-italic to avoid terminal rendering issues (#9307)
    - Empty paste events no longer trigger clipboard image reads (#9318)
    - Unified exec cleans up background processes to prevent late End events after listeners stop (#9304)
    
    ## Chores
    - Refresh the orchestrator prompt to improve internal routing behavior (#9301)
    - Reduce noisy `needs_follow_up` error logging (#9272)
    
    ## Changelog
    
    Full Changelog: rust-v0.85.0...rust-v0.86.0
    
    - #9301 chore: better orchestrator prompt @jif-oai
    - #9304 nit: clean unified exec background processes @jif-oai
    - #9307 Revert recent styling change for input prompt placeholder text @etraut-openai
    - #9125 Support SKILL.toml file. @xl-openai
    - #9249 [search] allow explicitly disabling web search @sayan-oai
    - #9272 remove needs_follow_up error log @pap-openai
    - #9318 Revert empty paste image handling @aibrahim-oai
    - #9196 fix: send non-null content on elicitation Accept @yuvrajangadsingh
    aibrahim-oai committed Jan 16, 2026
    Configuration menu
    Copy the full SHA
    18057fd View commit details
    Browse the repository at this point in the history
Loading