Skip to content

v1.1.0 — Claude Code 2.1.296 compatibility + UTF-8 streaming fix

Choose a tag to compare

@testAccountDeltas testAccountDeltas released this 11 Oct 16:02
· 40 commits to main since this release

Fix (critical)

Task planning tools were silently disabled after updating to Claude Code 2.1.296. Since 2.1.268, Claude Code hides TaskCreate/TaskUpdate/TaskList/TodoWrite from any model name it doesn't recognize as a known Claude model — our gateway models are all gemini-*, so they fell outside the whitelist and lost task planning on update, with no error or warning.

Fix: CLAUDE_CODE_ENABLE_TODO_TOOLS=1, the documented escape hatch, added to both launchers. Verified live: the tools are back.

Also in this release

  • Fixed UTF-8 corruption at SSE stream boundaries. The proxy decoded each raw read(8192) chunk independently; a multi-byte character (Cyrillic, etc.) landing on a chunk boundary got corrupted into replacement characters (visible as garbled or "eaten" text in responses). Fixed with an incremental UTF-8 decoder. Verified both with a forced mid-character split and a live 52KB Cyrillic stream — zero corruption.
  • CLAUDE_CODE_GATEWAY_HINT_HEADERS=1 enabled, plus proxy logging of agent-type/request-class headers and a thinking= field in the SSE-done log line — subagent requests are now distinguishable from the parent session in the proxy log. Verified live: subagents correctly receive and apply their own explicit /effort (medium vs high), independent of the parent session.
  • ultracode effort value mapped to the same capped budget as high/xhigh/max.

Upgrading

python setup-agent.py

Safe to re-run on an existing install.

Full Changelog: v1.0.1...v1.1.0