Skip to content

v0.7.0

Choose a tag to compare

@fish2lab fish2lab released this 06 Aug 06:19
· 28 commits to main since this release
9cb4861

What changed

Fix: DeepSeek Responses tool-loop replay compatibility

Two failure modes fixed:

  1. Interleaved items inside a call/output pair — Codex can insert PostToolUse hook context between a function_call and its output, which DeepSeek rejects. The router now pulls the output up to sit directly after its call before forwarding.

  2. Multiple tool calls behind a single reasoning item — DeepSeek rejects the replayed turn with a misleading "reasoning_text must be passed back" error. The catalog now advertises supports_parallel_tool_calls = false and the router forces parallel_tool_calls: false on every DeepSeek-bound body. Already-wedged sessions are repaired by duplicating reasoning per extra call, scoped to the correct turn boundary.

Covers function_call, custom_tool_call (freeform apply_patch), and local_shell_call.

Docs

  • README compressed from ~150 lines to ~80 for human readability; granular details moved to AGENTS.md.
  • AGENTS.md records invariants 13–15 (replay constraints, platform differences, non-routed features).

Files changed

src/proxy.mjs | src/catalog.mjs | test/proxy.test.mjs | AGENTS.md | README.md | README.en.md | package.json