Skip to content

build(deps): update anthropic requirement from >=0.120.0 to >=1.0.0 in /services/api - #362

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/services/api/anthropic-gte-1.0.0
Closed

build(deps): update anthropic requirement from >=0.120.0 to >=1.0.0 in /services/api#362
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/services/api/anthropic-gte-1.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 28, 2026

Copy link
Copy Markdown
Contributor

Updates the requirements on anthropic to permit the latest version.

Release notes

Sourced from anthropic's releases.

v1.0.0

1.0.0 (2026-08-20)

Full Changelog: v0.125.0...v1.0.0

⚠ BREAKING CHANGES

  • client: upgrade to httpx2 and some minor breaking changes. See MIGRATION.md for details

Features

  • client: upgrade to httpx2 and some minor breaking changes. See MIGRATION.md for details (33e2967)

Bug Fixes

  • beta: stop warning about output_format= on the parse/stream/tool_runner helpers (59bf261)

Chores

  • streaming: restore the original event imports in lib/streaming/_types.py (87e9e01)

Documentation

  • examples: use adaptive thinking in thinking examples (b5870af)
Changelog

Sourced from anthropic's changelog.

1.0.0 (2026-08-20)

Full Changelog: v0.125.0...v1.0.0

⚠ BREAKING CHANGES

  • client: upgrade to httpx2 and some minor breaking changes. See MIGRATION.md for details

Features

  • client: upgrade to httpx2 and some minor breaking changes. See MIGRATION.md for details (33e2967)

Bug Fixes

  • beta: stop warning about output_format= on the parse/stream/tool_runner helpers (59bf261)

Chores

  • streaming: restore the original event imports in lib/streaming/_types.py (87e9e01)

Documentation

  • examples: use adaptive thinking in thinking examples (b5870af)

0.125.0 (2026-08-19)

Full Changelog: v0.124.0...v0.125.0

Features

  • api: managed agents web search config and self hosted sandbox memory (b75afd6)

0.124.0 (2026-08-19)

Full Changelog: v0.123.0...v0.124.0

Features

  • api: Files and Skills APIs are now GA; add computer use and browser use toolsets (9a09e84)

0.123.0 (2026-08-18)

Full Changelog: v0.122.0...v0.123.0

Features

  • api: additions to files and memory stores (09ce187)

... (truncated)

Commits
  • 23cf458 release: 1.0.0
  • f0e51d6 codegen metadata
  • bc70186 fix(beta): stop warning about output_format= on the parse/stream/tool_runne...
  • 482220c chore(streaming): restore the original event imports in lib/streaming/_types.py
  • 9782e88 feat(client)!: upgrade to httpx2 and some minor breaking changes. See MIGRATI...
  • 5df83ba docs(examples): use adaptive thinking in thinking examples
  • d8d8ee6 release: 0.125.0
  • 04a5b5d feat(api): managed agents web search config and self hosted sandbox memory
  • 781ce5e release: 0.124.0
  • f51102c feat(api): Files and Skills APIs are now GA; add computer use and browser use...
  • Additional commits viewable in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Aug 28, 2026
@strix-security

Copy link
Copy Markdown

Strix is installed on this repository, but we couldn't run this PR security review because this workspace's trial has ended. Add a card to resume code reviews here.

So far, Strix has reviewed 28 pull requests, surfaced 3 security issues (1 critical/high) and blocked 2 risky merges across this workspace.

ibuilder added a commit that referenced this pull request Aug 28, 2026
Produced by .github/workflows/lockfile.yml on the previous commit of this branch — the workflow
uploads the freshly-compiled lock as an artifact even when its verify step fails, which is the
documented bootstrap path and the only correct one here: the lock carries --generate-hashes and is
resolved in the prod image, so a Windows compile would produce a different artifact (uvloop has no
Windows build; colorama is absent from a Linux-compiled lock).

EXACTLY FIVE PINS MOVED, 110 in and 110 out — no package added or removed:

    pyhanko                 0.35.2 -> 0.36.2
    pyhanko-certvalidator   0.31.1 -> 0.31.4   (transitive, pulled by pyhanko)
    reportlab               5.0.0  -> 5.0.1
    scipy                   1.18.0 -> 1.18.1
    sentry-sdk[fastapi]     2.66.1 -> 2.68.1

anthropic stayed at 0.120.2, which is the point of holding #362 out of this batch.

Verified by parsing both locks and diffing the pin sets rather than by reading the diff — my first
two attempts under-reported, one regex missing bracketed extras () and so
reporting sentry as unmoved when it had moved. A diff is only as good as the pattern that feeds it.
ibuilder added a commit that referenced this pull request Aug 28, 2026
Produced by .github/workflows/lockfile.yml on the previous commit of this branch — the workflow
uploads the freshly-compiled lock as an artifact even when its verify step fails, which is the
documented bootstrap path and the only correct one here: the lock carries --generate-hashes and is
resolved in the prod image, so a Windows compile would produce a different artifact (uvloop has no
Windows build; colorama is absent from a Linux-compiled lock).

