Prewire · case file · public copy of the record
FILE P393 PREWIRE receipts archive the live wire
CATCH #1293 DETECTED SEP 10, 2026 18:24 UTC
THE CATCHscore 10/10
EXHIBIT 1293 · FLASH
Sep 10, 2026 18:24 UTC pypi anthropic
Anthropic's 1.5.0 python package includes new model IDs for `claude-opus-4-8` and `claude-haiku-4-5`, along with beta features for refusal fallback and messages streaming.

READY TO POST:

anthropic just updated their python package to 1.5.0! spotted new model IDs `claude-opus-4-8` and `claude-haiku-4-5` in the diff. could these be upcoming models?

looks like anthropic's new python sdk has some beta features for refusal fallback and streaming messages. also seeing some new claude model ids mentioned. interesting!

EVIDENCE — the receipts
anthropic 1.4.0 -> 1.5.0: +134 strings, -421 strings, 56 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] (2)
  + 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:
            ...

[sentence] (56)
  + 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:
            ...
  + .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 when nothing is left.

    Always a fresh dict;
  + A plain ``dict`` rejects ``object.__setattr__``; this subclass can carry the tag.
  + Credentials file at {path} is accessi

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

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