Skip to content

v1.7.0

Latest

Choose a tag to compare

@anyrobert anyrobert released this 14 Oct 19:11
· 71 commits to main since this release

Codex CLI tool calls in ACP mode, more reliable ACP model resolution, and a cleaner tool prompt in default mode. Includes the macOS security fix from 1.6.1.

Highlights:

  • Codex CLI works with ACP tool passthrough (#59, fixes #56). Codex sends store: false and resends its full history instead of previous_response_id. The proxy now resumes a parked tool call by its call_id, scoped to the caller's API key.
    • If the parked call expired or the proxy restarted, the turn is rebuilt from the transcript instead of returning 409, and the new session is told those calls already ran.
    • Requests that use previous_response_id work exactly as before.
    • Verified with a real Codex CLI 0.155 session running a shell command through the proxy.
  • ACP model resolution (#62, fixes #57). When the proxy's catalog has no match, it keeps the model the Cursor CLI already selected. The 10 listed Claude ids that used to fail now resolve, such as claude-4.6-sonnet-medium and claude-4.6-opus-high-thinking.
    • Plain and tool requests share one model decision, so they can't disagree.
    • Failures now give the real reason instead of exited with code 1.
    • Offline check over all 259 listed ids: 0 regressions.
  • Tools in default (CLI) mode (#60, fixes #58). The prompt lists the client's tools for reference only, instead of asking the model to reply with JSON calls that nothing parses. All three APIs render tools alike, capped at about 8,000 characters. In a live A/B, bare-JSON replies dropped from 4 of 7 to 0 of 7.
  • Security (#61, released in 1.6.1). On macOS the keychain link is kept out of the agent's chat-only workspace, and temp dirs are removed however a run ends.

Behavior changes:

  • In ACP mode, /v1/responses with tools now accepts store: false instead of returning 400 invalid_store.
  • In default CLI mode:
    • Codex prompts grow by about 8K characters, because Responses tools are now listed.
    • Claude Code prompts shrink from about 50K to 17K characters.
    • Freeform custom tools are no longer listed.
    • Anthropic requests only get the tool_choice "you must call" line on structured ACP turns.

Known issues:

  • With an account pool, ACP requests change each account's saved model (#63).
  • Cursor plan-limit replies are not reported as errors (#65).
  • Responses stream failures don't end with response.failed (#67).
  • Cursor's built-in tools can compete with client tools in ACP passthrough (#68).
  • Codex freeform tools such as apply_patch are dropped in ACP mode (#70).
  • In chat-only mode the context preamble still names the host workspace path (#71).
  • On image prompts, the Cursor CLI sometimes appends Error: RetriableError: WritableIterable is closed (#76).

Published on npm as cursor-api-proxy@1.7.0.