Prewire · case file · public copy of the record
FILE P360 PREWIRE receipts archive the live wire
CATCH #1960 DETECTED OCT 9, 2026 16:24 UTC
THE CATCHscore 10/10
EXHIBIT 1960 · FLASH
Oct 9, 2026 16:24 UTC pypi anthropic
Anthropic's latest SDK includes new `claude-opus-4-8` and `claude-haiku-4-5` model IDs, alongside beta features for messages streaming, refusal fallback middleware, and environments for workflow management. It also adds new configuration options for agents and workflow runs.

✓ VERIFIED — BEAT THE ANNOUNCEMENT BY 62.5H · AUTO-VERIFIED AGAINST ANTHROPIC NEWS

READY TO POST:

anthropic just shipped 1.13.0 and it looks like some new model ids slipped in! seeing references to `claude-opus-4-8` and `claude-haiku-4-5` in the code.

new anthropic sdk updates hint at more control over agent workflows and environments. also, beta features for message streaming and refusal fallbacks are showing up. interesting stuff for building with claude!

EVIDENCE — the receipts
anthropic 1.12.1 -> 1.13.0: +264 strings, -524 strings, 68 interesting

[model_id] (2)
  + py
    client = Anthropic(middleware=[BetaRefusalFallbackMiddleware([{"model": "claude-opus-4-8"}])])

    state = BetaFallbackState()
    with state:
        message = client.beta.messages.create(**params)
  + python
with client.messages.stream(
    model="claude-haiku-4-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

[feature_flag] (3)
  + py
    client = Anthropic(middleware=[BetaRefusalFallbackMiddleware([{"model": "claude-opus-4-8"}])])

    state = BetaFallbackState()
    with state:
        message = client.beta.messages.create(**params)
  + py
    with client.beta.messages.stream(...) as stream:
        for chunk in stream:
            ...
  + py
client.beta.environments.work.worker(environment_id=..., environment_key=...)

[sentence] (68)
  + py
    client = Anthropic(middleware=[BetaRefusalFallbackMiddleware([{"model": "claude-opus-4-8"}])])

    state = BetaFallbackState()
    with state:
        message = client.beta.messages.create(**params)
  + python
with client.messages.stream(
    model="claude-haiku-4-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
  + py
    with client.beta.messages.stream(...) as stream:
        for chunk in stream:
            ...
  + py
client.beta.environments.work.worker(environment_id=..., environment_key=...)
  + .get_final_text() can only be called when the API returns a `text` content block.
The API returned {','.join([b.type for b in message.content])} content block type(s) that you can access by calling get_final_message().content
  + : a field set to a value
    overrides it, a field explicitly
  + : a key set to a value overrides
    it, a key explicitly
  + ; the whole object is dropped whe

caught by the 20-minute sweep · the live wire · all receipts

THE WIRE RECEIPTS ACCESS @VEDOLOS TERMS PRIVACY break the story before it breaks