Skip to content

[Bug]: Cursor Auto Intelligence echoes [Tool Result] as assistant chat after native tool calls #2317

Description

@jeongjin0

Client or integration

Codex App

Area

Provider adapter

Summary

After a successful Codex tool call on cursor/auto-intelligence, the next assistant turn can paste the OpenCodex Cursor adapter's history envelope as chat instead of using the structured tool result.

Observed assistant text:

[Tool Result]
[tool_result]
call_id: call-...
name: exec
is_error: false
output:
<script output>

The expected next turn is ordinary assistant text or another structured tool call. The envelope above is not a Codex-native transcript format; it is the Cursor adapter's rootPromptMessagesJson serialization.

This is not covered by a live tracker:

Reproduction

  1. Run OpenCodex 2.26.0 (or current dev) on loopback and route Codex App through the Cursor adapter.
  2. Select cursor/auto-intelligence.
  3. Ask for a host-side shell/process inspection that produces a real exec / exec_command tool result (for example leftover vitest trees plus a few local apps).
  4. After the tool result returns, observe the next assistant message.

The assistant can reprint the adapter envelope instead of summarizing or continuing:

[Tool Result]
[tool_result]
call_id: call-921fbd01-5289-4b95-a401-ab380c66b270-0
name: exec
is_error: false
output:
Script completed
...

Code path: src/adapters/cursor/protobuf-request.ts rootPromptMessages() serializes prior toolResult messages as assistant-role text with [Tool Result]\n[tool_result]\ncall_id: .... cursor/auto-intelligence is a native resume model (auto-* → wire default), so turns[] already carries the paired MCP result. The extra assistant-role root blob is what Auto copies into chat.

Version

@bitkyc08/opencodex 2.26.0 locally; the same root-replay path is still on current dev (ffa6d46d7).

Operating system

macOS 26.6 (arm64)

Provider and model

cursor / auto-intelligence (Codex selector cursor/auto-intelligence, adapter cursor, native resume / resumeAction)

Logs or error output

[Tool Result]
[tool_result]
call_id: call-921fbd01-5289-4b95-a401-ab380c66b270-0
name: exec
is_error: false
output:
Script completed
Wall time 0.5 seconds
Output:
TARGET_APPS
  496 Agent Cat ...
VITEST_TREES
35535 1 314384 node .../vitest.mjs --run ...

OpenCodex request history for the same route records successful Cursor-adapter turns (provider: cursor, model: auto-intelligence, HTTP 200). The failure is the model-visible prompt shape, not the upstream HTTP boundary.

Redacted configuration

{
  "route": "cursor/auto-intelligence",
  "adapter": "cursor",
  "admissionKind": "loopback",
  "inboundProtocol": "responses",
  "nativeLocalExec": "off (default)"
}

Checks

  • I searched existing issues and documentation.
  • I removed secrets, tokens, account details, request credentials, and personal data.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingproviderProvider adapters, OpenAI-compat presets, upstream API quirkstoolstool_calls, MCP, web-search / sidecar tools

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions