Skip to content

v2026.08.23 (v1.18.21)

Choose a tag to compare

@okuyam2y okuyam2y released this 23 Aug 05:42
· 11 commits to main since this release

What's New

  • Network errors that used to end a turn silently are now retried. Some gateways end a stream with finish_reason: "network_error" instead of raising. Nothing treated that as a failure, so the turn finished as an ordinary success: empty answer, no retry, no error. It is now surfaced as a retryable stream failure and rejoins the existing retry path.
  • A step whose tools already ran is billed and settled even when the stream dies. Retrying after a tool has executed would re-run its side effects, so the turn continues instead — but until now that step's tokens went uncounted and it left no step boundary behind. It is now billed through the same per-turn correction and overflow check as a normal finish, and writes the same step-finish record.
  • Title generation no longer fails loudly or silently. A failed stream used to kill the background title task with an unhandled defect; the first fix traded that for total silence. Failures are now logged and the session simply keeps its default title.

Fixes

  • Upstream rebase to v1.18.21 (from v1.18.16), covering two upstream releases:
    • Cloudflare AI Gateway now routes OpenAI and Anthropic through their native passthrough APIs
    • Google Vertex multi-region requests route through REP endpoints
    • New Cerebras provider plugin
    • Broader retry matching — network_error variants, "try again later" and at-capacity messages — and unrecognized stream errors now default to retryable
    • Retry backoff gained jitter and a five-attempt ceiling
    • Model catalog and documentation refreshes across all locales
  • Guard against a class of silent divergence: this fork does not route through upstream's LLM event normalization layer, so fixes landing in src/session/llm/ai-sdk.ts have no effect here while the file stays identical to upstream and merges cleanly. A test now fails if that file changes at all, or if anything starts calling into it.

Install

Try without installing:

npx opencode-ai-nofc

Install globally:

npm install -g opencode-ai-nofc
opencode

Or download binaries below.

Based on upstream opencode v1.18.21.