Skip to content

v0.8.0 — Anthropic API, wreq-js rewrite, tool fixes

Latest

Choose a tag to compare

@youssefvdel youssefvdel released this 25 Jun 11:45

Features

  • feat: Anthropic-compatible /v1/messages endpoint — streaming, thinking, tool calls, Claude Code support
  • feat: Replace wreq-js with BoringSSL native worker (wreq-worker.mjs) — eliminates Rust tokio epoll crashes
  • feat: Browserless fetch mode — direct HTTP fetch instead of Playwright for accounts with valid cookies

Tool Call Fixes

  • fix: Tool_use SSE format matches Anthropic spec exactly (content_block_start with empty input: {}, input_json_delta events, content_block_stop)
  • fix: Strip XML artifacts (<function=...>) from text_delta emission — prevents Claude Code from double-parsing tool calls from text
  • fix: Structured tool descriptions in system prompt as textual fallback for models that ignore local_mcp
  • fix: Clarify context.txt is a Qwen cloud file, not local filesystem — stops agents trying to read it locally

Session & Reliability

  • fix: Stream idle timeout on handleAnthropicStream (STREAM_IDLE_TIMEOUT_MS, default 60s) — prevents accounts stuck in-flight when upstream hangs
  • fix: Close wreq-js sessions on all error paths (no more leaks on failures)
  • fix: toolNames dashboard log reads t.function?.name || t.name (no more null)

Steamlining

  • chore: Remove startup log line "Claude Code: Proxy enabled"
  • chore: Add CLAUDE_CODE_PROXY env var toggle