Skip to content

v0.99.26 — tracking pi 0.99.2

Latest

Choose a tag to compare

@noamt noamt released this 01 Oct 11:01
· 1 commit to main since this release

Tracks pi 0.99.2 (upstream pin 5806068c2).

Highlights

  • Anthropic workload identity federation: sign in with your identity token, no API key needed.
  • Tools with bounded numbers or formats no longer break Anthropic strict mode.
  • Every built-in tool schema now matches what pi sends, byte for byte.

Details

Upstream sync 3dd803d7e → 5806068c2 (pi 0.99.2). 50 changes on the union
range, 45 first-parent (merge 8f89293a2 carries the async-SQLite PR). 30
port — 26 of them added to the Scope queue — 20 n/a, 0 decide. One release
crossed
(v0.99.2), confirmed by an explicit tag fetch and by
packages/ai/package.json.

Catalog: regenerated by executing JSON.stringify(MODELS) against the 0.99.2
build, after first reproducing the outgoing 0.99.1 catalog byte for byte.
1,523 → 1,529 models (+6, −0) across an unchanged 42 providers, 862,603 →
867,163 B: Claude Sonnet 5.5 and GPT-6.1 Sol on Bedrock, GPT-6.1 Sol on GitHub
Copilot (on Responses) and OpenCode, DeepSeek V4.1 Flash Fast on Baseten;
prices and limits moved for 24 more. No thinking-level, compat or api change.

This cycle:

  • Anthropic workload identity federation. With
    ANTHROPIC_FEDERATION_RULE_ID, ANTHROPIC_ORGANIZATION_ID and
    ANTHROPIC_IDENTITY_TOKEN_FILE set (and no key), the anthropic provider
    exchanges the identity token for a short-lived access token exactly as
    Anthropic's SDK 0.124.0 does, shares it across requests, refreshes it
    before it expires and drops it on a 401. Keys and ANTHROPIC_AUTH_TOKEN
    keep precedence; ANTHROPIC_SERVICE_ACCOUNT_ID and
    ANTHROPIC_WORKSPACE_ID ride along when set.
  • Bounded tools no longer break Anthropic strict mode. A strict-prefer
    tool whose schema uses a keyword Anthropic's strict mode rejects (minimum,
    maximum, maxItems, uniqueItems, an unlisted format, …) is sent
    non-strict instead of failing the whole request; a strict-require tool
    fails naming the keyword.
  • An unreadable Retry-After backs off. A Retry-After or
    retry-after-ms that is not a finite delay falls back to the exponential
    backoff instead of retrying at once or failing fast.
  • Tool schemas as pi sends them. A schema serializes in TypeBox's key
    order (a decoded one in its own), and keyword values its typed fields
    cannot hold are kept rather than dropped. Every built-in tool schema now
    matches pi's byte for byte — which also fixed read/ls/find/grep declaring
    their numeric parameters integer since the port began; pi's are number.
  • The CLI starts without an API key when the provider is configured
    another way (ANTHROPIC_AUTH_TOKEN, federation), gating on the provider's
    auth check as pi does.

Queued for later slices: MCP (10 deltas, row 21), the durable harness
(Packages 19–23 and async SQLite storage, row 8), codemode, tool
orchestration, the remote catalog, virtual models, and Anthropic's headless
copy-code login (row 1).

Differential harness: re-pinned to 0.99.2 and 5806068c2 at 66 PASS / 0
KNOWN / 0 FAIL, all 66 against the published build
, with a new scenario for
the Anthropic strict-keyword fallback.