EXACTLY FIVE PINS MOVED, 110 in and 110 out — no package added or removed:

    pyhanko                 0.35.2 -> 0.36.2
    pyhanko-certvalidator   0.31.1 -> 0.31.4   (transitive, pulled by pyhanko)
    reportlab               5.0.0  -> 5.0.1
    scipy                   1.18.0 -> 1.18.1
    sentry-sdk[fastapi]     2.66.1 -> 2.68.1

anthropic stayed at 0.120.2, which is the point of holding #362 out of this batch.

Verified by parsing both locks and diffing the PIN SETS rather than by reading a textual diff. My
first two attempts under-reported: one regex did not allow bracketed extras, so it matched no
"sentry-sdk[fastapi]==" line at all and reported sentry as unmoved when it had in fact moved. A diff
is only as good as the pattern that feeds it, and a pattern that silently matches nothing looks
exactly like agreement.

pyhanko 0.35.2 -> 0.36.2 is the one worth watching here: it is the PDF-signing stack, and this venv
cannot install the lock to exercise it (Windows), so CI is the authority for that bump.
Updates the requirements on [anthropic](https://github.com/anthropics/anthropic-sdk-python) to permit the latest version.
- [Release notes](https://github.com/anthropics/anthropic-sdk-python/releases)
- [Changelog](https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md)
- [Commits](anthropics/anthropic-sdk-python@v0.120.0...v1.0.0)

---
updated-dependencies:
- dependency-name: anthropic
  dependency-version: 1.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/pip/services/api/anthropic-gte-1.0.0 branch from 68d1bb6 to 3d2edde Compare August 28, 2026 10:33
ibuilder added a commit that referenced this pull request Aug 28, 2026
Compiled by .github/workflows/lockfile.yml in the prod base image, downloaded from that run's
artifact and committed unmodified. Six package-level changes:

  anthropic  0.120.2 -> 1.2.0
  + httpx2 2.12.0, httpcore2 2.12.0, truststore 0.10.4   (anthropic's new HTTP layer)
  - distro 1.9.0                                          (was reached only via anthropic)

`distro` is the useful line here, because it is the control case for the previous commit. It was a
transitive dependency whose sole route into the lock was `# via anthropic`, and the bump deleted it
outright. That is precisely what would have happened to `httpx` — which two shipped modules import at
module scope — had it not been declared first. The lock now records the difference in its own
comments:

  httpx==0.28.1     # via -r services/api/requirements.in     (was: # via anthropic)
  pillow==12.3.0    # via -r services/api/requirements.in / reportlab
  httpx2==2.12.0    # via anthropic

Licences checked against the LICENSE files themselves rather than package summaries, since all three
additions are new names in this tree: httpx2 and httpcore2 are BSD-3-Clause, copyright Pydantic
Services Inc. and Encode OSS Ltd — Encode being the original httpx copyright holder, which is the
provenance that makes an unfamiliar package name legible to a supply-chain scanner rather than
alarming. truststore is MIT (Seth Michael Larson); it is the system-trust-store shim pip itself uses.
Nothing copyleft, so the supply_chain --gate line is unaffected. No ATTRIBUTIONS.md entry: that file
is scoped to code we re-implement or adapt "beyond the dependencies pinned in requirements.txt".

One incidental drift worth recording rather than fixing here: the header comment now carries
--no-index, which the workflow does not pass. It comes from a newer pip-tools, installed unpinned by
the workflow's `pip install pip-tools`. Harmless — it is a recorded command string — but it means the
lock's exact formatting can move on a pip-tools release and surface as a spurious "stale lock" on an
unrelated push. Pinning pip-tools is a separate decision, not a dependency bump's business.

Verified after recompiling: test_lock_satisfies_requirements green (it was correctly red on the
previous commit), test_declared_imports green, test_lock_advisories green. The full backend suite is
CI's call — this machine's venv still has anthropic 0.120.2 and cannot install a Linux-compiled
--require-hashes lock, so a local pass here would be measuring the old SDK.

Closes #362.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ibuilder added a commit that referenced this pull request Aug 28, 2026
… bump would have deleted

Dependabot #362 raises the `anthropic` floor from >=0.120.0 to >=1.0.0. Inventoried every call site
against the 1.x migration list first, because the SDK's major removed a lot of surface. Ours uses
none of it: the seven modules that import it all do plain `client.messages.create(...)`, already on
the current `output_config={"format": ...}` shape rather than the deprecated `output_format=`, with
a plain float `timeout=` (not an httpx.Timeout). No with_raw_response, no Text Completions, no
temperature/top_p/top_k, no Bedrock/Vertex, and no `anthropic.*` exception classes anywhere.

The bump is still not free, and what it would have broken was nowhere near anthropic.

1.x moved its HTTP layer from `httpx` to `httpx2`. `httpx` was declared in no requirements file at
all — it reached the lock on one transitive edge, `# via anthropic` — while `bsdd.py` and
`site_context.py` both `import httpx` at module scope. Recompiling the lock would have dropped the
package while two shipped modules still imported it.

That failure would not have announced itself. Both consumers are imported inside functions, so the
service boots, /health passes, and the suite stays green until someone opens the bSDD lookup or a
site-context route and gets a 500 — with nothing connecting it to an AI SDK upgrade.

Sweeping for the class found a second one already sitting there: `pillow`, arriving only
`# via reportlab`, imported at module scope by `photo_cv.py` — whose sibling `photo_detect.py`
calls it "a hard dep" in a comment while nothing declared it. One reportlab release away from
blanking site-photo QA the same silent way. Both are now declared, with the floor pillow already
carries in services/data/requirements.txt.

`test_declared_imports.py` makes the rule enforceable rather than remembered: a package in our own
import statements is a DIRECT dependency however else it happens to arrive. Transitive availability
is a fact about somebody else's metadata and can change in a release we never review.

The exemptions are structural, so the gate does not decay into a name list. Function-local and
try/except-ImportError imports stay legal — that is how this codebase spells "optional, supplied by
the deployment" (pye57, massingifc_*), and they fail loudly at call time instead of silently.
First-party is derived by listing the src roots, so vendoring a fourth package needs no edit here;
that derivation is also what corrected my own first pass, which had missed that massingifc_ifc and
massingifc_scene are vendored on services/data/src and wrongly called them third-party.

Mutation-checked three ways, since a gate that cannot fail proves nothing: un-declaring httpx fails
naming bsdd.py, un-declaring pillow fails naming photo_cv.py, and promoting the guarded optional
`import pye57` to module scope fails as not-installed — that last one proving the exemption is not
swallowing everything.

The lock is deliberately stale in this commit; `test_lock_satisfies_requirements` goes red until
lockfile.yml recompiles it in python:3.12-slim, which is the next commit on this branch.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ibuilder added a commit that referenced this pull request Aug 28, 2026
Compiled by .github/workflows/lockfile.yml in the prod base image, downloaded from that run's
artifact and committed unmodified. Six package-level changes:

  anthropic  0.120.2 -> 1.2.0
  + httpx2 2.12.0, httpcore2 2.12.0, truststore 0.10.4   (anthropic's new HTTP layer)
  - distro 1.9.0                                          (was reached only via anthropic)

`distro` is the useful line here, because it is the control case for the previous commit. It was a
transitive dependency whose sole route into the lock was `# via anthropic`, and the bump deleted it
outright. That is precisely what would have happened to `httpx` — which two shipped modules import at
module scope — had it not been declared first. The lock now records the difference in its own
comments:

  httpx==0.28.1     # via -r services/api/requirements.in     (was: # via anthropic)
  pillow==12.3.0    # via -r services/api/requirements.in / reportlab
  httpx2==2.12.0    # via anthropic

Licences checked against the LICENSE files themselves rather than package summaries, since all three
additions are new names in this tree: httpx2 and httpcore2 are BSD-3-Clause, copyright Pydantic
Services Inc. and Encode OSS Ltd — Encode being the original httpx copyright holder, which is the
provenance that makes an unfamiliar package name legible to a supply-chain scanner rather than
alarming. truststore is MIT (Seth Michael Larson); it is the system-trust-store shim pip itself uses.
Nothing copyleft, so the supply_chain --gate line is unaffected. No ATTRIBUTIONS.md entry: that file
is scoped to code we re-implement or adapt "beyond the dependencies pinned in requirements.txt".

One incidental drift worth recording rather than fixing here: the header comment now carries
--no-index, which the workflow does not pass. It comes from a newer pip-tools, installed unpinned by
the workflow's `pip install pip-tools`. Harmless — it is a recorded command string — but it means the
lock's exact formatting can move on a pip-tools release and surface as a spurious "stale lock" on an
unrelated push. Pinning pip-tools is a separate decision, not a dependency bump's business.

Verified after recompiling: test_lock_satisfies_requirements green (it was correctly red on the
previous commit), test_declared_imports green, test_lock_advisories green. The full backend suite is
CI's call — this machine's venv still has anthropic 0.120.2 and cannot install a Linux-compiled
--require-hashes lock, so a local pass here would be measuring the old SDK.

Closes #362.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@dependabot @github

dependabot Bot commented on behalf of github Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/pip/services/api/anthropic-gte-1.0.0 branch August 28, 2026 13:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants