Repository navigation
Immutable
release. Only release title and notes can be modified.
opencode 1.0.90
Stable release from main branch. Retry gateway circuit-breaker rejections and reconnect after unrecognised request failures.
馃悰 Bug Fixes
- Retry gateway circuit-breaker rejections (#900). Gateways that trip every upstream target reply with text such as
all targets recovering (half-open probe in flight), often with a 4xx status. These replies now count as transient and use the normal retry backoff, so parallel subagents and DAG workers wait for the breaker to close instead of failing at once.half-open,circuit openandcircuit breaker is openare matched too. - Reconnect after unrecognised failures (#900). A failure that matches no retry rule and has no HTTP status, such as a dropped WebSocket, a broken stream or an unexpected transport error, is now retried up to 3 times. Each retry sends a new request after 3 s, then 6 s, then 6 s. Failures with a known final outcome still stop at once: any 4xx response, user aborts, compaction timeouts, context overflow, authentication errors, output-length and structured-output errors, content filtering, and rejected reasoning state. The existing check that blocks a retry once a tool has run, or may have run, applies first and is unchanged.
馃И Test Summary
Local toolchain: Bun 1.4.3 (pinned 1.4.2; CI uses the pin)
Session tests: 993 passed, 1 failed
(the signed-reasoning prefix test failed once under full-suite load and passes alone, with or without this change)
Retry unit tests: 74 passed, 0 failed
Processor effect tests: 29 passed, 0 failed
StopFailure hook tests (lifecycle, admission, subagent routing): 24 passed, 1 failed
(the Stop asyncRewake chain test hits its 5 s timeout locally without this change too; it passes in CI)
Runtime typecheck: passed
馃攳 Verification
- Required merge checks are Typecheck, Unit Tests (linux), E2E Tests (linux), and E2E Tests (windows).
- The release pipeline validates template provenance, three-platform CLI builds, executable and install smoke checks, release notes, and SHA256SUMS before publication.
- No dependency, runtime-pin, HTTP, event, or database changes are included. Retry limits, delays and
Retry-Afterhandling for errors that a rule recognises are unchanged. - Regression coverage includes circuit-breaker text in messages and in a 400 response, the 3-retry cap with 3 s/6 s/6 s waits checked under a test clock, and terminal errors, including a 400, that stay out of the fallback. StopFailure hooks still receive an immediate 400 failure. Live gateway behaviour was not exercised.
Full changelog: graphagent-v1.0.89...graphagent-v1.0.90