You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
v1.5.1 — Clef free allocation on the record; retries that match the failure
conclave models shows Workers AI's free daily allocation beside the Clef
prices. Workers AI bills Neurons ($0.011 per 1,000) and gives every
Cloudflare account 10,000 a day free, reset 00:00 UTC; a new FREE/DAY
column puts that in each model's own input tokens (about 458K for clef,
1.2M for clef-flash), with a note saying the costs Conclave reports use the
metered price. --json rows gain neurons_per_m_in and free_neurons_per_day. On conclave models --frontier --deciders, Clef
and Clef-flash are marked + with a legend line (terminal) or a note and
tooltip (HTML), and frontier points carry free_daily. Costs are
unchanged: cost_usd and the frontier keep the metered price, an upper
bound on the bill, because the allocation is account-wide and Conclave
cannot see how much is left. ADR-019.
Changed
Clef prices re-verified on 2026-10-05 against the Workers AI pricing page
(updated 2026-10-01): $0.240 (21,818 Neurons) and $0.090 (8,182 Neurons) per
million input tokens, still with no output price. The dollar figures are
unchanged; the rows now record the Neuron rate, a test pins one to the
other, and their source links to the "Other model pricing" table.
Fixed
A Clef or Clef-flash call on a Workers Free account that has spent its
daily free allocation now fails at once. Workers AI answers HTTP 429 with
Cloudflare code 4006 until 00:00 UTC, and Conclave read it as a rate limit:
three backoffs (~7 s per decider per call) before the same error. It is now
a BillingError, so it is not retried, with Cloudflare's own message and
remedy in the error. The code on the wire is 4006, not the 3036 that
Cloudflare's errors page lists; both are matched, and only inside
Cloudflare's error envelope. "Out of capacity" (3040, also a 429) still
retries. Regression tests: TestClefFreeAllocationSpentIsNotRetried, TestBillingIsToldApartFromRateLimits.
An API-mode Anthropic query (-g claude, claude@api) no longer fails on
the first HTTP 529 overloaded_error. The retry rule listed 429, 500, 502,
503 and 504, so Anthropic's "temporarily overloaded" status got no backoff.
Every 5xx now retries, as ADR-004 always described and Anthropic's own SDKs
do, which also covers Cloudflare's 520-524 for any API provider. Batch --retries already retried a 529 item, but each attempt failed on its
first call.
Batch --retries no longer re-sends an item that cannot succeed. The
item-level retry loop re-ran any failed item with 1s/2s/4s backoff, so an
out-of-credit key, a revoked key or a rejected parameter was sent the same
request --retries more times for the same refusal, despite the README
promising that 400-class errors never retry. An item now fails on its
first attempt when every provider in the panel failed permanently: a
billing failure, or an HTTP 4xx other than 429. Its error line says so
(query error after 1 of 3 attempts (permanent failure, not retried): ...);
without --retries the line is unchanged. One transient cause (a 429, a
5xx, a timeout, a CLI error) still earns the retry, and a failed item still
stays out of the checkpoint, so --resume retries it once the key or the
credit is fixed. To classify by status rather than text, API errors are now
typed (*providers.APIError, classified by providers.IsPermanent), with
their messages byte-identical. A batch that runs out of credit is
deliberately not aborted (keys rotate per request, an OpenRouter 402 can be
one oversized request, a top-up can land mid-run); it prints one stderr
warning instead. ADR-015. Regression tests: TestPermanentFailureIsNotRetried, TestClientErrorsArePermanentAndKeepTheirText.
An API-mode Anthropic key past its usage tier's monthly spend cap
(-g claude, claude@api) now fails on the first call with Anthropic's
message ("You will regain access on ..."), instead of retrying the HTTP 429
three times (~7 s) per call, and batch no longer counts it as a rate limit
that slows the remaining items. It is told apart from a real rate limit,
which still backs off and retries, by Anthropic's documented enforced_spend_limit_reached error code, not by its missing retry-after.
Batch's once-per-run billing warning now says "hit a billing limit" and
names both remedies (add credit, or raise the limit / wait for the date in
the message) instead of only "add credit".