Commit Graph

4 Commits

  • code-mode: Remove Session::is_alive() (#29732)
    Remove this unused API. This API is insidious in that it implies that
    alive state should be determinable from the caller, and implies that a
    preflight should indicate routing. Lets drop this, and handle errors
    correctly from a failed session in the future.
  • [codex] define code mode host handshake protocol (#29515)
    ## Summary
    
    - add validated protocol-version, capability, and session identifier
    types
    - define explicit `ClientToHost` and `HostToClient` JSON envelopes for
    connection negotiation and session open/close acknowledgements
    - reject invalid states and unknown fields during decoding, with
    explicit wire-format and round-trip coverage
    
    ## Why
    
    This establishes the transport-neutral encoding shape needed to build
    and test the new code-mode host incrementally. Cell, tool callback, and
    failure-domain messages are intentionally deferred until their actors
    and behavior tests establish the required semantics.
    
    This is additive protocol scaffolding and does not change the current
    production code-mode implementation.
    
    ## Validation
  • [code-mode] Reject remote image URLs from output helpers (#27732)
    ## Summary
    
    - reject HTTP(S) image URLs from the shared code-mode output-image
    normalization path
    - return a concise model-visible tool error so the model can recover on
    its next turn
    - apply the targeted rejection to both `image()` and `generatedImage()`
    - leave other non-empty image URL values to existing downstream handling
    
    The returned error is:
    
    > Tool call failed: remote image URLs are not supported in tool outputs.
    Pass a base64 data URI instead
    
    ## Why
    
    Responses Lite cannot lower a remote image URL emitted from a structured
    tool output. Rejecting HTTP(S) values in the Codex harness preserves the
    tool-call metadata and gives the model a recoverable next turn instead
    of invalidating the sample.
    
    ## Test coverage
    
    The regression is covered primarily by a `test_codex()` agent
    integration test that simulates the Responses API exchange and asserts
    the failed model-visible exec output. A supplemental runtime test covers
    both `http://` and `https://` inputs across both image output helpers.
    
    ## Test plan
    
    - `cd codex-rs && just test -p codex-code-mode`
    - `cd codex-rs && just test -p codex-code-mode-protocol`
    - `cd codex-rs && just test -p codex-core
    code_mode_image_helper_rejects_remote_url`
    - `cd codex-rs && just fmt`
    - `git diff --check origin/main...HEAD`
    
    Related context: https://github.com/openai/openai/pull/1022346
  • code-mode standalone: extract protocol and add host crate (#27724)
    This is phase 1 of a 4 phase stack:
    1. **Add protocol and host crates for new IPC code mode implementation**
    2. Create the new standalone binary
    3. Create a new IPC `CodeModeSessionProvider` to use new binary
    4. Remove v8 from core and only use IPC provider
    
    
    ## Add protocol and host crates for new IPC code mode implementation
    Establish a clean process boundary without changing the existing
    in-process behavior.
    
    - Add the codex-code-mode-protocol crate for shared session, runtime,
    response, and tool-definition types.
    - Move protocol-facing code out of the V8-backed implementation.
    - Add a buildable codex-code-mode-host crate as the foundation for the
    standalone process.
    - Keep the existing in-process runtime as the active implementation.