mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-09-10 19:57:52 +02:00
eec0b3b83c8eb3c0427b4b7f89cf4fbbfb45642f
375
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
054a6f3d8b |
release(langgraph): 1.2.4 (#7991)
Releases langgraph 1.2.4 replacement for the **yanked 1.2.3**. |
||
|
|
03b2a9fe5f | test(sdk-py): add factory-graph integration test exercising the server factory path (#7978) | ||
|
|
83dd61feac | release(langgraph): 1.2.3 (#7945) | ||
|
|
13f2ecc84b | release(sdk-py): 0.4.2 (#7955) | ||
|
|
af5dab5b77 |
fix(sdk-py): percent-encode thread_id in v3 stream transport default paths (#7954)
## Problem Fixes #7953. The v3 SSE and WebSocket stream transports build their default paths by interpolating `thread_id` directly into the URL: ```python self._commands_url = commands_path or f"/threads/{thread_id}/commands" self._stream_url = stream_path or f"/threads/{thread_id}/stream/events" ``` This skips the `_quote_path_param` escaping that the rest of the SDK adopted in #7893. A `thread_id` containing reserved characters or dot-segments is then normalized by the HTTP/WebSocket stack before transmission. For example, `thread_id = "../assistants/abc"`: | | before | |---|---| | constructed | `/threads/../assistants/abc/commands` | | wire path | `/assistants/abc/commands` | So the value stops being one opaque identifier under `/threads/{thread_id}/...` and silently hits a different resource. ## Fix Reuse the existing `_quote_path_param` helper for the **default** paths in all four transports (`http`, `sync_http`, `ws`, `sync_ws`). Explicit `commands_path` / `stream_path` overrides are left untouched, so callers that pass their own paths opt out of encoding as before. `_quote_path_param("../assistants/abc")` → `..%2Fassistants%2Fabc`, which the HTTP/WS stack no longer collapses. ## Tests Adds `tests/streaming/test_transport_path_encoding.py` covering all four transports: - default `_commands_url` / `_stream_url` / `_stream_path` are percent-encoded, - the actual SSE wire path (async + sync) stays under `/threads/`, - the built WebSocket URL (async + sync) stays under `/threads/`, - explicit path overrides are left untouched. `make format`, `make lint`, and `make test` all pass in `libs/sdk-py` (491 passed). |
||
|
|
f1dc4577e2 | release(sdk-py): 0.4.1 (#7944) | ||
|
|
1fcb768182 |
feat(sdk-py): extract stream decoders and add interleave_projections (#7935)
## Summary Refactors the four (now five) sdk-py streaming projections into reusable, transport-agnostic `Decoder` classes and adds a new `interleave_projections(channels)` method to `AsyncThreadStream` and `SyncThreadStream` that drives multiple decoders from one shared subscription, yielding `(channel_name, item)` tuples in arrival order (the SDK analog of local `GraphRunStream.interleave`). - **New `langgraph_sdk/stream/decoders.py`**: pure `feed(event) -> Iterable[item]` state machines — `ValuesDecoder`, `MessagesDecoder`, `ToolCallsDecoder`, `SubgraphsDecoder`, `ExtensionsDecoder` — behind a `Decoder` Protocol. No subscription/queue/thread access. - **Projection migration (async + sync)**: the five existing projections now delegate their per-event logic to the decoders. Behavior-preserving — the existing test suite is the regression net. Thread-coupled side effects (active-stream registration, terminal-error-on-close, root-inbox forwarding) stay in the projection wrappers; sync messages/tool_calls keep their pre-dispatch contract (handle/stream resolved on yield) via a FIFO-head buffer. - **`interleave_projections`**: flat-namespace channel list (built-ins + extension names), `tool_calls`↔`tools` wire mapping, subgraphs fed every event, extensions keyed by bare name. ### Notable - Fixes a latent sync bug surfaced by the refactor: two tool calls / messages whose events interleave previously dropped the second; both now surface. Locked in with a regression test. - `Decoder.feed` takes `Mapping[str, Any]` (read-only), so the Protocol is load-bearing in both stream files. ### Deferred (not in this PR) - Wiring `RemoteGraph._RemoteGraphRunStream.interleave` to `interleave_projections` (gated on #7927). - Migrating the handle-scoped projections (`_Handle*Projection`) to the decoders — hence the small, verified-identical helper duplication between `decoders.py` and `_async/stream.py`. - `interleave_projections` handles aren't registered for thread-close cleanup (additive follow-up). ## Test Plan - [x] `make test` in `libs/sdk-py` — 464 passed, 0 failures - [x] `make format` / `make lint` (ruff + ty) clean - [x] Per-decoder unit tests in `tests/streaming/test_decoders.py` - [x] `interleave_projections` tests (single-channel, multi-channel arrival order, builtin+extension mix, tool_calls public-name, subgraphs discovery) async + sync - [x] Existing projection suites pass unchanged (regression net for the migration) |
||
|
|
68fa011fc9 |
feat(langgraph): add v3 streaming support to RemoteGraph (#7927)
## Summary
- Adds `stream_events(version="v3")` and `astream_events(version="v3")`
to `RemoteGraph`, matching the local `CompiledStateGraph` surface and
unblocking polymorphic v3 streaming over `Graph | RemoteGraph`.
- Implementation is a thin adapter
(`libs/langgraph/langgraph/pregel/_remote_run_stream.py`) that wraps the
v3 SDK's `AsyncThreadStream` / `SyncThreadStream` and duck-types
`GraphRunStream` / `AsyncGraphRunStream`. No coupling to local v3 mux
internals.
- `v1` / `v2` paths unchanged. `astream_events(version='v1'|'v2')` still
raises `NotImplementedError` (separate gap).
### Scope decisions baked into this PR
- Unsupported v3 kwargs hard-reject at dispatch with
`NotImplementedError`: `control`, `transformers`, `interrupt_before`,
`interrupt_after`, and any unknown `**kwargs`. Server / SDK don't plumb
these through v3 yet; easy to lift later.
- Sync `interleave()` raises `NotImplementedError` pointing callers at
`astream_events`. Real sync interleave would need drainer threads;
deferred since most sync RemoteGraph callers just iterate raw events.
- Async `interleave()` is best-effort ordering (client receive order),
documented as a divergence from local v3's monotonic stamp ordering.
- Adapter `interrupted` / `interrupts` properties are **non-blocking**
snapshots of the SDK's current state. This differs from local
`(Async)GraphRunStream.interrupted`, which pump-drives the run to
terminal before returning. Callers needing a wait-for-interrupt pattern
should drain a projection (e.g., `interleave('values')`) until the SDK's
paused sentinel fires. Documented in the adapter docstrings.
### Audit of impact
Existing RemoteGraph callers in this org all use the v2 `.stream()` /
`.astream()` path (deepagents production wrapper, langgraph-api test
graphs, langgraph-supervisor TS type guard). **Zero callers** use
`stream_events` / `astream_events` on RemoteGraph today, so the new v3
methods are net-new surface — no risk of breaking existing consumers.
### Out of scope (follow-ups)
- Bumping `libs/langgraph/pyproject.toml`'s `langgraph-sdk` constraint
from `<0.4.0` to `<0.5.0`. Deferred until 0.4.0 publishes to PyPI; dev
resolution unaffected via the editable workspace dep.
- Real `astream_events(version='v1'|'v2')` implementation.
- Server-side plumbing for `control` / `interrupt_before` /
`interrupt_after` on v3 runs.
- Sync `interleave()` via drainer threads.
## Test plan
- [x] \`make test\` in \`libs/langgraph/\`: 1874 passed, 4 skipped (43
new in \`test_remote_graph_v3.py\`)
- [x] \`make lint\` in \`libs/langgraph/\`: ruff + mypy clean
- [x] \`pytest -m integration
tests/integration/test_remote_graph_v3.py\` in \`libs/sdk-py/\` against
the docker stack: 4/4 passed in 1.35s
- [x] Manual smoke: \`RemoteGraph('tools_agent',
url='http://localhost:2024').astream_events(..., version='v3')\`
end-to-end against the v3 integration api
- [x] Existing RemoteGraph v2 tests untouched (31 passed, 3 skipped with
docker up)
- [x] Will need rebase after \`langgraph-sdk 0.4.0\` lands on PyPI and
the version constraint is bumped in a separate PR
|
||
|
|
ea4aa79a60 |
fix(sdk-py): make tools_agent fake model stateless (#7930)
|
||
|
|
c7792608e3 |
release(sdk-py): 0.4.0 (#7923)
## Summary Bumps `langgraph-sdk` `0.3.15` → `0.4.0`. Minor bump to reflect the v3 streaming public API that landed since 0.3.15: - `client.threads.stream(...)` — new thread-centric streaming entry point (async + sync) - SSE and WebSocket transports (`ProtocolSseTransport`, `ProtocolWebSocketTransport`) with reconnect handling and stream selection - Shared stream subscriptions, lifecycle / interrupts state, output / values projections, messages / tool-call projections, scoped subgraph handles, thread stream helpers |
||
|
|
8cb0f3a96d | feat(sdk-py): add thread stream helpers (#7833) | ||
|
|
fd4257300e | feat(sdk-py): wire websocket stream selection (#7832) | ||
|
|
d482fca105 | feat(sdk-py): add websocket stream transports (#7830) | ||
|
|
4f3ab2f969 | feat(sdk-py): harden streaming reconnects (#7829) | ||
|
|
3282ac10e3 | feat(sdk-py): add sync scoped subgraphs (#7828) | ||
|
|
3d61d1b32f | feat(sdk-py): add sync messages and tool calls (#7827) | ||
|
|
fe1c683fe1 | feat(sdk-py): add sync thread stream core (#7826) | ||
|
|
10b701cf41 | feat(sdk-py): add async stream reconnect support (#7825) | ||
|
|
bb9cfe7a22 | feat(sdk-py): add scoped subgraph handles (#7824) | ||
|
|
30fea64687 | feat(sdk-py): add messages and tool call projections (#7823) | ||
|
|
66ec594540 | feat(sdk-py): add output, values, and controller extraction (#7822) | ||
|
|
221deee774 | feat(sdk-py): wire lifecycle state and output prerequisites (#7821) | ||
|
|
d03310abbb | feat(sdk-py): add shared stream subscriptions (#7820) | ||
|
|
22259558cc | feat(sdk-py): add async thread stream skeleton (#7819) | ||
|
|
3268a54791 | feat(sdk-py): add v3 streaming primitives and SSE transport (#7818) | ||
|
|
add269632b |
chore(langgraph): bump version to 1.2.2 (#7914)
Patch bump to 1.2.2 following the 1.2.1 release. |
||
|
|
d1e2ff0561 |
release(checkpoint): 4.1.1 (#7890)
## Summary Bumps `langgraph-checkpoint` `4.1.0` → `4.1.1` and updates all downstream `uv.lock` files. ## Test plan - [x] `make format` / `make lint` / `make test` from `libs/checkpoint/` |
||
|
|
e787af200e |
release(sdk-py): 0.3.15 (#7891)
## Summary Bumps `langgraph-sdk` `0.3.14` → `0.3.15`. ## Test plan - [x] `make format` / `make lint` / `make test` from `libs/sdk-py/` |
||
|
|
604534e1b7 |
fix(sdk-py): percent-encode caller-supplied identifiers in URL paths (#7893)
## Summary Wraps every caller-supplied identifier (thread_id, assistant_id, run_id, cron_id, checkpoint_id, namespace) interpolated into request URL paths with `urllib.parse.quote(safe="")` via a new `_quote_path_param` helper. All-dot strings are encoded as `%2E` triplets so they aren't collapsed by httpx's client-side path normalization. Helper raises `TypeError` for None/bytes inputs. ## Test plan - [x] `make format` / `make lint` / `make test` from `libs/sdk-py` |
||
|
|
bf7fec0bd1 |
release(langgraph): 1.2.1 (#7883)
releasing 1.2.1 Notable changes since 1.2.0: - feat(langgraph): add `before_builtins` opt-in for stream transformers (#7882) - fix(langgraph): keep tool results out of v3 messages (#7838) - chore(deps): bump langsmith from 0.7.31 to 0.8.0 (#7788) - chore(deps): bump idna from 3.11 to 3.15 (#7866) |
||
|
|
5d3f11ef04 |
chore(deps): bump idna from 3.11 to 3.15 in /libs/sdk-py (#7863)
Bumps [idna](https://github.com/kjd/idna) from 3.11 to 3.15. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/kjd/idna/blob/master/HISTORY.md">idna's changelog</a>.</em></p> <blockquote> <h2>3.15 (2026-05-12)</h2> <ul> <li>Enforce DNS-length cap on individual labels early in <code>check_label</code>, short-circuiting contextual-rule processing for oversized input while staying compatible with UTS 46 usage.</li> <li>Tidy core helpers: hoist bidi category sets to module-level frozensets (avoiding per-codepoint list construction), simplify length checks, and reuse the shared <code>_unicode_dots_re</code> from <code>idna.core</code> in the codec module.</li> <li>Use <code>raise ... from err</code> for proper exception chaining and switch internal string formatting to f-strings.</li> <li>Allow <code>flit_core</code> 4.x in the build backend.</li> <li>Expand the ruff lint set (flake8-bugbear, flake8-simplify, pyupgrade, perflint) and apply the surfaced fixes; pin lint CI to Python 3.14.</li> <li>Add Dependabot configuration for GitHub Actions.</li> <li>Convert README and HISTORY from reStructuredText to Markdown.</li> <li>Reference CVE-2026-45409 for the 3.14 advisory in place of the initial GHSA identifier.</li> </ul> <p>Thanks to Felix Yan, Stan Ulbrych, and metsw24-max for contributions to this release.</p> <h2>3.14 (2026-05-10)</h2> <ul> <li>Removed opportunity to process long inputs into quadratic time by rejecting oversize inputs up-front. Closes a bypass of the CVE-2024-3651 mitigation. [CVE-2026-45409]</li> </ul> <p>Thanks to Stan Ulbrych for reporting the issue.</p> <h2>3.13 (2026-04-22)</h2> <ul> <li>Correct classification error for codepoint U+A7F1</li> </ul> <h2>3.12 (2026-04-21)</h2> <ul> <li>Update to Unicode 17.0.0.</li> <li>Issue a deprecation warning for the transitional argument.</li> <li>Added lazy-loading to provide some performance improvements.</li> <li>Removed vestiges of code related to Python 2 support, including segmentation of data structures specific to Jython.</li> </ul> <p>Thanks to Rodrigo Nogueira for contributions to this release.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/kjd/idna/commit/af30a092e158181d0b35ac66dfa813788126bdd8"><code>af30a09</code></a> Release 3.15</li> <li><a href="https://github.com/kjd/idna/commit/30314d4628744ca14cf2b5820564e5127a9f86f2"><code>30314d4</code></a> Pre-release 3.15rc0</li> <li><a href="https://github.com/kjd/idna/commit/05d4b219aa9eddc47371fcbd2000f0301016f3e9"><code>05d4b21</code></a> Merge pull request <a href="https://redirect.github.com/kjd/idna/issues/237">#237</a> from kjd/convert-docs-to-markdown</li> <li><a href="https://github.com/kjd/idna/commit/2987fdba1962bbb2358399e0084ba062b98a0bee"><code>2987fdb</code></a> Convert README and HISTORY from reStructuredText to Markdown</li> <li><a href="https://github.com/kjd/idna/commit/59fa8002d514bf4a5ce7b58f67b9ec587d53fa9c"><code>59fa800</code></a> Merge pull request <a href="https://redirect.github.com/kjd/idna/issues/236">#236</a> from kjd/dependabot/github_actions/actions-f3e34333ea</li> <li><a href="https://github.com/kjd/idna/commit/def69834ced5d4b3c50439d8b99c4c856ec19ca2"><code>def6983</code></a> Merge branch 'master' into dependabot/github_actions/actions-f3e34333ea</li> <li><a href="https://github.com/kjd/idna/commit/bbd8004a797185d8c56bb555cd5c88fde05e0631"><code>bbd8004</code></a> Merge pull request <a href="https://redirect.github.com/kjd/idna/issues/234">#234</a> from StanFromIreland/patch-1</li> <li><a href="https://github.com/kjd/idna/commit/edd07c05024344a6ccb517414ccb36683aee99fc"><code>edd07c0</code></a> Bump github/codeql-action from 3.35.2 to 4.35.2 in the actions group</li> <li><a href="https://github.com/kjd/idna/commit/5557db030c11bdec50d62aa5f631d705d33ba123"><code>5557db0</code></a> Merge branch 'master' into patch-1</li> <li><a href="https://github.com/kjd/idna/commit/f11746cf4981d25123ef7830d3ee60f07de8ae3d"><code>f11746c</code></a> Merge pull request <a href="https://redirect.github.com/kjd/idna/issues/235">#235</a> from StanFromIreland/patch-2</li> <li>Additional commits viewable in <a href="https://github.com/kjd/idna/compare/v3.11...v3.15">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/langchain-ai/langgraph/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
1c4fbb3709 |
chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /libs/sdk-py (#7764)
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.3 to 2.7.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/urllib3/urllib3/releases">urllib3's releases</a>.</em></p> <blockquote> <h2>2.7.0</h2> <h2>🚀 urllib3 is fundraising for HTTP/2 support</h2> <p><a href="https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support">urllib3 is raising ~$40,000 USD</a> to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects <a href="https://opencollective.com/urllib3">please consider contributing financially</a> to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.</p> <p>Thank you for your support.</p> <h2>Security</h2> <p>Addressed high-severity security issues. Impact was limited to specific use cases detailed in the accompanying advisories; overall user exposure was estimated to be marginal.</p> <ul> <li> <p>Decompression-bomb safeguards of the streaming API were bypassed:</p> <ol> <li>When <code>HTTPResponse.drain_conn()</code> was called after the response had been read and decompressed partially. (Reported by <a href="https://github.com/Cycloctane"><code>@Cycloctane</code></a>)</li> <li>During the second <code>HTTPResponse.read(amt=N)</code> or <code>HTTPResponse.stream(amt=N)</code> call when the response was decompressed using the official <a href="https://pypi.org/project/brotli/">Brotli</a> library. (Reported by <a href="https://github.com/kimkou2024"><code>@kimkou2024</code></a>)</li> </ol> <p>See GHSA-mf9v-mfxr-j63j for details.</p> </li> <li> <p>HTTP pools created using <code>ProxyManager.connection_from_url</code> did not strip sensitive headers specified in <code>Retry.remove_headers_on_redirect</code> when redirecting to a different host. (GHSA-qccp-gfcp-xxvc reported by <a href="https://github.com/christos-spearbit"><code>@christos-spearbit</code></a>)</p> </li> </ul> <h2>Deprecations and Removals</h2> <ul> <li>Used <code>FutureWarning</code> instead of <code>DeprecationWarning</code> for better visibility of existing deprecation notices. Rescheduled the removal of deprecated features to version 3.0. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3763">urllib3/urllib3#3763</a>)</li> <li>Removed support for end-of-life Python 3.9. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3720">urllib3/urllib3#3720</a>)</li> <li>Removed support for end-of-life PyPy3.10. (<a href="https://redirect.github.com/urllib3/urllib3/issues/4979">urllib3/urllib3#4979</a>)</li> <li>Bumped the minimum supported pyOpenSSL version to 19.0.0. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3777">urllib3/urllib3#3777</a>)</li> </ul> <h2>Bugfixes</h2> <ul> <li>Fixed a bug where <code>HTTPResponse.read(amt=None)</code> was ignoring decompressed data buffered from previous partial reads. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3636">urllib3/urllib3#3636</a>)</li> <li>Fixed a bug where <code>HTTPResponse.read()</code> could cache only part of the response after a partial read when <code>cache_content=True</code>. (<a href="https://redirect.github.com/urllib3/urllib3/issues/4967">urllib3/urllib3#4967</a>)</li> <li>Fixed <code>HTTPResponse.stream()</code> and <code>HTTPResponse.read_chunked()</code> to handle <code>amt=0</code>. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3793">urllib3/urllib3#3793</a>)</li> <li>Updated <code>_TYPE_BODY</code> type alias to include missing <code>Iterable[str]</code>, matching the documented and runtime behavior of chunked request bodies. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3798">urllib3/urllib3#3798</a>)</li> <li>Fixed <code>LocationParseError</code> when paths resembling schemeless URIs were passed to <code>HTTPConnectionPool.urlopen()</code>. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3352">urllib3/urllib3#3352</a>)</li> <li>Fixed <code>BaseHTTPResponse.readinto()</code> type annotation to accept <code>memoryview</code> in addition to <code>bytearray</code>, matching the <code>io.RawIOBase.readinto</code> contract and enabling use with <code>io.BufferedReader</code> without type errors. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3764">urllib3/urllib3#3764</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/urllib3/urllib3/blob/main/CHANGES.rst">urllib3's changelog</a>.</em></p> <blockquote> <h1>2.7.0 (2026-05-07)</h1> <h2>Security</h2> <p>Addressed high-severity security issues. Impact was limited to specific use cases detailed in the accompanying advisories; overall user exposure was estimated to be marginal.</p> <ul> <li> <p>Decompression-bomb safeguards of the streaming API were bypassed:</p> <ol> <li>When <code>HTTPResponse.drain_conn()</code> was called after the response had been read and decompressed partially.</li> <li>During the second <code>HTTPResponse.read(amt=N)</code> or <code>HTTPResponse.stream(amt=N)</code> call when the response was decompressed using the official <code>Brotli <https://pypi.org/project/brotli/></code>__ library.</li> </ol> <p>See <code>GHSA-mf9v-mfxr-j63j <https://github.com/urllib3/urllib3/security/advisories/GHSA-mf9v-mfxr-j63j></code>__ for details.</p> </li> <li> <p>HTTP pools created using <code>ProxyManager.connection_from_url</code> did not strip sensitive headers specified in <code>Retry.remove_headers_on_redirect</code> when redirecting to a different host. (<code>GHSA-qccp-gfcp-xxvc <https://github.com/urllib3/urllib3/security/advisories/GHSA-qccp-gfcp-xxvc></code>__)</p> </li> </ul> <h2>Deprecations and Removals</h2> <ul> <li>Used <code>FutureWarning</code> instead of <code>DeprecationWarning</code> for better visibility of existing deprecation notices. Rescheduled the removal of deprecated features to version 3.0. (<code>[#3763](https://github.com/urllib3/urllib3/issues/3763) <https://github.com/urllib3/urllib3/issues/3763></code>__)</li> <li>Removed support for end-of-life Python 3.9. (<code>[#3720](https://github.com/urllib3/urllib3/issues/3720) <https://github.com/urllib3/urllib3/issues/3720></code>__)</li> <li>Removed support for end-of-life PyPy3.10. (<code>[#4979](https://github.com/urllib3/urllib3/issues/4979) <https://github.com/urllib3/urllib3/issues/4979></code>__)</li> <li>Bumped the minimum supported pyOpenSSL version to 19.0.0. (<code>[#3777](https://github.com/urllib3/urllib3/issues/3777) <https://github.com/urllib3/urllib3/issues/3777></code>__)</li> </ul> <h2>Bugfixes</h2> <ul> <li>Fixed a bug where <code>HTTPResponse.read(amt=None)</code> was ignoring decompressed data buffered from previous partial reads. (<code>[#3636](https://github.com/urllib3/urllib3/issues/3636) <https://github.com/urllib3/urllib3/issues/3636></code>__)</li> <li>Fixed a bug where <code>HTTPResponse.read()</code> could cache only part of the response after a partial read when <code>cache_content=True</code>.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/urllib3/urllib3/commit/9a950b92d999f906b6020bb2d1076ee56cddd5d2"><code>9a950b9</code></a> Release 2.7.0</li> <li><a href="https://github.com/urllib3/urllib3/commit/5ec0de499b9166ca71c65ab04f2a7e4eb0d66fcc"><code>5ec0de4</code></a> Merge commit from fork</li> <li><a href="https://github.com/urllib3/urllib3/commit/2bdcc44d1e163fb5cc48a8662425e35e15adfe6a"><code>2bdcc44</code></a> Merge commit from fork</li> <li><a href="https://github.com/urllib3/urllib3/commit/f45b0df09d8620ac6ed0491eb9362c8c87b7bc2c"><code>f45b0df</code></a> Fix a misleading example for <code>ProxyManager</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/4970">#4970</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/577193ca029872384f82c133449e0935f6d8a64b"><code>577193c</code></a> Switch to nightly PyPy3.11 in CI for now (<a href="https://redirect.github.com/urllib3/urllib3/issues/4984">#4984</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/e90af45bb006c3a452a3a21644a2681523f5c7fc"><code>e90af45</code></a> Avoid infinite loop in <code>HTTPResponse.read_chunked</code> when <code>amt=0</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/4974">#4974</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/67ed74fdaec6659a6534621ec8e3aaaa6f976210"><code>67ed74f</code></a> Bump dev dependencies (<a href="https://redirect.github.com/urllib3/urllib3/issues/4972">#4972</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/3abd481097b54d87b574ac7ea593c3f40938a84d"><code>3abd481</code></a> Upgrade mypy to version 1.20.2 (<a href="https://redirect.github.com/urllib3/urllib3/issues/4978">#4978</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/2b8725dfcac4f21d4d93cc0cc3a64a33af08f890"><code>2b8725d</code></a> Drop support for EOL PyPy3.10 (<a href="https://redirect.github.com/urllib3/urllib3/issues/4979">#4979</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/2944b2a0a6c573f5548a39cfd17196f98ee21b33"><code>2944b2a</code></a> Upgrade <code>setup-chrome</code> and <code>setup-firefox</code> to fix warnings (<a href="https://redirect.github.com/urllib3/urllib3/issues/4973">#4973</a>)</li> <li>Additional commits viewable in <a href="https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/langchain-ai/langgraph/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
ebd2f7bb59 |
chore(deps): bump langsmith from 0.7.31 to 0.8.0 in /libs/sdk-py (#7789)
Bumps [langsmith](https://github.com/langchain-ai/langsmith-sdk) from 0.7.31 to 0.8.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langsmith-sdk/releases">langsmith's releases</a>.</em></p> <blockquote> <h2>v0.8.0</h2> <h2>What's Changed</h2> <ul> <li>feat(js,py): JS 0.6.0, Py 0.8.0 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2831">langchain-ai/langsmith-sdk#2831</a></li> <li>release(js): 0.6.0 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2832">langchain-ai/langsmith-sdk#2832</a></li> <li>release(py): 0.8.0 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2833">langchain-ai/langsmith-sdk#2833</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.38...v0.8.0">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.38...v0.8.0</a></p> <h2>v0.7.38</h2> <h2>What's Changed</h2> <ul> <li>feat(js): add tracing of opencode by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2776">langchain-ai/langsmith-sdk#2776</a></li> <li>chore(js): Remove types/uuid by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2814">langchain-ai/langsmith-sdk#2814</a></li> <li>docs(sandbox): document default idle TTL of 10 minutes by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2788">langchain-ai/langsmith-sdk#2788</a></li> <li>ci(py): Bump pytest timeout to 2m by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2815">langchain-ai/langsmith-sdk#2815</a></li> <li>chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2803">langchain-ai/langsmith-sdk#2803</a></li> <li>chore(deps): update sphinx-autobuild requirement from >=2024 to >=2024.10.3 in /python by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2809">langchain-ai/langsmith-sdk#2809</a></li> <li>chore(deps): update myst-nb requirement from >=1.1.1 to >=1.4.0 in /python by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2810">langchain-ai/langsmith-sdk#2810</a></li> <li>chore(deps-dev): bump types-pyyaml from 6.0.12.20250915 to 6.0.12.20260408 in /python by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2812">langchain-ai/langsmith-sdk#2812</a></li> <li>chore(deps-dev): bump <code>@langchain/openai</code> from 0.5.18 to 0.6.17 in /js by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2806">langchain-ai/langsmith-sdk#2806</a></li> <li>chore(deps): bump the py-minor-and-patch group across 1 directory with 18 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2808">langchain-ai/langsmith-sdk#2808</a></li> <li>feat(py): Adds strands OTEL exporter by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2817">langchain-ai/langsmith-sdk#2817</a></li> <li>chore(js): Switch to oxfmt and oxlint by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2819">langchain-ai/langsmith-sdk#2819</a></li> <li>fix(py): fix RunTree ValidationError when inputs or outputs is a Pydantic BaseModel by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2820">langchain-ai/langsmith-sdk#2820</a></li> <li>chore: add apac support by <a href="https://github.com/joaquin-borggio-lc"><code>@joaquin-borggio-lc</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2821">langchain-ai/langsmith-sdk#2821</a></li> <li>fix(js): Pull Claude Agent SDK subagent runs from transcript, add tool span for subagents, merge message blocks by id by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2816">langchain-ai/langsmith-sdk#2816</a></li> <li>release(js): 0.5.26 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2824">langchain-ai/langsmith-sdk#2824</a></li> <li>release(py): 0.7.38 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2825">langchain-ai/langsmith-sdk#2825</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.37...v0.7.38">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.37...v0.7.38</a></p> <h2>v0.7.37</h2> <h2>What's Changed</h2> <ul> <li>perf(js): Offload serialize to worker thread at flush time by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2781">langchain-ai/langsmith-sdk#2781</a></li> <li>release(js): 0.5.24 by <a href="https://github.com/emil-lc"><code>@emil-lc</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2790">langchain-ai/langsmith-sdk#2790</a></li> <li>chore(js): Fix perf test flagging by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2792">langchain-ai/langsmith-sdk#2792</a></li> <li>feat(js,python): Adds hub model config and provider to schemas by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2793">langchain-ai/langsmith-sdk#2793</a></li> <li>fix(js): minor test improvements by <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2429">langchain-ai/langsmith-sdk#2429</a></li> <li>fix(js): Include auth headers on info requests by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2800">langchain-ai/langsmith-sdk#2800</a></li> <li>release(js): 0.5.25 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2801">langchain-ai/langsmith-sdk#2801</a></li> <li>fix(python): flush both tracing_queue and compressed_traces in flush() by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2796">langchain-ai/langsmith-sdk#2796</a></li> <li>chore(deps): bump postcss from 8.5.8 to 8.5.10 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2791">langchain-ai/langsmith-sdk#2791</a></li> <li>chore(deps-dev): bump google-adk from 1.10.0 to 1.28.1 in /python by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2794">langchain-ai/langsmith-sdk#2794</a></li> <li>fix(python): flush pending traces during Client.cleanup() by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2799">langchain-ai/langsmith-sdk#2799</a></li> <li>fix(py): Fix concurrency for multiple Claude Agent SDK sessions by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2795">langchain-ai/langsmith-sdk#2795</a></li> <li>release(py): 0.7.37 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2802">langchain-ai/langsmith-sdk#2802</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.36...v0.7.37">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.36...v0.7.37</a></p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/cf01c873d50f2f50249f1975b8d443a546168a85"><code>cf01c87</code></a> release(py): 0.8.0 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2833">#2833</a>)</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/fd049c84648aa168e42636744587be0e0589da01"><code>fd049c8</code></a> release(js): 0.6.0 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2832">#2832</a>)</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/092a8866c473810712fb7983459923cbbfce3069"><code>092a886</code></a> feat(js,py): JS 0.6.0, Py 0.8.0 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2831">#2831</a>)</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/ff180c04237511b341ed455cfbfe6cadd9a5eeab"><code>ff180c0</code></a> release(py): 0.7.38 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2825">#2825</a>)</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/d9de3ca801dc8a9e81d6e7dbb0bc5547a505f115"><code>d9de3ca</code></a> release(js): 0.5.26 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2824">#2824</a>)</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/14283948316ba4a274622440d537e61aec85b8c3"><code>1428394</code></a> fix(js): Pull Claude Agent SDK subagent runs from transcript, add tool span f...</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/838e957d8027a8ff2e9e7cf8a10e874bfae328d7"><code>838e957</code></a> chore: add apac support (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2821">#2821</a>)</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/003f22a768f7dad7efdeb775d0b1199a125ce4fe"><code>003f22a</code></a> fix(py): fix RunTree ValidationError when inputs or outputs is a Pydantic Bas...</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/8f5ef27c2d76dd62353b22f63b32a987e5d07407"><code>8f5ef27</code></a> chore(js): Switch to oxfmt and oxlint (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2819">#2819</a>)</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/9873633c9f066fc1c3ed7641ad54d646c90dae09"><code>9873633</code></a> feat(py): Adds strands OTEL exporter (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2817">#2817</a>)</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/langchain-ai/langgraph/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
3614e88c58 |
release: bump alpha packages to official versions (#7775)
## Summary Bumps all alpha-versioned packages to their official releases: - `langgraph`: `1.2.0a7` → `1.2.0` - `langgraph-checkpoint`: `4.1.0a4` → `4.1.0` - `langgraph-checkpoint-postgres`: `3.1.0a4` → `3.1.0` - `langgraph-checkpoint-sqlite`: `3.1.0a1` → `3.1.0` - `langgraph-prebuilt`: `1.1.0a2` → `1.1.0` Also removes the `a*` alpha specifiers from cross-dependency pins in `langgraph`, `checkpoint-postgres`, and `checkpoint-sqlite`, and regenerates all `uv.lock` files. |
||
|
|
2c04b03f72 | chore(langgraph): bump langchain-core to 1.4.0 (#7767) | ||
|
|
ed168deb97 |
feat(sdk-py): support metadata filter for crons search/count (#7737)
## Description Mirrors a server-side change by accepting an optional \`metadata\` filter on \`crons.search\` and \`crons.count\` in both the async and sync Python SDK clients. Matches the existing pattern used for assistants/threads search. ## Release Note Python SDK: \`crons.search\` and \`crons.count\` now accept an optional \`metadata\` filter that is forwarded to the server. ## Test Plan - [ ] New unit tests in \`tests/test_crons_client.py\` verify metadata is forwarded for both async and sync clients and omitted when not provided. --------- Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com> Co-authored-by: Parker J. Rule <pjrule@users.noreply.github.com> |
||
|
|
e49c093f48 |
chore(deps): bump ty from 0.0.23 to 0.0.33 in /libs/sdk-py (#7666)
Bumps the minor-and-patch group with 1 update in the /libs/sdk-py directory: [ty](https://github.com/astral-sh/ty). Updates `ty` from 0.0.23 to 0.0.33 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ty/releases">ty's releases</a>.</em></p> <blockquote> <h2>0.0.33</h2> <h2>Release Notes</h2> <p>Released on 2026-04-28.</p> <h3>Notable changes</h3> <ul> <li> <p>ty now prefers the declared type of an annotated assignment in more situations (<a href="https://redirect.github.com/astral-sh/ruff/pull/24802">#24802</a>). Consider this example:</p> <pre lang="py"><code>from some_library import untyped_function <p>threshold: int | None = 0 result: str = untyped_function() </code></pre></p> <p>ty previously favored the <em>inferred</em> type of the right hand side expression when <code>threshold</code> and <code>result</code> were used. This is useful for <code>threshold</code>, as it allows something like <code>threshold += 1</code> to work without an error: we know that <code>threshold</code> could later become <code>None</code>, but <em>right now</em>, we see that it is an <code>int</code>. However, for <code>result</code>, the inferred type is <code>Unknown</code>. This is <em>not</em> a useful type and it can lead to false negatives. Starting with this release, ty will therefore prefer the declared type <em>if the inferred and declared types are mutually assignable</em>. In the above example, <code>threshold</code> will still be inferred as <code>int</code> (or rather <code>Literal[1]</code>), but <code>result</code> will now be inferred as <code>str</code>. If you previously added <code>cast</code>s to work around this behavior, you should be able to remove them after upgrading.</p> </li> </ul> <h3>Bug fixes</h3> <ul> <li>Fix reporting of annotation-only locals as unused (<a href="https://redirect.github.com/astral-sh/ruff/pull/24811">#24811</a>)</li> <li>Fix project and workspace selection (<a href="https://redirect.github.com/astral-sh/ruff/pull/24824">#24824</a>)</li> <li>Fix go-to definition for generic classes (<a href="https://redirect.github.com/astral-sh/ruff/pull/24714">#24714</a>)</li> <li>Fix receiver coloring for aliased decorators (<a href="https://redirect.github.com/astral-sh/ruff/pull/24884">#24884</a>)</li> </ul> <h3>LSP server</h3> <ul> <li>Add support for go-to definition in literal enum member inlay hints (<a href="https://redirect.github.com/astral-sh/ruff/pull/24792">#24792</a>)</li> <li>Add support for "baking" keyword argument inlay hints into the source code (<a href="https://redirect.github.com/astral-sh/ruff/pull/24667">#24667</a>)</li> <li>Don't allow inlay hint edits when introducing a non global scope symbol (<a href="https://redirect.github.com/astral-sh/ruff/pull/24797">#24797</a>)</li> <li>Omit semantic highlighting for unresolved symbols (<a href="https://redirect.github.com/astral-sh/ruff/pull/24718">#24718</a>)</li> </ul> <h3>Core type checking</h3> <ul> <li>Support narrowing with aliased conditional expressions (<a href="https://redirect.github.com/astral-sh/ruff/pull/24302">#24302</a>)</li> <li>Model short-circuiting control flow in Boolean expressions (<a href="https://redirect.github.com/astral-sh/ruff/pull/24458">#24458</a>)</li> <li>Handle <code>finally</code> blocks where all <code>try</code>/<code>except</code> blocks are terminal (<a href="https://redirect.github.com/astral-sh/ruff/pull/24882">#24882</a>)</li> <li>Detect invalid <code>ClassVar</code> vs instance-attribute overrides (<a href="https://redirect.github.com/astral-sh/ruff/pull/24767">#24767</a>)</li> <li>Emit diagnostic for invalid uses of <code>Unpack[...]</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/24868">#24868</a>)</li> <li>Infer lambda parameter types with <code>Callable</code> type context (<a href="https://redirect.github.com/astral-sh/ruff/pull/24317">#24317</a>)</li> <li>Support <code>**</code> unpacking of <code>TypedDict</code> in dict-literal assignments (<a href="https://redirect.github.com/astral-sh/ruff/pull/24703">#24703</a>)</li> <li>Support <code>Unpack[TypedDict]</code> in <code>**kwargs</code> signatures (<a href="https://redirect.github.com/astral-sh/ruff/pull/24653">#24653</a>)</li> <li>Treat <code>[*xs]</code> as an irrefutable pattern when matching on <code>Sequence</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/24787">#24787</a>)</li> <li>Improve generics solving for unions in invariant positions (<a href="https://redirect.github.com/astral-sh/ruff/pull/24698">#24698</a>)</li> <li>Improve generics solving for unions when matching against protocols (<a href="https://redirect.github.com/astral-sh/ruff/pull/24837">#24837</a>)</li> </ul> <h3>Diagnostics</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ty/blob/main/CHANGELOG.md">ty's changelog</a>.</em></p> <blockquote> <h2>0.0.33</h2> <p>Released on 2026-04-28.</p> <h3>Notable changes</h3> <ul> <li> <p>ty now prefers the declared type of an annotated assignment in more situations (<a href="https://redirect.github.com/astral-sh/ruff/pull/24802">#24802</a>). Consider this example:</p> <pre lang="py"><code>from some_library import untyped_function <p>threshold: int | None = 0 result: str = untyped_function() </code></pre></p> <p>ty previously favored the <em>inferred</em> type of the right hand side expression when <code>threshold</code> and <code>result</code> were used. This is useful for <code>threshold</code>, as it allows something like <code>threshold += 1</code> to work without an error: we know that <code>threshold</code> could later become <code>None</code>, but <em>right now</em>, we see that it is an <code>int</code>. However, for <code>result</code>, the inferred type is <code>Unknown</code>. This is <em>not</em> a useful type and it can lead to false negatives. Starting with this release, ty will therefore prefer the declared type <em>if the inferred and declared types are mutually assignable</em>. In the above example, <code>threshold</code> will still be inferred as <code>int</code> (or rather <code>Literal[1]</code>), but <code>result</code> will now be inferred as <code>str</code>. If you previously added <code>cast</code>s to work around this behavior, you should be able to remove them after upgrading.</p> </li> </ul> <h3>Bug fixes</h3> <ul> <li>Fix reporting of annotation-only locals as unused (<a href="https://redirect.github.com/astral-sh/ruff/pull/24811">#24811</a>)</li> <li>Fix project and workspace selection (<a href="https://redirect.github.com/astral-sh/ruff/pull/24824">#24824</a>)</li> <li>Fix go-to definition for generic classes (<a href="https://redirect.github.com/astral-sh/ruff/pull/24714">#24714</a>)</li> <li>Fix receiver coloring for aliased decorators (<a href="https://redirect.github.com/astral-sh/ruff/pull/24884">#24884</a>)</li> </ul> <h3>LSP server</h3> <ul> <li>Add support for go-to definition in literal enum member inlay hints (<a href="https://redirect.github.com/astral-sh/ruff/pull/24792">#24792</a>)</li> <li>Add support for "baking" keyword argument inlay hints into the source code (<a href="https://redirect.github.com/astral-sh/ruff/pull/24667">#24667</a>)</li> <li>Don't allow inlay hint edits when introducing a non global scope symbol (<a href="https://redirect.github.com/astral-sh/ruff/pull/24797">#24797</a>)</li> <li>Omit semantic highlighting for unresolved symbols (<a href="https://redirect.github.com/astral-sh/ruff/pull/24718">#24718</a>)</li> </ul> <h3>Core type checking</h3> <ul> <li>Support narrowing with aliased conditional expressions (<a href="https://redirect.github.com/astral-sh/ruff/pull/24302">#24302</a>)</li> <li>Model short-circuiting control flow in Boolean expressions (<a href="https://redirect.github.com/astral-sh/ruff/pull/24458">#24458</a>)</li> <li>Handle <code>finally</code> blocks where all <code>try</code>/<code>except</code> blocks are terminal (<a href="https://redirect.github.com/astral-sh/ruff/pull/24882">#24882</a>)</li> <li>Detect invalid <code>ClassVar</code> vs instance-attribute overrides (<a href="https://redirect.github.com/astral-sh/ruff/pull/24767">#24767</a>)</li> <li>Emit diagnostic for invalid uses of <code>Unpack[...]</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/24868">#24868</a>)</li> <li>Infer lambda parameter types with <code>Callable</code> type context (<a href="https://redirect.github.com/astral-sh/ruff/pull/24317">#24317</a>)</li> <li>Support <code>**</code> unpacking of <code>TypedDict</code> in dict-literal assignments (<a href="https://redirect.github.com/astral-sh/ruff/pull/24703">#24703</a>)</li> <li>Support <code>Unpack[TypedDict]</code> in <code>**kwargs</code> signatures (<a href="https://redirect.github.com/astral-sh/ruff/pull/24653">#24653</a>)</li> <li>Treat <code>[*xs]</code> as an irrefutable pattern when matching on <code>Sequence</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/24787">#24787</a>)</li> <li>Improve generics solving for unions in invariant positions (<a href="https://redirect.github.com/astral-sh/ruff/pull/24698">#24698</a>)</li> <li>Improve generics solving for unions when matching against protocols (<a href="https://redirect.github.com/astral-sh/ruff/pull/24837">#24837</a>)</li> </ul> <h3>Diagnostics</h3> <ul> <li>Add error context to <code>invalid-return-type</code> diagnostics, <code>invalid-yield</code> diagnostics, attribute assignment diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/24770">#24770</a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/24771">#24771</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ty/commit/c512d8425418a2170e92aa7fbbd70952d4e04118"><code>c512d84</code></a> Bump version to 0.0.33 (<a href="https://redirect.github.com/astral-sh/ty/issues/3368">#3368</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/4cd7b334b90eba09042700e7b654044c2d6bcd15"><code>4cd7b33</code></a> Upgrade Depot runners from macOS 14 to 15 (<a href="https://redirect.github.com/astral-sh/ty/issues/3363">#3363</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/c78b8324515bf15a662f61e1d74fd85484d67e8c"><code>c78b832</code></a> Update rui314/setup-mold digest to 9c9c13b (<a href="https://redirect.github.com/astral-sh/ty/issues/3342">#3342</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/dea338134aef96d741a48886e414f622dbf10426"><code>dea3381</code></a> Update actions/cache action to v5.0.5 (<a href="https://redirect.github.com/astral-sh/ty/issues/3343">#3343</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/d451af477bd5517e132609c3b016799d697f4182"><code>d451af4</code></a> update typing-features and faqs (<a href="https://redirect.github.com/astral-sh/ty/issues/3335">#3335</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/052d70bc1a7457f50c5acbafe8de7a846f7d5e77"><code>052d70b</code></a> Update prek dependencies (<a href="https://redirect.github.com/astral-sh/ty/issues/3344">#3344</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/66b5e878163ce4ab4810a45a2679a98011932b8b"><code>66b5e87</code></a> Update astral-sh/setup-uv action to v8.1.0 (<a href="https://redirect.github.com/astral-sh/ty/issues/3345">#3345</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/7ec6712a6f02d0255de4c7f0066d5bb23987a9bb"><code>7ec6712</code></a> Add a 'Diagnostics improvements' section to the changelogs (<a href="https://redirect.github.com/astral-sh/ty/issues/3309">#3309</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/978dfdb38dfb568943f73779d769a965c1d5a397"><code>978dfdb</code></a> Add version metadata publishing to the release process (<a href="https://redirect.github.com/astral-sh/ty/issues/3292">#3292</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/4d1e1fc57ca8bfdcbcee513ba92135d2932eb279"><code>4d1e1fc</code></a> Bump version to 0.0.32 (<a href="https://redirect.github.com/astral-sh/ty/issues/3302">#3302</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ty/compare/0.0.23...0.0.33">compare view</a></li> </ul> </details> <br /> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: John Kennedy <65985482+jkennedyvz@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
0ae01c7366 |
release(sdk-py): 0.3.14 (#7712)
Cuts a release for langgraph-sdk to publish #7704 (`return_minimal` on `threads.update`). Needed by langchain-ai/langchainplus#24203 to swap Fleet Python `threads.update` callsites from raw `Prefer` headers to the first-class `return_minimal=True` parameter. Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com> |
||
|
|
60e305596d |
feat(sdk-py): add return_minimal to threads update (#7704)
Adds a first-class `return_minimal` option to the Python `threads.update` clients. When enabled, the SDK sends `Prefer: return=minimal` and returns `None` for the 204 response. Covers both async and sync clients with focused tests. |
||
|
|
125d10052c |
release: alpha bump (a4) for langgraph, checkpoint, checkpoint-postgres (#7701)
- Bumps `langgraph` 1.2.0a6 → 1.2.0a7 - Bumps `langgraph-checkpoint` 4.1.0a3 → 4.1.0a4 - Bumps `langgraph-checkpoint-postgres` 3.1.0a3 → 3.1.0a4 - Bumps min `langgraph-checkpoint` constraint in `langgraph` and `checkpoint-postgres` to `>=4.1.0a4` - Refreshes uv locks across the workspace |
||
|
|
35cea28707 | release: alpha bump langgraph 1.2.0a6 (#7697) | ||
|
|
b82d380634 | release: alpha bump prebuilt 1.1.0a2, langgraph 1.2.0a5 (#7682) | ||
|
|
85bca24635 | release: alpha bump prebuilt 1.1.0a1, langgraph 1.2.0a4 (#7679) | ||
|
|
f2bd3224f0 | feat(langgraph): dispatch stream_events(version='v3') on Pregel (#7677) | ||
|
|
530fcabfc3 |
release: alpha bump (a3) for langgraph, checkpoint, checkpoint-postgres (#7678)
## Summary - Bumps `langgraph` 1.2.0a1 → 1.2.0a3 - Bumps `langgraph-checkpoint` 4.1.0a1 → 4.1.0a3 - Bumps `langgraph-checkpoint-postgres` 3.1.0a1 → 3.1.0a3 - Bumps min `langgraph-checkpoint` constraint in `langgraph` to `>=4.1.0a3` - Refreshes uv locks across the workspace (Note: `a2` was already cut from another branch.) ## Test plan - [ ] CI passes |
||
|
|
4a5765dd23 |
release: alpha for timers (#7647)
Co-authored-by: Will Fu-Hinthorn <will@langchain.dev> Co-authored-by: Sydney Runkle <sydneymarierunkle@gmail.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> |
||
|
|
168674dd2a |
chore: update x links to langchain_oss (#7645)
## Description Updates the X/Twitter social links to point to the new `@langchain_oss` account across README badges and Python package metadata. ## Test Plan - [ ] Verify README badges and package metadata point to `@langchain_oss` on X _Opened collaboratively by Mason Daugherty and open-swe._ --------- Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com> Co-authored-by: Mason Daugherty <61371264+mdrxy@users.noreply.github.com> Co-authored-by: Mason Daugherty <mason@langchain.dev> |
||
|
|
f4388df77f | feat(langgraph): add streaming transformer infrastructure and tests (#7519) | ||
|
|
521b4842d3 |
chore(deps): bump the minor-and-patch group across 1 directory with 4 updates (ty held back) (#7635)
Bumps the minor-and-patch group with 5 updates in the /libs/sdk-py directory: | Package | From | To | | --- | --- | --- | | [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.11.8` | | [ruff](https://github.com/astral-sh/ruff) | `0.15.6` | `0.15.12` | | [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.2` | | [ty](https://github.com/astral-sh/ty) | `0.0.23` | `0.0.32` | | [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` | Updates `orjson` from 3.11.7 to 3.11.8 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ijl/orjson/releases">orjson's releases</a>.</em></p> <blockquote> <h2>3.11.8</h2> <h3>Changed</h3> <ul> <li>Build and compatibility improvements.</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/ijl/orjson/blob/master/CHANGELOG.md">orjson's changelog</a>.</em></p> <blockquote> <h2>3.11.8 - 2026-03-31</h2> <h3>Changed</h3> <ul> <li>Build and compatibility improvements.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ijl/orjson/commit/5cbb3d0398a2f42de51210270286fecd798c5d78"><code>5cbb3d0</code></a> 3.11.8</li> <li><a href="https://github.com/ijl/orjson/commit/4195d7f263e33076295b75efdcbaf6a55af8674e"><code>4195d7f</code></a> writer::half</li> <li><a href="https://github.com/ijl/orjson/commit/d00641b69410728a735f0855eb1c2843b0a5819b"><code>d00641b</code></a> writer::uuid</li> <li><a href="https://github.com/ijl/orjson/commit/c84d9b4ba4853781af943fa5c493e261e2f82b84"><code>c84d9b4</code></a> build and compatibility misc</li> <li><a href="https://github.com/ijl/orjson/commit/4547234b681fac5e0e0734cf44c21e75f9654e43"><code>4547234</code></a> ffi::numpy</li> <li><a href="https://github.com/ijl/orjson/commit/0d4a5ad1f17a72528ba027554466fdec6580cdeb"><code>0d4a5ad</code></a> datetime PyRef idiom</li> <li><a href="https://github.com/ijl/orjson/commit/e93a13d372ec956d027e71d023eb534b8445ac85"><code>e93a13d</code></a> Cross-compile avoids maturin v1.12 build-details.json error</li> <li>See full diff in <a href="https://github.com/ijl/orjson/compare/3.11.7...3.11.8">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.6 to 0.15.12 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>0.15.12</h2> <h2>Release Notes</h2> <p>Released on 2026-04-24.</p> <h3>Preview features</h3> <ul> <li>Implement <code>#ruff:file-ignore</code> file-level suppressions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23599">#23599</a>)</li> <li>Implement <code>#ruff:ignore</code> logical-line suppressions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23404">#23404</a>)</li> <li>Revert preview changes to displayed diagnostic severity in LSP (<a href="https://redirect.github.com/astral-sh/ruff/pull/24789">#24789</a>)</li> <li>[<code>airflow</code>] Implement <code>task-branch-as-short-circuit</code> (<code>AIR004</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23579">#23579</a>)</li> <li>[<code>flake8-bugbear</code>] Fix <code>break</code>/<code>continue</code> handling in <code>loop-iterator-mutation</code> (<code>B909</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/24440">#24440</a>)</li> <li>[<code>pylint</code>] Fix <code>PLC2701</code> for type parameter scopes (<a href="https://redirect.github.com/astral-sh/ruff/pull/24576">#24576</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>pandas-vet</code>] Suggest <code>.array</code> as well in <code>PD011</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/24805">#24805</a>)</li> </ul> <h3>CLI</h3> <ul> <li>Respect default Unix permissions for cache files (<a href="https://redirect.github.com/astral-sh/ruff/pull/24794">#24794</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>[<code>pylint</code>] Fix <code>PLR0124</code> description not to claim self-comparison always returns the same value (<a href="https://redirect.github.com/astral-sh/ruff/pull/24749">#24749</a>)</li> <li>[<code>pyupgrade</code>] Expand docs on reusable <code>TypeVar</code>s and scoping (<code>UP046</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/24153">#24153</a>)</li> <li>Improve rules table accessibility (<a href="https://redirect.github.com/astral-sh/ruff/pull/24711">#24711</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/dylwil3"><code>@dylwil3</code></a></li> <li><a href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li> <li><a href="https://github.com/woodruffw"><code>@woodruffw</code></a></li> <li><a href="https://github.com/avasis-ai"><code>@avasis-ai</code></a></li> <li><a href="https://github.com/Dev-iL"><code>@Dev-iL</code></a></li> <li><a href="https://github.com/denyszhak"><code>@denyszhak</code></a></li> <li><a href="https://github.com/ShipItAndPray"><code>@ShipItAndPray</code></a></li> <li><a href="https://github.com/anishgirianish"><code>@anishgirianish</code></a></li> <li><a href="https://github.com/augustelalande"><code>@augustelalande</code></a></li> <li><a href="https://github.com/amyreese"><code>@amyreese</code></a></li> <li><a href="https://github.com/majiayu000"><code>@majiayu000</code></a></li> </ul> <h2>Install ruff 0.15.12</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.12/ruff-installer.sh | sh </code></pre> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.15.12</h2> <p>Released on 2026-04-24.</p> <h3>Preview features</h3> <ul> <li>Implement <code>#ruff:file-ignore</code> file-level suppressions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23599">#23599</a>)</li> <li>Implement <code>#ruff:ignore</code> logical-line suppressions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23404">#23404</a>)</li> <li>Revert preview changes to displayed diagnostic severity in LSP (<a href="https://redirect.github.com/astral-sh/ruff/pull/24789">#24789</a>)</li> <li>[<code>airflow</code>] Implement <code>task-branch-as-short-circuit</code> (<code>AIR004</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23579">#23579</a>)</li> <li>[<code>flake8-bugbear</code>] Fix <code>break</code>/<code>continue</code> handling in <code>loop-iterator-mutation</code> (<code>B909</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/24440">#24440</a>)</li> <li>[<code>pylint</code>] Fix <code>PLC2701</code> for type parameter scopes (<a href="https://redirect.github.com/astral-sh/ruff/pull/24576">#24576</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>pandas-vet</code>] Suggest <code>.array</code> as well in <code>PD011</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/24805">#24805</a>)</li> </ul> <h3>CLI</h3> <ul> <li>Respect default Unix permissions for cache files (<a href="https://redirect.github.com/astral-sh/ruff/pull/24794">#24794</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>[<code>pylint</code>] Fix <code>PLR0124</code> description not to claim self-comparison always returns the same value (<a href="https://redirect.github.com/astral-sh/ruff/pull/24749">#24749</a>)</li> <li>[<code>pyupgrade</code>] Expand docs on reusable <code>TypeVar</code>s and scoping (<code>UP046</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/24153">#24153</a>)</li> <li>Improve rules table accessibility (<a href="https://redirect.github.com/astral-sh/ruff/pull/24711">#24711</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/dylwil3"><code>@dylwil3</code></a></li> <li><a href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li> <li><a href="https://github.com/woodruffw"><code>@woodruffw</code></a></li> <li><a href="https://github.com/avasis-ai"><code>@avasis-ai</code></a></li> <li><a href="https://github.com/Dev-iL"><code>@Dev-iL</code></a></li> <li><a href="https://github.com/denyszhak"><code>@denyszhak</code></a></li> <li><a href="https://github.com/ShipItAndPray"><code>@ShipItAndPray</code></a></li> <li><a href="https://github.com/anishgirianish"><code>@anishgirianish</code></a></li> <li><a href="https://github.com/augustelalande"><code>@augustelalande</code></a></li> <li><a href="https://github.com/amyreese"><code>@amyreese</code></a></li> <li><a href="https://github.com/majiayu000"><code>@majiayu000</code></a></li> </ul> <h2>0.15.11</h2> <p>Released on 2026-04-16.</p> <h3>Preview features</h3> <ul> <li>[<code>ruff</code>] Ignore <code>RUF029</code> when function is decorated with <code>asynccontextmanager</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/24642">#24642</a>)</li> <li>[<code>airflow</code>] Implement <code>airflow-xcom-pull-in-template-string</code> (<code>AIR201</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23583">#23583</a>)</li> <li>[<code>flake8-bandit</code>] Fix <code>S103</code> false positives and negatives in mask analysis (<a href="https://redirect.github.com/astral-sh/ruff/pull/24424">#24424</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/66f93cf7ed4d36325f35a452e4afa28268fbcd28"><code>66f93cf</code></a> Bump 0.15.12 (<a href="https://redirect.github.com/astral-sh/ruff/issues/24815">#24815</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/476a4d02e8e3b6c157ac39979d8b698a1b6baa91"><code>476a4d0</code></a> [ty] Complete support for more detailed diagnostics on possibly unbound error...</li> <li><a href="https://github.com/astral-sh/ruff/commit/ed669eab30095d6c51fe6cdef6050fb01276bcb3"><code>ed669ea</code></a> Implement <code>#ruff:file-ignore</code> file-level suppressions (<a href="https://redirect.github.com/astral-sh/ruff/issues/23599">#23599</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/e73d952e43feb51356ee740c5a973fce81396ff6"><code>e73d952</code></a> [ty] Include inferred type in <code>invalid-key</code> concise diagnostic for union/inte...</li> <li><a href="https://github.com/astral-sh/ruff/commit/80feb29b31cd98c093316df2e0407b0c70c01b55"><code>80feb29</code></a> [ty] report only dead annotation-only locals as unused (<a href="https://redirect.github.com/astral-sh/ruff/issues/24811">#24811</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/0fbf2bc27336a3d17d39af52cf89b78dcda8c7c8"><code>0fbf2bc</code></a> Drop deprecated license classifier (<a href="https://redirect.github.com/astral-sh/ruff/issues/24808">#24808</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/43b174cc7f2fcb0080bb1d4843cd4bf6b72bbe27"><code>43b174c</code></a> [ty] Infer lambda parameter types with <code>Callable</code> type context (<a href="https://redirect.github.com/astral-sh/ruff/issues/24317">#24317</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/4f449ae4a2377569330a5ab94799d389357b5a3f"><code>4f449ae</code></a> [ty] Add error context for intersection types (<a href="https://redirect.github.com/astral-sh/ruff/issues/24772">#24772</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/5b4e753acb46e96ad408e4904c15308e33efe307"><code>5b4e753</code></a> [ty] Add support for goto in literal enum member inlay hint (<a href="https://redirect.github.com/astral-sh/ruff/issues/24792">#24792</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/e7cc76275a758ce1c636ea1c2d091fd576aac794"><code>e7cc762</code></a> [ty] Add error context for TypedDict assignments (<a href="https://redirect.github.com/astral-sh/ruff/issues/24790">#24790</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.15.6...0.15.12">compare view</a></li> </ul> </details> <br /> Updates `mypy` from 1.19.1 to 1.20.2 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/python/mypy/blob/master/CHANGELOG.md">mypy's changelog</a>.</em></p> <blockquote> <h3>Mypy 1.20.2</h3> <ul> <li>Use WAL with SQLite cache and fix close (Shantanu, PR <a href="https://redirect.github.com/python/mypy/pull/21154">21154</a>)</li> <li>Adjust SQLite journal mode (Ivan Levkivskyi, PR <a href="https://redirect.github.com/python/mypy/pull/21217">21217</a>)</li> <li>Correctly aggregate narrowing information on parent expressions (Shantanu, PR <a href="https://redirect.github.com/python/mypy/pull/21206">21206</a>)</li> <li>Fix regression related to generic callables (Shantanu, PR <a href="https://redirect.github.com/python/mypy/pull/21208">21208</a>)</li> <li>Fix regression by avoiding widening types in some contexts (Shantanu, PR <a href="https://redirect.github.com/python/mypy/pull/21242">21242</a>)</li> <li>Fix slicing in non-strict optional mode (Shantanu, PR <a href="https://redirect.github.com/python/mypy/pull/21282">21282</a>)</li> <li>mypyc: Fix match statement semantics for "or" pattern (Shantanu, PR <a href="https://redirect.github.com/python/mypy/pull/21156">21156</a>)</li> <li>mypyc: Fix issue with module dunder attributes (Piotr Sawicki, PR <a href="https://redirect.github.com/python/mypy/pull/21275">21275</a>)</li> <li>Initial support for Python 3.15.0a8 (Marc Mueller, PR <a href="https://redirect.github.com/python/mypy/pull/21255">21255</a>)</li> </ul> <h3>Acknowledgements</h3> <p>Thanks to all mypy contributors who contributed to this release:</p> <ul> <li>A5rocks</li> <li>Aaron Wieczorek</li> <li>Adam Turner</li> <li>Ali Hamdan</li> <li>asce</li> <li>BobTheBuidler</li> <li>Brent Westbrook</li> <li>Brian Schubert</li> <li>bzoracler</li> <li>Chris Burroughs</li> <li>Christoph Tyralla</li> <li>Colin Watson</li> <li>Donghoon Nam</li> <li>E. M. Bray</li> <li>Emma Smith</li> <li>Ethan Sarp</li> <li>George Ogden</li> <li>getzze</li> <li>grayjk</li> <li>Gregor Riepl</li> <li>Ivan Levkivskyi</li> <li>James Hilliard</li> <li>James Le Cuirot</li> <li>Jeremy Nimmer</li> <li>Joren Hammudoglu</li> <li>Kai (Kazuya Ito)</li> <li>kaushal trivedi</li> <li>Kevin Kannammalil</li> <li>Lukas Geiger</li> <li>Łukasz Langa</li> <li>Marc Mueller</li> <li>Michael R. Crusoe</li> <li>michaelm-openai</li> <li>Neil Schemenauer</li> <li>Piotr Sawicki</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/python/mypy/commit/145a062651b5f9996b75ef32b7040bd2e885ed82"><code>145a062</code></a> Bump version to 1.20.2</li> <li><a href="https://github.com/python/mypy/commit/81cd49215c288eacb987de066f02daff2553b7c7"><code>81cd492</code></a> Fix slicing with nonstrict optional (<a href="https://redirect.github.com/python/mypy/issues/21282">#21282</a>)</li> <li><a href="https://github.com/python/mypy/commit/908d3441eecbaa2a6193165317177db834d7ca1a"><code>908d344</code></a> [mypyc] Set dunder attrs when adding module to sys.modules (<a href="https://redirect.github.com/python/mypy/issues/21275">#21275</a>)</li> <li><a href="https://github.com/python/mypy/commit/ba28610fac9d2b33be210ca8dcfe4bc47b7af424"><code>ba28610</code></a> Initial support for Python 3.15.0a8 (<a href="https://redirect.github.com/python/mypy/issues/21255">#21255</a>)</li> <li><a href="https://github.com/python/mypy/commit/7b0e09f48dbd3717ed008a273cd17e8e960c2037"><code>7b0e09f</code></a> Fix match statement semantics for "or" pattern (<a href="https://redirect.github.com/python/mypy/issues/21156">#21156</a>)</li> <li><a href="https://github.com/python/mypy/commit/92b74f226de62f7505f5ef5cb158e8ec9c58b8b7"><code>92b74f2</code></a> Avoid widening types in conditional_types (<a href="https://redirect.github.com/python/mypy/issues/21242">#21242</a>)</li> <li><a href="https://github.com/python/mypy/commit/0dcbfaa40b0e360a16baea9cf851955375d91b54"><code>0dcbfaa</code></a> Fix is_overlapping_types for generic callables (<a href="https://redirect.github.com/python/mypy/issues/21208">#21208</a>)</li> <li><a href="https://github.com/python/mypy/commit/210f518dede35292033ef0d387847406a0ccef8f"><code>210f518</code></a> Correctly aggregate narrowing information on parent expressions (<a href="https://redirect.github.com/python/mypy/issues/21206">#21206</a>)</li> <li><a href="https://github.com/python/mypy/commit/c34530e53a10e385d8b0f1af4baa88a596b5ceaa"><code>c34530e</code></a> Only set journal mode in coordinator (<a href="https://redirect.github.com/python/mypy/issues/21217">#21217</a>)</li> <li><a href="https://github.com/python/mypy/commit/79a3ec6d01b56a27c00e9b3320c2b1d4d73a77f9"><code>79a3ec6</code></a> Use WAL with SQLite cache, fix close (<a href="https://redirect.github.com/python/mypy/issues/21154">#21154</a>)</li> <li>Additional commits viewable in <a href="https://github.com/python/mypy/compare/v1.19.1...v1.20.2">compare view</a></li> </ul> </details> <br /> Updates `ty` from 0.0.23 to 0.0.32 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ty/releases">ty's releases</a>.</em></p> <blockquote> <h2>0.0.32</h2> <h2>Release Notes</h2> <p>Released on 2026-04-20.</p> <h3>Bug fixes</h3> <ul> <li>Fix panic when <code>__get__</code> uses <code>Concatenate</code> <code>self</code>-type and wraps a <code>__call__</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/24692">#24692</a>)</li> <li>Avoid panicking on overloaded <code>Callable</code> type context (<a href="https://redirect.github.com/astral-sh/ruff/pull/24661">#24661</a>)</li> <li>Expand class bases in per-base lint checks (<a href="https://redirect.github.com/astral-sh/ruff/pull/24695">#24695</a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/24699">#24699</a>)</li> <li>Fix stack overflow for binary operator inference involving recursive types (<a href="https://redirect.github.com/astral-sh/ruff/pull/24551">#24551</a>)</li> </ul> <h3>LSP server</h3> <ul> <li>Dim out unreachable code in IDEs (<a href="https://redirect.github.com/astral-sh/ruff/pull/24580">#24580</a>)</li> <li>Do not suggest argument completion when typing the value of a keyword argument (<a href="https://redirect.github.com/astral-sh/ruff/pull/24669">#24669</a>)</li> <li>Retrieve the docstring from the overload implementation if an <code>@overload</code>-decorated function has no docstring (<a href="https://redirect.github.com/astral-sh/ruff/pull/23920">#23920</a>)</li> </ul> <h3>Core type checking</h3> <ul> <li>Allow <code>if</code> statements in TypedDict bodies (<a href="https://redirect.github.com/astral-sh/ruff/pull/24702">#24702</a>)</li> <li>Disallow <code>@disjoint_base</code> on TypedDicts and Protocols (<a href="https://redirect.github.com/astral-sh/ruff/pull/24671">#24671</a>)</li> <li>Do not consider a subclass of a <code>@dataclass_transform</code>-decorated class to have dataclass-like semantics if it has <code>type</code> in its MRO (<a href="https://redirect.github.com/astral-sh/ruff/pull/24679">#24679</a>)</li> <li>Reject using properties with <code>Never</code> setters or deleters (<a href="https://redirect.github.com/astral-sh/ruff/pull/24510">#24510</a>)</li> <li>Sync vendored typeshed stubs (<a href="https://redirect.github.com/astral-sh/ruff/pull/24646">#24646</a>). <a href="https://github.com/python/typeshed/compare/f8f0794d0fe249c06dc9f31a004d85be6cca6ced...c03c2b926422c82ab680d27f3ad2491845000802">Typeshed diff</a></li> </ul> <h3>Diagnostics</h3> <ul> <li>Show error context for assignability diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/24309">#24309</a>)</li> <li>Use partially qualified names when reporting diagnostics regarding bad calls to methods (<a href="https://redirect.github.com/astral-sh/ruff/pull/24560">#24560</a>)</li> <li>Reduce source code context window to zero (<a href="https://redirect.github.com/astral-sh/ruff/pull/24689">#24689</a>)</li> <li>Merge same-file annotations if there is only a single line separating them (<a href="https://redirect.github.com/astral-sh/ruff/pull/24694">#24694</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Memoize binary operator return types (<a href="https://redirect.github.com/astral-sh/ruff/pull/24700">#24700</a>)</li> <li>Gate protocol compatibility on member count (<a href="https://redirect.github.com/astral-sh/ruff/pull/24684">#24684</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/JelleZijlstra"><code>@JelleZijlstra</code></a></li> <li><a href="https://github.com/kc0506"><code>@kc0506</code></a></li> <li><a href="https://github.com/denyszhak"><code>@denyszhak</code></a></li> <li><a href="https://github.com/carljm"><code>@carljm</code></a></li> <li><a href="https://github.com/dcreager"><code>@dcreager</code></a></li> <li><a href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li> <li><a href="https://github.com/dylwil3"><code>@dylwil3</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/sharkdp"><code>@sharkdp</code></a></li> <li><a href="https://github.com/ibraheemdev"><code>@ibraheemdev</code></a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ty/blob/main/CHANGELOG.md">ty's changelog</a>.</em></p> <blockquote> <h2>0.0.32</h2> <p>Released on 2026-04-20.</p> <h3>Bug fixes</h3> <ul> <li>Fix panic when <code>__get__</code> uses <code>Concatenate</code> <code>self</code>-type and wraps a <code>__call__</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/24692">#24692</a>)</li> <li>Avoid panicking on overloaded <code>Callable</code> type context (<a href="https://redirect.github.com/astral-sh/ruff/pull/24661">#24661</a>)</li> <li>Expand class bases in per-base lint checks (<a href="https://redirect.github.com/astral-sh/ruff/pull/24695">#24695</a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/24699">#24699</a>)</li> <li>Fix stack overflow for binary operator inference involving recursive types (<a href="https://redirect.github.com/astral-sh/ruff/pull/24551">#24551</a>)</li> </ul> <h3>LSP server</h3> <ul> <li>Dim out unreachable code in IDEs (<a href="https://redirect.github.com/astral-sh/ruff/pull/24580">#24580</a>)</li> <li>Do not suggest argument completion when typing the value of a keyword argument (<a href="https://redirect.github.com/astral-sh/ruff/pull/24669">#24669</a>)</li> <li>Retrieve the docstring from the overload implementation if an <code>@overload</code>-decorated function has no docstring (<a href="https://redirect.github.com/astral-sh/ruff/pull/23920">#23920</a>)</li> </ul> <h3>Core type checking</h3> <ul> <li>Allow <code>if</code> statements in TypedDict bodies (<a href="https://redirect.github.com/astral-sh/ruff/pull/24702">#24702</a>)</li> <li>Disallow <code>@disjoint_base</code> on TypedDicts and Protocols (<a href="https://redirect.github.com/astral-sh/ruff/pull/24671">#24671</a>)</li> <li>Do not consider a subclass of a <code>@dataclass_transform</code>-decorated class to have dataclass-like semantics if it has <code>type</code> in its MRO (<a href="https://redirect.github.com/astral-sh/ruff/pull/24679">#24679</a>)</li> <li>Reject using properties with <code>Never</code> setters or deleters (<a href="https://redirect.github.com/astral-sh/ruff/pull/24510">#24510</a>)</li> <li>Sync vendored typeshed stubs (<a href="https://redirect.github.com/astral-sh/ruff/pull/24646">#24646</a>). <a href="https://github.com/python/typeshed/compare/f8f0794d0fe249c06dc9f31a004d85be6cca6ced...c03c2b926422c82ab680d27f3ad2491845000802">Typeshed diff</a></li> </ul> <h3>Diagnostics</h3> <ul> <li>Show error context for assignability diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/24309">#24309</a>)</li> <li>Use partially qualified names when reporting diagnostics regarding bad calls to methods (<a href="https://redirect.github.com/astral-sh/ruff/pull/24560">#24560</a>)</li> <li>Reduce source code context window to zero (<a href="https://redirect.github.com/astral-sh/ruff/pull/24689">#24689</a>)</li> <li>Merge same-file annotations if there is only a single line separating them (<a href="https://redirect.github.com/astral-sh/ruff/pull/24694">#24694</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Memoize binary operator return types (<a href="https://redirect.github.com/astral-sh/ruff/pull/24700">#24700</a>)</li> <li>Gate protocol compatibility on member count (<a href="https://redirect.github.com/astral-sh/ruff/pull/24684">#24684</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/JelleZijlstra"><code>@JelleZijlstra</code></a></li> <li><a href="https://github.com/kc0506"><code>@kc0506</code></a></li> <li><a href="https://github.com/denyszhak"><code>@denyszhak</code></a></li> <li><a href="https://github.com/carljm"><code>@carljm</code></a></li> <li><a href="https://github.com/dcreager"><code>@dcreager</code></a></li> <li><a href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li> <li><a href="https://github.com/dylwil3"><code>@dylwil3</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/sharkdp"><code>@sharkdp</code></a></li> <li><a href="https://github.com/ibraheemdev"><code>@ibraheemdev</code></a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ty/commit/4d1e1fc57ca8bfdcbcee513ba92135d2932eb279"><code>4d1e1fc</code></a> Bump version to 0.0.32 (<a href="https://redirect.github.com/astral-sh/ty/issues/3302">#3302</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/a537bdefc97080d4400113eb6635ae133c5b3bcf"><code>a537bde</code></a> Update PyO3/maturin-action action to v1.51.0 (<a href="https://redirect.github.com/astral-sh/ty/issues/3300">#3300</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/81e41250e0b53893f1f86eae3bc59867f15720ac"><code>81e4125</code></a> Update actions/upload-artifact action to v7.0.1 (<a href="https://redirect.github.com/astral-sh/ty/issues/3296">#3296</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/a9dd1cbb536838e21b36b2c459b5bf6098c295cf"><code>a9dd1cb</code></a> Update docker/build-push-action action to v7.1.0 (<a href="https://redirect.github.com/astral-sh/ty/issues/3299">#3299</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/ef0a7dd496dbf60000d79ac92ff171191cae424b"><code>ef0a7dd</code></a> Update actions/github-script action to v9 (<a href="https://redirect.github.com/astral-sh/ty/issues/3301">#3301</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/74f058324890813da652964cdf2d29c1207fdeab"><code>74f0583</code></a> Update astral-sh/setup-uv action to v8.1.0 (<a href="https://redirect.github.com/astral-sh/ty/issues/3298">#3298</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/82799cc0d01beed42e06c110bdaabb9ab243fce2"><code>82799cc</code></a> Update prek dependencies (<a href="https://redirect.github.com/astral-sh/ty/issues/3297">#3297</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/daaa40454966558ffd2a0ea3dcf86bc1749c8715"><code>daaa404</code></a> Bump version to 0.0.31 (<a href="https://redirect.github.com/astral-sh/ty/issues/3280">#3280</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/12e86b58b5034a29266268195afc16feeab6e3ea"><code>12e86b5</code></a> Bump version to 0.0.30 (<a href="https://redirect.github.com/astral-sh/ty/issues/3270">#3270</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/67077ad5fbde5adc1df0e3169525040ad1139dab"><code>67077ad</code></a> Reorder sections in FAQ (<a href="https://redirect.github.com/astral-sh/ty/issues/3267">#3267</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ty/compare/0.0.23...0.0.32">compare view</a></li> </ul> </details> <br /> Updates `pydantic` from 2.12.5 to 2.13.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pydantic/pydantic/releases">pydantic's releases</a>.</em></p> <blockquote> <h2>v2.13.3 2026-04-20</h2> <h2>v2.13.3 (2026-04-20)</h2> <h3>What's Changed</h3> <h4>Fixes</h4> <ul> <li>Handle <code>AttributeError</code> subclasses with <code>from_attributes</code> by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13096">#13096</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3">https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3</a></p> <h2>v2.13.2 2026-04-17</h2> <h2>v2.13.2 (2026-04-17)</h2> <h3>What's Changed</h3> <h4>Fixes</h4> <ul> <li>Fix <code>ValidationInfo.field_name</code> missing with <code>model_validate_json()</code> by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13084">#13084</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2">https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2</a></p> <h2>v2.13.1 2026-04-15</h2> <h2>v2.13.1 (2026-04-15)</h2> <h3>What's Changed</h3> <h4>Fixes</h4> <ul> <li>Fix <code>ValidationInfo.data</code> missing with <code>model_validate_json()</code> by <a href="https://github.com/davidhewitt"><code>@davidhewitt</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13079">#13079</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1">https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1</a></p> <h2>v2.13.0 2026-04-13</h2> <h2>v2.13.0 (2026-04-13)</h2> <p>The highlights of the v2.13 release are available in the <a href="https://pydantic.dev/articles/pydantic-v2-13-release">blog post</a>. Several minor changes (considered non-breaking changes according to our <a href="https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2">versioning policy</a>) are also included in this release. Make sure to look into them before upgrading.</p> <p>This release contains the updated <code>pydantic.v1</code> namespace, matching version 1.10.26 which includes support for Python 3.14.</p> <h3>What's Changed</h3> <p>See the beta releases for all changes sinces 2.12.</p> <h4>Packaging</h4> <ul> <li>Add zizmor for GitHub Actions workflow linting by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13039">#13039</a></li> <li>Update jiter to v0.14.0 to fix a segmentation fault on musl Linux by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13064">#13064</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pydantic/pydantic/blob/main/HISTORY.md">pydantic's changelog</a>.</em></p> <blockquote> <h2>v2.13.3 (2026-04-20)</h2> <p><a href="https://github.com/pydantic/pydantic/releases/tag/v2.13.3">GitHub release</a></p> <h3>What's Changed</h3> <h4>Fixes</h4> <ul> <li>Handle <code>AttributeError</code> subclasses with <code>from_attributes</code> by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13096">#13096</a></li> </ul> <h2>v2.13.2 (2026-04-17)</h2> <p><a href="https://github.com/pydantic/pydantic/releases/tag/v2.13.2">GitHub release</a></p> <h3>What's Changed</h3> <h4>Fixes</h4> <ul> <li>Fix <code>ValidationInfo.field_name</code> missing with <code>model_validate_json()</code> by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13084">#13084</a></li> </ul> <h2>v2.13.1 (2026-04-15)</h2> <p><a href="https://github.com/pydantic/pydantic/releases/tag/v2.13.1">GitHub release</a></p> <h3>What's Changed</h3> <h4>Fixes</h4> <ul> <li>Fix <code>ValidationInfo.data</code> missing with <code>model_validate_json()</code> by <a href="https://github.com/davidhewitt"><code>@davidhewitt</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13079">#13079</a></li> </ul> <h2>v2.13.0 (2026-04-13)</h2> <p><a href="https://github.com/pydantic/pydantic/releases/tag/v2.13.0">GitHub release</a></p> <p>The highlights of the v2.13 release are available in the <a href="https://pydantic.dev/articles/pydantic-v2-13-release">blog post</a>. Several minor changes (considered non-breaking changes according to our <a href="https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2">versioning policy</a>) are also included in this release. Make sure to look into them before upgrading.</p> <p>This release contains the updated <code>pydantic.v1</code> namespace, matching version 1.10.26 which includes support for Python 3.14.</p> <h3>What's Changed</h3> <p>See the beta releases for all changes sinces 2.12.</p> <h4>New Features</h4> <ul> <li>Allow default factories of private attributes to take validated model data by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13013">#13013</a></li> </ul> <h4>Changes</h4> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3"><code>9e9a111</code></a> Fix backported test</li> <li><a href="https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124"><code>1ec8c6a</code></a> Prepare release v2.13.3</li> <li><a href="https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6"><code>fb4f204</code></a> Handle <code>AttributeError</code> subclasses with <code>from_attributes</code></li> <li><a href="https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055"><code>ca3ddd1</code></a> Prepare release v2.13.2</li> <li><a href="https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab"><code>000e823</code></a> Fix <code>ValidationInfo.field_name</code> missing with <code>model_validate_json()</code></li> <li><a href="https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb"><code>d45d8be</code></a> Prepare release 2.13.1</li> <li><a href="https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da"><code>54aca60</code></a> Fix <code>ValidationInfo.data</code> missing with <code>model_validate_json()</code></li> <li><a href="https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357"><code>46bf4fa</code></a> Fix Pydantic release workflow (<a href="https://redirect.github.com/pydantic/pydantic/issues/13067">#13067</a>)</li> <li><a href="https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43"><code>1b359ed</code></a> Prepare release v2.13.0 (<a href="https://redirect.github.com/pydantic/pydantic/issues/13065">#13065</a>)</li> <li><a href="https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18"><code>b1bf194</code></a> Fix model equality when using runtime <code>extra</code> configuration (<a href="https://redirect.github.com/pydantic/pydantic/issues/13062">#13062</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: jkennedyvz <65985482+jkennedyvz@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
cb328b57f1 |
release(prebuilt): 1.0.12, langgraph 1.1.10 (#7623)
## Summary - Bumps `langgraph-prebuilt` `1.0.11` → `1.0.12` - Bumps `langgraph` `1.1.9` → `1.1.10` (requires `langgraph-prebuilt>=1.0.12`) - Updates all downstream `uv.lock` files ## Changes since last release **prebuilt (`1.0.11` → `1.0.12`)** - fix(prebuilt): hydrate ToolNode state from channels via pregel helpers (#7594) **langgraph (`1.1.8` → `1.1.10`)** - fix: don't propagate ReplayState to subgraphs on plain resume (#7561) |