Fix: Claude thinking tokens now visible in Claude Code / Cursor / Windsurf
Fixes: #289
Root Cause
When proxying Claude responses (via Antigravity OAuth or any Anthropic provider), thinking blocks were emitted as regular content with XML <think>/<\/think> tags instead of reasoning_content.
Clients like Claude Code, Cursor, and Windsurf look for delta.reasoning_content to display the thinking panel — not XML tags in content.
Change (claude-to-openai.ts)
| Event | Before | After |
|---|---|---|
content_block_start (thinking)
| { content: '<think>' }
| { reasoning_content: '' }
|
content_block_delta (thinking_delta)
| { content: delta.thinking }
| { reasoning_content: delta.thinking }
|
content_block_stop (thinking)
| { content: '</think>' }
| (removed) |
This fix applies when using Antigravity OAuth or any Claude provider routed through OmniRoute. Setting Thinking Budget: passthrough was already correct — the bug was only in the response translator.