Release notes
ECA 0.160.0
- Fix context usage counting only output tokens on anthropic-compatible providers that report input usage in
message_delta(e.g. Z.AI). #604 - Accept unescaped square brackets, non-ASCII and other reserved chars in workspace file URI paths. #594 #605
- Fix inflated costs for OpenAI-compatible providers (e.g. Synthetic); count usage once per request before completion and retain received usage on stream errors.
- Tool prompts: push, git config, shell search/read and sub-agents run on explicit request; rule headings are tool-scoped.
- Recover Anthropic streaming responses interrupted by transient TLS
bad_record_macfailures. - BREAKING:
plugins.installnow appends across config layers. Setplugins.installModetoreplacebeside the list to exclude inherited plugins as before. - Add
mcpToolSearchconfig to keep MCP tool schemas out of context until the LLM loads them with the neweca__search_toolstool. - Fix
/compactsteered while the chat is running: compact with its instructions at the next turn boundary and resume the task, instead of sending it to the LLM as text. #600 - Hide GitHub Copilot models the account can't use (
model_picker_enabled: falseor adisabledpolicy) instead of listing the whole catalog, and don't fall back to models.dev when none is usable. #601 - Pick the GitHub Copilot default model from the account's catalog (
versatile, thenpowerful, thenlightweightcategory) instead of hardcodinggpt-5.5, which some plans don't include. - Fix remote MCP servers whose SSE events omit the space after
event:(e.g. Z.AI) hanging on initialize; bump plumcp to 0.2.3. #586