mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-10-17 21:55:30 +02:00
a43147ee579f563e2d65bda462d4e800505ebe93
2139
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
a43147ee57 |
chore(deps): bump cryptography from 48.0.1 to 50.0.0 in /libs/langgraph (#8528)
Bumps [cryptography](https://github.com/pyca/cryptography) from 48.0.1 to 50.0.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's changelog</a>.</em></p> <blockquote> <p>50.0.0 - 2026-07-31</p> <pre><code> * **SECURITY ISSUE**: :func:`~cryptography.hazmat.primitives.serialization.pkcs7.pkcs7_decrypt_der` and its PEM and S/MIME variants no longer expose distinguishable errors or timing when unwrapping a ``RecipientInfo``'s ``encryptedKey``, which could act as a Bleichenbacher oracle for callers that decrypt untrusted messages. A random key is now substituted on failure, as described in :rfc:`3218`. Credit to **@X1AOxiang** for reporting the issue. **CVE-2026-69247** * Deprecated Diffie-Hellman key exchange over finite fields (FFDH). Everything FFDH is deprecated, including the types in ``cryptography.hazmat.primitives.asymmetric.dh`` and loading FFDH keys or parameters with the key loading APIs. Users should migrate to a more modern key exchange algorithm. * Added ``xof()`` class methods to :class:`~cryptography.hazmat.primitives.hashes.SHAKE128` and :class:`~cryptography.hazmat.primitives.hashes.SHAKE256` for constructing algorithm instances configured for use with :class:`~cryptography.hazmat.primitives.hashes.XOFHash`. * The :mod:`X.509 verification <cryptography.x509.verification>` APIs are now considered stable and are subject to our API stability policy. * Added the :doc:`/cobblestone` recipe, an implementation of the Cobblestone-128 and Cobblestone-256 instantiations of the `C2SP chunked-encryption specification <https://c2sp.org/chunked-encryption>`_ for streaming authenticated encryption of large messages. * Parsing a Signed Certificate Timestamp list now rejects encodings that carry trailing bytes after the list or after an individual SCT, instead of silently ignoring them. * Added support for using :class:`~cryptography.x509.Name` as a field type in the :doc:`/hazmat/asn1/index` module. * Loading a public key or an EC private key now rejects DER where the ``subjectPublicKey`` (or EC ``publicKey``) ``BIT STRING`` declares a non-zero number of unused bits, instead of silently ignoring it. * Parsing a CRL entry's ``InvalidityDate`` extension now rejects a ``GeneralizedTime`` that carries fractional seconds or another non-DER form, matching the strict encoding already required for every other X.509 time field. * :func:`~cryptography.x509.ocsp.load_der_ocsp_request` and :func:`~cryptography.x509.ocsp.load_der_ocsp_response` now reject a request or response whose ``version`` field is not ``v1``, the only version defined by RFC 6960, matching the version validation already performed when loading certificates, CSRs and CRLs. * :class:`~cryptography.hazmat.primitives.hashes.XOFHash` is now supported when building against AWS-LC. * HMAC (and therefore PBKDF2-HMAC) with SHA-3 hashes is now supported when building against AWS-LC. * Diffie-Hellman (:doc:`/hazmat/primitives/asymmetric/dh`) is now supported when building against AWS-LC. </tr></table> </code></pre> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pyca/cryptography/commit/dcb7050b807b00392fa9fe2eac7cb362fcf355cc"><code>dcb7050</code></a> Prepare for 50.0.0 release (<a href="https://redirect.github.com/pyca/cryptography/issues/15372">#15372</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/53fccd93413a8d7f07d6d8999681f27b75cffa3f"><code>53fccd9</code></a> Don't leak how PKCS#7 encryptedKey decryption failed (<a href="https://redirect.github.com/pyca/cryptography/issues/15369">#15369</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/d472f978470fbefa521b86d98b2ecccbbb4d1dd8"><code>d472f97</code></a> Add <code>from __future__ import annotations</code> to all src/ Python files (<a href="https://redirect.github.com/pyca/cryptography/issues/15371">#15371</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/908773d53829fb1466c6db364b31321c3cd8eb9a"><code>908773d</code></a> Bump downstream dependencies in CI (<a href="https://redirect.github.com/pyca/cryptography/issues/15368">#15368</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/2cc07cc948948211899bcb0cddd1fddf86e95812"><code>2cc07cc</code></a> Bump BoringSSL, OpenSSL, AWS-LC in CI (<a href="https://redirect.github.com/pyca/cryptography/issues/15367">#15367</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/c94ede9f040fa44942f7139772603419000acf66"><code>c94ede9</code></a> chore(deps): bump ruff from 0.16.0 to 0.16.1 (<a href="https://redirect.github.com/pyca/cryptography/issues/15366">#15366</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/67a8308dc9ea4cce6056e0f1438f903c208c3f35"><code>67a8308</code></a> chore(deps): bump virtualenv from 21.7.0 to 21.7.1 (<a href="https://redirect.github.com/pyca/cryptography/issues/15365">#15365</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/95018ffcdbbc510fd92fc872e3a3e80aa6e58596"><code>95018ff</code></a> Release the GIL in one-shot AEAD encrypt/decrypt (<a href="https://redirect.github.com/pyca/cryptography/issues/15361">#15361</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/6954733eaf55a0074abf88f06f7242dfca3a5d02"><code>6954733</code></a> Release the GIL during DH and DSA parameter generation (<a href="https://redirect.github.com/pyca/cryptography/issues/15364">#15364</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/6893b94c33e948f6240082461424cfb5da2dacc6"><code>6893b94</code></a> Import _serialization instead of serialization in x509/extensions (<a href="https://redirect.github.com/pyca/cryptography/issues/15363">#15363</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pyca/cryptography/compare/48.0.1...50.0.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> |
||
|
|
b2926a0ff9 | release(checkpoint-sqlite): 3.1.1 (#8481) | ||
|
|
fcdf520938 | release(checkpoint-postgres): 3.1.1 (#8480) | ||
|
|
4134145734 |
release(langgraph): 1.2.10 (#8462)
## Summary Releases `langgraph` 1.2.10. Bumps the package version `1.2.9` -> `1.2.10` and propagates it into the `langgraph`, `prebuilt`, and `sdk-py` lockfiles. No dependency floor or source changes. Picks up the changes landed since 1.2.9: #8389 (typed v3 `stream_events` return and native projections), #8362 (`trace_policy` on `add_node`), #8402 and #8403 (`TracePolicy` tag drop, then revert). ## Changes - Update `libs/langgraph/pyproject.toml` to version `1.2.10`. - Update the editable `langgraph` package entries in `libs/langgraph/uv.lock`, `libs/prebuilt/uv.lock`, and `libs/sdk-py/uv.lock`. |
||
|
|
30c4d58db8 |
chore(deps): bump jupyterlab from 4.5.9 to 4.5.10 in /libs/langgraph (#8440)
Bumps [jupyterlab](https://github.com/jupyterlab/jupyterlab) from 4.5.9 to 4.5.10. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/jupyterlab/jupyterlab/releases">jupyterlab's releases</a>.</em></p> <blockquote> <h2>v4.5.10</h2> <h2>4.5.10</h2> <p>(<a href="https://github.com/jupyterlab/jupyterlab/compare/v4.5.9...be9303f5bcd5308eaeae953c5a3c903046682c2c">Full Changelog</a>)</p> <h3>Security patches</h3> <ul> <li>GHSA-gx64-gj6p-pc4c</li> <li>GHSA-89vp-jrxv-24w8</li> <li>GHSA-h5v5-8746-g7mm</li> <li>GHSA-pppj-hq3g-57pj</li> <li>GHSA-whvh-wf3x-g77j</li> </ul> <h3>Bugs fixed</h3> <ul> <li>Backport of security patches to <code>4.5.x</code> branch <a href="https://redirect.github.com/jupyterlab/jupyterlab/pull/19186">#19186</a> (<a href="https://github.com/krassowski"><code>@krassowski</code></a>, <a href="https://github.com/MUFFANUJ"><code>@MUFFANUJ</code></a>)</li> </ul> <h3>Maintenance and upkeep improvements</h3> <ul> <li>Reconfigure 4.5.x branch (4.6.x is new stable) <a href="https://redirect.github.com/jupyterlab/jupyterlab/pull/19060">#19060</a> (<a href="https://github.com/krassowski"><code>@krassowski</code></a>)</li> <li>Split external link checks and only run if diff includes a URL <a href="https://redirect.github.com/jupyterlab/jupyterlab/pull/19029">#19029</a> (<a href="https://github.com/MUFFANUJ"><code>@MUFFANUJ</code></a>)</li> </ul> <h3>Contributors to this release</h3> <p>The following people contributed discussions, new ideas, code and documentation contributions, and review. See <a href="https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports">our definition of contributors</a>.</p> <p>(<a href="https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2026-06-17&to=2026-07-21&type=c">GitHub contributors page for this release</a>)</p> <p><a href="https://github.com/krassowski"><code>@krassowski</code></a> (<a href="https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2026-06-17..2026-07-21&type=Issues">activity</a>) | <a href="https://github.com/MUFFANUJ"><code>@MUFFANUJ</code></a> (<a href="https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AMUFFANUJ+updated%3A2026-06-17..2026-07-21&type=Issues">activity</a>)</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/jupyterlab/jupyterlab/commit/af5f5b3c779f6d7170c1124f5818807fa18f3f63"><code>af5f5b3</code></a> [ci skip] Publish 4.5.10</li> <li><a href="https://github.com/jupyterlab/jupyterlab/commit/be9303f5bcd5308eaeae953c5a3c903046682c2c"><code>be9303f</code></a> Backport of security patches to <code>4.5.x</code> branch (<a href="https://redirect.github.com/jupyterlab/jupyterlab/issues/19186">#19186</a>)</li> <li><a href="https://github.com/jupyterlab/jupyterlab/commit/a555fe1dcb4a4d6b135236ae89319a9f303780d9"><code>a555fe1</code></a> Reconfigure 4.5.x branch (4.6.x is new stable) (<a href="https://redirect.github.com/jupyterlab/jupyterlab/issues/19060">#19060</a>)</li> <li><a href="https://github.com/jupyterlab/jupyterlab/commit/8d8cb6d4319d4e16e9187e16b8e7fbb617132938"><code>8d8cb6d</code></a> Backport PR <a href="https://redirect.github.com/jupyterlab/jupyterlab/issues/19029">#19029</a> on branch 4.5.x (Split external link checks and only run i...</li> <li>See full diff in <a href="https://github.com/jupyterlab/jupyterlab/compare/@jupyterlab/lsp@4.5.9...@jupyterlab/lsp@4.5.10">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> |
||
|
|
9f1e40bfee |
chore(deps): bump setuptools from 80.9.0 to 83.0.0 in /libs/langgraph (#8435)
Bumps [setuptools](https://github.com/pypa/setuptools) from 80.9.0 to 83.0.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's changelog</a>.</em></p> <blockquote> <h1>v83.0.0</h1> <h2>Features</h2> <ul> <li>Require Python 3.10 or later.</li> </ul> <h2>Bugfixes</h2> <ul> <li><code>MANIFEST.in</code> matching (via <code>FileList</code>) is now insensitive to Unicode normalization form. A pattern authored in one form (e.g. NFC, as typically saved by editors) now matches a file whose name is stored on disk in another (e.g. NFD, as produced by macOS APFS/HFS+). Previously an <code>exclude</code>, <code>global-exclude</code>, <code>recursive-exclude</code>, or <code>prune</code> rule could silently fail to drop a non-ASCII-named file from the source distribution, publishing it despite the exclusion -- see GHSA-h35f-9h28-mq5c.</li> </ul> <h2>Deprecations and Removals</h2> <ul> <li><code>pypa/distutils#334</code></li> </ul> <h1>v82.0.1</h1> <h2>Bugfixes</h2> <ul> <li>Fix the loading of <code>launcher manifest.xml</code> file. (<a href="https://redirect.github.com/pypa/setuptools/issues/5047">#5047</a>)</li> <li>Replaced deprecated <code>json.__version__</code> with fixture in tests. (<a href="https://redirect.github.com/pypa/setuptools/issues/5186">#5186</a>)</li> </ul> <h2>Improved Documentation</h2> <ul> <li>Add advice about how to improve predictability when installing sdists. (<a href="https://redirect.github.com/pypa/setuptools/issues/5168">#5168</a>)</li> </ul> <h2>Misc</h2> <ul> <li><a href="https://redirect.github.com/pypa/setuptools/issues/4941">#4941</a>, <a href="https://redirect.github.com/pypa/setuptools/issues/5157">#5157</a>, <a href="https://redirect.github.com/pypa/setuptools/issues/5169">#5169</a>, <a href="https://redirect.github.com/pypa/setuptools/issues/5175">#5175</a></li> </ul> <p>v82.0.0</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/setuptools/commit/6519f728c6f23c992df81a5691ef7655184a20eb"><code>6519f72</code></a> Bump version: 82.0.1 → 83.0.0</li> <li><a href="https://github.com/pypa/setuptools/commit/d1151b125b29a6ee1c7db860f7ee6c365d525b5f"><code>d1151b1</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/5250">#5250</a> from pypa/feature/distutils-d7633fbed</li> <li><a href="https://github.com/pypa/setuptools/commit/a2df31e6a741b0fe775969618fe6a3a3d032e900"><code>a2df31e</code></a> Capture removal of dry_run parameter in changelog.</li> <li><a href="https://github.com/pypa/setuptools/commit/00144dc3fb6d023fd81cdc26c380a012b084df9b"><code>00144dc</code></a> Moved newsfragment to the release where it occurred.</li> <li><a href="https://github.com/pypa/setuptools/commit/a4a5a2b160357be77626aa077ddd1d8ee53be50f"><code>a4a5a2b</code></a> Add news fragment.</li> <li><a href="https://github.com/pypa/setuptools/commit/77470c23c35031c9e37d7512694ac5ca52bfcaac"><code>77470c2</code></a> Merge <a href="https://github.com/pypa/distutils">https://github.com/pypa/distutils</a> into feature/distutils-d7633fbed</li> <li><a href="https://github.com/pypa/setuptools/commit/3c43897420f25a1be1afe6eaa905d056009cc736"><code>3c43897</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/5247">#5247</a> from pypa/copilot/fix-pypy-version-issue</li> <li><a href="https://github.com/pypa/setuptools/commit/bb6ea66b4bd01cb35d7c68a1bc61b96d59190269"><code>bb6ea66</code></a> Bump PyPy from 3.10 to 3.11 in CI workflow</li> <li><a href="https://github.com/pypa/setuptools/commit/a2bc3aca2f55eb9b93ea633e58ba68170ce14451"><code>a2bc3ac</code></a> Fix broken intersphinx reference to build's installation docs</li> <li><a href="https://github.com/pypa/setuptools/commit/2d6a739c64cfedc65e1f635af7b52340aac8d99b"><code>2d6a739</code></a> Use stacked parametrize decorators instead of itertools.product</li> <li>Additional commits viewable in <a href="https://github.com/pypa/setuptools/compare/v80.9.0...v83.0.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> |
||
|
|
1e1ca88dad |
feat(langgraph): type v3 stream_events return and native projections (#8389)
The `version="v3"` overloads of `stream_events`/`astream_events` returned `Any`, and `GraphRunStream`/`AsyncGraphRunStream` attached native projections via a runtime `setattr` loop invisible to type checkers. - Return `GraphRunStream` / `Awaitable[AsyncGraphRunStream]` from the v3 overloads. - Declare the always-registered native projections (`values`, `messages`, `lifecycle`, `subgraphs`) as typed class attributes on both run streams. - Add `assert_type` checks in `test_stream_events_v3.py`. Opt-in native projections (`updates`, `custom`, `checkpoints`, `debug`, `tasks`) are only present when their transformer is registered, so they remain reached via `extensions[...]` rather than annotated as always-present. |
||
|
|
31f90df3e6 | revert(langgraph): delete TracePolicy (#8403) | ||
|
|
f02c0f0ce5 | feat(langgraph): drop tags from TracePolicy (#8402) | ||
|
|
8b39db3875 |
feat(langgraph): expose trace_policy on add_node (#8362)
|
||
|
|
80633b2c53 |
chore(deps): bump mistune from 3.2.1 to 3.3.0 in /libs/langgraph (#8317)
Bumps [mistune](https://github.com/lepture/mistune) from 3.2.1 to 3.3.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lepture/mistune/releases">mistune's releases</a>.</em></p> <blockquote> <h2>v3.3.0</h2> <h3> 🐞 Bug Fixes</h3> <ul> <li>Resolve O(n^2) DoS in parse_link_text (CWE-400) - by <strong>bhanugoudm041</strong> <a href="https://github.com/lepture/mistune/commit/b6b499d"><!-- raw HTML omitted -->(b6b49)<!-- raw HTML omitted --></a></li> <li>Resolve O(n^2) DoS in parse_link_text (CWE-400)-Type handling/testing done - by <strong>bhanugoudm041</strong> <a href="https://github.com/lepture/mistune/commit/b3af85d"><!-- raw HTML omitted -->(b3af8)<!-- raw HTML omitted --></a></li> <li><strong>block</strong>: Avoid quadratic ref link scans - by <a href="https://github.com/lepture"><code>@lepture</code></a> <a href="https://github.com/lepture/mistune/commit/2b04d7b"><!-- raw HTML omitted -->(2b04d)<!-- raw HTML omitted --></a></li> <li><strong>cli</strong>: Add entrypoint and utf-8 output - by <a href="https://github.com/lepture"><code>@lepture</code></a> <a href="https://github.com/lepture/mistune/commit/2f2449d"><!-- raw HTML omitted -->(2f244)<!-- raw HTML omitted --></a></li> <li><strong>directives</strong>: Constrain include targets - by <a href="https://github.com/lepture"><code>@lepture</code></a> <a href="https://github.com/lepture/mistune/commit/1bef343"><!-- raw HTML omitted -->(1bef3)<!-- raw HTML omitted --></a></li> <li><strong>formatting</strong>: Avoid quadratic marker scans - by <a href="https://github.com/lepture"><code>@lepture</code></a> <a href="https://github.com/lepture/mistune/commit/96d0f57"><!-- raw HTML omitted -->(96d0f)<!-- raw HTML omitted --></a></li> <li><strong>image</strong>: Validate figure width option - by <a href="https://github.com/lepture"><code>@lepture</code></a> <a href="https://github.com/lepture/mistune/commit/e3e51de"><!-- raw HTML omitted -->(e3e51)<!-- raw HTML omitted --></a></li> <li><strong>inline</strong>: Avoid bracket parsing DoS - by <a href="https://github.com/lepture"><code>@lepture</code></a> <a href="https://github.com/lepture/mistune/commit/25f2503"><!-- raw HTML omitted -->(25f25)<!-- raw HTML omitted --></a></li> <li><strong>math</strong>: Reject currency patterns and cross-line matches in inline math - by <a href="https://github.com/geopanther"><code>@geopanther</code></a> <a href="https://github.com/lepture/mistune/commit/566e173"><!-- raw HTML omitted -->(566e1)<!-- raw HTML omitted --></a></li> <li><strong>math</strong>: Support display and backtick math - by <a href="https://github.com/lepture"><code>@lepture</code></a> <a href="https://github.com/lepture/mistune/commit/1141eec"><!-- raw HTML omitted -->(1141e)<!-- raw HTML omitted --></a></li> <li><strong>renderer</strong>: Render plugin list and table nodes - by <a href="https://github.com/lepture"><code>@lepture</code></a> <a href="https://github.com/lepture/mistune/commit/614b019"><!-- raw HTML omitted -->(614b0)<!-- raw HTML omitted --></a></li> <li><strong>renderer</strong>: Block encoded unsafe URL schemes - by <a href="https://github.com/lepture"><code>@lepture</code></a> <a href="https://github.com/lepture/mistune/commit/c7101fc"><!-- raw HTML omitted -->(c7101)<!-- raw HTML omitted --></a></li> <li><strong>toc</strong>: Avoid generated id collisions - by <a href="https://github.com/lepture"><code>@lepture</code></a> <a href="https://github.com/lepture/mistune/commit/c4093c4"><!-- raw HTML omitted -->(c4093)<!-- raw HTML omitted --></a></li> </ul> <h3> 🏎 Performance</h3> <ul> <li>Improve performance - by <a href="https://github.com/lepture"><code>@lepture</code></a> <a href="https://github.com/lepture/mistune/commit/bf95c32"><!-- raw HTML omitted -->(bf95c)<!-- raw HTML omitted --></a></li> </ul> <h5> <a href="https://github.com/lepture/mistune/compare/v3.2.1...v3.3.0">View changes on GitHub</a></h5> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/lepture/mistune/blob/main/docs/changes.rst">mistune's changelog</a>.</em></p> <blockquote> <h2>Version 3.3.0</h2> <p><strong>Released on Jun 21, 2026</strong></p> <ul> <li>Improve CommonMark compatibility and parser performance.</li> <li>Add command line entrypoint with UTF-8 output.</li> <li>Support display and backtick math.</li> <li>Render plugin list and table nodes in Markdown renderer.</li> <li>Escape leading block markers in Markdown renderer.</li> <li>Fix RST renderer for block quotes nested in lists.</li> <li>Avoid generated heading ID collisions in TOC.</li> <li>Harden URL, image, figure, and include directive handling.</li> <li>Fix quadratic scans in inline links, reference links, and formatting markers.</li> <li>Fix math escaping, currency pattern matching, and cross-line matching.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lepture/mistune/commit/15c3b79325125272263d7d42492ec8f757447191"><code>15c3b79</code></a> chore: release 3.3.0</li> <li><a href="https://github.com/lepture/mistune/commit/bdc01ade171c7c2cd1099e2531ddf8c275a2f64c"><code>bdc01ad</code></a> tests: increase run time on pypy</li> <li><a href="https://github.com/lepture/mistune/commit/7cf181483e6201184bcecdbae13225d45ebab4c4"><code>7cf1814</code></a> tests: increase run time for pypy</li> <li><a href="https://github.com/lepture/mistune/commit/6dfdc3dae490c7a21499ff1063f4dd9b7357d4c5"><code>6dfdc3d</code></a> tests: add more tests</li> <li><a href="https://github.com/lepture/mistune/commit/17c50f6c0572027c1dad2c2501e7c97cea0b0b43"><code>17c50f6</code></a> chore: fix mypy issues</li> <li><a href="https://github.com/lepture/mistune/commit/63abe4b8e9adccc711c953e6727400ee7ba1084c"><code>63abe4b</code></a> chore: use ruff check and format</li> <li><a href="https://github.com/lepture/mistune/commit/e6c1b184461beab8887c7375621c64dffaf652c5"><code>e6c1b18</code></a> chore: resolve mypy issues</li> <li><a href="https://github.com/lepture/mistune/commit/dcf89020c1ee697b2267387064b3e4580e0b83c5"><code>dcf8902</code></a> test(math): cover escaped math output</li> <li><a href="https://github.com/lepture/mistune/commit/c4093c4742ed0d10d9332fb8edb455869b7b581b"><code>c4093c4</code></a> fix(toc): avoid generated id collisions</li> <li><a href="https://github.com/lepture/mistune/commit/e3e51de9cf0a72dc30191248dccf22087c57f046"><code>e3e51de</code></a> fix(image): validate figure width option</li> <li>Additional commits viewable in <a href="https://github.com/lepture/mistune/compare/v3.2.1...v3.3.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> |
||
|
|
eb6acf9c8b |
chore(deps): bump soupsieve from 2.8.1 to 2.8.4 in /libs/langgraph (#8318)
Bumps [soupsieve](https://github.com/facelessuser/soupsieve) from 2.8.1 to 2.8.4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facelessuser/soupsieve/releases">soupsieve's releases</a>.</em></p> <blockquote> <h2>2.8.4</h2> <ul> <li><strong>FIX</strong>: Fix another inefficient attribute pattern (<a href="https://github.com/mauriceng98"><code>@mauriceng98</code></a>).</li> <li><strong>FIX</strong>: Limit total number of selectors processed in a pattern to prevent massive selector requests (<a href="https://github.com/mauriceng98"><code>@mauriceng98</code></a>).</li> </ul> <h2>2.8.3</h2> <ul> <li><strong>FIX</strong>: Fix inefficient attribute pattern.</li> </ul> <h2>2.8.2</h2> <ul> <li><strong>FIX</strong>: Ensure custom selectors or namespace dictionaries reject non-string keys (<a href="https://github.com/mundanevision20"><code>@mundanevision20</code></a>).</li> <li><strong>FIX</strong>: Fix handling of <code>:in-range</code> and <code>:out-of-range</code> with end of year weeks (<a href="https://github.com/mundanevision20"><code>@mundanevision20</code></a>).</li> <li><strong>FIX</strong>: Fix a potential infinite loop in the pretty printing debug function (<a href="https://github.com/mundanevision20"><code>@mundanevision20</code></a>).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/facelessuser/soupsieve/commit/28108ab805818c832d9568142a99844fd95a0d39"><code>28108ab</code></a> Limit excessive selectors</li> <li><a href="https://github.com/facelessuser/soupsieve/commit/ef188721d6cc95641e99297b3a26ac17b7dfcfa7"><code>ef18872</code></a> Fix test for Windows</li> <li><a href="https://github.com/facelessuser/soupsieve/commit/eb4397618709186c109400448c6043b728217dc3"><code>eb43976</code></a> Merge commit from fork</li> <li><a href="https://github.com/facelessuser/soupsieve/commit/3a661b23b20e92b49b4683f0227c26c9d765267f"><code>3a661b2</code></a> Fix typo in pseudo-classes.md (<a href="https://redirect.github.com/facelessuser/soupsieve/issues/294">#294</a>)</li> <li><a href="https://github.com/facelessuser/soupsieve/commit/0cb533d83bfc445c7c6321742a21f612305fc8ba"><code>0cb533d</code></a> Update hatchling version requirement in pyproject.toml (<a href="https://redirect.github.com/facelessuser/soupsieve/issues/290">#290</a>)</li> <li><a href="https://github.com/facelessuser/soupsieve/commit/5aedc4180468e724aff46ddb3f738d35a3a9f724"><code>5aedc41</code></a> Update doc theme</li> <li><a href="https://github.com/facelessuser/soupsieve/commit/d7c47842a4f8d168243af96b62b9ad7fb84a2038"><code>d7c4784</code></a> Attribute pattern fix (<a href="https://redirect.github.com/facelessuser/soupsieve/issues/289">#289</a>)</li> <li><a href="https://github.com/facelessuser/soupsieve/commit/09e106dc0fd6579c0327801fdcceb380ff60170e"><code>09e106d</code></a> Fix grammar</li> <li><a href="https://github.com/facelessuser/soupsieve/commit/09b27696ada6f07523a077950ce73da45579d524"><code>09b2769</code></a> Update docs</li> <li><a href="https://github.com/facelessuser/soupsieve/commit/c6e80fcab9ca4d3eaa61913778263e82bcecca1f"><code>c6e80fc</code></a> Various fixes by <a href="https://github.com/mundanevision20"><code>@mundanevision20</code></a> (<a href="https://redirect.github.com/facelessuser/soupsieve/issues/288">#288</a>)</li> <li>See full diff in <a href="https://github.com/facelessuser/soupsieve/compare/2.8.1...2.8.4">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> |
||
|
|
55ec2f2193 |
chore(cli): allow langgraph-api versions up to 1.0.0 (#8319)
<!-- Replace everything above this line with a 1-2 sentence description of your change. Keep the "Fixes #xx" keyword and update the issue number. --> Bumps the langgraph-api upper bound in the cli to `1.0.0` and releases langgraph-cli version 0.4.31. |
||
|
|
95af6a0071 |
release(langgraph): 1.2.9 (#8316)
## Summary Releases `langgraph` 1.2.9. Bumps the package version `1.2.8` -> `1.2.9` and propagates it into the `langgraph`, `prebuilt`, and `sdk-py` lockfiles. No dependency floor or source changes. Includes #8315 (fix non-fresh `update_state` delta channel counters/snapshot metadata for Postgres replay). ## Changes - Update `libs/langgraph/pyproject.toml` to version `1.2.9`. - Update the editable `langgraph` package entries in `libs/langgraph/uv.lock`, `libs/prebuilt/uv.lock`, and `libs/sdk-py/uv.lock`. Made with [Cursor](https://cursor.com) Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|
|
7d0b33c961 |
fix: updateState metadata/counters for delta channel (#8315)
## Fixes Non-fresh `update_state` on `DeltaChannel` did not advance `counters_since_delta_snapshot` Postgres checkpointer uses those counters to replay. This PR fixed a further bug after bug fix in https://github.com/langchain-ai/langgraph/pull/8290 ## Verification - `uv run pytest tests/test_delta_channel_update_state.py` (11 tests) - Postgres integration repro (`update_state` on existing thread + after a run) — all 3 cases pass |
||
|
|
23652c54be |
release(langgraph): 1.2.8 (#8292)
## Summary Releases `langgraph` 1.2.8. Bumps the package version `1.2.7` -> `1.2.8` and propagates it into the `langgraph`, `prebuilt`, and `sdk-py` lockfiles. No dependency floor or source changes. ## Changes - Update `libs/langgraph/pyproject.toml` to version `1.2.8`. - Update the editable `langgraph` package entries in `libs/langgraph/uv.lock`, `libs/prebuilt/uv.lock`, and `libs/sdk-py/uv.lock`. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
b45d96b8eb |
fix: delta channel bug with updateState on fresh thread will force snapshot instead of stub checkpoint (#8290)
Fixes langchain-ai/deepagents#3774 Reworks the fresh-thread `update_state` fix for `DeltaChannel`: instead of creating stub checkpoint (#8011), force a new Snapshot into the first checkpoint so the value is stored inline and needs no ancestor replay. ## Background `update_state` / `bulk_update_state` on a *fresh* thread silently dropped the first write to a `DeltaChannel`. By design, a `DeltaChannel` reconstructs its value by walking ancestor checkpoints and replaying the writes attached to them. Checkpoint writes need a parent to persist. But on a fresh thread there is no ancestor, there is no parent to use. #8011 fixed this by lazily persisting an empty stub checkpoint (step `-1`) to give the first write a parent to use. This PR reverts that and takes a simpler route. ## A better fix On a fresh thread (`saved is None`), force a snapshot of every available `DeltaChannel` into the first checkpoint via `create_checkpoint(..., channels_to_snapshot=...)`. This way, the read/replay path is untouched and no stub is needed. ## Behavior change A fresh-thread `update_state` now produces a **single** self-contained checkpoint (step `0`, no parent, snapshot inline) instead of two (stub step `-1` + update step `0`). This is visible via `get_state_history`. ## Verify `make format`, `make lint`, `make test` in `libs/langgraph`. `tests/test_delta_channel_update_state.py` is updated to assert the single-checkpoint shape on a fresh thread and pins the non-fresh paths (`update_state` after `invoke`, consecutive `update_state`, `bulk_update_state`) against regression. |
||
|
|
4df294f566 |
chore(deps): bump the minor-and-patch group in /libs/langgraph with 8 updates (#8255)
Bumps the minor-and-patch group in /libs/langgraph with 8 updates: | Package | From | To | | --- | --- | --- | | [langchain-core](https://github.com/langchain-ai/langchain) | `1.4.7` | `1.4.8` | | [xxhash](https://github.com/ifduyue/python-xxhash) | `3.7.0` | `3.8.0` | | [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` | | [syrupy](https://github.com/syrupy-project/syrupy) | `5.3.1` | `5.3.4` | | [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.15.20` | | [ty](https://github.com/astral-sh/ty) | `0.0.43` | `0.0.55` | | [anyio](https://github.com/agronholm/anyio) | `4.13.0` | `4.14.1` | | [click](https://github.com/pallets/click) | `8.4.1` | `8.4.2` | Updates `langchain-core` from 1.4.7 to 1.4.8 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langchain/releases">langchain-core's releases</a>.</em></p> <blockquote> <h2>langchain-core==1.4.8</h2> <p>Changes since langchain-core==1.4.7</p> <p>chore: bump jupyter-server from 2.18.0 to 2.20.0 in /libs/core (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38252">#38252</a>) chore: bump tornado from 6.5.6 to 6.5.7 in /libs/core (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38184">#38184</a>) chore: bump bleach from 6.3.0 to 6.4.0 in /libs/core (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38198">#38198</a>) release(core): 1.4.8 (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38254">#38254</a>) refactor(langchain-classic): remove code for Python < 3.10 (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38194">#38194</a>) perf(core): memoize <code>BaseTool.tool_call_schema</code> subset model and cache <code>model_json_schema</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38073">#38073</a>) style(core): fix style in <code>langchain_core</code>/<code>_security</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38189">#38189</a>) fix(core): preserve usage token details in v3 streaming events (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38021">#38021</a>) fix(core): <code>disallow_any_generics</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38156">#38156</a>) chore(core): add mypy <code>warn_unreachable</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38109">#38109</a>) docs: refresh <code>README</code> installation and resources (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38119">#38119</a>) test(core,langchain): update tests for explicit deserialization allowlists (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38118">#38118</a>)</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/langchain-ai/langchain/commit/15b0a4930b5306bb2174f16d92fe4b7837147d0a"><code>15b0a49</code></a> chore: bump jupyter-server from 2.18.0 to 2.20.0 in /libs/core (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38252">#38252</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/612139f3af5f55b6311695fe6b139f0b6a6f68a2"><code>612139f</code></a> chore: bump tornado from 6.5.6 to 6.5.7 in /libs/text-splitters (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38175">#38175</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/921e370a67af4254b948de94c4db4587f4716a84"><code>921e370</code></a> chore: bump cryptography from 46.0.7 to 48.0.1 in /libs/langchain_v1 (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38176">#38176</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/1aabc26836e0c1220121a1f37e3a2691e20f2f19"><code>1aabc26</code></a> chore: bump aiohttp from 3.14.0 to 3.14.1 in /libs/langchain_v1 (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38179">#38179</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/8d51355f1f81825b72cb55303a39825ecbdc6b44"><code>8d51355</code></a> chore: bump aiohttp from 3.14.0 to 3.14.1 in /libs/langchain (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38180">#38180</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/0b1b7bb77a7e8cf98071e088da777ff52558f771"><code>0b1b7bb</code></a> chore: bump cryptography from 46.0.7 to 48.0.1 in /libs/langchain (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38181">#38181</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/dfd062742271ad693c8bebe4ff1784cc4f408ade"><code>dfd0627</code></a> chore: bump starlette from 1.0.1 to 1.3.1 in /libs/langchain (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38182">#38182</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/0269392514c41e44bfa0413c3f550c06e46d2e1e"><code>0269392</code></a> chore: bump tornado from 6.5.6 to 6.5.7 in /libs/langchain (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38183">#38183</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/24d0b3791af52796b3fe5330f38e99b89afda4b1"><code>24d0b37</code></a> chore: bump tornado from 6.5.6 to 6.5.7 in /libs/core (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38184">#38184</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/f368854ec388f0a8e98b9e77aa8da83ebad1b978"><code>f368854</code></a> chore: bump bleach from 6.2.0 to 6.4.0 in /libs/text-splitters (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38195">#38195</a>)</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langchain/compare/langchain-core==1.4.7...langchain-core==1.4.8">compare view</a></li> </ul> </details> <br /> Updates `xxhash` from 3.7.0 to 3.8.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ifduyue/python-xxhash/releases">xxhash's releases</a>.</em></p> <blockquote> <h2>v3.8.0</h2> <ul> <li>Speed up module-level one-shot <code>digest()</code>, <code>intdigest()</code>, and <code>hexdigest()</code> functions by switching them to <code>METH_FASTCALL</code>.</li> <li>Keep one-shot argument handling consistent with hash constructors, including positional and keyword <code>input</code>/<code>seed</code> arguments, duplicate argument errors, and oversized seed wrapping.</li> <li>Fix error handling in the <code>xxh3_128</code> integer digest path so allocation failures are reported cleanly.</li> <li>Fix Python 3.8 builds by adding a <code>PyModule_AddType</code> compatibility fallback with correct reference counting.</li> <li>Correct type stubs for <code>xxh64_digest()</code>, <code>xxh64_hexdigest()</code>, and <code>xxh64_intdigest()</code>, they were incorrectly aliased to xxh3_64 functions.</li> </ul> <hr /> <p>Full list of changes: <a href="https://github.com/ifduyue/python-xxhash/compare/v3.7.1...v3.8.0">https://github.com/ifduyue/python-xxhash/compare/v3.7.1...v3.8.0</a></p> <h2>v3.7.1</h2> <ul> <li>Fix memory leak in copy() and new() when memory allocation fails (rare edge case)</li> <li>Fix seed/reset state initialization in xxh32 and xxh64 (unlikely to affect normal usage)</li> <li>Replace Py_BuildValue with PyLong_FromUnsignedLong/LongLong for performance</li> <li>Update README examples to use bytes literals</li> <li>Add CodSpeed performance benchmarks and CI workflow</li> <li>Build aarch64/armv7l on native Arm runners; test against Python 3.15.0-beta.2</li> </ul> <hr /> <p>Full list of changes: <a href="https://github.com/ifduyue/python-xxhash/compare/v3.7.0...v3.7.1">https://github.com/ifduyue/python-xxhash/compare/v3.7.0...v3.7.1</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/ifduyue/python-xxhash/blob/v3.8.0/CHANGELOG.rst">xxhash's changelog</a>.</em></p> <blockquote> <p>v3.8.0 2026-06-27</p> <pre><code> - Speed up module-level one-shot ``digest()``, ``intdigest()``, and ``hexdigest()`` functions by switching them to ``METH_FASTCALL``. - Keep one-shot argument handling consistent with hash constructors, including positional and keyword ``input``/``seed`` arguments, duplicate argument errors, and oversized seed wrapping. - Fix error handling in the ``xxh3_128`` integer digest path so allocation failures are reported cleanly. - Fix Python 3.8 builds by adding a ``PyModule_AddType`` compatibility fallback with correct reference counting. - Correct type stubs for ``xxh64_digest()``, ``xxh64_hexdigest()``, and ``xxh64_intdigest()``, they were incorrectly aliased to xxh3_64 functions. <p>v3.7.1 2026-06-24<br /> </code></pre></p> <ul> <li>Fix memory leak in copy() and new() when memory allocation fails (rare edge case)</li> <li>Fix seed/reset state initialization in xxh32 and xxh64 (unlikely to affect normal usage)</li> <li>Replace Py_BuildValue with PyLong_FromUnsignedLong/LongLong for performance</li> <li>Update README examples to use bytes literals</li> <li>Add CodSpeed performance benchmarks and CI workflow</li> <li>Build aarch64/armv7l on native Arm runners; test against Python 3.15.0-beta.2</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ifduyue/python-xxhash/commit/48c60f24fd50d7c2765fc3df099aa9006e763b9e"><code>48c60f2</code></a> chore: release v3.8.0</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/c7f239734a6683279bc8467024799fd35e007a61"><code>c7f2397</code></a> fix: restore PyLong_FromUnsignedLong/LongLong over Py_BuildValue</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/aea7a72706d1ed56a1386e71a2f62be9d7f65824"><code>aea7a72</code></a> test: fix positional seed tests in test_fastcall.py</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/e084433ec40f4347b7ade06a7cdb095512d8bfde"><code>e084433</code></a> fix: correct docstring typos in xxh3_64 copy() documentation</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/414b254e78e97b0d2000251451bd19b50d7e1462"><code>414b254</code></a> fix(pyi): xxh64_digest/hexdigest/intdigest are functions</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/9af991361c8ee702286ec6c9f64967e28b2184a2"><code>9af9913</code></a> fix: add PyModule_AddType fallback for Python 3.8 compatibility</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/1ecd5b4791b3871019423c8a11d023c0059f0864"><code>1ecd5b4</code></a> perf: mark _get_buffer_or_str and _parse_fastcall_args as inline</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/2b6f712b4bbab8ebdcd2f16435eae16dcd83adee"><code>2b6f712</code></a> fix: detect duplicate seed, expand fastcall tests</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/5d59623916536c0f67ba6fd2f818b899ab6a3dba"><code>5d59623</code></a> fix: add NULL checks in xxh3_128_intdigest 128-bit math</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/8fe3bf48b7767292d502362f57dc8e29d13d1786"><code>8fe3bf4</code></a> refactor: consolidate fastcall arg parsing into _parse_fastcall_args</li> <li>Additional commits viewable in <a href="https://github.com/ifduyue/python-xxhash/compare/v3.7.0...v3.8.0">compare view</a></li> </ul> </details> <br /> Updates `pytest` from 9.0.3 to 9.1.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest/releases">pytest's releases</a>.</em></p> <blockquote> <h2>9.1.1</h2> <h1>pytest 9.1.1 (2026-06-19)</h1> <h2>Bug fixes</h2> <ul> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/14220">#14220</a>: Fixed a logic bug in <code>pytest.RaisesGroup</code> which would might cause it to display incorrect "It matches <!-- raw HTML omitted -->FooError()<!-- raw HTML omitted --> which was paired with <!-- raw HTML omitted -->BarError<!-- raw HTML omitted -->" messages.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/14591">#14591</a>: Fixed a regression in pytest 9.1.0 which caused overriding a parametrized fixture with an indirect <!-- raw HTML omitted --><a href="https://github.com/pytest"><code>@pytest</code></a>.mark.parametrize<!-- raw HTML omitted --> to fail with "duplicate parametrization of '<fixture name>'".</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/14606">#14606</a>: Fixed <code>list-item</code> typing errors from mypy in <code>@pytest.mark.parametrize <pytest.mark.parametrize ref></code> <code>argvalues</code> parameter.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/14608">#14608</a>: Fixed a regression in pytest 9.1.0 where <code>conftest.py</code> files located in <code><invocation dir>/test*</code> were no longer loaded as initial conftests when invoked without arguments. This could cause certain hooks (like <code>pytest_addoption</code>) in these files to not fire.</li> </ul> <h2>9.1.0</h2> <h1>pytest 9.1.0 (2026-06-13)</h1> <h2>Removals and backward incompatible breaking changes</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/14533">#14533</a>: When using <code>--doctest-modules</code>, autouse fixtures with <code>module</code>, <code>package</code> or <code>session</code> scope that are defined inline in Python test modules (not plugins or conftests) will now possibly execute twice.</p> <p>If this is undesirable, move the fixture definition to a <code>conftest.py</code> file if possible.</p> <p>Technical explanation for those interested: When using <!-- raw HTML omitted -->--doctest-modules<!-- raw HTML omitted -->, pytest possibly collects Python modules twice, once as <code>pytest.Module</code> and once as a <code>DoctestModule</code> (depending on the configuration). Due to improvements in pytest's fixture implementation, if e.g. the <code>DoctestModule</code> collects a fixture, it is now visible to it only, and not to the <code>Module</code>. This means that both need to register the fixtures independently.</p> </li> </ul> <h2>Deprecations (removal in next major release)</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/10819">#10819</a>: Added a deprecation warning for class-scoped fixtures defined as instance methods (without <code>@classmethod</code>). Such fixtures set attributes on a different instance than the test methods use, leading to unexpected behavior. Use <code>@classmethod</code> decorator instead -- by <code>yastcher</code>.</p> <p>See <code>10819</code> and <code>14011</code>.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/12882">#12882</a>: Calling <code>request.getfixturevalue() <pytest.FixtureRequest.getfixturevalue></code> during teardown to request a fixture that was not already requested is now deprecated and will become an error in pytest 10.</p> <p>See <code>dynamic-fixture-request-during-teardown</code> for details.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13409">#13409</a>: Using non-<code>~collections.abc.Collection</code> iterables (such as generators, iterators, or custom iterable objects) for the <code>argvalues</code> parameter in <code>@pytest.mark.parametrize <pytest.mark.parametrize ref></code> and <code>metafunc.parametrize <pytest.Metafunc.parametrize></code> is now deprecated.</p> <p>These iterables get exhausted after the first iteration, leading to tests getting unexpectedly skipped in cases such as running <code>pytest.main()</code> multiple times, using class-level parametrize decorators, or collecting tests multiple times.</p> <p>See <code>parametrize-iterators</code> for details and suggestions.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13946">#13946</a>: The private <code>config.inicfg</code> attribute is now deprecated. Use <code>config.getini() <pytest.Config.getini></code> to access configuration values instead.</p> <p>See <code>config-inicfg</code> for more details.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/14004">#14004</a>: Passing <code>baseid</code> to <code>~pytest.FixtureDef</code> or <code>nodeid</code> strings to fixture registration APIs is now deprecated. These are internal pytest APIs that are used by some plugins.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest/commit/cf470ec0bf7eb89cd97dd56df4859eae5db46447"><code>cf470ec</code></a> Prepare release version 9.1.1</li> <li><a href="https://github.com/pytest-dev/pytest/commit/e0c8ce6cc5db1f08363be6f152c32e6838df2690"><code>e0c8ce6</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14625">#14625</a> from pytest-dev/patchback/backports/9.1.x/a07c31a97...</li> <li><a href="https://github.com/pytest-dev/pytest/commit/1b82d1694fce22385ee7a4287917fbafbaf2e757"><code>1b82d16</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14624">#14624</a> from pytest-dev/patchback/backports/9.1.x/b375b79ec...</li> <li><a href="https://github.com/pytest-dev/pytest/commit/501c4bc784da3b08bfcaa64858eba5d15dc59e53"><code>501c4bc</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14596">#14596</a> from bluetech/doc-classmethod</li> <li><a href="https://github.com/pytest-dev/pytest/commit/b61f588e36e9377c3d1d3f06bece1da0fc31d9ca"><code>b61f588</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14622">#14622</a> from chrisburr/fix-14608-initial-conftest-test-subdir</li> <li><a href="https://github.com/pytest-dev/pytest/commit/9a567e009f4d2da3ce1721c6db3109cb5744d40a"><code>9a567e0</code></a> [automated] Update plugin list (<a href="https://redirect.github.com/pytest-dev/pytest/issues/14617">#14617</a>) (<a href="https://redirect.github.com/pytest-dev/pytest/issues/14618">#14618</a>)</li> <li><a href="https://github.com/pytest-dev/pytest/commit/ef8b2993e5b48639e4a3d97d0525df9760781384"><code>ef8b299</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14620">#14620</a> from pytest-dev/patchback/backports/9.1.x/680f9f3ed...</li> <li><a href="https://github.com/pytest-dev/pytest/commit/66abd0784d4cb7c1ba44ab9a8896506cd4985acc"><code>66abd07</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14220">#14220</a> from bysiber/fix-stale-iexp-raisesgroup</li> <li><a href="https://github.com/pytest-dev/pytest/commit/79fbf93b666cac5f27c9dad047943d47b766c8d5"><code>79fbf93</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14612">#14612</a> from pytest-dev/patchback/backports/9.1.x/974ed48b6...</li> <li><a href="https://github.com/pytest-dev/pytest/commit/0d312eb876177e9f1c04262b54060a41034ebf5c"><code>0d312eb</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14611">#14611</a> from bluetech/parametrize-argvalues-typing</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest/compare/9.0.3...9.1.1">compare view</a></li> </ul> </details> <br /> Updates `syrupy` from 5.3.1 to 5.3.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/syrupy-project/syrupy/releases">syrupy's releases</a>.</em></p> <blockquote> <h2>v5.3.4</h2> <h2>What's Changed</h2> <ul> <li>perf: drop per-node kwargs dict from the amber serializer by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1122">syrupy-project/syrupy#1122</a></li> <li>perf: give the internal matcher wrapper an explicit signature by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1121">syrupy-project/syrupy#1121</a></li> <li>fix: avoid os.environ mutation for color control by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1125">syrupy-project/syrupy#1125</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.3.3...v5.3.4">https://github.com/syrupy-project/syrupy/compare/v5.3.3...v5.3.4</a></p> <h2>v5.3.3</h2> <h2>What's Changed</h2> <ul> <li>perf: speed up string serialization in amber serializer by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1118">syrupy-project/syrupy#1118</a></li> <li>perf: avoid copying the cycle-detection set on every serialized node by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1119">syrupy-project/syrupy#1119</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/TejasAmle"><code>@TejasAmle</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1113">syrupy-project/syrupy#1113</a></li> <li><a href="https://github.com/frenck"><code>@frenck</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1118">syrupy-project/syrupy#1118</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.3.2...v5.3.3">https://github.com/syrupy-project/syrupy/compare/v5.3.2...v5.3.3</a></p> <h2>v5.3.2</h2> <h2>What's Changed</h2> <ul> <li>fix: overlapping test filenames across directories by <a href="https://github.com/noahnu"><code>@noahnu</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1104">syrupy-project/syrupy#1104</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.3.1...v5.3.2">https://github.com/syrupy-project/syrupy/compare/v5.3.1...v5.3.2</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md">syrupy's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.3.4">v5.3.4</a> (2026-06-26)</h2> <h2>What's Changed</h2> <ul> <li>perf: drop per-node kwargs dict from the amber serializer by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1122">syrupy-project/syrupy#1122</a></li> <li>perf: give the internal matcher wrapper an explicit signature by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1121">syrupy-project/syrupy#1121</a></li> <li>fix: avoid os.environ mutation for color control by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1125">syrupy-project/syrupy#1125</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.3.3...v5.3.4">https://github.com/syrupy-project/syrupy/compare/v5.3.3...v5.3.4</a></p> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.3.3">v5.3.3</a> (2026-06-25)</h2> <h2>What's Changed</h2> <ul> <li>perf: speed up string serialization in amber serializer by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1118">syrupy-project/syrupy#1118</a></li> <li>perf: avoid copying the cycle-detection set on every serialized node by <a href="https://github.com/frenck"><code>@frenck</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1119">syrupy-project/syrupy#1119</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/TejasAmle"><code>@TejasAmle</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1113">syrupy-project/syrupy#1113</a></li> <li><a href="https://github.com/frenck"><code>@frenck</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1118">syrupy-project/syrupy#1118</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.3.2...v5.3.3">https://github.com/syrupy-project/syrupy/compare/v5.3.2...v5.3.3</a></p> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.3.2">v5.3.2</a> (2026-06-09)</h2> <h2>What's Changed</h2> <ul> <li>fix: overlapping test filenames across directories by <a href="https://github.com/noahnu"><code>@noahnu</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1104">syrupy-project/syrupy#1104</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.3.1...v5.3.2">https://github.com/syrupy-project/syrupy/compare/v5.3.1...v5.3.2</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/syrupy-project/syrupy/commit/7db49e98f7ea9d59ba9f4b88f576d61e37fc4d29"><code>7db49e9</code></a> fix: avoid os.environ mutation for color control (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1125">#1125</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/52da1c4ba9e0c723f052b45d2496bc7104b03dea"><code>52da1c4</code></a> chore: add benchmarks to README (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1124">#1124</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/a0d46f36fcbd4852bf3647e1171799f6447c7259"><code>a0d46f3</code></a> perf: give the internal matcher wrapper an explicit signature (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1121">#1121</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/54771a484905f42af7dbe3ca0e0ba7d2e65aba50"><code>54771a4</code></a> perf: drop per-node kwargs dict from the amber serializer (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1122">#1122</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/8a10e700ad476862338adfe339b9c7e8f053fd1e"><code>8a10e70</code></a> docs: add frenck as a contributor for bug (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1120">#1120</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/5760c88d37df714af631c99a5d5804ed4dadc563"><code>5760c88</code></a> chore(release): 5.3.3 [skip ci]</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/0840c9dcd1d44a9c44e76a3243eb267ce4c7449c"><code>0840c9d</code></a> perf: avoid copying the cycle-detection set on every serialized node (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1119">#1119</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/1940faa06caff3bfba0fb0f6c6b9cdf662af29eb"><code>1940faa</code></a> perf: speed up string serialization in amber serializer (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1118">#1118</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/46d661cdbd4d69a2762131d111367b46166376ef"><code>46d661c</code></a> chore(deps): update dependency debugpy to v1.8.21 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1117">#1117</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/8c23052690b3196a014602868c415da04a415ae3"><code>8c23052</code></a> chore(deps): update astral-sh/setup-uv action to v8.2.0 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1114">#1114</a>)</li> <li>Additional commits viewable in <a href="https://github.com/syrupy-project/syrupy/compare/v5.3.1...v5.3.4">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.12 to 0.15.20 <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.20</h2> <h2>Release Notes</h2> <p>Released on 2026-06-25.</p> <h3>Preview features</h3> <ul> <li>Allow human-readable names in rule selectors (<a href="https://redirect.github.com/astral-sh/ruff/pull/25887">#25887</a>)</li> <li>Emit a warning instead of an error for unknown rule selectors (<a href="https://redirect.github.com/astral-sh/ruff/pull/26113">#26113</a>)</li> <li>Match <code>noqa</code> shebang handling in <code>ruff:ignore</code> comments (<a href="https://redirect.github.com/astral-sh/ruff/pull/26286">#26286</a>)</li> <li>[<code>ruff</code>] Remove <code>pytest-fixture-autouse</code> (<code>RUF076</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26240">#26240</a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/26371">#26371</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add versioning sections to custom crate READMEs (<a href="https://redirect.github.com/astral-sh/ruff/pull/26317">#26317</a>)</li> <li>Update <code>ruff_python_parser</code> README for crates.io (<a href="https://redirect.github.com/astral-sh/ruff/pull/26315">#26315</a>)</li> <li>[<code>perflint</code>] Clarify that <code>PERF402</code> applies to any iterable (<a href="https://redirect.github.com/astral-sh/ruff/pull/26242">#26242</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/dhruvmanila"><code>@dhruvmanila</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/trilamsr"><code>@trilamsr</code></a></li> </ul> <h2>Install ruff 0.15.20</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.20/ruff-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-installer.ps1 | iex" </code></pre> <h2>Download ruff 0.15.20</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-apple-darwin.tar.gz">ruff-aarch64-apple-darwin.tar.gz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-x86_64-apple-darwin.tar.gz">ruff-x86_64-apple-darwin.tar.gz</a></td> <td>Intel macOS</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-pc-windows-msvc.zip">ruff-aarch64-pc-windows-msvc.zip</a></td> <td>ARM64 Windows</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-i686-pc-windows-msvc.zip">ruff-i686-pc-windows-msvc.zip</a></td> <td>x86 Windows</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-i686-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-x86_64-pc-windows-msvc.zip">ruff-x86_64-pc-windows-msvc.zip</a></td> <td>x64 Windows</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-unknown-linux-gnu.tar.gz">ruff-aarch64-unknown-linux-gnu.tar.gz</a></td> <td>ARM64 Linux</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-i686-unknown-linux-gnu.tar.gz">ruff-i686-unknown-linux-gnu.tar.gz</a></td> <td>x86 Linux</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-i686-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> </tbody> </table> <!-- 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.20</h2> <p>Released on 2026-06-25.</p> <h3>Preview features</h3> <ul> <li>Allow human-readable names in rule selectors (<a href="https://redirect.github.com/astral-sh/ruff/pull/25887">#25887</a>)</li> <li>Emit a warning instead of an error for unknown rule selectors (<a href="https://redirect.github.com/astral-sh/ruff/pull/26113">#26113</a>)</li> <li>Match <code>noqa</code> shebang handling in <code>ruff:ignore</code> comments (<a href="https://redirect.github.com/astral-sh/ruff/pull/26286">#26286</a>)</li> <li>[<code>ruff</code>] Remove <code>pytest-fixture-autouse</code> (<code>RUF076</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26240">#26240</a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/26371">#26371</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add versioning sections to custom crate READMEs (<a href="https://redirect.github.com/astral-sh/ruff/pull/26317">#26317</a>)</li> <li>Update <code>ruff_python_parser</code> README for crates.io (<a href="https://redirect.github.com/astral-sh/ruff/pull/26315">#26315</a>)</li> <li>[<code>perflint</code>] Clarify that <code>PERF402</code> applies to any iterable (<a href="https://redirect.github.com/astral-sh/ruff/pull/26242">#26242</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/dhruvmanila"><code>@dhruvmanila</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/trilamsr"><code>@trilamsr</code></a></li> </ul> <h2>0.15.19</h2> <p>Released on 2026-06-23.</p> <h3>Preview features</h3> <ul> <li>Support human-readable names when hovering suppression comments and in code actions (<a href="https://redirect.github.com/astral-sh/ruff/pull/26114">#26114</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Fall back to default settings when editor-only settings are invalid (<a href="https://redirect.github.com/astral-sh/ruff/pull/26244">#26244</a>)</li> <li>Fix panic when inserting text at a notebook cell boundary (<a href="https://redirect.github.com/astral-sh/ruff/pull/26111">#26111</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>pylint</code>] Update fix suggestions for <code>__floor__</code>, <code>__trunc__</code>, <code>__length_hint__</code>, and <code>__matmul__</code> variants (<code>PLC2801</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26239">#26239</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Avoid allocating when parsing single string literals (<a href="https://redirect.github.com/astral-sh/ruff/pull/26200">#26200</a>)</li> <li>Avoid reallocating singleton call arguments (<a href="https://redirect.github.com/astral-sh/ruff/pull/26223">#26223</a>)</li> <li>Lazily create source files for lint diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/26226">#26226</a>)</li> <li>Optimize formatter text width and indentation (<a href="https://redirect.github.com/astral-sh/ruff/pull/26236">#26236</a>)</li> <li>Reserve capacity for builtin bindings (<a href="https://redirect.github.com/astral-sh/ruff/pull/26229">#26229</a>)</li> <li>Skip repeated-key checks for singleton dictionaries (<a href="https://redirect.github.com/astral-sh/ruff/pull/26228">#26228</a>)</li> <li>Use ArrayVec for qualified name segments (<a href="https://redirect.github.com/astral-sh/ruff/pull/26224">#26224</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/f82a36b6baf8c0547a17bbde6c0d927ccd45d938"><code>f82a36b</code></a> Bump 0.15.20 (<a href="https://redirect.github.com/astral-sh/ruff/issues/26376">#26376</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/af329438b55d5aa8ca28725f17abbae63b5c815d"><code>af32943</code></a> Improve the summarise-ecosystem-results skill (<a href="https://redirect.github.com/astral-sh/ruff/issues/26378">#26378</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/485ebab5de692aad34720898cd80245b6092ba86"><code>485ebab</code></a> Remove <code>RUF076</code> name from schema (<a href="https://redirect.github.com/astral-sh/ruff/issues/26371">#26371</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/ef81835ce3da615346584dc446de0fe26bfc154b"><code>ef81835</code></a> [ty] Implement rust-analyzer's "Click for full compiler diagnostic" feature (...</li> <li><a href="https://github.com/astral-sh/ruff/commit/572b31e2377a701a7365f069f6ef87002962cb2b"><code>572b31e</code></a> [<code>ruff</code>] Remove <code>pytest-fixture-autouse</code> (<code>RUF076</code>) (<a href="https://redirect.github.com/astral-sh/ruff/issues/26240">#26240</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/f703f219d7fddd1a4abba9fa81e34773c185a4b9"><code>f703f21</code></a> Allow human-readable names in rule selectors (<a href="https://redirect.github.com/astral-sh/ruff/issues/25887">#25887</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/0d726b28ee35413926145ffef4ac1143cae9ea1e"><code>0d726b2</code></a> [ty] Reuse equality semantics for membership compatibility (<a href="https://redirect.github.com/astral-sh/ruff/issues/25955">#25955</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/dbe6e9848c3f78fdaf543cfc000939ebc73b5f00"><code>dbe6e98</code></a> [ty] Infer definite equality comparison results (<a href="https://redirect.github.com/astral-sh/ruff/issues/26337">#26337</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/e700ea357a2196d76b58eb89b2031ddb5ca896e0"><code>e700ea3</code></a> [ty] Prove TypedDict structural patterns exhaustive (<a href="https://redirect.github.com/astral-sh/ruff/issues/26285">#26285</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/6a0d2ec93959d966430b8c39d4de5c3e8a88e911"><code>6a0d2ec</code></a> [ty] Widen inferred class-valued instance attributes (<a href="https://redirect.github.com/astral-sh/ruff/issues/26338">#26338</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.15.12...0.15.20">compare view</a></li> </ul> </details> <br /> Updates `ty` from 0.0.43 to 0.0.55 <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.55</h2> <h2>Release Notes</h2> <p>Released on 2026-06-26.</p> <h3>LSP server</h3> <ul> <li>Render full diagnostics in color (<a href="https://redirect.github.com/astral-sh/ruff/pull/26384">#26384</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Document colored diagnostic output (<a href="https://redirect.github.com/astral-sh/ty/pull/3858">#3858</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Improve vendored filesystem concurrency (<a href="https://redirect.github.com/astral-sh/ruff/pull/26408">#26408</a>)</li> <li>Optimize enum comparisons in equality evaluation (<a href="https://redirect.github.com/astral-sh/ruff/pull/26340">#26340</a>)</li> <li>Remove redundant semantic index shrinks (<a href="https://redirect.github.com/astral-sh/ruff/pull/26392">#26392</a>)</li> <li>Use never-change durability for one-shot checks (<a href="https://redirect.github.com/astral-sh/ruff/pull/26359">#26359</a>)</li> </ul> <h3>Core type checking</h3> <ul> <li>Correct enum alias detection and scalar constructors (<a href="https://redirect.github.com/astral-sh/ruff/pull/26345">#26345</a>)</li> <li>Fix structural pattern binding inference (<a href="https://redirect.github.com/astral-sh/ruff/pull/26411">#26411</a>)</li> <li>Improve variable-length tuple slicing (<a href="https://redirect.github.com/astral-sh/ruff/pull/26151">#26151</a>)</li> <li>Infer class and mapping pattern bindings (<a href="https://redirect.github.com/astral-sh/ruff/pull/25941">#25941</a>)</li> <li>Infer empty collection constructors from later uses (<a href="https://redirect.github.com/astral-sh/ruff/pull/26389">#26389</a>)</li> <li>Skip shadowed submodule bindings during import analysis (<a href="https://redirect.github.com/astral-sh/ruff/pull/26385">#26385</a>)</li> <li>Sync vendored typeshed stubs (<a href="https://redirect.github.com/astral-sh/ruff/pull/26406">#26406</a>). <a href="https://github.com/python/typeshed/compare/8e6a886ca5b14742924be721d345a619762d6e93...3c6221722aac5bd9dbfc5fbf7b4f0bf64b2c5724">Typeshed diff</a></li> <li>Track literal iterable emptiness for reachability (<a href="https://redirect.github.com/astral-sh/ruff/pull/25222">#25222</a>)</li> <li>Validate positional class patterns against <code>__match_args__</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/26195">#26195</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/carljm"><code>@carljm</code></a></li> <li><a href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/mtshiba"><code>@mtshiba</code></a></li> <li><a href="https://github.com/felixscherz"><code>@felixscherz</code></a></li> </ul> <h2>Install ty 0.0.55</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ty/releases/download/0.0.55/ty-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</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.55</h2> <p>Released on 2026-06-26.</p> <h3>LSP server</h3> <ul> <li>Render full diagnostics in color (<a href="https://redirect.github.com/astral-sh/ruff/pull/26384">#26384</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Document colored diagnostic output (<a href="https://redirect.github.com/astral-sh/ty/pull/3858">#3858</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Improve vendored filesystem concurrency (<a href="https://redirect.github.com/astral-sh/ruff/pull/26408">#26408</a>)</li> <li>Optimize enum comparisons in equality evaluation (<a href="https://redirect.github.com/astral-sh/ruff/pull/26340">#26340</a>)</li> <li>Remove redundant semantic index shrinks (<a href="https://redirect.github.com/astral-sh/ruff/pull/26392">#26392</a>)</li> <li>Use never-change durability for one-shot checks (<a href="https://redirect.github.com/astral-sh/ruff/pull/26359">#26359</a>)</li> </ul> <h3>Core type checking</h3> <ul> <li>Correct enum alias detection and scalar constructors (<a href="https://redirect.github.com/astral-sh/ruff/pull/26345">#26345</a>)</li> <li>Fix structural pattern binding inference (<a href="https://redirect.github.com/astral-sh/ruff/pull/26411">#26411</a>)</li> <li>Improve variable-length tuple slicing (<a href="https://redirect.github.com/astral-sh/ruff/pull/26151">#26151</a>)</li> <li>Infer class and mapping pattern bindings (<a href="https://redirect.github.com/astral-sh/ruff/pull/25941">#25941</a>)</li> <li>Infer empty collection constructors from later uses (<a href="https://redirect.github.com/astral-sh/ruff/pull/26389">#26389</a>)</li> <li>Skip shadowed submodule bindings during import analysis (<a href="https://redirect.github.com/astral-sh/ruff/pull/26385">#26385</a>)</li> <li>Sync vendored typeshed stubs (<a href="https://redirect.github.com/astral-sh/ruff/pull/26406">#26406</a>). <a href="https://github.com/python/typeshed/compare/8e6a886ca5b14742924be721d345a619762d6e93...3c6221722aac5bd9dbfc5fbf7b4f0bf64b2c5724">Typeshed diff</a></li> <li>Track literal iterable emptiness for reachability (<a href="https://redirect.github.com/astral-sh/ruff/pull/25222">#25222</a>)</li> <li>Validate positional class patterns against <code>__match_args__</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/26195">#26195</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/carljm"><code>@carljm</code></a></li> <li><a href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/mtshiba"><code>@mtshiba</code></a></li> <li><a href="https://github.com/felixscherz"><code>@felixscherz</code></a></li> </ul> <h2>0.0.54</h2> <p>Released on 2026-06-25.</p> <h3>Bug fixes</h3> <ul> <li>Avoid duplicate configuration error output (<a href="https://redirect.github.com/astral-sh/ruff/pull/26375">#26375</a>)</li> <li>Avoid stack overflows in reachability analysis (<a href="https://redirect.github.com/astral-sh/ruff/pull/26272">#26272</a>)</li> <li>Fix divergent recursive tuple cycle handling in ty (<a href="https://redirect.github.com/astral-sh/ruff/pull/26316">#26316</a>)</li> <li>Fix panic from relation queries during cycle recovery (<a href="https://redirect.github.com/astral-sh/ruff/pull/26335">#26335</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/42869400da56f4ee7ce752141f81b50bb318e4e2"><code>4286940</code></a> Bump version to 0.0.55 (<a href="https://redirect.github.com/astral-sh/ty/issues/3866">#3866</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/5374b30ff462ef6e59d23dc9ba515007b02464a8"><code>5374b30</code></a> Update benchmarks for ty 0.0.54 (<a href="https://redirect.github.com/astral-sh/ty/issues/3865">#3865</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/3ed874d053ff9529c9fd0205a6d3bbe6a7407535"><code>3ed874d</code></a> Document colored diagnostic output (<a href="https://redirect.github.com/astral-sh/ty/issues/3858">#3858</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/bf8a7dd584f53d67d873c750afc1494331f93502"><code>bf8a7dd</code></a> Bump version to 0.0.54</li> <li><a href="https://github.com/astral-sh/ty/commit/78e094dfaf6245514f124b043b18c9a20edd8f08"><code>78e094d</code></a> Document the <code>fullDiagnosticOutput</code> extension to the Language Server Protocol...</li> <li><a href="https://github.com/astral-sh/ty/commit/7bda89e5069d747bd7f54513dcd0263157a8f694"><code>7bda89e</code></a> Document ty's <code>@Todo</code> type in the typing FAQ (<a href="https://redirect.github.com/astral-sh/ty/issues/3847">#3847</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/66a94cde4970b405a770e4c6ef4ac2a9bb6bf733"><code>66a94cd</code></a> Update maturin to v1.14.0 (<a href="https://redirect.github.com/astral-sh/ty/issues/3840">#3840</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/dc2b39d1e29e55a4a6d83486fffa936ba5121a72"><code>dc2b39d</code></a> Update prek dependencies (<a href="https://redirect.github.com/astral-sh/ty/issues/3839">#3839</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/23f26f98a22d3a0df412846506f3af6e76cf48e4"><code>23f26f9</code></a> Bump version to 0.0.53 (<a href="https://redirect.github.com/astral-sh/ty/issues/3841">#3841</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/13f91b093e004c76aa548a221c7b577dfbdd7ea6"><code>13f91b0</code></a> Bump version to 0.0.52 (<a href="https://redirect.github.com/astral-sh/ty/issues/3828">#3828</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ty/compare/0.0.43...0.0.55">compare view</a></li> </ul> </details> <br /> Updates `anyio` from 4.13.0 to 4.14.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/releases">anyio's releases</a>.</em></p> <blockquote> <h2>4.14.1</h2> <ul> <li>Fixed teardown of higher-scoped async fixtures failing on asyncio with <code>RuntimeError: Attempted to exit cancel scope in a different task than it was entered in</code> when an async test raise an outcome exception (e.g., <code>pytest.skip()</code>, <code>pytest.xfail()</code>, or <code>pytest.fail()</code>) (<a href="https://redirect.github.com/agronholm/anyio/issues/1179">#1179</a>; PR by <a href="https://github.com/EmmanuelNiyonshuti"><code>@EmmanuelNiyonshuti</code></a>)</li> <li>Fixed <code>CapacityLimiter.total_tokens</code> rejecting a value of <code>0</code> when the limiter was instantiated outside of an event loop, contradicting the documented behavior of allowing 0 total tokens (<a href="https://redirect.github.com/agronholm/anyio/pull/1183">#1183</a>; PR by <a href="https://github.com/nyxst4ck"><code>@nyxst4ck</code></a>)</li> </ul> <h2>4.14.0</h2> <ul> <li> <p>Added support for Python 3.15</p> </li> <li> <p>Added an asynchronous implementation of the <code>itertools</code> module (<a href="https://redirect.github.com/agronholm/anyio/issues/998">#998</a>; PR by <a href="https://github.com/11kkw"><code>@11kkw</code></a>)</p> </li> <li> <p>Added the <code>local_port</code> parameter to <code>connect_tcp()</code> to allow binding to a specific local port before connecting (<a href="https://redirect.github.com/agronholm/anyio/issues/1067">#1067</a>; PR by <a href="https://github.com/nullwiz"><code>@nullwiz</code></a>)</p> </li> <li> <p>Added support for custom capacity limiters in async path and file I/O functions and classes</p> </li> <li> <p>Added the <code>create_task()</code> task group method for easier asyncio migration (returns a <code>TaskHandle</code>) (<a href="https://redirect.github.com/agronholm/anyio/pull/1098">#1098</a>)</p> </li> <li> <p>Changed <code>TaskGroup.start_soon()</code> to return a <code>TaskHandle</code></p> </li> <li> <p>Added an option for <code>TaskGroup.start()</code> to return a <code>TaskHandle</code> (which then contains the start value in the <code>start_value</code> property)</p> </li> <li> <p>Added the <code>cancel()</code> convenience method to <code>TaskGroup</code> as a shortcut for cancelling the task group's cancel scope</p> </li> <li> <p>Improved the error message when a known backend is not installed to suggest the install command (<a href="https://redirect.github.com/agronholm/anyio/pull/1115">#1115</a>; PR by <a href="https://github.com/EmmanuelNiyonshuti"><code>@EmmanuelNiyonshuti</code></a>)</p> </li> <li> <p>Improved <code>anyio.Path</code> to preserve subclass types by returning <code>Self</code> in methods that return path objects (<a href="https://redirect.github.com/agronholm/anyio/issues/1130">#1130</a>; PR by <a href="https://github.com/EmmanuelNiyonshuti"><code>@EmmanuelNiyonshuti</code></a>)</p> </li> <li> <p>Changed the parameter type annotation in <code>anyio.Path.write_bytes()</code> to accept any <code>ReadableBuffer</code>, thus allowing it to accept <code>bytearray</code> and <code>memoryview</code> to match <code>pathlib.Path.write_bytes()</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/1135">#1135</a>; PR by <a href="https://github.com/SAY-5"><code>@SAY-5</code></a>)</p> </li> <li> <p>Changed several type annotations to only accept callables returning coroutine-like objects instead of arbitrary awaitables:</p> <ul> <li><code>TaskGroup.start_soon()</code></li> <li><code>TaskGroup.start()</code></li> <li><code>anyio.from_thread.run()</code></li> </ul> <p>This reverts an earlier change from v3.7.0 which was made in error. (<a href="https://redirect.github.com/agronholm/anyio/pull/1153">#1153</a>)</p> </li> <li> <p>Changed <code>anyio.run</code> to support callables returning arbitrary awaitables at runtime on all backends. Previously, this only worked on asyncio (<a href="https://redirect.github.com/agronholm/anyio/pull/1171">#1171</a>; PR by <a href="https://github.com/gschaffner"><code>@gschaffner</code></a>)</p> </li> <li> <p>Changed several classes (and their subclasses) to have <code>__slots__</code> (with <code>__weakref__</code>):</p> <ul> <li><code>anyio.CancelScope</code></li> <li><code>anyio.CapacityLimiter</code></li> <li><code>anyio.Condition</code></li> <li><code>anyio.Event</code></li> <li><code>anyio.Lock</code></li> <li><code>anyio.ResourceGuard</code></li> <li><code>anyio.Semaphore</code></li> </ul> </li> <li> <p>Fixed cancellation exception escaping a cancel scope when triggered via <code>check_cancelled()</code> in a worker thread (<a href="https://redirect.github.com/agronholm/anyio/issues/1113">#1113</a>)</p> </li> <li> <p>Fixed <code>TaskGroup</code> raising <code>AttributeError</code> instead of a clear error when entered more than once (<a href="https://redirect.github.com/agronholm/anyio/issues/1109">#1109</a>; PR by <a href="https://github.com/bahtya"><code>@bahtya</code></a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/agronholm/anyio/commit/149b9e907618fadf6840a4d3cebad533b0c7d033"><code>149b9e9</code></a> Bumped up the version</li> <li><a href="https://github.com/agronholm/anyio/commit/377518cd1160314f2fdf74f356ae9e848c94a065"><code>377518c</code></a> Bump actions/checkout from 6 to 7 in the github-actions group (<a href="https://redirect.github.com/agronholm/anyio/issues/1186">#1186</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/b42a2f5e8e9910d0c57b970f9a747427a9da26f0"><code>b42a2f5</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/1185">#1185</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/3ceb6ffbfa89be715f444550883356fbfbc13154"><code>3ceb6ff</code></a> Allow 0 tokens in a CapacityLimiter instantiated outside an event loop (<a href="https://redirect.github.com/agronholm/anyio/issues/1183">#1183</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/e10d1db74f7a59cb283a1e4b3b22227da11c6f07"><code>e10d1db</code></a> Add missing await to open_file() in file I/O concurrency example (<a href="https://redirect.github.com/agronholm/anyio/issues/1182">#1182</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/1dbc3b62256e5877bcf610aca98ba6e450d14c20"><code>1dbc3b6</code></a> OutcomeException should not discard test runner_task (<a href="https://redirect.github.com/agronholm/anyio/issues/1180">#1180</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/ffe91331adb912c5d150f5d373f7cd28a0e96a62"><code>ffe9133</code></a> Bumped up the version</li> <li><a href="https://github.com/agronholm/anyio/commit/f8b9f011e548c2c1c3e9abb0287bb1048ab3dca8"><code>f8b9f01</code></a> Fixed asyncio lock waiter deadlocks after cancellation (<a href="https://redirect.github.com/agronholm/anyio/issues/1145">#1145</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/d517ee1d41080073cc244d8adebf822a08b762de"><code>d517ee1</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/1176">#1176</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/550b68e1acaf82b1503b0e99fbc7f964cd07fe49"><code>550b68e</code></a> Make <code>anyio.run</code> support <code>Awaitable</code> at runtime on all backends (<a href="https://redirect.github.com/agronholm/anyio/issues/1171">#1171</a>)</li> <li>Additional commits viewable in <a href="https://github.com/agronholm/anyio/compare/4.13.0...4.14.1">compare view</a></li> </ul> </details> <br /> Updates `click` from 8.4.1 to 8.4.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pallets/click/releases">click's releases</a>.</em></p> <blockquote> <h2>8.4.2</h2> <p>This is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.</p> <p>PyPI: <a href="https://pypi.org/project/click/8.4.2/">https://pypi.org/project/click/8.4.2/</a> Changes: <a href="https://click.palletsprojects.com/page/changes/#version-8-4-2">https://click.palletsprojects.com/page/changes/#version-8-4-2</a> Milestone: <a href="https://github.com/pallets/click/milestone/34">https://github.com/pallets/click/milestone/34</a></p> <ul> <li>Fix Fish shell completion broken in <code>8.4.0</code> by <a href="https://redirect.github.com/pallets/click/issues/3126">#3126</a>. Newlines and tabs in option help text are now escaped, keeping the original completion format while still supporting multi-line help. <a href="https://redirect.github.com/pallets/click/issues/3502">#3502</a> <a href="https://redirect.github.com/pallets/click/issues/3043">#3043</a> <a href="https://redirect.github.com/pallets/click/issues/3504">#3504</a> <a href="https://redirect.github.com/pallets/click/issues/3508">#3508</a></li> <li>Deprecated commands and options with empty or missing help text no longer render a stray leading space before the <code>(DEPRECATED)</code> label. <a href="https://redirect.github.com/pallets/click/issues/3509">#3509</a></li> <li>A {class}<code>Group</code> with <code>invoke_without_command=True</code> marks its subcommand as optional in the usage help, showing <code>[COMMAND]</code> instead of <code>COMMAND</code>. <a href="https://redirect.github.com/pallets/click/issues/3059">#3059</a> <a href="https://redirect.github.com/pallets/click/issues/3507">#3507</a></li> <li><code>echo_via_pager</code> flushes after each write, so passing a generator streams output to the pager incrementally instead of staying hidden until the pipe buffer fills. <a href="https://redirect.github.com/pallets/click/issues/3242">#3242</a> <a href="https://redirect.github.com/pallets/click/issues/2542">#2542</a> <a href="https://redirect.github.com/pallets/click/issues/3534">#3534</a></li> <li><code>echo_via_pager</code> and <code>get_pager_file</code> no longer close a borrowed stdout stream when no external pager runs, completing the partial <code>I/O operation on closed file</code> fix from <a href="https://redirect.github.com/pallets/click/issues/3482">#3482</a>. <a href="https://redirect.github.com/pallets/click/issues/3449">#3449</a> <a href="https://redirect.github.com/pallets/click/issues/3533">#3533</a></li> <li>Fix CLI usage symopsis for optional arguments producing double square brackets <code>[[a|b|c]]...</code> whose type already brackets their metavar. <a href="https://redirect.github.com/pallets/click/issues/3578">#3578</a></li> <li>{func}<code>version_option</code> resolves a <code>package_name</code> that does not match an installed distribution as an import (top-level module) name via {func}<code>importlib.metadata.packages_distributions</code>. Packages whose top-level module name differs from their distribution name (<code>PIL</code> vs <code>Pillow</code>, <code>jwt</code> vs <code>PyJWT</code>) no longer raise <code>RuntimeError</code> out of the box. <a href="https://redirect.github.com/pallets/click/issues/2331">#2331</a> <a href="https://redirect.github.com/pallets/click/issues/1884">#1884</a> <a href="https://redirect.github.com/pallets/click/issues/3125">#3125</a> <a href="https://redirect.github.com/pallets/click/issues/3582">#3582</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pallets/click/blob/main/CHANGES.md">click's changelog</a>.</em></p> <blockquote> <h2>Version 8.4.2</h2> <p>Released 2026-06-24</p> <ul> <li>Fix Fish shell completion broken in <code>8.4.0</code> by {pr}<code>3126</code>. Newlines and tabs in option help text are now escaped, keeping the original completion format while still supporting multi-line help. {issue}<code>3502</code> {issue}<code>3043</code> {pr}<code>3504</code> {pr}<code>3508</code></li> <li>Deprecated commands and options with empty or missing help text no longer render a stray leading space before the <code>(DEPRECATED)</code> label. {pr}<code>3509</code></li> <li>A {class}<code>Group</code> with <code>invoke_without_command=True</code> marks its subcommand as optional in the usage help, showing <code>[COMMAND]</code> instead of <code>COMMAND</code>. {issue}<code>3059</code> {pr}<code>3507</code></li> <li><code>echo_via_pager</code> flushes after each write, so passing a generator streams output to the pager incrementally instead of staying hidden until the pipe buffer fills. {issue}<code>3242</code> {issue}<code>2542</code> {pr}<code>3534</code></li> <li><code>echo_via_pager</code> and <code>get_pager_file</code> no longer close a borrowed stdout stream when no external pager runs, completing the partial <code>I/O operation on closed file</code> fix from {pr}<code>3482</code>. {issue}<code>3449</code> {pr}<code>3533</code></li> <li>Fix CLI usage symopsis for optional arguments producing double square brackets <code>[[a|b|c]]...</code> whose type already brackets their metavar. {pr}<code>3578</code></li> <li>{func}<code>version_option</code> resolves a <code>package_name</code> that does not match an installed distribution as an import (top-level module) name via {func}<code>importlib.metadata.packages_distributions</code>. Packages whose top-level module name differs from their distribution name (<code>PIL</code> vs <code>Pillow</code>, <code>jwt</code> vs <code>PyJWT</code>) no longer raise <code>RuntimeError</code> out of the box. {issue}<code>2331</code> {issue}<code>1884</code> {issue}<code>3125</code> {pr}<code>3582</code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pallets/click/commit/b2e30a175449cfda909ee4fbf4a29a6a071cad53"><code>b2e30a1</code></a> Release version 8.4.2</li> <li><a href="https://github.com/pallets/click/commit/7a16b20e8a8a9bb57c7b4f6f15f60f6597478a49"><code>7a16b20</code></a> Fix <code>package_name</code> resolution when module differs from distribution name (<a href="https://redirect.github.com/pallets/click/issues/3582">#3582</a>)</li> <li><a href="https://github.com/pallets/click/commit/bec59289d8cf9b9b4010642b2fee483e5f8eeefc"><code>bec5928</code></a> Fix <code>package_name</code> resolution when top-level module differs from distribution...</li> <li><a href="https://github.com/pallets/click/commit/916883afad450c0c9bbc4212817900949131adbd"><code>916883a</code></a> Fix tests to not rely on <code>-Wdefault</code> option (<a href="https://redirect.github.com/pallets/click/issues/3591">#3591</a>)</li> <li><a href="https://github.com/pallets/click/commit/09195f6a92972c4e1bbb5493686456e6ba624520"><code>09195f6</code></a> Fix double-bracketing of choices in synopsis (<a href="https://redirect.github.com/pallets/click/issues/3578">#3578</a>)</li> <li><a href="https://github.com/pallets/click/commit/1557e265222c431b1e4d6c4dd6754006ed10dc02"><code>1557e26</code></a> Check for warning exception with idiomatic context manager</li> <li><a href="https://github.com/pallets/click/commit/d9ff13369ac78d9acff693faa79f26badd566ab3"><code>d9ff133</code></a> Static typing improvements in <code>click.shell_completion</code> (<a href="https://redirect.github.com/pallets/click/issues/3460">#3460</a>)</li> <li><a href="https://github.com/pallets/click/commit/762c97eef7c1b3779678992f26a553a2a8c80793"><code>762c97e</code></a> Fix double-bracketing of choices in synopsis</li> <li><a href="https://github.com/pallets/click/commit/8929d392781c8113bc569f388c15c47b94f86581"><code>8929d39</code></a> Convert changes to markdown. (<a href="https://redirect.github.com/pallets/click/issues/3559">#3559</a>)</li> <li><a href="https://github.com/pallets/click/commit/237be507dbe3e653f6b41b3ea53266805534e8cd"><code>237be50</code></a> Move changes headings down a level.</li> <li>Additional commits viewable in <a href="https://github.com/pallets/click/compare/8.4.1...8.4.2">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 ign... _Description has been truncated_ --------- 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: open-swe[bot] <open-swe@users.noreply.github.com> |
||
|
|
84e065a342 |
chore(deps): bump websockets from 15.0.1 to 16.0 in /libs/langgraph in the major group (#8256)
Bumps the major group in /libs/langgraph with 1 update: [websockets](https://github.com/python-websockets/websockets). Updates `websockets` from 15.0.1 to 16.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/python-websockets/websockets/releases">websockets's releases</a>.</em></p> <blockquote> <h2>16.0</h2> <p>See <a href="https://websockets.readthedocs.io/en/stable/project/changelog.html">https://websockets.readthedocs.io/en/stable/project/changelog.html</a> for details.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/python-websockets/websockets/commit/d4303a5d3e373fc8c34177c3dec1a9c75c8865fa"><code>d4303a5</code></a> Release version 16.0.</li> <li><a href="https://github.com/python-websockets/websockets/commit/851bcd756bf114e41438f04d928aa85838724fe1"><code>851bcd7</code></a> Bump pypa/cibuildwheel from 3.3.0 to 3.3.1</li> <li><a href="https://github.com/python-websockets/websockets/commit/740c8d373e10ced940fb33c3e0457991841c10c4"><code>740c8d3</code></a> Temporarily remove the trio implementation.</li> <li><a href="https://github.com/python-websockets/websockets/commit/92ea0553587ba07a4668c30dfd9e6210d9f26bc9"><code>92ea055</code></a> Add missing changelog entry.</li> <li><a href="https://github.com/python-websockets/websockets/commit/ba74244154df5a74f044d0f8cd971acac636bb74"><code>ba74244</code></a> Document bug fix.</li> <li><a href="https://github.com/python-websockets/websockets/commit/9410483c016463a6cd08b2a5321337b85e094f10"><code>9410483</code></a> Pin sphinx to avoid error in sphinxcontrib-trio.</li> <li><a href="https://github.com/python-websockets/websockets/commit/8e4d408e17b0bfa1a91aa62e054b8786a8132231"><code>8e4d408</code></a> Document asyncio's TLS read buffer.</li> <li><a href="https://github.com/python-websockets/websockets/commit/cb3500b0b030715dc3caa1e3ce95affe4a79b8bd"><code>cb3500b</code></a> Stop referring to the asyncio implementation as new.</li> <li><a href="https://github.com/python-websockets/websockets/commit/6563a9c884d92df4c889bb174dc84a56a7377686"><code>6563a9c</code></a> The threading implementation supports max_queue.</li> <li><a href="https://github.com/python-websockets/websockets/commit/9f17e92dbee2b9a14e02b2792cfbb127efbd4098"><code>9f17e92</code></a> Clarify that protocol_mutex protects pending_pings.</li> <li>Additional commits viewable in <a href="https://github.com/python-websockets/websockets/compare/15.0.1...16.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 <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: John Kennedy <65985482+jkennedyvz@users.noreply.github.com> Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com> |
||
|
|
7989e5956f |
chore(deps): bump the minor-and-patch group in /libs/sdk-py with 9 updates (#8252)
Bumps the minor-and-patch group in /libs/sdk-py with 9 updates: | Package | From | To | | --- | --- | --- | | [orjson](https://github.com/ijl/orjson) | `3.11.8` | `3.11.9` | | [langchain-protocol](https://github.com/langchain-ai/agent-protocol) | `0.0.15` | `0.0.18` | | [langchain-core](https://github.com/langchain-ai/langchain) | `1.4.7` | `1.4.8` | | [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` | | [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` | | [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.15.20` | | [ty](https://github.com/astral-sh/ty) | `0.0.43` | `0.0.55` | | [pydantic](https://github.com/pydantic/pydantic) | `2.13.3` | `2.13.4` | | [xxhash](https://github.com/ifduyue/python-xxhash) | `3.6.0` | `3.8.0` | Updates `orjson` from 3.11.8 to 3.11.9 <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.9</h2> <h3>Changed</h3> <ul> <li>Build now depends on Rust 1.95 or later instead of 1.89.</li> </ul> <h3>Fixed</h3> <ul> <li>Fix building on Rust 1.95.</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.9 - 2026-05-06</h2> <h3>Changed</h3> <ul> <li>Build now depends on Rust 1.95 or later instead of 1.89.</li> </ul> <h3>Fixed</h3> <ul> <li>Fix building on Rust 1.95.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ijl/orjson/commit/705515d77b28429d0b7c30c3d781abe52e8a1e5a"><code>705515d</code></a> 3.11.9</li> <li><a href="https://github.com/ijl/orjson/commit/d19055d5bab432f98d53b71606a9c6c23fb21bf6"><code>d19055d</code></a> build update</li> <li><a href="https://github.com/ijl/orjson/commit/77e2d96c3febe099cde2447856fe2523d68c71b0"><code>77e2d96</code></a> MSRV 1.95, remove compiler feature detection</li> <li>See full diff in <a href="https://github.com/ijl/orjson/compare/3.11.8...3.11.9">compare view</a></li> </ul> </details> <br /> Updates `langchain-protocol` from 0.0.15 to 0.0.18 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/agent-protocol/releases">langchain-protocol's releases</a>.</em></p> <blockquote> <h2>langchain-protocol==0.0.18</h2> <h2>What's Changed</h2> <ul> <li>feat(protocol): allow update and goto on input.respond by <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a> in <a href="https://redirect.github.com/langchain-ai/agent-protocol/pull/88">langchain-ai/agent-protocol#88</a></li> <li>v0.0.18 by <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a> in <a href="https://redirect.github.com/langchain-ai/agent-protocol/pull/89">langchain-ai/agent-protocol#89</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/agent-protocol/compare/langchain-protocol==0.0.17...langchain-protocol==0.0.18">https://github.com/langchain-ai/agent-protocol/compare/langchain-protocol==0.0.17...langchain-protocol==0.0.18</a></p> <h2>langchain-protocol==0.0.17</h2> <h2>What's Changed</h2> <ul> <li>Bump idna from 3.11 to 3.15 in /tooling in the uv 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/agent-protocol/pull/85">langchain-ai/agent-protocol#85</a></li> <li>feat: add token-detail breakdowns to UsageInfo by <a href="https://github.com/nick-hollon-lc"><code>@nick-hollon-lc</code></a> in <a href="https://redirect.github.com/langchain-ai/agent-protocol/pull/87">langchain-ai/agent-protocol#87</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/agent-protocol/compare/langchain-protocol==0.0.16...langchain-protocol==0.0.17">https://github.com/langchain-ai/agent-protocol/compare/langchain-protocol==0.0.16...langchain-protocol==0.0.17</a></p> <h2>langchain-protocol==0.0.16</h2> <h2>What's Changed</h2> <ul> <li>chore: bump <code>typing-extensions</code> floor from <code>>=4.7.0</code> to <code>>=4.13.0</code> by <a href="https://github.com/mdrxy"><code>@mdrxy</code></a> in <a href="https://redirect.github.com/langchain-ai/agent-protocol/pull/84">langchain-ai/agent-protocol#84</a></li> <li>feat(protocol): add batch resume for parallel interrupts by <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a> in <a href="https://redirect.github.com/langchain-ai/agent-protocol/pull/86">langchain-ai/agent-protocol#86</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/mdrxy"><code>@mdrxy</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/agent-protocol/pull/84">langchain-ai/agent-protocol#84</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/agent-protocol/compare/langchain-protocol==0.0.15...langchain-protocol==0.0.16">https://github.com/langchain-ai/agent-protocol/compare/langchain-protocol==0.0.15...langchain-protocol==0.0.16</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/langchain-ai/agent-protocol/commit/0ff7cd3962e8b4b3e347b76203be7dfeba003928"><code>0ff7cd3</code></a> v0.0.18 (<a href="https://redirect.github.com/langchain-ai/agent-protocol/issues/89">#89</a>)</li> <li><a href="https://github.com/langchain-ai/agent-protocol/commit/aae0e86f0daecac8867b90f2a68567641926ea3c"><code>aae0e86</code></a> feat(protocol): allow update and goto on input.respond (<a href="https://redirect.github.com/langchain-ai/agent-protocol/issues/88">#88</a>)</li> <li><a href="https://github.com/langchain-ai/agent-protocol/commit/c07051e7239028ee37c52b36641945c35022babc"><code>c07051e</code></a> Merge pull request <a href="https://redirect.github.com/langchain-ai/agent-protocol/issues/87">#87</a> from langchain-ai/nh/usage-token-details</li> <li><a href="https://github.com/langchain-ai/agent-protocol/commit/44d72d669bc35aad736cf557989136d93a0d297e"><code>44d72d6</code></a> chore: bump <code>@langchain/protocol</code> (js) to 0.0.17</li> <li><a href="https://github.com/langchain-ai/agent-protocol/commit/22ca3bfb68b8c7a98b3f6c56a455da111b49728e"><code>22ca3bf</code></a> feat: add token-detail breakdowns to UsageInfo</li> <li><a href="https://github.com/langchain-ai/agent-protocol/commit/0d511c82fc0e14f719b22da7b4905dd0e6b95788"><code>0d511c8</code></a> Merge pull request <a href="https://redirect.github.com/langchain-ai/agent-protocol/issues/85">#85</a> from langchain-ai/dependabot/uv/tooling/uv-d665ee01e3</li> <li><a href="https://github.com/langchain-ai/agent-protocol/commit/8246ac0b6c2db63fc3d9ffb257faa9325d49c8d2"><code>8246ac0</code></a> feat(protocol): add batch resume for parallel interrupts (<a href="https://redirect.github.com/langchain-ai/agent-protocol/issues/86">#86</a>)</li> <li><a href="https://github.com/langchain-ai/agent-protocol/commit/298e6c86564a84d847b70ba892aed2f045a85b2e"><code>298e6c8</code></a> Bump idna in /tooling in the uv group across 1 directory</li> <li><a href="https://github.com/langchain-ai/agent-protocol/commit/0f896ba72976145b0f98af1ddc25c3baaf652f1a"><code>0f896ba</code></a> Merge pull request <a href="https://redirect.github.com/langchain-ai/agent-protocol/issues/84">#84</a> from langchain-ai/mdrxy/bump-dep</li> <li><a href="https://github.com/langchain-ai/agent-protocol/commit/2e890bb0fb4887eb5f5f3e8ce21bc77f4cad2659"><code>2e890bb</code></a> chore: bump <code>typing-extensions</code> floor from <code>>=4.7.0</code> to <code>>=4.13.0</code></li> <li>See full diff in <a href="https://github.com/langchain-ai/agent-protocol/compare/langchain-protocol==0.0.15...langchain-protocol==0.0.18">compare view</a></li> </ul> </details> <br /> Updates `langchain-core` from 1.4.7 to 1.4.8 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langchain/releases">langchain-core's releases</a>.</em></p> <blockquote> <h2>langchain-core==1.4.8</h2> <p>Changes since langchain-core==1.4.7</p> <p>chore: bump jupyter-server from 2.18.0 to 2.20.0 in /libs/core (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38252">#38252</a>) chore: bump tornado from 6.5.6 to 6.5.7 in /libs/core (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38184">#38184</a>) chore: bump bleach from 6.3.0 to 6.4.0 in /libs/core (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38198">#38198</a>) release(core): 1.4.8 (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38254">#38254</a>) refactor(langchain-classic): remove code for Python < 3.10 (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38194">#38194</a>) perf(core): memoize <code>BaseTool.tool_call_schema</code> subset model and cache <code>model_json_schema</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38073">#38073</a>) style(core): fix style in <code>langchain_core</code>/<code>_security</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38189">#38189</a>) fix(core): preserve usage token details in v3 streaming events (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38021">#38021</a>) fix(core): <code>disallow_any_generics</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38156">#38156</a>) chore(core): add mypy <code>warn_unreachable</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38109">#38109</a>) docs: refresh <code>README</code> installation and resources (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38119">#38119</a>) test(core,langchain): update tests for explicit deserialization allowlists (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38118">#38118</a>)</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/langchain-ai/langchain/commit/15b0a4930b5306bb2174f16d92fe4b7837147d0a"><code>15b0a49</code></a> chore: bump jupyter-server from 2.18.0 to 2.20.0 in /libs/core (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38252">#38252</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/612139f3af5f55b6311695fe6b139f0b6a6f68a2"><code>612139f</code></a> chore: bump tornado from 6.5.6 to 6.5.7 in /libs/text-splitters (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38175">#38175</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/921e370a67af4254b948de94c4db4587f4716a84"><code>921e370</code></a> chore: bump cryptography from 46.0.7 to 48.0.1 in /libs/langchain_v1 (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38176">#38176</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/1aabc26836e0c1220121a1f37e3a2691e20f2f19"><code>1aabc26</code></a> chore: bump aiohttp from 3.14.0 to 3.14.1 in /libs/langchain_v1 (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38179">#38179</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/8d51355f1f81825b72cb55303a39825ecbdc6b44"><code>8d51355</code></a> chore: bump aiohttp from 3.14.0 to 3.14.1 in /libs/langchain (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38180">#38180</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/0b1b7bb77a7e8cf98071e088da777ff52558f771"><code>0b1b7bb</code></a> chore: bump cryptography from 46.0.7 to 48.0.1 in /libs/langchain (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38181">#38181</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/dfd062742271ad693c8bebe4ff1784cc4f408ade"><code>dfd0627</code></a> chore: bump starlette from 1.0.1 to 1.3.1 in /libs/langchain (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38182">#38182</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/0269392514c41e44bfa0413c3f550c06e46d2e1e"><code>0269392</code></a> chore: bump tornado from 6.5.6 to 6.5.7 in /libs/langchain (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38183">#38183</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/24d0b3791af52796b3fe5330f38e99b89afda4b1"><code>24d0b37</code></a> chore: bump tornado from 6.5.6 to 6.5.7 in /libs/core (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38184">#38184</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/f368854ec388f0a8e98b9e77aa8da83ebad1b978"><code>f368854</code></a> chore: bump bleach from 6.2.0 to 6.4.0 in /libs/text-splitters (<a href="https://redirect.github.com/langchain-ai/langchain/issues/38195">#38195</a>)</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langchain/compare/langchain-core==1.4.7...langchain-core==1.4.8">compare view</a></li> </ul> </details> <br /> Updates `pytest` from 9.0.3 to 9.1.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest/releases">pytest's releases</a>.</em></p> <blockquote> <h2>9.1.1</h2> <h1>pytest 9.1.1 (2026-06-19)</h1> <h2>Bug fixes</h2> <ul> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/14220">#14220</a>: Fixed a logic bug in <code>pytest.RaisesGroup</code> which would might cause it to display incorrect "It matches <!-- raw HTML omitted -->FooError()<!-- raw HTML omitted --> which was paired with <!-- raw HTML omitted -->BarError<!-- raw HTML omitted -->" messages.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/14591">#14591</a>: Fixed a regression in pytest 9.1.0 which caused overriding a parametrized fixture with an indirect <!-- raw HTML omitted --><a href="https://github.com/pytest"><code>@pytest</code></a>.mark.parametrize<!-- raw HTML omitted --> to fail with "duplicate parametrization of '<fixture name>'".</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/14606">#14606</a>: Fixed <code>list-item</code> typing errors from mypy in <code>@pytest.mark.parametrize <pytest.mark.parametrize ref></code> <code>argvalues</code> parameter.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/14608">#14608</a>: Fixed a regression in pytest 9.1.0 where <code>conftest.py</code> files located in <code><invocation dir>/test*</code> were no longer loaded as initial conftests when invoked without arguments. This could cause certain hooks (like <code>pytest_addoption</code>) in these files to not fire.</li> </ul> <h2>9.1.0</h2> <h1>pytest 9.1.0 (2026-06-13)</h1> <h2>Removals and backward incompatible breaking changes</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/14533">#14533</a>: When using <code>--doctest-modules</code>, autouse fixtures with <code>module</code>, <code>package</code> or <code>session</code> scope that are defined inline in Python test modules (not plugins or conftests) will now possibly execute twice.</p> <p>If this is undesirable, move the fixture definition to a <code>conftest.py</code> file if possible.</p> <p>Technical explanation for those interested: When using <!-- raw HTML omitted -->--doctest-modules<!-- raw HTML omitted -->, pytest possibly collects Python modules twice, once as <code>pytest.Module</code> and once as a <code>DoctestModule</code> (depending on the configuration). Due to improvements in pytest's fixture implementation, if e.g. the <code>DoctestModule</code> collects a fixture, it is now visible to it only, and not to the <code>Module</code>. This means that both need to register the fixtures independently.</p> </li> </ul> <h2>Deprecations (removal in next major release)</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/10819">#10819</a>: Added a deprecation warning for class-scoped fixtures defined as instance methods (without <code>@classmethod</code>). Such fixtures set attributes on a different instance than the test methods use, leading to unexpected behavior. Use <code>@classmethod</code> decorator instead -- by <code>yastcher</code>.</p> <p>See <code>10819</code> and <code>14011</code>.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/12882">#12882</a>: Calling <code>request.getfixturevalue() <pytest.FixtureRequest.getfixturevalue></code> during teardown to request a fixture that was not already requested is now deprecated and will become an error in pytest 10.</p> <p>See <code>dynamic-fixture-request-during-teardown</code> for details.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13409">#13409</a>: Using non-<code>~collections.abc.Collection</code> iterables (such as generators, iterators, or custom iterable objects) for the <code>argvalues</code> parameter in <code>@pytest.mark.parametrize <pytest.mark.parametrize ref></code> and <code>metafunc.parametrize <pytest.Metafunc.parametrize></code> is now deprecated.</p> <p>These iterables get exhausted after the first iteration, leading to tests getting unexpectedly skipped in cases such as running <code>pytest.main()</code> multiple times, using class-level parametrize decorators, or collecting tests multiple times.</p> <p>See <code>parametrize-iterators</code> for details and suggestions.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13946">#13946</a>: The private <code>config.inicfg</code> attribute is now deprecated. Use <code>config.getini() <pytest.Config.getini></code> to access configuration values instead.</p> <p>See <code>config-inicfg</code> for more details.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/14004">#14004</a>: Passing <code>baseid</code> to <code>~pytest.FixtureDef</code> or <code>nodeid</code> strings to fixture registration APIs is now deprecated. These are internal pytest APIs that are used by some plugins.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest/commit/cf470ec0bf7eb89cd97dd56df4859eae5db46447"><code>cf470ec</code></a> Prepare release version 9.1.1</li> <li><a href="https://github.com/pytest-dev/pytest/commit/e0c8ce6cc5db1f08363be6f152c32e6838df2690"><code>e0c8ce6</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14625">#14625</a> from pytest-dev/patchback/backports/9.1.x/a07c31a97...</li> <li><a href="https://github.com/pytest-dev/pytest/commit/1b82d1694fce22385ee7a4287917fbafbaf2e757"><code>1b82d16</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14624">#14624</a> from pytest-dev/patchback/backports/9.1.x/b375b79ec...</li> <li><a href="https://github.com/pytest-dev/pytest/commit/501c4bc784da3b08bfcaa64858eba5d15dc59e53"><code>501c4bc</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14596">#14596</a> from bluetech/doc-classmethod</li> <li><a href="https://github.com/pytest-dev/pytest/commit/b61f588e36e9377c3d1d3f06bece1da0fc31d9ca"><code>b61f588</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14622">#14622</a> from chrisburr/fix-14608-initial-conftest-test-subdir</li> <li><a href="https://github.com/pytest-dev/pytest/commit/9a567e009f4d2da3ce1721c6db3109cb5744d40a"><code>9a567e0</code></a> [automated] Update plugin list (<a href="https://redirect.github.com/pytest-dev/pytest/issues/14617">#14617</a>) (<a href="https://redirect.github.com/pytest-dev/pytest/issues/14618">#14618</a>)</li> <li><a href="https://github.com/pytest-dev/pytest/commit/ef8b2993e5b48639e4a3d97d0525df9760781384"><code>ef8b299</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14620">#14620</a> from pytest-dev/patchback/backports/9.1.x/680f9f3ed...</li> <li><a href="https://github.com/pytest-dev/pytest/commit/66abd0784d4cb7c1ba44ab9a8896506cd4985acc"><code>66abd07</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14220">#14220</a> from bysiber/fix-stale-iexp-raisesgroup</li> <li><a href="https://github.com/pytest-dev/pytest/commit/79fbf93b666cac5f27c9dad047943d47b766c8d5"><code>79fbf93</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14612">#14612</a> from pytest-dev/patchback/backports/9.1.x/974ed48b6...</li> <li><a href="https://github.com/pytest-dev/pytest/commit/0d312eb876177e9f1c04262b54060a41034ebf5c"><code>0d312eb</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14611">#14611</a> from bluetech/parametrize-argvalues-typing</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest/compare/9.0.3...9.1.1">compare view</a></li> </ul> </details> <br /> Updates `pytest-asyncio` from 1.3.0 to 1.4.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-asyncio/releases">pytest-asyncio's releases</a>.</em></p> <blockquote> <h2>pytest-asyncio v1.4.0</h2> <h1><a href="https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0">1.4.0</a> - 2026-05-26</h1> <h2>Deprecated</h2> <ul> <li>Overriding the <em>event_loop_policy</em> fixture is deprecated. Use the <code>pytest_asyncio_loop_factories</code> hook instead. (<a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419">#1419</a>)</li> </ul> <h2>Added</h2> <ul> <li> <p>Added the <code>pytest_asyncio_loop_factories</code> hook to parametrize asyncio tests with custom event loop factories.</p> <p>The hook returns a mapping of factory names to loop factories, and <code>pytest.mark.asyncio(loop_factories=[...])</code> selects a subset of configured factories per test. When a single factory is configured, test names are unchanged.</p> <p>Synchronous <code>@pytest_asyncio.fixture</code> functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via <code>asyncio.run()</code> or <code>asyncio.set_event_loop(None)</code>). (<a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164">#1164</a>)</p> </li> </ul> <h2>Changed</h2> <ul> <li>Improved the readability of the warning message that is displayed when <code>asyncio_default_fixture_loop_scope</code> is unset (<a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298">#1298</a>)</li> <li>Only import <code>asyncio.AbstractEventLoopPolicy</code> for type checking to avoid raising a DeprecationWarning. (<a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394">#1394</a>)</li> <li>Updated minimum supported pytest version to v8.4.0. (<a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1397">#1397</a>)</li> </ul> <h2>Fixed</h2> <ul> <li>Fixed a <code>ResourceWarning: unclosed event loop</code> warning that could occur when a synchronous test called <code>asyncio.run()</code> or otherwise unset the current event loop after pytest-asyncio had run an async test or fixture. (<a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/724">#724</a>)</li> </ul> <h2>Notes for Downstream Packagers</h2> <ul> <li>Added dependency on <code>sphinx-tabs >= 3.5</code> to organize documentation examples into tabs. (<a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1395">#1395</a>)</li> </ul> <h2>pytest-asyncio v1.4.0a2</h2> <h1><a href="https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0a2">1.4.0a2</a> - 2026-05-02</h1> <h2>Deprecated</h2> <ul> <li>Overriding the <em>event_loop_policy</em> fixture is deprecated. Use the <code>pytest_asyncio_loop_factories</code> hook instead. (<a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419">#1419</a>)</li> </ul> <h2>Added</h2> <ul> <li> <p>Added the <code>pytest_asyncio_loop_factories</code> hook to parametrize asyncio tests with custom event loop factories.</p> <p>The hook returns a mapping of factory names to loop factories, and <code>pytest.mark.asyncio(loop_factories=[...])</code> selects a subset of configured factories per test. When a single factory is configured, test names are unchanged on pytest 8.4+.</p> <p>Synchronous <code>@pytest_asyncio.fixture</code> functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via <code>asyncio.run()</code> or <code>asyncio.set_event_loop(None)</code>). (<a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164">#1164</a>)</p> </li> </ul> <h2>Changed</h2> <ul> <li>Improved the readability of the warning message that is displayed when <code>asyncio_default_fixture_loop_scope</code> is unset (<a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298">#1298</a>)</li> <li>Only import <code>asyncio.AbstractEventLoopPolicy</code> for type checking to avoid raising a DeprecationWarning. (<a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394">#1394</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/6e14cd2af9292dca1fa2b027a06bbc40b0e0e425"><code>6e14cd2</code></a> chore: Prepare release of v1.4.0.</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/4b900fb5d0c30949c574e55dd904ee179f858a5e"><code>4b900fb</code></a> Build(deps): Bump codecov/codecov-action from 6.0.0 to 6.0.1</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/ab9f63245094865c42c940a34af724b0dec1debf"><code>ab9f632</code></a> Build(deps): Bump zipp from 3.23.1 to 4.1.0</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/a56fc77ecd59f781d8471b0f6a82bf58e08c95fa"><code>a56fc77</code></a> Build(deps): Bump hypothesis from 6.152.6 to 6.152.8</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/e8bae9bc1f197731fc1a210c0da557af7b698e6d"><code>e8bae9b</code></a> Build(deps): Bump requests from 2.34.0 to 2.34.2</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/fc433402c570fd36a7a227ef4bc3abd4579299de"><code>fc43340</code></a> Build(deps): Bump idna from 3.14 to 3.15</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/762eaf5033b798b965c92afdbb2cebefa8fc3a8b"><code>762eaf5</code></a> Build(deps): Bump jaraco-functools from 4.4.0 to 4.5.0</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/b62e2228c80070977baf6b77ba89d5c148af920f"><code>b62e222</code></a> Build(deps): Bump click from 8.3.3 to 8.4.0</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/919044700627889d25ca63b6e7a3bc785f3137eb"><code>9190447</code></a> Build(deps): Bump pydantic from 2.13.3 to 2.13.4</li> <li><a href="https://github.com/pytest-dev/pytest-asyncio/commit/82a393c5e31b6ebbbd8ec2a8dafc5f35b9cf1236"><code>82a393c</code></a> ci: Remove unnecessary debug output.</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-asyncio/compare/v1.3.0...v1.4.0">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.12 to 0.15.20 <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.20</h2> <h2>Release Notes</h2> <p>Released on 2026-06-25.</p> <h3>Preview features</h3> <ul> <li>Allow human-readable names in rule selectors (<a href="https://redirect.github.com/astral-sh/ruff/pull/25887">#25887</a>)</li> <li>Emit a warning instead of an error for unknown rule selectors (<a href="https://redirect.github.com/astral-sh/ruff/pull/26113">#26113</a>)</li> <li>Match <code>noqa</code> shebang handling in <code>ruff:ignore</code> comments (<a href="https://redirect.github.com/astral-sh/ruff/pull/26286">#26286</a>)</li> <li>[<code>ruff</code>] Remove <code>pytest-fixture-autouse</code> (<code>RUF076</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26240">#26240</a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/26371">#26371</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add versioning sections to custom crate READMEs (<a href="https://redirect.github.com/astral-sh/ruff/pull/26317">#26317</a>)</li> <li>Update <code>ruff_python_parser</code> README for crates.io (<a href="https://redirect.github.com/astral-sh/ruff/pull/26315">#26315</a>)</li> <li>[<code>perflint</code>] Clarify that <code>PERF402</code> applies to any iterable (<a href="https://redirect.github.com/astral-sh/ruff/pull/26242">#26242</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/dhruvmanila"><code>@dhruvmanila</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/trilamsr"><code>@trilamsr</code></a></li> </ul> <h2>Install ruff 0.15.20</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.20/ruff-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-installer.ps1 | iex" </code></pre> <h2>Download ruff 0.15.20</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-apple-darwin.tar.gz">ruff-aarch64-apple-darwin.tar.gz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-x86_64-apple-darwin.tar.gz">ruff-x86_64-apple-darwin.tar.gz</a></td> <td>Intel macOS</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-pc-windows-msvc.zip">ruff-aarch64-pc-windows-msvc.zip</a></td> <td>ARM64 Windows</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-i686-pc-windows-msvc.zip">ruff-i686-pc-windows-msvc.zip</a></td> <td>x86 Windows</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-i686-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-x86_64-pc-windows-msvc.zip">ruff-x86_64-pc-windows-msvc.zip</a></td> <td>x64 Windows</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-unknown-linux-gnu.tar.gz">ruff-aarch64-unknown-linux-gnu.tar.gz</a></td> <td>ARM64 Linux</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-i686-unknown-linux-gnu.tar.gz">ruff-i686-unknown-linux-gnu.tar.gz</a></td> <td>x86 Linux</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-i686-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> </tbody> </table> <!-- 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.20</h2> <p>Released on 2026-06-25.</p> <h3>Preview features</h3> <ul> <li>Allow human-readable names in rule selectors (<a href="https://redirect.github.com/astral-sh/ruff/pull/25887">#25887</a>)</li> <li>Emit a warning instead of an error for unknown rule selectors (<a href="https://redirect.github.com/astral-sh/ruff/pull/26113">#26113</a>)</li> <li>Match <code>noqa</code> shebang handling in <code>ruff:ignore</code> comments (<a href="https://redirect.github.com/astral-sh/ruff/pull/26286">#26286</a>)</li> <li>[<code>ruff</code>] Remove <code>pytest-fixture-autouse</code> (<code>RUF076</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26240">#26240</a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/26371">#26371</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add versioning sections to custom crate READMEs (<a href="https://redirect.github.com/astral-sh/ruff/pull/26317">#26317</a>)</li> <li>Update <code>ruff_python_parser</code> README for crates.io (<a href="https://redirect.github.com/astral-sh/ruff/pull/26315">#26315</a>)</li> <li>[<code>perflint</code>] Clarify that <code>PERF402</code> applies to any iterable (<a href="https://redirect.github.com/astral-sh/ruff/pull/26242">#26242</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/dhruvmanila"><code>@dhruvmanila</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/trilamsr"><code>@trilamsr</code></a></li> </ul> <h2>0.15.19</h2> <p>Released on 2026-06-23.</p> <h3>Preview features</h3> <ul> <li>Support human-readable names when hovering suppression comments and in code actions (<a href="https://redirect.github.com/astral-sh/ruff/pull/26114">#26114</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Fall back to default settings when editor-only settings are invalid (<a href="https://redirect.github.com/astral-sh/ruff/pull/26244">#26244</a>)</li> <li>Fix panic when inserting text at a notebook cell boundary (<a href="https://redirect.github.com/astral-sh/ruff/pull/26111">#26111</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>pylint</code>] Update fix suggestions for <code>__floor__</code>, <code>__trunc__</code>, <code>__length_hint__</code>, and <code>__matmul__</code> variants (<code>PLC2801</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26239">#26239</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Avoid allocating when parsing single string literals (<a href="https://redirect.github.com/astral-sh/ruff/pull/26200">#26200</a>)</li> <li>Avoid reallocating singleton call arguments (<a href="https://redirect.github.com/astral-sh/ruff/pull/26223">#26223</a>)</li> <li>Lazily create source files for lint diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/26226">#26226</a>)</li> <li>Optimize formatter text width and indentation (<a href="https://redirect.github.com/astral-sh/ruff/pull/26236">#26236</a>)</li> <li>Reserve capacity for builtin bindings (<a href="https://redirect.github.com/astral-sh/ruff/pull/26229">#26229</a>)</li> <li>Skip repeated-key checks for singleton dictionaries (<a href="https://redirect.github.com/astral-sh/ruff/pull/26228">#26228</a>)</li> <li>Use ArrayVec for qualified name segments (<a href="https://redirect.github.com/astral-sh/ruff/pull/26224">#26224</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/f82a36b6baf8c0547a17bbde6c0d927ccd45d938"><code>f82a36b</code></a> Bump 0.15.20 (<a href="https://redirect.github.com/astral-sh/ruff/issues/26376">#26376</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/af329438b55d5aa8ca28725f17abbae63b5c815d"><code>af32943</code></a> Improve the summarise-ecosystem-results skill (<a href="https://redirect.github.com/astral-sh/ruff/issues/26378">#26378</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/485ebab5de692aad34720898cd80245b6092ba86"><code>485ebab</code></a> Remove <code>RUF076</code> name from schema (<a href="https://redirect.github.com/astral-sh/ruff/issues/26371">#26371</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/ef81835ce3da615346584dc446de0fe26bfc154b"><code>ef81835</code></a> [ty] Implement rust-analyzer's "Click for full compiler diagnostic" feature (...</li> <li><a href="https://github.com/astral-sh/ruff/commit/572b31e2377a701a7365f069f6ef87002962cb2b"><code>572b31e</code></a> [<code>ruff</code>] Remove <code>pytest-fixture-autouse</code> (<code>RUF076</code>) (<a href="https://redirect.github.com/astral-sh/ruff/issues/26240">#26240</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/f703f219d7fddd1a4abba9fa81e34773c185a4b9"><code>f703f21</code></a> Allow human-readable names in rule selectors (<a href="https://redirect.github.com/astral-sh/ruff/issues/25887">#25887</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/0d726b28ee35413926145ffef4ac1143cae9ea1e"><code>0d726b2</code></a> [ty] Reuse equality semantics for membership compatibility (<a href="https://redirect.github.com/astral-sh/ruff/issues/25955">#25955</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/dbe6e9848c3f78fdaf543cfc000939ebc73b5f00"><code>dbe6e98</code></a> [ty] Infer definite equality comparison results (<a href="https://redirect.github.com/astral-sh/ruff/issues/26337">#26337</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/e700ea357a2196d76b58eb89b2031ddb5ca896e0"><code>e700ea3</code></a> [ty] Prove TypedDict structural patterns exhaustive (<a href="https://redirect.github.com/astral-sh/ruff/issues/26285">#26285</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/6a0d2ec93959d966430b8c39d4de5c3e8a88e911"><code>6a0d2ec</code></a> [ty] Widen inferred class-valued instance attributes (<a href="https://redirect.github.com/astral-sh/ruff/issues/26338">#26338</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.15.12...0.15.20">compare view</a></li> </ul> </details> <br /> Updates `ty` from 0.0.43 to 0.0.55 <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.55</h2> <h2>Release Notes</h2> <p>Released on 2026-06-26.</p> <h3>LSP server</h3> <ul> <li>Render full diagnostics in color (<a href="https://redirect.github.com/astral-sh/ruff/pull/26384">#26384</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Document colored diagnostic output (<a href="https://redirect.github.com/astral-sh/ty/pull/3858">#3858</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Improve vendored filesystem concurrency (<a href="https://redirect.github.com/astral-sh/ruff/pull/26408">#26408</a>)</li> <li>Optimize enum comparisons in equality evaluation (<a href="https://redirect.github.com/astral-sh/ruff/pull/26340">#26340</a>)</li> <li>Remove redundant semantic index shrinks (<a href="https://redirect.github.com/astral-sh/ruff/pull/26392">#26392</a>)</li> <li>Use never-change durability for one-shot checks (<a href="https://redirect.github.com/astral-sh/ruff/pull/26359">#26359</a>)</li> </ul> <h3>Core type checking</h3> <ul> <li>Correct enum alias detection and scalar constructors (<a href="https://redirect.github.com/astral-sh/ruff/pull/26345">#26345</a>)</li> <li>Fix structural pattern binding inference (<a href="https://redirect.github.com/astral-sh/ruff/pull/26411">#26411</a>)</li> <li>Improve variable-length tuple slicing (<a href="https://redirect.github.com/astral-sh/ruff/pull/26151">#26151</a>)</li> <li>Infer class and mapping pattern bindings (<a href="https://redirect.github.com/astral-sh/ruff/pull/25941">#25941</a>)</li> <li>Infer empty collection constructors from later uses (<a href="https://redirect.github.com/astral-sh/ruff/pull/26389">#26389</a>)</li> <li>Skip shadowed submodule bindings during import analysis (<a href="https://redirect.github.com/astral-sh/ruff/pull/26385">#26385</a>)</li> <li>Sync vendored typeshed stubs (<a href="https://redirect.github.com/astral-sh/ruff/pull/26406">#26406</a>). <a href="https://github.com/python/typeshed/compare/8e6a886ca5b14742924be721d345a619762d6e93...3c6221722aac5bd9dbfc5fbf7b4f0bf64b2c5724">Typeshed diff</a></li> <li>Track literal iterable emptiness for reachability (<a href="https://redirect.github.com/astral-sh/ruff/pull/25222">#25222</a>)</li> <li>Validate positional class patterns against <code>__match_args__</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/26195">#26195</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/carljm"><code>@carljm</code></a></li> <li><a href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/mtshiba"><code>@mtshiba</code></a></li> <li><a href="https://github.com/felixscherz"><code>@felixscherz</code></a></li> </ul> <h2>Install ty 0.0.55</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ty/releases/download/0.0.55/ty-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</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.55</h2> <p>Released on 2026-06-26.</p> <h3>LSP server</h3> <ul> <li>Render full diagnostics in color (<a href="https://redirect.github.com/astral-sh/ruff/pull/26384">#26384</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Document colored diagnostic output (<a href="https://redirect.github.com/astral-sh/ty/pull/3858">#3858</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Improve vendored filesystem concurrency (<a href="https://redirect.github.com/astral-sh/ruff/pull/26408">#26408</a>)</li> <li>Optimize enum comparisons in equality evaluation (<a href="https://redirect.github.com/astral-sh/ruff/pull/26340">#26340</a>)</li> <li>Remove redundant semantic index shrinks (<a href="https://redirect.github.com/astral-sh/ruff/pull/26392">#26392</a>)</li> <li>Use never-change durability for one-shot checks (<a href="https://redirect.github.com/astral-sh/ruff/pull/26359">#26359</a>)</li> </ul> <h3>Core type checking</h3> <ul> <li>Correct enum alias detection and scalar constructors (<a href="https://redirect.github.com/astral-sh/ruff/pull/26345">#26345</a>)</li> <li>Fix structural pattern binding inference (<a href="https://redirect.github.com/astral-sh/ruff/pull/26411">#26411</a>)</li> <li>Improve variable-length tuple slicing (<a href="https://redirect.github.com/astral-sh/ruff/pull/26151">#26151</a>)</li> <li>Infer class and mapping pattern bindings (<a href="https://redirect.github.com/astral-sh/ruff/pull/25941">#25941</a>)</li> <li>Infer empty collection constructors from later uses (<a href="https://redirect.github.com/astral-sh/ruff/pull/26389">#26389</a>)</li> <li>Skip shadowed submodule bindings during import analysis (<a href="https://redirect.github.com/astral-sh/ruff/pull/26385">#26385</a>)</li> <li>Sync vendored typeshed stubs (<a href="https://redirect.github.com/astral-sh/ruff/pull/26406">#26406</a>). <a href="https://github.com/python/typeshed/compare/8e6a886ca5b14742924be721d345a619762d6e93...3c6221722aac5bd9dbfc5fbf7b4f0bf64b2c5724">Typeshed diff</a></li> <li>Track literal iterable emptiness for reachability (<a href="https://redirect.github.com/astral-sh/ruff/pull/25222">#25222</a>)</li> <li>Validate positional class patterns against <code>__match_args__</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/26195">#26195</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/carljm"><code>@carljm</code></a></li> <li><a href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/mtshiba"><code>@mtshiba</code></a></li> <li><a href="https://github.com/felixscherz"><code>@felixscherz</code></a></li> </ul> <h2>0.0.54</h2> <p>Released on 2026-06-25.</p> <h3>Bug fixes</h3> <ul> <li>Avoid duplicate configuration error output (<a href="https://redirect.github.com/astral-sh/ruff/pull/26375">#26375</a>)</li> <li>Avoid stack overflows in reachability analysis (<a href="https://redirect.github.com/astral-sh/ruff/pull/26272">#26272</a>)</li> <li>Fix divergent recursive tuple cycle handling in ty (<a href="https://redirect.github.com/astral-sh/ruff/pull/26316">#26316</a>)</li> <li>Fix panic from relation queries during cycle recovery (<a href="https://redirect.github.com/astral-sh/ruff/pull/26335">#26335</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/42869400da56f4ee7ce752141f81b50bb318e4e2"><code>4286940</code></a> Bump version to 0.0.55 (<a href="https://redirect.github.com/astral-sh/ty/issues/3866">#3866</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/5374b30ff462ef6e59d23dc9ba515007b02464a8"><code>5374b30</code></a> Update benchmarks for ty 0.0.54 (<a href="https://redirect.github.com/astral-sh/ty/issues/3865">#3865</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/3ed874d053ff9529c9fd0205a6d3bbe6a7407535"><code>3ed874d</code></a> Document colored diagnostic output (<a href="https://redirect.github.com/astral-sh/ty/issues/3858">#3858</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/bf8a7dd584f53d67d873c750afc1494331f93502"><code>bf8a7dd</code></a> Bump version to 0.0.54</li> <li><a href="https://github.com/astral-sh/ty/commit/78e094dfaf6245514f124b043b18c9a20edd8f08"><code>78e094d</code></a> Document the <code>fullDiagnosticOutput</code> extension to the Language Server Protocol...</li> <li><a href="https://github.com/astral-sh/ty/commit/7bda89e5069d747bd7f54513dcd0263157a8f694"><code>7bda89e</code></a> Document ty's <code>@Todo</code> type in the typing FAQ (<a href="https://redirect.github.com/astral-sh/ty/issues/3847">#3847</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/66a94cde4970b405a770e4c6ef4ac2a9bb6bf733"><code>66a94cd</code></a> Update maturin to v1.14.0 (<a href="https://redirect.github.com/astral-sh/ty/issues/3840">#3840</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/dc2b39d1e29e55a4a6d83486fffa936ba5121a72"><code>dc2b39d</code></a> Update prek dependencies (<a href="https://redirect.github.com/astral-sh/ty/issues/3839">#3839</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/23f26f98a22d3a0df412846506f3af6e76cf48e4"><code>23f26f9</code></a> Bump version to 0.0.53 (<a href="https://redirect.github.com/astral-sh/ty/issues/3841">#3841</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/13f91b093e004c76aa548a221c7b577dfbdd7ea6"><code>13f91b0</code></a> Bump version to 0.0.52 (<a href="https://redirect.github.com/astral-sh/ty/issues/3828">#3828</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ty/compare/0.0.43...0.0.55">compare view</a></li> </ul> </details> <br /> Updates `pydantic` from 2.13.3 to 2.13.4 <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.4 2026-05-06</h2> <h2>v2.13.4 (2026-05-06)</h2> <h3>What's Changed</h3> <h4>Packaging</h4> <ul> <li>Bump libc from 0.2.155 to 0.2.185 by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13109">#13109</a></li> <li>Adapt <code>pydantic-core</code> linker flags on macOS by <a href="https://github.com/washingtoneg"><code>@washingtoneg</code></a> and <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13147">#13147</a></li> </ul> <h4>Fixes</h4> <ul> <li>Preserve <code>RootModel</code> core metadata by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13129">#13129</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4">https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4</a></p> </blockquote> </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.4 (2026-05-06)</h2> <p><a href="https://github.com/pydantic/pydantic/releases/tag/v2.13.4">GitHub release</a></p> <h3>What's Changed</h3> <h4>Packaging</h4> <ul> <li>Bump libc from 0.2.155 to 0.2.185 by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13109">#13109</a></li> <li>Adapt <code>pydantic-core</code> linker flags on macOS by <a href="https://github.com/washingtoneg"><code>@washingtoneg</code></a> and <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13147">#13147</a></li> </ul> <h4>Fixes</h4> <ul> <li>Preserve <code>RootModel</code> core metadata by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13129">#13129</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382"><code>cf67d4b</code></a> Fix linting</li> <li><a href="https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662"><code>f0d8a21</code></a> Prepare release v2.13.4</li> <li><a href="https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a"><code>5e3fe1d</code></a> Check for pydantic tag pattern in CI</li> <li><a href="https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686"><code>7f9edcc</code></a> Document tagging conventions</li> <li><a href="https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c"><code>b46a0c9</code></a> Adapt <code>pydantic-core</code> linker flags on macOS</li> <li><a href="https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400"><code>50629c8</code></a> Update to PyPy 7.3.22</li> <li><a href="https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725"><code>8522ebb</code></a> Preserve <code>RootModel</code> core metadata</li> <li><a href="https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8"><code>a37f3af</code></a> Adapt <code>MISSING</code> sentinel test to work with unreleased <code>typing_extensions</code> ver...</li> <li><a href="https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2"><code>909259a</code></a> Remove Logfire example in documentation</li> <li><a href="https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df"><code>2c4174c</code></a> Bump libc from 0.2.155 to 0.2.185</li> <li>See full diff in <a href="https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4">compare view</a></li> </ul> </details> <br /> Updates `xxhash` from 3.6.0 to 3.8.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ifduyue/python-xxhash/releases">xxhash's releases</a>.</em></p> <blockquote> <h2>v3.8.0</h2> <ul> <li>Speed up module-level one-shot <code>digest()</code>, <code>intdigest()</code>, and <code>hexdigest()</code> functions by switching them to <code>METH_FASTCALL</code>.</li> <li>Keep one-shot argument handling consistent with hash constructors, including positional and keyword <code>input</code>/<code>seed</code> arguments, duplicate argument errors, and oversized seed wrapping.</li> <li>Fix error handling in the <code>xxh3_128</code> integer digest path so allocation failures are reported cleanly.</li> <li>Fix Python 3.8 builds by adding a <code>PyModule_AddType</code> compatibility fallback with correct reference counting.</li> <li>Correct type stubs for <code>xxh64_digest()</code>, <code>xxh64_hexdigest()</code>, and <code>xxh64_intdigest()</code>, they were incorrectly aliased to xxh3_64 functions.</li> </ul> <hr /> <p>Full list of changes: <a href="https://github.com/ifduyue/python-xxhash/compare/v3.7.1...v3.8.0">https://github.com/ifduyue/python-xxhash/compare/v3.7.1...v3.8.0</a></p> <h2>v3.7.1</h2> <ul> <li>Fix memory leak in copy() and new() when memory allocation fails (rare edge case)</li> <li>Fix seed/reset state initialization in xxh32 and xxh64 (unlikely to affect normal usage)</li> <li>Replace Py_BuildValue with PyLong_FromUnsignedLong/LongLong for performance</li> <li>Update README examples to use bytes literals</li> <li>Add CodSpeed performance benchmarks and CI workflow</li> <li>Build aarch64/armv7l on native Arm runners; test against Python 3.15.0-beta.2</li> </ul> <hr /> <p>Full list of changes: <a href="https://github.com/ifduyue/python-xxhash/compare/v3.7.0...v3.7.1">https://github.com/ifduyue/python-xxhash/compare/v3.7.0...v3.7.1</a></p> <h2>v3.7.0</h2> <ul> <li>Drop support for Python 3.7</li> <li>Build armv7l manylinux/musllinux wheels</li> <li>Build riscv64 manylinux/musllinux wheels</li> <li>Build android and ios wheels</li> </ul> <hr /> <p>Full list of changes: <a href="https://github.com/ifduyue/python-xxhash/compare/v3.6.0...v3.7.0">https://github.com/ifduyue/python-xxhash/compare/v3.6.0...v3.7.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/ifduyue/python-xxhash/blob/v3.8.0/CHANGELOG.rst">xxhash's changelog</a>.</em></p> <blockquote> <p>v3.8.0 2026-06-27</p> <pre><code> - Speed up module-level one-shot ``digest()``, ``intdigest()``, and ``hexdigest()`` functions by switching them to ``METH_FASTCALL``. - Keep one-shot argument handling consistent with hash constructors, including positional and keyword ``input``/``seed`` arguments, duplicate argument errors, and oversized seed wrapping. - Fix error handling in the ``xxh3_128`` integer digest path so allocation failures are reported cleanly. - Fix Python 3.8 builds by adding a ``PyModule_AddType`` compatibility fallback with correct reference counting. - Correct type stubs for ``xxh64_digest()``, ``xxh64_hexdigest()``, and ``xxh64_intdigest()``, they were incorrectly aliased to xxh3_64 functions. <p>v3.7.1 2026-06-24<br /> </code></pre></p> <ul> <li>Fix memory leak in copy() and new() when memory allocation fails (rare edge case)</li> <li>Fix seed/reset state initialization in xxh32 and xxh64 (unlikely to affect normal usage)</li> <li>Replace Py_BuildValue with PyLong_FromUnsignedLong/LongLong for performance</li> <li>Update README examples to use bytes literals</li> <li>Add CodSpeed performance benchmarks and CI workflow</li> <li>Build aarch64/armv7l on native Arm runners; test against Python 3.15.0-beta.2</li> </ul> <p>v3.7.0 2025-04-25</p> <pre><code> - Drop support for Python 3.7 - Build armv7l manylinux/musllinux wheels - Build riscv64 manylinux/musllinux wheels - Build android and ios wheels </code></pre> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ifduyue/python-xxhash/commit/48c60f24fd50d7c2765fc3df099aa9006e763b9e"><code>48c60f2</code></a> chore: release v3.8.0</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/c7f239734a6683279bc8467024799fd35e007a61"><code>c7f2397</code></a> fix: restore PyLong_FromUnsignedLong/LongLong over Py_BuildValue</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/aea7a72706d1ed56a1386e71a2f62be9d7f65824"><code>aea7a72</code></a> test: fix positional seed tests in test_fastcall.py</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/e084433ec40f4347b7ade06a7cdb095512d8bfde"><code>e084433</code></a> fix: correct docstring typos in xxh3_64 copy() documentation</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/414b254e78e97b0d2000251451bd19b50d7e1462"><code>414b254</code></a> fix(pyi): xxh64_digest/hexdigest/intdigest are functions</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/9af991361c8ee702286ec6c9f64967e28b2184a2"><code>9af9913</code></a> fix: add PyModule_AddType fallback for Python 3.8 compatibility</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/1ecd5b4791b3871019423c8a11d023c0059f0864"><code>1ecd5b4</code></a> perf: mark _get_buffer_or_str and _parse_fastcall_args as inline</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/2b6f712b4bbab8ebdcd2f16435eae16dcd83adee"><code>2b6f712</code></a> fix: detect duplicate seed, expand fastcall tests</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/5d59623916536c0f67ba6fd2f818b899ab6a3dba"><code>5d59623</code></a> fix: add NULL checks in xxh3_128_intdigest 128-bit math</li> <li><a href="https://github.com/ifduyue/python-xxhash/commit/8fe3bf48b7767292d502362f57dc8e29d13d1786"><code>8fe3bf4</code></a> refactor: consolidate fastcall arg parsing into _parse_fastcall_args</li> <li>Additional commits viewable in <a href="https://github.com/ifduyue/python-xxhash/compare/v3.6.0...v3.8.0">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: John Kennedy <65985482+jkennedyvz@users.noreply.github.com> Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com> |
||
|
|
5931a5f0b3 |
release(langgraph): 1.2.7 (#8223)
## Summary Releases `langgraph` 1.2.7. Bumps the package version `1.2.6` -> `1.2.7` and propagates it into the `langgraph`, `prebuilt`, and `sdk-py` lockfiles. No dependency floor or source changes. ## Changes - Update `libs/langgraph/pyproject.toml` to version `1.2.7`. - Update the editable `langgraph` package entries in `libs/langgraph/uv.lock`, `libs/prebuilt/uv.lock`, and `libs/sdk-py/uv.lock`. |
||
|
|
9a27693c64 |
fix(langgraph): snapshot DeltaChannel overwrite supersteps (#8125)
When a DeltaChannel receives an Overwrite, force that checkpoint to store a snapshot so sparse replay starts from the post-overwrite value. This also aligns live DeltaChannel overwrite handling with BinaryOperatorAggregate by letting Overwrite bypass other reducer writes in the same superstep. |
||
|
|
1b5ca0a1b1 |
fix(langgraph): Make Overwrite survive JSON roundtrips (#8127)
Add a `type: Literal["__overwrite__"]` discriminator field to
`Overwrite` and teach `_get_overwrite()` to recognise the
dataclass-erased `{"value": ..., "type": "__overwrite__"}` form. This
keeps `Overwrite` semantics intact across JSON boundaries that strip
dataclass types (e.g. `langgraph-api.serde.json_dumpb`), without
requiring callers to switch to the dict sentinel form.
This was an oversight in the initial `Overwrite` implementation, it
should be json serializable out of the box.
Fixing langchain-ai/deepagents#3789
|
||
|
|
d2f97191ab |
chore(deps): bump redis in /libs/langgraph (#7976)
## Description Updates the langgraph lockfile against current `main`, carrying forward the streaming timing test relaxation and resolving stale pyproject/lockfile conflicts. Redis now resolves to 8.0.1; Starlette is already 1.3.1 on `main`. ## Test Plan - [x] `cd libs/langgraph && uv lock --check && make format && make lint` - [x] `cd libs/langgraph && NO_DOCKER=true TEST="tests/test_pregel.py::test_sync_streaming_with_functional_api -q --no-header --disable-warnings" make test` - [x] `cd libs/langgraph && NO_DOCKER=true TEST="tests/test_pregel.py::test_in_one_fan_out_state_graph_waiting_edge_plus_regular -q --no-header --disable-warnings" make test` Made by [Open SWE](https://openswe.vercel.app/agents/75b64102-20de-8a57-3a60-beb9c32bf681) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: John Kennedy <65985482+jkennedyvz@users.noreply.github.com> Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com> |
||
|
|
6f438b441a |
chore(deps): bump langsmith from 0.8.0 to 0.8.18 in /libs/langgraph (#8176)
Bumps [langsmith](https://github.com/langchain-ai/langsmith-sdk) from 0.8.0 to 0.8.18. <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.18</h2> <h2>What's Changed</h2> <ul> <li>chore(deps-dev): bump vitest from 3.2.4 to 3.2.6 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/3002">langchain-ai/langsmith-sdk#3002</a></li> <li>chore(deps): bump pyjwt from 2.12.1 to 2.13.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/3030">langchain-ai/langsmith-sdk#3030</a></li> <li>chore(deps): bump python-multipart from 0.0.27 to 0.0.31 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/3036">langchain-ai/langsmith-sdk#3036</a></li> <li>chore(deps): bump aiohttp from 3.14.0 to 3.14.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/3037">langchain-ai/langsmith-sdk#3037</a></li> <li>chore(deps): bump cryptography from 46.0.7 to 48.0.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/3038">langchain-ai/langsmith-sdk#3038</a></li> <li>chore(deps): bump starlette from 1.0.1 to 1.3.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/3039">langchain-ai/langsmith-sdk#3039</a></li> <li>chore(deps-dev): bump langchain-anthropic from 1.4.4 to 1.4.6 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/3044">langchain-ai/langsmith-sdk#3044</a></li> <li>chore(deps): bump the npm_and_yarn group across 4 directories 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/3046">langchain-ai/langsmith-sdk#3046</a></li> <li>chore(deps): bump the npm_and_yarn group across 2 directories with 2 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/3060">langchain-ai/langsmith-sdk#3060</a></li> <li>test(python): fix integration assertions for updated attachment error message by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3061">langchain-ai/langsmith-sdk#3061</a></li> <li>chore: reconcile bumpversion config and mandate release process for agents by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3062">langchain-ai/langsmith-sdk#3062</a></li> <li>release(py): 0.8.18 by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3063">langchain-ai/langsmith-sdk#3063</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.17...v0.8.18">https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.17...v0.8.18</a></p> <h2>v0.8.17</h2> <h2>What's Changed</h2> <ul> <li>feat: expose the resources from the generated openapi client in the langsmith client by <a href="https://github.com/sineha-mani"><code>@sineha-mani</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3018">langchain-ai/langsmith-sdk#3018</a></li> <li>feat(js): port <code>isTracingEnabled</code> utility from Python by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3032">langchain-ai/langsmith-sdk#3032</a></li> <li>Add sandbox mount support to JS SDK by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3010">langchain-ai/langsmith-sdk#3010</a></li> <li>release(js): bump to 0.7.9 by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3035">langchain-ai/langsmith-sdk#3035</a></li> <li>Add sandbox mount support to Python SDK by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3009">langchain-ai/langsmith-sdk#3009</a></li> <li>docs: note that _openapi_client directories are auto-generated by <a href="https://github.com/KiewanVillatel"><code>@KiewanVillatel</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3034">langchain-ai/langsmith-sdk#3034</a></li> <li>fix: update JS SDK type declarations with skipLibCheck disabled by <a href="https://github.com/sineha-mani"><code>@sineha-mani</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3043">langchain-ai/langsmith-sdk#3043</a></li> <li>release(js): 0.7.10 by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3045">langchain-ai/langsmith-sdk#3045</a></li> <li>feat: adding python async for online evals by <a href="https://github.com/sineha-mani"><code>@sineha-mani</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3048">langchain-ai/langsmith-sdk#3048</a></li> <li>Add sandbox Git mount SDK helpers by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3040">langchain-ai/langsmith-sdk#3040</a></li> <li>fix: use insights tab in sdk report links [closes LSO-2936] by <a href="https://github.com/eric-langchain"><code>@eric-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3050">langchain-ai/langsmith-sdk#3050</a></li> <li>feat(client): warn when backend version is below minimum required by <a href="https://github.com/KiewanVillatel"><code>@KiewanVillatel</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3041">langchain-ai/langsmith-sdk#3041</a></li> <li>chore: bump _MIN_BACKEND_VERSION to 0.16.5rc1 by <a href="https://github.com/langtions-bot"><code>@langtions-bot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3053">langchain-ai/langsmith-sdk#3053</a></li> <li>fix(sandbox): use built-in gcp auth host matching by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3055">langchain-ai/langsmith-sdk#3055</a></li> <li>chore(python): py to 0.8.17 by <a href="https://github.com/sineha-mani"><code>@sineha-mani</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3056">langchain-ai/langsmith-sdk#3056</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/sineha-mani"><code>@sineha-mani</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3018">langchain-ai/langsmith-sdk#3018</a></li> <li><a href="https://github.com/eric-langchain"><code>@eric-langchain</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3050">langchain-ai/langsmith-sdk#3050</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.16...v0.8.17">https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.16...v0.8.17</a></p> <h2>v0.8.16</h2> <h2>What's Changed</h2> <ul> <li>feat(py): add sync/async conversion for Sandbox and SandboxClient [INF-0000] by <a href="https://github.com/ramon-langchain"><code>@ramon-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3019">langchain-ai/langsmith-sdk#3019</a></li> <li>fix(experiments): extract keys from wrapped evaluator function by <a href="https://github.com/shamikkarkhanis"><code>@shamikkarkhanis</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3014">langchain-ai/langsmith-sdk#3014</a></li> <li>chore: repoint <a href="mailto:support@langchain.dev">support@langchain.dev</a> mentions to the Support Portal by <a href="https://github.com/lutan-langchain"><code>@lutan-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3024">langchain-ai/langsmith-sdk#3024</a></li> <li>fix(python): derive create_child run id from start_time [LSDK-220] by <a href="https://github.com/harisaiharish"><code>@harisaiharish</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3027">langchain-ai/langsmith-sdk#3027</a></li> <li>chore: sync langsmith_api by <a href="https://github.com/langtions-bot"><code>@langtions-bot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3020">langchain-ai/langsmith-sdk#3020</a></li> <li>chore: js to 0.7.8 and py to 0.8.16 by <a href="https://github.com/shamikkarkhanis"><code>@shamikkarkhanis</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/3029">langchain-ai/langsmith-sdk#3029</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/31c2bf650b84a44577d8b4443298fb7e78025b8f"><code>31c2bf6</code></a> release(py): 0.8.18 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/3063">#3063</a>)</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/8955b688689fdf47871d44013787410a42ea13fd"><code>8955b68</code></a> chore: reconcile bumpversion config and mandate release process for agents (#...</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/411401f6ca5ff401c29772ed097c9c9ed97f994c"><code>411401f</code></a> test(python): fix integration assertions for updated attachment error message...</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/9c5515620f9bfa2145fc65d6f4353c4c8a3e96b6"><code>9c55156</code></a> Merge commit from fork</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/5b2bd8db3c50d3f19e98f41288c87d9c0ac0b136"><code>5b2bd8d</code></a> chore(deps): bump the npm_and_yarn group across 2 directories with 2 updates ...</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/d8642f9099a48025d00c7283ad3cd2ce56fec775"><code>d8642f9</code></a> chore(deps): bump the npm_and_yarn group across 4 directories with 4 updates ...</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/953c2e5e25e41ecb4dba428adbac1c446c0a0071"><code>953c2e5</code></a> chore(deps-dev): bump langchain-anthropic from 1.4.4 to 1.4.6 in /python (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/3044">#3044</a>)</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/5513699e2d25c2147e02c296bc3b90f7d0923d8a"><code>5513699</code></a> chore(deps): bump starlette from 1.0.1 to 1.3.1 in /python (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/3039">#3039</a>)</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/8becdefdf422a02e03f78cf3ebb4c62c136b7cf3"><code>8becdef</code></a> chore(deps): bump cryptography from 46.0.7 to 48.0.1 in /python (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/3038">#3038</a>)</li> <li><a href="https://github.com/langchain-ai/langsmith-sdk/commit/1a9c522febbf313bbe649ca75c39158fec048934"><code>1a9c522</code></a> chore(deps): bump aiohttp from 3.14.0 to 3.14.1 in /python (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/3037">#3037</a>)</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.0...v0.8.18">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> |
||
|
|
7aee194a91 |
chore(deps): bump jupyterlab from 4.5.7 to 4.5.9 in /libs/langgraph (#8164)
[](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> |
||
|
|
8c9d59c842 |
fix(langgraph): emit valid UUIDs for exit-mode delta task_ids for langgraph-api (#8165)
Fix exit-mode DeltaChannel `PutWrites` task IDs so they remain valid RFC UUIDs while preserving superstep ordering for `ORDER BY task_id, idx`. Follow-up to #7730: `_put_exit_delta_writes` used `f"{step:08d}-{tid}"`, which produces a 6-segment string Postgres rejects for `checkpoint_writes.task_id uuid` (e.g. `invalid input syntax for type uuid`) in LangGraph-API. This new `exit_delta_task_id()` helper embeds the superstep in the first UUID group and keeps the original task UUID in the remaining segments (e.g. `00000001-0270-bf16-1ef8-fb321bef9f3d`). **Breaking changes:** None. **Verification:** - `cd libs/langgraph && make format && make lint && make test TEST="tests/test_delta_channel_exit_mode.py"` (12 passed) - New unit test asserts synthetic IDs parse as UUID, sort by superstep, and that the old format is invalid --------- Signed-off-by: Quanzheng Long <prclqz@gmail.com> Co-authored-by: open-swe[bot] <215916821+open-swe[bot]@users.noreply.github.com> |
||
|
|
db3f4d7255 |
chore(deps): bump bleach from 6.3.0 to 6.4.0 in /libs/langgraph (#8107)
Bumps [bleach](https://github.com/mozilla/bleach) from 6.3.0 to 6.4.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/mozilla/bleach/blob/main/CHANGES">bleach's changelog</a>.</em></p> <blockquote> <h2>Version 6.4.0 (June 5th, 2026)</h2> <p><strong>NOTE: 2026-06-05: Bleach is no longer maintained. There will be no future releases including for security issues.</strong> See issue: <code><https://github.com/mozilla/bleach/issues/698></code>__</p> <p><strong>Backwards incompatible changes</strong></p> <ul> <li>Dropped support for pypy 3.10. (<a href="https://redirect.github.com/mozilla/bleach/issues/764">#764</a>)</li> </ul> <p><strong>Security fixes</strong></p> <ul> <li> <p>Fix bug 2023812 / GHSA-8rfp-98v4-mmr6.</p> <p>Fix XSS issue with sanitize_uri_value where disallowed schemes with Unicode invisible characters wouldn't be rejected.</p> <p>For example::</p> <p>import bleach payload1 = '<!-- raw HTML omitted -->Click<!-- raw HTML omitted -->' result1 = bleach.clean(payload1) print(repr(result1))</p> <p>outputs::</p> <p>'<!-- raw HTML omitted -->Click<!-- raw HTML omitted -->'</p> <p>See the advisory for details.</p> </li> <li> <p>Fix GHSA-gj48-438w-jh9v.</p> <p>Fix issue where URI sanitization wasn't happening in formaction attributes.</p> <p>See the advisory for details.</p> </li> </ul> <p><strong>Bug fixes</strong></p> <ul> <li> <p>Add support for pypy 3.11. (<a href="https://redirect.github.com/mozilla/bleach/issues/764">#764</a>)</p> </li> <li> <p>Drop version max in tinycss2 pin. (<a href="https://redirect.github.com/mozilla/bleach/issues/772">#772</a>)</p> <p>This removes one of the things we had to keep checking and updating. Users now own the responsibility for correctness with the version of tinycss2 they're using.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/mozilla/bleach/commit/f0355a7af00500482c5292c6c83290c6a178068d"><code>f0355a7</code></a> fix: fix last release date in CHANGES</li> <li><a href="https://github.com/mozilla/bleach/commit/ae4e8a26706516ad01b92e66321b480208a440da"><code>ae4e8a2</code></a> chore: bleach 6.4.0 and final release</li> <li><a href="https://github.com/mozilla/bleach/commit/970df58e9f0c55cc52244f3f0106e473a40d886d"><code>970df58</code></a> fix: uri-sanitization in formaction attributes</li> <li><a href="https://github.com/mozilla/bleach/commit/7c4867c32344d1c961107fae62240a6f0dc680dc"><code>7c4867c</code></a> fix: xss bypass in allowed protocol test using unicode invisible characters</li> <li><a href="https://github.com/mozilla/bleach/commit/913ab75992b845e2c9c060c41f24d46921db4693"><code>913ab75</code></a> fix: reduce redundancy in workflow jobs</li> <li><a href="https://github.com/mozilla/bleach/commit/218c15af455c8dec14f98fcb2e235f8680e93930"><code>218c15a</code></a> fix: rework pip caching</li> <li><a href="https://github.com/mozilla/bleach/commit/4f0b097bf80548a022050e2f71f024d755a9f154"><code>4f0b097</code></a> fix: fix tox platform restrictions</li> <li><a href="https://github.com/mozilla/bleach/commit/e95a79d07bb5d792425c2bc0ef5dd03f6614f3bb"><code>e95a79d</code></a> chore: update pytest</li> <li><a href="https://github.com/mozilla/bleach/commit/91539d4e80d4685b8f2bedc79076ff0ff6c1b911"><code>91539d4</code></a> Bump actions/cache from 5.0.3 to 5.0.4</li> <li><a href="https://github.com/mozilla/bleach/commit/cd47b4ce495859065da23c2116f651e591e1e90d"><code>cd47b4c</code></a> fix: handle left-angle-bracket that's not a tag (<a href="https://redirect.github.com/mozilla/bleach/issues/733">#733</a>)</li> <li>Additional commits viewable in <a href="https://github.com/mozilla/bleach/compare/v6.3.0...v6.4.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> |
||
|
|
4401ae03e0 |
chore(deps): bump cryptography from 46.0.7 to 48.0.1 in /libs/langgraph (#8106)
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.7 to 48.0.1. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's changelog</a>.</em></p> <blockquote> <p>48.0.1 - 2026-06-09</p> <pre><code> * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.1. <p>.. _v48-0-0:</p> <p>48.0.0 - 2026-05-04<br /> </code></pre></p> <ul> <li> <p><strong>BACKWARDS INCOMPATIBLE:</strong> Support for Python 3.8 has been removed. <code>cryptography</code> now requires Python 3.9 or later.</p> </li> <li> <p><strong>BACKWARDS INCOMPATIBLE:</strong> Loading an X.509 CRL whose inner <code>TBSCertList.signature</code> algorithm does not match the outer <code>signatureAlgorithm</code> now raises <code>ValueError</code>. Previously, such CRLs were parsed successfully and only rejected during signature validation.</p> </li> <li> <p>Added support for :doc:<code>/hazmat/primitives/asymmetric/mlkem</code> and :doc:<code>/hazmat/primitives/asymmetric/mldsa</code> when using OpenSSL 3.5.0 or later, in addition to the existing AWS-LC and BoringSSL support. This means post-quantum algorithms are now available to users of our wheels.</p> <ul> <li><strong>Note:</strong> Going forward, we do not guarantee that all functionality in <code>cryptography</code> will be available when building against OpenSSL. See :doc:<code>/statements/state-of-openssl</code> for more information.</li> </ul> </li> </ul> <p>.. _v47-0-0:</p> <p>47.0.0 - 2026-04-24</p> <pre><code> * Support for Python 3.8 is deprecated and will be removed in the next ``cryptography`` release. * **BACKWARDS INCOMPATIBLE:** Support for binary elliptic curves (``SECT*`` classes) has been removed. These curves are rarely used and have additional security considerations that make them undesirable. * **BACKWARDS INCOMPATIBLE:** Support for OpenSSL 1.1.x has been removed. OpenSSL 3.0.0 or later is now required. LibreSSL, BoringSSL, and AWS-LC continue to be supported. * **BACKWARDS INCOMPATIBLE:** Dropped support for LibreSSL < 4.1. * **BACKWARDS INCOMPATIBLE:** Loading keys with unsupported algorithms or keys with unsupported explicit curve encodings now raises :class:`~cryptography.exceptions.UnsupportedAlgorithm` instead of ``ValueError``. This change affects :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key`, :func:`~cryptography.hazmat.primitives.serialization.load_der_private_key`, :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key`, :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key`, and :meth:`~cryptography.x509.Certificate.public_key` when called on certificates with unsupported public key algorithms. </tr></table> </code></pre> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pyca/cryptography/commit/de987ce48ccfeb1abca41efa23b2bf73ec704f74"><code>de987ce</code></a> 48.0.1 version bump and changelog (<a href="https://redirect.github.com/pyca/cryptography/issues/14996">#14996</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/8e03e30e3aae01632a697e903e3593c924f0139d"><code>8e03e30</code></a> bump for 48.0.0 release (<a href="https://redirect.github.com/pyca/cryptography/issues/14796">#14796</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/295e0d254ef31ab864730aa41312ec355416ee71"><code>295e0d2</code></a> Add AGENTS.md with CLAUDE.md symlink (<a href="https://redirect.github.com/pyca/cryptography/issues/14794">#14794</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/104a2de19e268a433e6da92be9cb872dcf0003c8"><code>104a2de</code></a> Bump BoringSSL, OpenSSL, AWS-LC in CI (<a href="https://redirect.github.com/pyca/cryptography/issues/14793">#14793</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/67ec1e51988195e17993d2edef5258b27509b926"><code>67ec1e5</code></a> call check_length early on AesSiv::encrypt (<a href="https://redirect.github.com/pyca/cryptography/issues/14792">#14792</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/b2da57a0d9e4bfd2b95364299091a18f74127b26"><code>b2da57a</code></a> changelog for mldsa/mlkem for openssl (<a href="https://redirect.github.com/pyca/cryptography/issues/14791">#14791</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/3cf44adee25c368d4a136e072fa9f80465d91eb0"><code>3cf44ad</code></a> ML-KEM OpenSSL support (<a href="https://redirect.github.com/pyca/cryptography/issues/14781">#14781</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/2e31639666766f846fbab2c605879db0fa64fe83"><code>2e31639</code></a> ML-DSA OpenSSL support (<a href="https://redirect.github.com/pyca/cryptography/issues/14773">#14773</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/5affe5a286a986fdf512c4a5cb280d28a96c10e3"><code>5affe5a</code></a> fix rust nightly clippy (<a href="https://redirect.github.com/pyca/cryptography/issues/14790">#14790</a>)</li> <li><a href="https://github.com/pyca/cryptography/commit/2e73ca448eaf64b6f0d4ffbb794cf96170cef5ec"><code>2e73ca4</code></a> bump rust-openssl dep and update EcPoint::mul_generator to mul_generator2 (<a href="https://redirect.github.com/pyca/cryptography/issues/1">#1</a>...</li> <li>Additional commits viewable in <a href="https://github.com/pyca/cryptography/compare/46.0.7...48.0.1">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> |
||
|
|
587daa31d9 |
chore(deps): bump jupyter-server from 2.18.0 to 2.20.0 in /libs/langgraph (#8134)
Bumps [jupyter-server](https://github.com/jupyter-server/jupyter_server) from 2.18.0 to 2.20.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/jupyter-server/jupyter_server/releases">jupyter-server's releases</a>.</em></p> <blockquote> <h2>v2.20.0</h2> <h2>2.20.0</h2> <p>(<a href="https://github.com/jupyter-server/jupyter_server/compare/v2.19.0...333e700119ee0bcc0b5fcd4c158213d7c275c778">Full Changelog</a>)</p> <h3>Security fixes</h3> <ul> <li>CVE-2026-44727 <a href="https://github.com/jupyter-server/jupyter_server/security/advisories/GHSA-fcw5-x6j4-ccmp">GHSA-fcw5-x6j4-ccmp</a></li> </ul> <h3>Enhancements made</h3> <ul> <li>Fix confusing terminal output when using ServerApp.ip=0.0.0.0 <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1643">#1643</a> (<a href="https://github.com/Yann-P"><code>@Yann-P</code></a>, <a href="https://github.com/minrk"><code>@minrk</code></a>)</li> <li>Add a toggle to enable curve encryption for all kernels that support it <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1638">#1638</a> (<a href="https://github.com/krassowski"><code>@krassowski</code></a>, <a href="https://github.com/Carreau"><code>@Carreau</code></a>, <a href="https://github.com/ianthomas23"><code>@ianthomas23</code></a>, <a href="https://github.com/minrk"><code>@minrk</code></a>)</li> </ul> <h3>Bugs fixed</h3> <ul> <li>Grab the port from <code>bind_sockets</code> in case its different <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1651">#1651</a> (<a href="https://github.com/choldgraf"><code>@choldgraf</code></a>, <a href="https://github.com/krassowski"><code>@krassowski</code></a>)</li> </ul> <h3>Maintenance and upkeep improvements</h3> <ul> <li>Fix <code>test_authorizer</code> having a spurious comma in params <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1664">#1664</a> (<a href="https://github.com/krassowski"><code>@krassowski</code></a>)</li> <li>Add a reminder to merge GHSA before release <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1659">#1659</a> (<a href="https://github.com/Yann-P"><code>@Yann-P</code></a>, <a href="https://github.com/Carreau"><code>@Carreau</code></a>)</li> <li>Exclude problematic <code>pywinpty</code> 3.0.4 version <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1658">#1658</a> (<a href="https://github.com/krassowski"><code>@krassowski</code></a>)</li> <li>ci: explicitly pass base-setup inputs to fix strict validation failures <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1626">#1626</a> (<a href="https://github.com/Carreau"><code>@Carreau</code></a>, <a href="https://github.com/Copilot"><code>@Copilot</code></a>)</li> </ul> <h3>Documentation improvements</h3> <ul> <li>Align docs for curve encryption with latest JEP version <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1660">#1660</a> (<a href="https://github.com/krassowski"><code>@krassowski</code></a>, <a href="https://github.com/Carreau"><code>@Carreau</code></a>)</li> <li>Remove PGP key from docs <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1653">#1653</a> (<a href="https://github.com/Yann-P"><code>@Yann-P</code></a>, <a href="https://github.com/krassowski"><code>@krassowski</code></a>)</li> </ul> <h3>Contributors to this release</h3> <p>The following people contributed discussions, new ideas, code and documentation contributions, and review. See <a href="https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports">our definition of contributors</a>.</p> <p>(<a href="https://github.com/jupyter-server/jupyter_server/graphs/contributors?from=2026-05-29&to=2026-06-17&type=c">GitHub contributors page for this release</a>)</p> <p><a href="https://github.com/Carreau"><code>@Carreau</code></a> (<a href="https://github.com/search?q=repo%3Ajupyter-server%2Fjupyter_server+involves%3ACarreau+updated%3A2026-05-29..2026-06-17&type=Issues">activity</a>) | <a href="https://github.com/choldgraf"><code>@choldgraf</code></a> (<a href="https://github.com/search?q=repo%3Ajupyter-server%2Fjupyter_server+involves%3Acholdgraf+updated%3A2026-05-29..2026-06-17&type=Issues">activity</a>) | <a href="https://github.com/Copilot"><code>@Copilot</code></a> (<a href="https://github.com/search?q=repo%3Ajupyter-server%2Fjupyter_server+involves%3ACopilot+updated%3A2026-05-29..2026-06-17&type=Issues">activity</a>) | <a href="https://github.com/ianthomas23"><code>@ianthomas23</code></a> (<a href="https://github.com/search?q=repo%3Ajupyter-server%2Fjupyter_server+involves%3Aianthomas23+updated%3A2026-05-29..2026-06-17&type=Issues">activity</a>) | <a href="https://github.com/krassowski"><code>@krassowski</code></a> (<a href="https://github.com/search?q=repo%3Ajupyter-server%2Fjupyter_server+involves%3Akrassowski+updated%3A2026-05-29..2026-06-17&type=Issues">activity</a>) | <a href="https://github.com/minrk"><code>@minrk</code></a> (<a href="https://github.com/search?q=repo%3Ajupyter-server%2Fjupyter_server+involves%3Aminrk+updated%3A2026-05-29..2026-06-17&type=Issues">activity</a>) | <a href="https://github.com/Yann-P"><code>@Yann-P</code></a> (<a href="https://github.com/search?q=repo%3Ajupyter-server%2Fjupyter_server+involves%3AYann-P+updated%3A2026-05-29..2026-06-17&type=Issues">activity</a>)</p> <h2>v2.19.0</h2> <h2>2.19.0</h2> <p>(<a href="https://github.com/jupyter-server/jupyter_server/compare/v2.18.2...664e2255c71efe963f397b9f803dbcf503b5a920">Full Changelog</a>)</p> <h3>Enhancements made</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jupyter-server/jupyter_server/blob/main/CHANGELOG.md">jupyter-server's changelog</a>.</em></p> <blockquote> <h2>2.20.0</h2> <p>(<a href="https://github.com/jupyter-server/jupyter_server/compare/v2.19.0...333e700119ee0bcc0b5fcd4c158213d7c275c778">Full Changelog</a>)</p> <h3>Enhancements made</h3> <ul> <li>Fix confusing terminal output when using ServerApp.ip=0.0.0.0 <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1643">#1643</a> (<a href="https://github.com/Yann-P"><code>@Yann-P</code></a>, <a href="https://github.com/minrk"><code>@minrk</code></a>)</li> <li>Add a toggle to enable curve encryption for all kernels that support it <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1638">#1638</a> (<a href="https://github.com/krassowski"><code>@krassowski</code></a>, <a href="https://github.com/Carreau"><code>@Carreau</code></a>, <a href="https://github.com/ianthomas23"><code>@ianthomas23</code></a>, <a href="https://github.com/minrk"><code>@minrk</code></a>)</li> </ul> <h3>Bugs fixed</h3> <ul> <li>Grab the port from <code>bind_sockets</code> in case its different <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1651">#1651</a> (<a href="https://github.com/choldgraf"><code>@choldgraf</code></a>, <a href="https://github.com/krassowski"><code>@krassowski</code></a>)</li> </ul> <h3>Maintenance and upkeep improvements</h3> <ul> <li>Fix <code>test_authorizer</code> having a spurious comma in params <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1664">#1664</a> (<a href="https://github.com/krassowski"><code>@krassowski</code></a>)</li> <li>Add a reminder to merge GHSA before release <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1659">#1659</a> (<a href="https://github.com/Yann-P"><code>@Yann-P</code></a>, <a href="https://github.com/Carreau"><code>@Carreau</code></a>)</li> <li>Exclude problematic <code>pywinpty</code> 3.0.4 version <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1658">#1658</a> (<a href="https://github.com/krassowski"><code>@krassowski</code></a>)</li> <li>ci: explicitly pass base-setup inputs to fix strict validation failures <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1626">#1626</a> (<a href="https://github.com/Carreau"><code>@Carreau</code></a>, <a href="https://github.com/Copilot"><code>@Copilot</code></a>)</li> </ul> <h3>Documentation improvements</h3> <ul> <li>Align docs for curve encryption with latest JEP version <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1660">#1660</a> (<a href="https://github.com/krassowski"><code>@krassowski</code></a>, <a href="https://github.com/Carreau"><code>@Carreau</code></a>)</li> <li>Remove PGP key from docs <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1653">#1653</a> (<a href="https://github.com/Yann-P"><code>@Yann-P</code></a>, <a href="https://github.com/krassowski"><code>@krassowski</code></a>)</li> </ul> <h3>Contributors to this release</h3> <p>The following people contributed discussions, new ideas, code and documentation contributions, and review. See <a href="https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports">our definition of contributors</a>.</p> <p>(<a href="https://github.com/jupyter-server/jupyter_server/graphs/contributors?from=2026-05-29&to=2026-06-17&type=c">GitHub contributors page for this release</a>)</p> <p><a href="https://github.com/Carreau"><code>@Carreau</code></a> (<a href="https://github.com/search?q=repo%3Ajupyter-server%2Fjupyter_server+involves%3ACarreau+updated%3A2026-05-29..2026-06-17&type=Issues">activity</a>) | <a href="https://github.com/choldgraf"><code>@choldgraf</code></a> (<a href="https://github.com/search?q=repo%3Ajupyter-server%2Fjupyter_server+involves%3Acholdgraf+updated%3A2026-05-29..2026-06-17&type=Issues">activity</a>) | <a href="https://github.com/Copilot"><code>@Copilot</code></a> (<a href="https://github.com/search?q=repo%3Ajupyter-server%2Fjupyter_server+involves%3ACopilot+updated%3A2026-05-29..2026-06-17&type=Issues">activity</a>) | <a href="https://github.com/ianthomas23"><code>@ianthomas23</code></a> (<a href="https://github.com/search?q=repo%3Ajupyter-server%2Fjupyter_server+involves%3Aianthomas23+updated%3A2026-05-29..2026-06-17&type=Issues">activity</a>) | <a href="https://github.com/krassowski"><code>@krassowski</code></a> (<a href="https://github.com/search?q=repo%3Ajupyter-server%2Fjupyter_server+involves%3Akrassowski+updated%3A2026-05-29..2026-06-17&type=Issues">activity</a>) | <a href="https://github.com/minrk"><code>@minrk</code></a> (<a href="https://github.com/search?q=repo%3Ajupyter-server%2Fjupyter_server+involves%3Aminrk+updated%3A2026-05-29..2026-06-17&type=Issues">activity</a>) | <a href="https://github.com/Yann-P"><code>@Yann-P</code></a> (<a href="https://github.com/search?q=repo%3Ajupyter-server%2Fjupyter_server+involves%3AYann-P+updated%3A2026-05-29..2026-06-17&type=Issues">activity</a>)</p> <!-- raw HTML omitted --> <h2>2.19.0</h2> <p>(<a href="https://github.com/jupyter-server/jupyter_server/compare/v2.18.2...664e2255c71efe963f397b9f803dbcf503b5a920">Full Changelog</a>)</p> <h3>Enhancements made</h3> <ul> <li>Return <code>unresolved</code> stanza when kernel scope is unavailable for <code>resolvePath</code> (instead of failing with 404) <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1641">#1641</a> (<a href="https://github.com/MUFFANUJ"><code>@MUFFANUJ</code></a>, <a href="https://github.com/Carreau"><code>@Carreau</code></a>, <a href="https://github.com/krassowski"><code>@krassowski</code></a>)</li> </ul> <h3>Bugs fixed</h3> <ul> <li>Recreate notary store on failure to prevent save deadlock and data loss <a href="https://redirect.github.com/jupyter-server/jupyter_server/pull/1640">#1640</a> (<a href="https://github.com/krassowski"><code>@krassowski</code></a>, <a href="https://github.com/Carreau"><code>@Carreau</code></a>)</li> </ul> <h3>Maintenance and upkeep improvements</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/jupyter-server/jupyter_server/commit/05a78ad879e69ef87e91b2714a8ebeb5ff9628a7"><code>05a78ad</code></a> Publish 2.20.0</li> <li><a href="https://github.com/jupyter-server/jupyter_server/commit/6cbee8d65e71abac851c4492fea987ad080580bd"><code>6cbee8d</code></a> Merge commit from fork</li> <li><a href="https://github.com/jupyter-server/jupyter_server/commit/333e700119ee0bcc0b5fcd4c158213d7c275c778"><code>333e700</code></a> Fix <code>test_authorizer</code> having a spurious comma in params (<a href="https://redirect.github.com/jupyter-server/jupyter_server/issues/1664">#1664</a>)</li> <li><a href="https://github.com/jupyter-server/jupyter_server/commit/cccd543352d9be0365de56627b671cc8aa9cab0c"><code>cccd543</code></a> Fix CI: explicitly pass base-setup inputs to avoid strict validation failures</li> <li><a href="https://github.com/jupyter-server/jupyter_server/commit/cd16d715dfb1f84b2e5056317927fc930b811842"><code>cd16d71</code></a> Align docs for curve encryption with latest JEP version (<a href="https://redirect.github.com/jupyter-server/jupyter_server/issues/1660">#1660</a>)</li> <li><a href="https://github.com/jupyter-server/jupyter_server/commit/e458061e6ee50368bbdb74153092fc8400704ee0"><code>e458061</code></a> Add a toggle to enable curve encryption for all kernels that support it (<a href="https://redirect.github.com/jupyter-server/jupyter_server/issues/1638">#1638</a>)</li> <li><a href="https://github.com/jupyter-server/jupyter_server/commit/0ceeb4fb61be1deaaa7c1ff01325f7dd47db1c46"><code>0ceeb4f</code></a> Add note in RELEASE.md</li> <li><a href="https://github.com/jupyter-server/jupyter_server/commit/b13f8a241b1111e402457e1d0b1cce252d8e1e5e"><code>b13f8a2</code></a> Markdown does not work.</li> <li><a href="https://github.com/jupyter-server/jupyter_server/commit/e885b10a26c11caf109007a901153d1ac373c14d"><code>e885b10</code></a> Add GHSA reminder in prep-release</li> <li><a href="https://github.com/jupyter-server/jupyter_server/commit/0e28c901e8bc0953d61611fe8cb018460433288f"><code>0e28c90</code></a> Exclude problematic <code>pywinpty</code> 3.0.4 version (<a href="https://redirect.github.com/jupyter-server/jupyter_server/issues/1658">#1658</a>)</li> <li>Additional commits viewable in <a href="https://github.com/jupyter-server/jupyter_server/compare/v2.18.0...v2.20.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> |
||
|
|
510d943362 |
chore(deps): bump tornado from 6.5.6 to 6.5.7 in /libs/langgraph (#8108)
Bumps [tornado](https://github.com/tornadoweb/tornado) from 6.5.6 to 6.5.7. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tornadoweb/tornado/blob/master/docs/releases.rst">tornado's changelog</a>.</em></p> <blockquote> <h1>Release notes</h1> <p>.. toctree:: :maxdepth: 2</p> <p>releases/v6.5.7 releases/v6.5.6 releases/v6.5.5 releases/v6.5.4 releases/v6.5.3 releases/v6.5.2 releases/v6.5.1 releases/v6.5.0 releases/v6.4.2 releases/v6.4.1 releases/v6.4.0 releases/v6.3.3 releases/v6.3.2 releases/v6.3.1 releases/v6.3.0 releases/v6.2.0 releases/v6.1.0 releases/v6.0.4 releases/v6.0.3 releases/v6.0.2 releases/v6.0.1 releases/v6.0.0 releases/v5.1.1 releases/v5.1.0 releases/v5.0.2 releases/v5.0.1 releases/v5.0.0 releases/v4.5.3 releases/v4.5.2 releases/v4.5.1 releases/v4.5.0 releases/v4.4.3 releases/v4.4.2 releases/v4.4.1 releases/v4.4.0 releases/v4.3.0 releases/v4.2.1 releases/v4.2.0 releases/v4.1.0 releases/v4.0.2 releases/v4.0.1 releases/v4.0.0 releases/v3.2.2 releases/v3.2.1</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tornadoweb/tornado/commit/48fc2d43d1f48b8b3b0be5dcf6a7634c6f45b1c4"><code>48fc2d4</code></a> Merge pull request <a href="https://redirect.github.com/tornadoweb/tornado/issues/3633">#3633</a> from bdarnell/curl-reset-65</li> <li><a href="https://github.com/tornadoweb/tornado/commit/4ae1ddd14245e56e9fb6fb14d4b9508301fbb841"><code>4ae1ddd</code></a> Release notes and version bump for 6.5.7</li> <li><a href="https://github.com/tornadoweb/tornado/commit/3154caabc9a60cb0b6953d28877b2785fbd3ab43"><code>3154caa</code></a> curl_httpclient: Reset the curl object before putting it on the freelist</li> <li><a href="https://github.com/tornadoweb/tornado/commit/7d869c0739b264797ef92b6aa4a80c54b5993ea2"><code>7d869c0</code></a> Merge pull request <a href="https://redirect.github.com/tornadoweb/tornado/issues/3631">#3631</a> from bdarnell/cve-links</li> <li><a href="https://github.com/tornadoweb/tornado/commit/288241f6812bb7204984573e55de21d17af951f3"><code>288241f</code></a> docs: Use the correct link syntax</li> <li><a href="https://github.com/tornadoweb/tornado/commit/8da981c0f614f63d9d3b2cd5017db2b40e5642f6"><code>8da981c</code></a> docs: Add CVE links to 6.5.6 release notes</li> <li>See full diff in <a href="https://github.com/tornadoweb/tornado/compare/v6.5.6...v6.5.7">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> |
||
|
|
a4157ef280 |
chore(deps): bump pyjwt from 2.12.0 to 2.13.0 in /libs/langgraph (#8092)
Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.12.0 to 2.13.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/jpadilla/pyjwt/releases">pyjwt's releases</a>.</em></p> <blockquote> <h2>2.13.0</h2> <h1>PyJWT 2.13.0 — Security Release</h1> <p>This release bundles five security fixes plus three additional hardening / spec-compliance changes. We recommend all users upgrade.</p> <h2>Security</h2> <ul> <li> <p><strong><a href="https://github.com/jpadilla/pyjwt/security/advisories/GHSA-xgmm-8j9v-c9wx"><code>GHSA-xgmm-8j9v-c9wx</code></a> — JWK JSON accepted as HMAC secret (algorithm confusion).</strong> <code>HMACAlgorithm.prepare_key</code> previously rejected PEM- and SSH-formatted asymmetric keys but did not catch a JWK passed as a raw JSON string. In a verifier configured with both symmetric and asymmetric algorithms in <code>algorithms=[…]</code> and a raw-JSON JWK as the key, an attacker could forge HS256 tokens using the JWK text as the HMAC secret. The guard has been extended to reject any JWK-shaped JSON. <em>Reported by <a href="https://github.com/aradona91"><code>@aradona91</code></a>.</em></p> </li> <li> <p><strong><a href="https://github.com/jpadilla/pyjwt/security/advisories/GHSA-jq35-7prp-9v3f"><code>GHSA-jq35-7prp-9v3f</code></a> — Algorithm allow-list bypass with <code>PyJWK</code> / <code>PyJWKClient</code>.</strong> When verifying with a <code>PyJWK</code>, the caller's <code>algorithms=[…]</code> allow-list was checked against the token header <code>alg</code> as a string only; actual verification used the algorithm bound to the <code>PyJWK</code>. An attacker who controlled a registered JWKS key could sign with one algorithm and advertise another on the header. PyJWT now requires the token header <code>alg</code> to match the <code>PyJWK</code>'s algorithm before verification. <em>Reported by <a href="https://github.com/sushi-gif"><code>@sushi-gif</code></a>.</em></p> </li> <li> <p><strong><a href="https://github.com/jpadilla/pyjwt/security/advisories/GHSA-w7vc-732c-9m39"><code>GHSA-w7vc-732c-9m39</code></a> — DoS via base64 decode of unused payload segment when <code>b64=false</code>.</strong> For detached-payload JWS (<code>b64=false</code>), the compact-form payload segment was base64-decoded before being discarded in favor of the caller-supplied <code>detached_payload</code>. An attacker could inflate the unused segment to force CPU + memory cost without holding a valid signature. The segment is now required to be empty per RFC 7515 Appendix F, and is no longer decoded. <em>Reported by <a href="https://github.com/thesmartshadow"><code>@thesmartshadow</code></a>.</em></p> </li> <li> <p><strong><a href="https://github.com/jpadilla/pyjwt/security/advisories/GHSA-993g-76c3-p5m4"><code>GHSA-993g-76c3-p5m4</code></a> — <code>PyJWKClient</code> accepts non-HTTP(S) URIs.</strong> <code>PyJWKClient.fetch_data</code> passed its URI to <code>urllib.request.urlopen</code>, which by default also handles <code>file://</code>, <code>ftp://</code>, and <code>data:</code> schemes. An application that fed an attacker-influenced URI into <code>PyJWKClient</code> could be coerced into reading local files or reaching other unintended schemes. <code>PyJWKClient</code> now rejects any URI whose scheme isn't <code>http</code> or <code>https</code>. <em>Reported by <a href="https://github.com/KEIJOT"><code>@KEIJOT</code></a>.</em></p> </li> <li> <p><strong><a href="https://github.com/jpadilla/pyjwt/security/advisories/GHSA-fhv5-28vv-h8m8"><code>GHSA-fhv5-28vv-h8m8</code></a> — <code>PyJWKClient</code> cache wiped on fetch error.</strong> A <code>finally</code>-block <code>put(jwk_set=None)</code> cleared the JWK Set cache whenever a fetch raised, turning a transient JWKS-endpoint outage into application-wide auth failure. The cache write was moved into the success path; transient errors no longer evict valid cached keys. <em>Reported by <a href="https://github.com/eddieran"><code>@eddieran</code></a>.</em></p> </li> </ul> <h2>Fixed</h2> <ul> <li>Reject empty HMAC keys outright in <code>HMACAlgorithm.prepare_key</code> with <code>InvalidKeyError</code> instead of accepting them with only a warning. Defends against the <code>os.getenv("JWT_SECRET", "")</code> footgun. <em>Thanks to <a href="https://github.com/SnailSploit"><code>@SnailSploit</code></a> and <a href="https://github.com/spartan8806"><code>@spartan8806</code></a> for the reports.</em></li> <li>Forward per-call <code>options</code> (including <code>enforce_minimum_key_length</code>) from <code>PyJWT.decode</code> through to <code>PyJWS._verify_signature</code>. The option was previously silently dropped between the two layers, so it only took effect when set on the <code>PyJWT</code> instance. <em>Thanks to <a href="https://github.com/WLUB"><code>@WLUB</code></a> for the report.</em></li> <li><strong>RFC 7797 §3 compliance for <code>b64=false</code>:</strong> the encoder now auto-adds <code>"b64"</code> to <code>crit</code>, and the decoder rejects tokens that set <code>b64=false</code> without listing it in <code>crit</code>. <em>Thanks to <a href="https://github.com/MachineLearning-Nerd"><code>@MachineLearning-Nerd</code></a> for the report.</em></li> </ul> <h2>Changed</h2> <ul> <li>Migrate the <code>dev</code>, <code>docs</code>, and <code>tests</code> package extras to dependency groups, by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1152">#1152</a>.</li> </ul> <h2>Upgrade notes</h2> <p>Most fixes are invisible to correctly-configured callers. A few behavioral changes you may encounter:</p> <ul> <li><strong>Empty HMAC keys now raise.</strong> If your app passed <code>""</code> or <code>b""</code> as a secret (often via a missing env var, e.g. <code>os.getenv("JWT_SECRET", "")</code>), <code>encode</code>/<code>decode</code> will now raise <code>InvalidKeyError</code>. This is the intended behavior — fix the configuration.</li> <li><strong><code>PyJWK</code> decoding now requires the token's <code>alg</code> to match the JWK's algorithm.</strong> Previously a mismatch was silently honored if the header <code>alg</code> appeared in the allow-list. Tokens that relied on this mismatch will now fail with <code>InvalidAlgorithmError</code>.</li> <li><strong><code>PyJWKClient</code> now rejects non-HTTP(S) URIs at construction time.</strong> Tests or dev environments that fetched JWKS from <code>file://</code> URIs need to switch to a local HTTP server or load the JWKS by other means (e.g. construct <code>PyJWKSet.from_dict(...)</code> directly).</li> <li><strong><code>b64=false</code> tokens are now strictly RFC 7515 / 7797 compliant.</strong> Tokens with a non-empty compact-form payload segment, or that omit <code>"b64"</code> from <code>crit</code>, will be rejected. PyJWT-produced tokens always satisfy both invariants, so round-trips through PyJWT are unaffected.</li> <li><strong><code>enforce_minimum_key_length</code> set per-call now takes effect.</strong> Callers who passed <code>options={"enforce_minimum_key_length": True}</code> to <code>jwt.decode()</code> previously got no enforcement; they will now get <code>InvalidKeyError</code> on undersized keys, as documented.</li> </ul> <p><strong>Full changelog:</strong> <a href="https://github.com/jpadilla/pyjwt/compare/2.12.1...2.13.0">https://github.com/jpadilla/pyjwt/compare/2.12.1...2.13.0</a></p> <h2>2.12.1</h2> <h2>What's Changed</h2> <ul> <li>Add typing_extensions dependency for Python < 3.11 by <a href="https://github.com/jpadilla"><code>@jpadilla</code></a> in <a href="https://redirect.github.com/jpadilla/pyjwt/pull/1151">jpadilla/pyjwt#1151</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1">https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst">pyjwt's changelog</a>.</em></p> <blockquote> <h2><code>v2.13.0 <https://github.com/jpadilla/pyjwt/compare/2.12.1...2.13.0></code>__</h2> <p>Security</p> <pre><code> - Reject JWK JSON documents passed as raw HMAC secrets in ``HMACAlgorithm.prepare_key`` to close an algorithm-confusion gap that the existing PEM/SSH guard did not cover. Reported by @aradona91 in `GHSA-xgmm-8j9v-c9wx <https://github.com/jpadilla/pyjwt/security/advisories/GHSA-xgmm-8j9v-c9wx>`__. - Bind the JWT header ``alg`` to ``PyJWK.algorithm_name`` during verification so the caller's ``algorithms=[...]`` allow-list cannot be bypassed when decoding with a ``PyJWK`` / ``PyJWKClient`` key. Reported by @sushi-gif in `GHSA-jq35-7prp-9v3f <https://github.com/jpadilla/pyjwt/security/advisories/GHSA-jq35-7prp-9v3f>`__. - Reject non-``http(s)`` URI schemes in ``PyJWKClient`` so attacker- influenced URIs cannot read local files or reach unintended schemes via urllib's default ``file://`` / ``ftp://`` / ``data:`` handlers. Reported by @KEIJOT in `GHSA-993g-76c3-p5m4 <https://github.com/jpadilla/pyjwt/security/advisories/GHSA-993g-76c3-p5m4>`__. - Preserve the cached JWK Set on fetch errors in ``PyJWKClient.fetch_data``. The previous ``finally``-block ``put(None)`` pattern cleared the cache on any transient outage, turning one bad JWKS request into application- wide auth failure. Reported by @eddieran in `GHSA-fhv5-28vv-h8m8 <https://github.com/jpadilla/pyjwt/security/advisories/GHSA-fhv5-28vv-h8m8>`__. - Skip the unconditional base64 decode of the compact-form payload segment when ``b64=false`` is set in the protected header, and require that segment to be empty (RFC 7515 Appendix F detached form). Closes an unauthenticated DoS amplifier. Reported by @thesmartshadow in `GHSA-w7vc-732c-9m39 <https://github.com/jpadilla/pyjwt/security/advisories/GHSA-w7vc-732c-9m39>`__. <p>Fixed</p> <pre><code> - Reject empty HMAC keys outright in ``HMACAlgorithm.prepare_key`` with ``InvalidKeyError`` instead of accepting them with only a warning. Thanks to @SnailSploit and @spartan8806 for independently flagging the footgun. - Forward per-call ``options`` (including ``enforce_minimum_key_length``) from ``PyJWT.decode`` through to ``PyJWS._verify_signature`` so the option actually takes effect when set at the call site rather than only on the ``PyJWT`` instance. Thanks to @WLUB for the report. - RFC 7797 §3 compliance for ``b64=false``: the encoder now auto-adds ``&quot;b64&quot;`` to the ``crit`` header parameter, and the decoder rejects tokens that set ``b64=false`` without listing it in ``crit``. Thanks to @MachineLearning-Nerd for the report. Changed </code></pre> <ul> <li>Migrate the <code>dev</code>, <code>docs</code>, and <code>tests</code> package extras to dependency groups by <a href="https://github.com/kurtmckee"><code>@kurtmckee</code></a> in <code>[#1152](https://github.com/jpadilla/pyjwt/issues/1152) &lt;https://github.com/jpadilla/pyjwt/pull/1152&gt;</code>__</li> </ul> <p><code>v2.12.1 &lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1&gt;</code>__ </tr></table> </code></pre></p> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/jpadilla/pyjwt/commit/7144e4534c34810f4525dc4578a32addd8212cff"><code>7144e45</code></a> Apply ruff format</li> <li><a href="https://github.com/jpadilla/pyjwt/commit/d2f4bec4963897c0ef96ef64a875894f2c8542ab"><code>d2f4bec</code></a> Restore <code>cast()</code> calls with cross-version <code>type: ignore</code> for <code>prepare_key</code></li> <li><a href="https://github.com/jpadilla/pyjwt/commit/22f478cebddd8294259c30f037ecb92b0b348774"><code>22f478c</code></a> Remove redundant casts in <code>RSAAlgorithm.prepare_key</code> and `ECAlgorithm.prepare...</li> <li><a href="https://github.com/jpadilla/pyjwt/commit/95791b1759b8aa4f2203575d344d5c78564cdc81"><code>95791b1</code></a> Bundle security fixes and hardening into 2.13.0</li> <li><a href="https://github.com/jpadilla/pyjwt/commit/dcc27a9d3182a2349c30b160758785c6ce7a6508"><code>dcc27a9</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/jpadilla/pyjwt/issues/1155">#1155</a>)</li> <li><a href="https://github.com/jpadilla/pyjwt/commit/9d08a9a1896845ed8eaf88e6f6ac61e5800c3e7a"><code>9d08a9a</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/jpadilla/pyjwt/issues/1146">#1146</a>)</li> <li><a href="https://github.com/jpadilla/pyjwt/commit/b87c10014d4109f0214fea188d00faaaf8a80e64"><code>b87c100</code></a> Bump codecov/codecov-action from 5 to 6 (<a href="https://redirect.github.com/jpadilla/pyjwt/issues/1154">#1154</a>)</li> <li><a href="https://github.com/jpadilla/pyjwt/commit/40e3147eb5f790d8d041772e5fc00728a176c812"><code>40e3147</code></a> Migrate development extras to dependency groups (<a href="https://redirect.github.com/jpadilla/pyjwt/issues/1152">#1152</a>)</li> <li><a href="https://github.com/jpadilla/pyjwt/commit/a4e1a3d1218b01c5806420b8f16d9308ac4adc30"><code>a4e1a3d</code></a> Add typing_extensions dependency for Python < 3.11 (<a href="https://redirect.github.com/jpadilla/pyjwt/issues/1151">#1151</a>)</li> <li>See full diff in <a href="https://github.com/jpadilla/pyjwt/compare/2.12.0...2.13.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> |
||
|
|
ce6c8b2410 | release(langgraph): 1.2.6 (#8139) | ||
|
|
79befe67ba |
fix: nested subgraph inherits parent checkpoint_ns (regression in 1.2.3) (#8053)
Closes #8038 ## Description The `ensure_config` merge introduced in #7926 caused a child graph invoked inside a parent node to inherit the parent task's `checkpoint_ns` from the ambient run context (`var_child_runnable_config`), so the child's checkpoints were written under an unreadable namespace and re-ran from scratch each turn (#8038). The first explicitly passed `configurable` that carries a checkpoint coordinate (a `thread_id`, or any `checkpoint_ns`/`checkpoint_id`/`checkpoint_map`) now replaces the ambient one, while subsequent explicit configs still shallow-merge — preserving #7926's `with_config(...)` semantics. ## Contract `ensure_config` merges an explicit `configurable` over the ambient run context (`var_child_runnable_config`) with one rule: **an explicit `configurable` that supplies its own checkpoint coordinate addresses its own checkpoint lineage, so the ambient `configurable` is dropped rather than merged over.** Coordinate keys are `thread_id`, `checkpoint_ns`, `checkpoint_id`, and `checkpoint_map` (grouped as `_CHECKPOINT_COORDINATE_KEYS`). A non-coordinate `configurable` keeps the ambient and shallow-merges over it. Below, each case shows the parent/child graph wiring that triggers it and the resulting namespacing. The child is always a compiled subgraph invoked from inside a parent node. ### 1. Subgraph invoked with no new config → ambient inherited ```python child = StateGraph(ChildState).add_node("n", child_node).add_edge(START, "n").compile(checkpointer=checkpointer) def parent_node(state): child.invoke({}, config=None) # no explicit configurable return {"result": "ok"} parent = StateGraph(ParentState).add_node("p", parent_node).add_edge(START, "p").compile(checkpointer=checkpointer) parent.invoke({"result": ""}, config={"configurable": {"thread_id": "parent"}}) ``` Child inherits the parent task's `checkpoint_ns` (`p:<parent-task>`); its checkpoints are written as a discoverable child of the parent run. Pre-#7926 behavior, unchanged. ### 2. Subgraph invoked with a new thread_id → ambient dropped ```python child = StateGraph(ChildState).add_node("n", child_node).add_edge(START, "n").compile(checkpointer=checkpointer) child_config = {"configurable": {"thread_id": str(uuid4())}} def parent_node(state): child.invoke({}, config=child_config) # explicit new thread_id return {"result": "ok"} parent = StateGraph(ParentState).add_node("p", parent_node).add_edge(START, "p").compile(checkpointer=checkpointer) parent.invoke({"result": ""}, config={"configurable": {"thread_id": "parent"}}) ``` Child starts its own lineage on `child_config`'s thread; `checkpoint_ns == ""`; `child.get_state(child_config)` reads back state across repeated parent turns. Fixes #8038. ### 3. Subgraph invoked with the same thread_id as parent → ambient still dropped ```python child = StateGraph(ChildState).add_node("n", child_node).add_edge(START, "n").compile(checkpointer=checkpointer) def parent_node(state): # reuses the parent's thread_id as the child's own child.invoke({}, config={"configurable": {"thread_id": state["parent_thread"]}}) return {"result": "ok"} parent = StateGraph(ParentState).add_node("p", parent_node).add_edge(START, "p").compile(checkpointer=checkpointer) parent_thread = str(uuid4()) parent.invoke({"parent_thread": parent_thread, "result": ""}, config={"configurable": {"thread_id": parent_thread}}) ``` Child addresses its own root namespace on the shared thread; `checkpoint_ns == ""`. The parent task's `checkpoint_ns` must not leak in, or `child.get_state({"configurable": {"thread_id": parent_thread}})` returns empty state and the child re-runs from scratch each turn. ### 4. Subagent invoked with a non-coordinate key only → ambient inherited ```python child = StateGraph(ChildState).add_node("n", child_node).add_edge(START, "n").compile(checkpointer=checkpointer) def parent_node(state): # ls_agent_type is not a checkpoint coordinate, so ambient is kept child.invoke({}, config={"configurable": {"ls_agent_type": "subagent"}}) return {"result": "ok"} parent = StateGraph(ParentState).add_node("p", parent_node).add_edge(START, "p").compile(checkpointer=checkpointer) parent.invoke({"result": ""}, config={"configurable": {"thread_id": "parent"}}) ``` Child remains a discoverable child of the parent run; ambient `thread_id` and `checkpoint_ns` preserved (deepagents `task` tool pattern). ### 5. with_config(...) + invoke-time thread_id → ambient dropped, then merged ```python # child compiled with a non-coordinate configurable via with_config child = ( StateGraph(ChildState) .add_node("n", child_node) .add_edge(START, "n") .compile(checkpointer=checkpointer) .with_config({"configurable": {"ls_agent_type": "root"}}) ) def parent_node(state): # invoke-time config supplies the thread_id; with_config's ls_agent_type survives child.invoke({}, config={"configurable": {"thread_id": "child"}}) return {"result": "ok"} parent = StateGraph(ParentState).add_node("p", parent_node).add_edge(START, "p").compile(checkpointer=checkpointer) parent.invoke({"result": ""}, config={"configurable": {"thread_id": "parent"}}) ``` First coordinate-bearing config (`thread_id`) drops the ambient; subsequent explicit configs still shallow-merge, so `ls_agent_type` survives alongside `thread_id`. Preserves #7926 `with_config(...)` semantics. ### Regression note Cases 1, 4, and 5 are the pre-#7926 behavior and are preserved unchanged. Cases 2 and 3 fix the regression introduced by #7926: an explicit `thread_id` resets the ambient even when it equals the ambient thread id, because a child reusing the parent's thread id still addresses its own root namespace on that thread, not the parent task's. ## Self-Hosted Release Note Fix regression where a nested subgraph with its own `thread_id` invoked inside a parent node lost its persisted state across turns. ## Test Plan - [x] `pytest tests/test_subgraph_persistence.py -k test_child_with_own_thread_id_keeps_namespace` (case 2) - [x] `pytest tests/test_utils.py -k ensure_config_explicit_configurable_replaces_ambient` (case 2) - [x] `pytest tests/test_utils.py -k ensure_config_ambient_inherited_when_no_explicit_configurable` (case 1) - [x] `pytest tests/test_utils.py -k ensure_config_non_coordinate_config_keeps_ambient_checkpoint_ns` (case 4) - [x] `pytest tests/test_utils.py -k ensure_config_explicit_configurables_still_merge_over_ambient` (case 5) - [x] `pytest tests/test_utils.py -k ensure_config_same_thread_id_still_clears_ambient` (case 3) Made by [Open SWE](https://openswe.vercel.app) --------- Co-authored-by: Nick Hollon <274035459+nick-hollon-lc@users.noreply.github.com> Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com> |
||
|
|
9af25217c3 |
fix: cancel running subgraphs on v3 stream abort [closes #8029] (#8057)
## Description v3 event streaming's `stream.abort()` (sync and async) only closed the mux and stopped pumping, leaving the underlying `astream`/`stream` generator — and any running subgraphs — alive until they finished, burning resources. The fix closes the underlying graph iterator so `GeneratorExit` propagates into in-flight nodes/subgraphs and cancels them, matching v2's `aclose()` behavior. Fixes #8029. ## Release Note v3 streaming `stream.abort()` now cancels running subgraphs instead of letting them run to completion. ## Test Plan - [x] `TEST="tests/test_pregel_stream_events_v3.py -k abort" make test` (new `test_abort_cancels_running_subgraph` asserts the looping subgraph stops after abort) Made by [Open SWE](https://openswe.vercel.app) --------- Co-authored-by: Nick Hollon <274035459+nick-hollon-lc@users.noreply.github.com> Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com> |
||
|
|
1a9baae959 |
release(cli): 0.4.30 (#8101)
Bump langgraph-cli to 0.4.30 to cut a CLI release from
|
||
|
|
8558481859 |
docs: standardize package README.md structure (#8064)
Aligns the repository's package READMEs around a shared documentation shape so users see consistent install, positioning, docs, release, and contribution guidance across LangGraph packages. |
||
|
|
4cf120df49 |
chore(deps): bump tornado from 6.5.5 to 6.5.6 in /libs/langgraph (#8063)
Bumps [tornado](https://github.com/tornadoweb/tornado) from 6.5.5 to 6.5.6. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tornadoweb/tornado/blob/master/docs/releases.rst">tornado's changelog</a>.</em></p> <blockquote> <h1>Release notes</h1> <p>.. toctree:: :maxdepth: 2</p> <p>releases/v6.5.7 releases/v6.5.6 releases/v6.5.5 releases/v6.5.4 releases/v6.5.3 releases/v6.5.2 releases/v6.5.1 releases/v6.5.0 releases/v6.4.2 releases/v6.4.1 releases/v6.4.0 releases/v6.3.3 releases/v6.3.2 releases/v6.3.1 releases/v6.3.0 releases/v6.2.0 releases/v6.1.0 releases/v6.0.4 releases/v6.0.3 releases/v6.0.2 releases/v6.0.1 releases/v6.0.0 releases/v5.1.1 releases/v5.1.0 releases/v5.0.2 releases/v5.0.1 releases/v5.0.0 releases/v4.5.3 releases/v4.5.2 releases/v4.5.1 releases/v4.5.0 releases/v4.4.3 releases/v4.4.2 releases/v4.4.1 releases/v4.4.0 releases/v4.3.0 releases/v4.2.1 releases/v4.2.0 releases/v4.1.0 releases/v4.0.2 releases/v4.0.1 releases/v4.0.0 releases/v3.2.2 releases/v3.2.1</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tornadoweb/tornado/commit/aba2569f7ed7a6bdbef816658fb6b7182531b751"><code>aba2569</code></a> Merge pull request <a href="https://redirect.github.com/tornadoweb/tornado/issues/3626">#3626</a> from bdarnell/fixes-656</li> <li><a href="https://github.com/tornadoweb/tornado/commit/a24b260e0d22fd48acea1a2635526c1700e7ac09"><code>a24b260</code></a> httpclient_test: Accept an additional error message variant</li> <li><a href="https://github.com/tornadoweb/tornado/commit/a74240a70268fe5cb40a127951cb21549ab9ff24"><code>a74240a</code></a> Release notes and version bump for 6.5.6.</li> <li><a href="https://github.com/tornadoweb/tornado/commit/e8fc7edb238f1022e39f9d0b9d297fc7c21fb0a5"><code>e8fc7ed</code></a> simple_httpclient: Strip auth headers on cross-origin redirects</li> <li><a href="https://github.com/tornadoweb/tornado/commit/96dc88c2a05705287856b2cd6b4b4034f9a6aaac"><code>96dc88c</code></a> speedups: validate mask length</li> <li><a href="https://github.com/tornadoweb/tornado/commit/ff808b33adc52d89a549376a5e3628e92abbc8ff"><code>ff808b3</code></a> http1connection: Enforce max_body_size in _GzipMessageDelegate</li> <li><a href="https://github.com/tornadoweb/tornado/commit/ede4e37f93c1edbc0bf749e9a57c9db2501cd54b"><code>ede4e37</code></a> auth: Correctly parse check_authentication response</li> <li><a href="https://github.com/tornadoweb/tornado/commit/1c178bef88bbd29907eb94a2a649a4a6675681de"><code>1c178be</code></a> Remove obsolete curl force_timeout workaround</li> <li><a href="https://github.com/tornadoweb/tornado/commit/c99d55bb6cc0c9da2c6696545ed4ee1d20b7fcf0"><code>c99d55b</code></a> Replace deprecated pycurl IOCTLFUNCTION callback with SEEKFUNCTION</li> <li><a href="https://github.com/tornadoweb/tornado/commit/27614316ef8ad125fe18725cf96e384560ba0e14"><code>2761431</code></a> Merge pull request <a href="https://redirect.github.com/tornadoweb/tornado/issues/3587">#3587</a> from bdarnell/fix-link</li> <li>Additional commits viewable in <a href="https://github.com/tornadoweb/tornado/compare/v6.5.5...v6.5.6">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> |
||
|
|
7ab79f9f3e | release(langgraph): 1.2.5 (#8062) | ||
|
|
385033fd9c |
fix(langgraph): merge lc_versions config metadata (#8052)
Preserve LangChain package-version trace metadata when graph-bound config and invoke-time config both contribute `lc_versions`. The earlier broad nested metadata merge has been narrowed to the LangChain-owned `lc_versions` namespace, so arbitrary user metadata keeps the existing last-writer-wins behavior. ## Changes - Add a shared metadata merge path used by `merge_configs()` and `ensure_config()` so top-level metadata keys are preserved across bound and runtime configs. - Special-case only `metadata["lc_versions"]` for one-level package-version accumulation; duplicate package entries remain last-writer-wins and non-mapping values still replace. - Keep generic nested metadata maps, including user-owned `metadata["versions"]`, as replacement-only to avoid changing arbitrary metadata semantics. - Raise the `langchain-core` lower bound to `>=1.4.7` so LangGraph’s `lc_versions` handling aligns with the lc-core package-version instrumentation. - Cover both config merge helpers with tests for `lc_versions` accumulation, non-recursive replacement within the package map, generic nested metadata replacement, and defensive copying of mapping values. ## Test note The stream event assertions for `test_imp_exception` now avoid depending on leaked internal task-path metadata. With older `langchain-core`, callback metadata could be mutated by later task runs, so every task event in this test appeared to have the final task path index. That made even the `task_with_exception` start event report `metadata["langgraph_node"] == "my_task"`, which is inconsistent with the event name. `langchain-core>=1.4.6` preserves per-event metadata more accurately: the first `my_task`, `task_with_exception`, and second `my_task` report distinct task path indexes. The test now asserts the stable behavior instead: event sequence, tags, required metadata, root stream payloads, exception handling, and final outputs, without requiring the old leaked task index. |
||
|
|
f0e814796b |
release(cli): 0.4.28 (#8041)
Bumping the version to support langgraph-api stable versions 0.10.0, 0.11.0rcX and 0.12.0.devY releases. |
||
|
|
d57a74f950 |
fix: updateState bug for deltaChannel on empty thread (#8011)
Fixes langchain-ai/deepagents#3774 ## Summary `Pregel.update_state` / `aupdate_state` on a fresh thread silently dropped the first write to a `DeltaChannel`-backed channel (e.g. `DeepAgentState.messages`). This PR persists the first write under a lazily-created stub checkpoint so the read-path ancestor walk can replay it. ## Root cause `DeltaChannel` reads its value back by walking ancestor checkpoints and replaying writes attached to them — non-snapshot steps don't store the value in `channel_values`. In `bulk_update_state` the channel writes were only persisted via `checkpointer.put_writes(...)` when a previous checkpoint existed: ```python channel_writes = [w for w in task.writes if w[0] != PUSH] if saved and channel_writes: checkpointer.put_writes(checkpoint_config, channel_writes, task_id) ``` On a fresh thread `saved is None`, so the `if saved` guard skipped persistence entirely. `create_checkpoint` then bumped the channel version but stored neither a value nor replayable writes, so reads returned `[]`. ## Fix In both `bulk_update_state` (sync) and `abulk_update_state` (async), when the thread has no persisted parent **and** at least one write targets a `DeltaChannel`, lazily persist an empty stub checkpoint and use it as the parent for both the channel writes and the new update checkpoint. Mirrors the existing exit-mode pattern in `_loop._put_exit_delta_writes`. The behavior for non-delta writes on a fresh thread is preserved (skip `put_writes` — values are stored directly in the new checkpoint's `channel_values`), so non-delta `update_state` paths add no extra checkpoint rows. ## Test coverage New tests in `libs/langgraph/tests/test_delta_channel_update_state.py` (9 tests, sync + async): - **Fresh-thread regression** (the bug): single `update_state` writes a message and reads back via `get_state`. Without the fix, both sync and async fail with `assert [] == ['hello']`. - **`update_state` after `invoke`**: pins down the previously-working non-fresh-thread path so the lazy-stub change doesn't regress it. - **Consecutive `update_state`s**: second call sees a real parent (`saved is not None`) and takes the original write path; both messages round-trip in chronological order. - **Update-by-id end-to-end via `update_state`**: `_messages_delta_reducer`'s dedup-by-id semantics work through the `update_state` path, not just `invoke`. - **`bulk_update_state` with multiple per-superstep updates**: locks in the per-task `put_writes` loop so all task writes persist (not just the last task's). - **State-history chain shape**: validates the lazy stub via the public API — `get_state_history` returns `[update_checkpoint, stub]` where the stub has `source='update'`, `step=-1`, no parent, and the update checkpoint's `parent_config` points at the stub. ## Verification - All 9 tests in `tests/test_delta_channel_update_state.py` pass. - All 4 existing delta-channel suites pass (`test_delta_channel_exit_mode.py`, `test_delta_channel_migration.py`, `test_delta_channel_id_stability.py`, `test_delta_channel_supersteps_bound.py` — 30 tests, 39 total with the new file). - All `update_state`-related tests across `test_pregel`, `test_pregel_async`, `test_time_travel`, `test_time_travel_async` pass (10 tests). - `make format`, `make lint`, full `make test` pass locally in `libs/langgraph`. --------- Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|
|
2b1abc807b |
chore: migrate Python type checking to ty (#8002)
## Summary - replace Python lint type-checking from mypy to ty across LangGraph packages - remove mypy config/cache wiring and mypy-only references - regenerate uv locks with ty 0.0.43 ## Verification - git diff --check - make lint_package && make lint_tests in libs/langgraph - make lint_package && make lint_tests in libs/checkpoint - make lint_package && make lint_tests in libs/checkpoint-sqlite - make lint_package && make lint_tests in libs/checkpoint-postgres - make lint_package && make lint_tests in libs/prebuilt - make lint_package && make lint_tests in libs/cli - make lint in libs/sdk-py - make lint in libs/checkpoint-conformance --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: open-swe[bot] <215916821+open-swe[bot]@users.noreply.github.com> |
||
|
|
f52dd90756 |
chore(deps-dev): bump types-requests from 2.33.0.20260408 to 2.33.0.20260518 in /libs/langgraph (#7977)
Bumps [types-requests](https://github.com/python/typeshed) from 2.33.0.20260408 to 2.33.0.20260518. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/python/typeshed/commits">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) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
0eeef4b13e |
chore(deps): bump the minor-and-patch group in /libs/langgraph with 14 updates (#7975)
Bumps the minor-and-patch group in /libs/langgraph with 14 updates: | Package | From | To | | --- | --- | --- | | [pydantic](https://github.com/pydantic/pydantic) | `2.13.3` | `2.13.4` | | [syrupy](https://github.com/syrupy-project/syrupy) | `5.1.0` | `5.3.1` | | [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.15.15` | | [psycopg-binary](https://github.com/psycopg/psycopg) | `3.3.2` | `3.3.4` | | [ormsgpack](https://github.com/ormsgpack/ormsgpack) | `1.12.1` | `1.12.2` | | [sqlite-vec](https://TODO.com) | `0.1.6` | `0.1.9` | | [orjson](https://github.com/ijl/orjson) | `3.11.6` | `3.11.9` | | [psycopg](https://github.com/psycopg/psycopg) | `3.3.2` | `3.3.4` | | [psycopg-pool](https://github.com/psycopg/psycopg) | `3.3.0` | `3.3.1` | | [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` | | [langchain-protocol](https://github.com/langchain-ai/agent-protocol) | `0.0.15` | `0.0.16` | | [ty](https://github.com/astral-sh/ty) | `0.0.33` | `0.0.42` | | [click](https://github.com/pallets/click) | `8.3.1` | `8.4.1` | | [pathspec](https://github.com/cpburnz/python-pathspec) | `1.0.3` | `1.1.1` | Updates `pydantic` from 2.13.3 to 2.13.4 <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.4 2026-05-06</h2> <h2>v2.13.4 (2026-05-06)</h2> <h3>What's Changed</h3> <h4>Packaging</h4> <ul> <li>Bump libc from 0.2.155 to 0.2.185 by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13109">#13109</a></li> <li>Adapt <code>pydantic-core</code> linker flags on macOS by <a href="https://github.com/washingtoneg"><code>@washingtoneg</code></a> and <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13147">#13147</a></li> </ul> <h4>Fixes</h4> <ul> <li>Preserve <code>RootModel</code> core metadata by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13129">#13129</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4">https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4</a></p> </blockquote> </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.4 (2026-05-06)</h2> <p><a href="https://github.com/pydantic/pydantic/releases/tag/v2.13.4">GitHub release</a></p> <h3>What's Changed</h3> <h4>Packaging</h4> <ul> <li>Bump libc from 0.2.155 to 0.2.185 by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13109">#13109</a></li> <li>Adapt <code>pydantic-core</code> linker flags on macOS by <a href="https://github.com/washingtoneg"><code>@washingtoneg</code></a> and <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13147">#13147</a></li> </ul> <h4>Fixes</h4> <ul> <li>Preserve <code>RootModel</code> core metadata by <a href="https://github.com/Viicos"><code>@Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13129">#13129</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382"><code>cf67d4b</code></a> Fix linting</li> <li><a href="https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662"><code>f0d8a21</code></a> Prepare release v2.13.4</li> <li><a href="https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a"><code>5e3fe1d</code></a> Check for pydantic tag pattern in CI</li> <li><a href="https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686"><code>7f9edcc</code></a> Document tagging conventions</li> <li><a href="https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c"><code>b46a0c9</code></a> Adapt <code>pydantic-core</code> linker flags on macOS</li> <li><a href="https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400"><code>50629c8</code></a> Update to PyPy 7.3.22</li> <li><a href="https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725"><code>8522ebb</code></a> Preserve <code>RootModel</code> core metadata</li> <li><a href="https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8"><code>a37f3af</code></a> Adapt <code>MISSING</code> sentinel test to work with unreleased <code>typing_extensions</code> ver...</li> <li><a href="https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2"><code>909259a</code></a> Remove Logfire example in documentation</li> <li><a href="https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df"><code>2c4174c</code></a> Bump libc from 0.2.155 to 0.2.185</li> <li>See full diff in <a href="https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4">compare view</a></li> </ul> </details> <br /> Updates `syrupy` from 5.1.0 to 5.3.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/syrupy-project/syrupy/releases">syrupy's releases</a>.</em></p> <blockquote> <h2>v5.3.1</h2> <h2>What's Changed</h2> <h3>Fixes</h3> <ul> <li>fix(test): mark pydantic and attrs as dependencies for running internal tests by <a href="https://github.com/noahnu"><code>@noahnu</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1108">syrupy-project/syrupy#1108</a> -- <strong>This only affects users trying to run the syrupy tests themselves, not consumers of syrupy.</strong></li> </ul> <h3>Misc</h3> <ul> <li>chore(deps): update astral-sh/setup-uv action to v8.1.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1103">syrupy-project/syrupy#1103</a></li> <li>chore(deps): update python docker tag to v3.14.4 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1102">syrupy-project/syrupy#1102</a></li> <li>chore(deps): update benchmark-action/github-action-benchmark action to v1.22.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1105">syrupy-project/syrupy#1105</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1">https://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1</a></p> <h2>v5.3.0</h2> <h2>What's Changed</h2> <h3>Features</h3> <ul> <li>feat: add --snapshot-update-new-only flag (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/843">#843</a>) by <a href="https://github.com/SAY-5"><code>@SAY-5</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1098">syrupy-project/syrupy#1098</a></li> </ul> <h3>Misc.</h3> <ul> <li>chore: move release marker by <a href="https://github.com/noahnu"><code>@noahnu</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1095">syrupy-project/syrupy#1095</a></li> <li>chore(deps): update codecov/codecov-action action to v5.5.4 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1089">syrupy-project/syrupy#1089</a></li> <li>chore(deps): update dependency pytest to v9.0.3 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1096">syrupy-project/syrupy#1096</a></li> <li>fix: include tests in sdist by <a href="https://github.com/Lovlace777"><code>@Lovlace777</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1099">syrupy-project/syrupy#1099</a></li> <li>chore: skip benchmark on forks by <a href="https://github.com/noahnu"><code>@noahnu</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1100">syrupy-project/syrupy#1100</a></li> <li>chore: update dev dependencies by <a href="https://github.com/noahnu"><code>@noahnu</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1101">syrupy-project/syrupy#1101</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Lovlace777"><code>@Lovlace777</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1099">syrupy-project/syrupy#1099</a></li> <li><a href="https://github.com/SAY-5"><code>@SAY-5</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1098">syrupy-project/syrupy#1098</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0">https://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0</a></p> <h2>v5.2.0</h2> <h2>What's Changed</h2> <ul> <li>chore(deps): update actions/checkout action to v6.0.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1065">syrupy-project/syrupy#1065</a></li> <li>chore(deps): update actions/setup-python action to v6.2.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1066">syrupy-project/syrupy#1066</a></li> <li>chore(deps): update dependency ruff to v0.14.14 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1067">syrupy-project/syrupy#1067</a></li> <li>chore(deps): update dependency coverage to v7.13.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1068">syrupy-project/syrupy#1068</a></li> <li>chore: migrate to uv, close <a href="https://redirect.github.com/syrupy-project/syrupy/issues/1019">#1019</a> by <a href="https://github.com/noahnu"><code>@noahnu</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1049">syrupy-project/syrupy#1049</a></li> <li>chore(deps): update dependency coverage to v7.13.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1069">syrupy-project/syrupy#1069</a></li> <li>chore(deps): update dependency debugpy to v1.8.19 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1070">syrupy-project/syrupy#1070</a></li> <li>chore(deps): update dependency mypy to v1.19.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1071">syrupy-project/syrupy#1071</a></li> <li>chore(deps): update dependency ruff to v0.14.14 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1072">syrupy-project/syrupy#1072</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md">syrupy's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.3.1">v5.3.1</a> (2026-05-31)</h2> <h2>What's Changed</h2> <h3>Fixes</h3> <ul> <li>fix(test): mark pydantic and attrs as dependencies for running internal tests by <a href="https://github.com/noahnu"><code>@noahnu</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1108">syrupy-project/syrupy#1108</a> -- <strong>This only affects users trying to run the syrupy tests themselves, not consumers of syrupy.</strong></li> </ul> <h3>Misc</h3> <ul> <li>chore(deps): update astral-sh/setup-uv action to v8.1.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1103">syrupy-project/syrupy#1103</a></li> <li>chore(deps): update python docker tag to v3.14.4 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1102">syrupy-project/syrupy#1102</a></li> <li>chore(deps): update benchmark-action/github-action-benchmark action to v1.22.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1105">syrupy-project/syrupy#1105</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1">https://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1</a></p> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.3.0">v5.3.0</a> (2026-05-31)</h2> <h2>What's Changed</h2> <h3>Features</h3> <ul> <li>feat: add --snapshot-update-new-only flag (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/843">#843</a>) by <a href="https://github.com/SAY-5"><code>@SAY-5</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1098">syrupy-project/syrupy#1098</a></li> </ul> <h3>Misc.</h3> <ul> <li>chore: move release marker by <a href="https://github.com/noahnu"><code>@noahnu</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1095">syrupy-project/syrupy#1095</a></li> <li>chore(deps): update codecov/codecov-action action to v5.5.4 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1089">syrupy-project/syrupy#1089</a></li> <li>chore(deps): update dependency pytest to v9.0.3 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1096">syrupy-project/syrupy#1096</a></li> <li>fix: include tests in sdist by <a href="https://github.com/Lovlace777"><code>@Lovlace777</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1099">syrupy-project/syrupy#1099</a></li> <li>chore: skip benchmark on forks by <a href="https://github.com/noahnu"><code>@noahnu</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1100">syrupy-project/syrupy#1100</a></li> <li>chore: update dev dependencies by <a href="https://github.com/noahnu"><code>@noahnu</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1101">syrupy-project/syrupy#1101</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Lovlace777"><code>@Lovlace777</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1099">syrupy-project/syrupy#1099</a></li> <li><a href="https://github.com/SAY-5"><code>@SAY-5</code></a> made their first contribution in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1098">syrupy-project/syrupy#1098</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0">https://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0</a></p> <h2><a href="https://github.com/syrupy-project/syrupy/releases/tag/v5.2.0">v5.2.0</a> (2026-05-16)</h2> <h2>What's Changed</h2> <ul> <li>chore(deps): update actions/checkout action to v6.0.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1065">syrupy-project/syrupy#1065</a></li> <li>chore(deps): update actions/setup-python action to v6.2.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1066">syrupy-project/syrupy#1066</a></li> <li>chore(deps): update dependency ruff to v0.14.14 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1067">syrupy-project/syrupy#1067</a></li> <li>chore(deps): update dependency coverage to v7.13.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1068">syrupy-project/syrupy#1068</a></li> <li>chore: migrate to uv, close <a href="https://redirect.github.com/syrupy-project/syrupy/issues/1019">#1019</a> by <a href="https://github.com/noahnu"><code>@noahnu</code></a> in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1049">syrupy-project/syrupy#1049</a></li> <li>chore(deps): update dependency coverage to v7.13.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/syrupy-project/syrupy/pull/1069">syrupy-project/syrupy#1069</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/syrupy-project/syrupy/commit/c528216d5fa53517f9df34f49db55d3e455377c9"><code>c528216</code></a> fix(test): mark pydantic and attrs as dependencies for running internal tests...</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/32b9ccb6d2da49b91e3052e33b9e1e208963bf55"><code>32b9ccb</code></a> chore(deps): update benchmark-action/github-action-benchmark action to v1.22....</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/520f813ebf7f5c61bc45564b750cbfa836df0f2f"><code>520f813</code></a> chore(deps): update python docker tag to v3.14.4 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1102">#1102</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/9ad6eb48c90cadf3f1e13705414a612eed72637f"><code>9ad6eb4</code></a> chore(deps): update astral-sh/setup-uv action to v8.1.0 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1103">#1103</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/06c5ab4688ad816ef50c320f764f20e53ea89ae5"><code>06c5ab4</code></a> chore(release): 5.3.0 [skip ci]</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/5887f25a02e6bb6d0b2b0cd9853d86c259345f1c"><code>5887f25</code></a> chore: update dev dependencies (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1101">#1101</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/2daa56e2b74f7ed1b3e74086d9509ac7454a41be"><code>2daa56e</code></a> feat: add --snapshot-update-new-only flag (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/843">#843</a>) (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1098">#1098</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/61c4e07e7a710270c4ebc3435652bc7d945fc60c"><code>61c4e07</code></a> chore: skip benchmark on forks (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1100">#1100</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/a4880a798e64546118c4afc4e1b655cf1ea17cb2"><code>a4880a7</code></a> fix: include tests in sdist (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1099">#1099</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/719a71ab83f94119072d5db79568b90b0455a7a1"><code>719a71a</code></a> chore(deps): update dependency pytest to v9.0.3 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1096">#1096</a>)</li> <li>Additional commits viewable in <a href="https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.3.1">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.12 to 0.15.15 <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.15</h2> <h2>Release Notes</h2> <p>Released on 2026-05-28.</p> <h3>Preview features</h3> <ul> <li>Fix Markdown closing fence handling (<a href="https://redirect.github.com/astral-sh/ruff/pull/25310">#25310</a>)</li> <li>[<code>pyflakes</code>] Report duplicate imports in <code>typing.TYPE_CHECKING</code> block (<code>F811</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22560">#22560</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>[<code>pyflakes</code>] Treat function-scope bare annotations as locals per PEP 526 (<code>F821</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/21540">#21540</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Avoid redundant <code>TokenValue</code> drops in the lexer (<a href="https://redirect.github.com/astral-sh/ruff/pull/25300">#25300</a>)</li> <li>Reduce memory usage by dropping token-excess capacity and improve performance by approximating the initial tokens <code>Vec</code> size (<a href="https://redirect.github.com/astral-sh/ruff/pull/25354">#25354</a>)</li> <li>Use <code>ThinVec</code> in AST to shrink <code>Stmt</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/25361">#25361</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix <code>line-length</code> example for <code>--config</code> option (<a href="https://redirect.github.com/astral-sh/ruff/pull/25389">#25389</a>)</li> <li>[<code>flake8-comprehensions</code>] Document <code>RecursionError</code> edge case in <code>__len__</code> (<code>C416</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/25286">#25286</a>)</li> <li>[<code>mccabe</code>] Improve example (<code>C901</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/25287">#25287</a>)</li> <li>[<code>pyupgrade</code>] Clarify fix safety docs (<code>UP007</code>, <code>UP045</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/25288">#25288</a>)</li> <li>[<code>refurb</code>] Document <code>FURB192</code> exception change for empty sequences (<a href="https://redirect.github.com/astral-sh/ruff/pull/25317">#25317</a>)</li> <li>[<code>ruff</code>] Document false negative for user-defined types (<code>RUF013</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/25289">#25289</a>)</li> </ul> <h3>Formatter</h3> <ul> <li>Fix formatting of lambdas nested within f-strings (<a href="https://redirect.github.com/astral-sh/ruff/pull/25398">#25398</a>)</li> </ul> <h3>Server</h3> <ul> <li>Return code action for <code>codeAction/resolve</code> requests that contain no or no valid URL (<a href="https://redirect.github.com/astral-sh/ruff/pull/25365">#25365</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Expand semantic syntax errors for invalid walruses (<a href="https://redirect.github.com/astral-sh/ruff/pull/25415">#25415</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/chirizxc"><code>@chirizxc</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/adityasingh2400"><code>@adityasingh2400</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/fallintoplace"><code>@fallintoplace</code></a></li> <li><a href="https://github.com/martin-schlossarek"><code>@martin-schlossarek</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</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/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.15.15</h2> <p>Released on 2026-05-28.</p> <h3>Preview features</h3> <ul> <li>Fix Markdown closing fence handling (<a href="https://redirect.github.com/astral-sh/ruff/pull/25310">#25310</a>)</li> <li>[<code>pyflakes</code>] Report duplicate imports in <code>typing.TYPE_CHECKING</code> block (<code>F811</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22560">#22560</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>[<code>pyflakes</code>] Treat function-scope bare annotations as locals per PEP 526 (<code>F821</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/21540">#21540</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Avoid redundant <code>TokenValue</code> drops in the lexer (<a href="https://redirect.github.com/astral-sh/ruff/pull/25300">#25300</a>)</li> <li>Reduce memory usage by dropping token-excess capacity and improve performance by approximating the initial tokens <code>Vec</code> size (<a href="https://redirect.github.com/astral-sh/ruff/pull/25354">#25354</a>)</li> <li>Use <code>ThinVec</code> in AST to shrink <code>Stmt</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/25361">#25361</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix <code>line-length</code> example for <code>--config</code> option (<a href="https://redirect.github.com/astral-sh/ruff/pull/25389">#25389</a>)</li> <li>[<code>flake8-comprehensions</code>] Document <code>RecursionError</code> edge case in <code>__len__</code> (<code>C416</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/25286">#25286</a>)</li> <li>[<code>mccabe</code>] Improve example (<code>C901</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/25287">#25287</a>)</li> <li>[<code>pyupgrade</code>] Clarify fix safety docs (<code>UP007</code>, <code>UP045</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/25288">#25288</a>)</li> <li>[<code>refurb</code>] Document <code>FURB192</code> exception change for empty sequences (<a href="https://redirect.github.com/astral-sh/ruff/pull/25317">#25317</a>)</li> <li>[<code>ruff</code>] Document false negative for user-defined types (<code>RUF013</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/25289">#25289</a>)</li> </ul> <h3>Formatter</h3> <ul> <li>Fix formatting of lambdas nested within f-strings (<a href="https://redirect.github.com/astral-sh/ruff/pull/25398">#25398</a>)</li> </ul> <h3>Server</h3> <ul> <li>Return code action for <code>codeAction/resolve</code> requests that contain no or no valid URL (<a href="https://redirect.github.com/astral-sh/ruff/pull/25365">#25365</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Expand semantic syntax errors for invalid walruses (<a href="https://redirect.github.com/astral-sh/ruff/pull/25415">#25415</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/chirizxc"><code>@chirizxc</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/adityasingh2400"><code>@adityasingh2400</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/fallintoplace"><code>@fallintoplace</code></a></li> <li><a href="https://github.com/martin-schlossarek"><code>@martin-schlossarek</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/Ruchir28"><code>@Ruchir28</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/ruff/commit/db5aa0a5f1b92cb91d910bf0866a967554dd94f5"><code>db5aa0a</code></a> Bump 0.15.15 (<a href="https://redirect.github.com/astral-sh/ruff/issues/25431">#25431</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/366fe21ba369ccdd01eb99c1043c9a969c99230b"><code>366fe21</code></a> [ty] Improve diagnostics for syntax errors in forward annotations (<a href="https://redirect.github.com/astral-sh/ruff/issues/25158">#25158</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/e2e1e647d182b8567845039c9a65fb0608a4dcfc"><code>e2e1e64</code></a> [ty] Remove excess capacity from more Salsa cached collections (<a href="https://redirect.github.com/astral-sh/ruff/issues/25411">#25411</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/1bd77e1646f2213d86b8da215f08279187867d72"><code>1bd77e1</code></a> [ty] Use diagnostic message as tie breaker when sorting (<a href="https://redirect.github.com/astral-sh/ruff/issues/25424">#25424</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/7e1bc1e75f15795f12c846294b13df4535f2abbf"><code>7e1bc1e</code></a> Add agent skills for working on ty (<a href="https://redirect.github.com/astral-sh/ruff/issues/25422">#25422</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/574e10752f8cfa9e0cdbe3b01e96c4380950469b"><code>574e107</code></a> Expand semantic syntax errors for invalid walruses (<a href="https://redirect.github.com/astral-sh/ruff/issues/25415">#25415</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/4a7ca062fccd80443a43aa61e5dc7e5858e88dc1"><code>4a7ca06</code></a> [ty] Display docs for matching parameter when hovering over the name of an ar...</li> <li><a href="https://github.com/astral-sh/ruff/commit/54327092dbfe455040690d63bb1e5e4b5f551239"><code>5432709</code></a> Refine a few agents instructions (<a href="https://redirect.github.com/astral-sh/ruff/issues/25423">#25423</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/3cb09eba689ebb49e799131092121928cc789c18"><code>3cb09eb</code></a> [ty] Support <code>typing.TypeForm</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/25334">#25334</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/c8cd59f189f2b6f55d542b29bddb953622add6fc"><code>c8cd59f</code></a> [ty] Infer class attributes assigned by metaclass initialization (<a href="https://redirect.github.com/astral-sh/ruff/issues/25342">#25342</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.15.12...0.15.15">compare view</a></li> </ul> </details> <br /> Updates `psycopg-binary` from 3.3.2 to 3.3.4 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg-binary's changelog</a>.</em></p> <blockquote> <p>.. currentmodule:: psycopg</p> <p>.. index:: single: Release notes single: News</p> <h1><code>psycopg</code> release notes</h1> <h2>Future releases</h2> <p>Psycopg 3.3.5 (unreleased) ^^^^^^^^^^^^^^^^^^^^^^^^^^</p> <ul> <li>Discard prepared statements upon :sql:<code>ALTER *</code> or <code>DISCARD *</code> (🎫<code>[#1307](https://github.com/psycopg/psycopg/issues/1307)</code>).</li> </ul> <h2>Current release</h2> <p>Psycopg 3.3.4 ^^^^^^^^^^^^^</p> <ul> <li>Fix possible spurious connection timeout in systems with very long uptimes in C extension (🎫<code>[#1280](https://github.com/psycopg/psycopg/issues/1280)</code>).</li> <li>Fix client-side adaptation of enums whose name require quotes (🎫<code>[#1298](https://github.com/psycopg/psycopg/issues/1298)</code>).</li> <li>Consistently populate <code>~Cursor.statusmessage</code> after <code>~Cursor.executemany()</code> (🎫<code>[#1302](https://github.com/psycopg/psycopg/issues/1302)</code>).</li> </ul> <p>Psycopg 3.3.3 ^^^^^^^^^^^^^</p> <ul> <li>Retain <code>Error.pgconn</code> when raising a single exception for multiple connection attempt errors (🎫<code>[#1246](https://github.com/psycopg/psycopg/issues/1246)</code>).</li> <li>Return a proper error when server sends <code>ErrorResponse</code> for a <code>Sync</code> after a <code>Parse</code> (🎫<code>[#1260](https://github.com/psycopg/psycopg/issues/1260)</code>).</li> </ul> <p>Psycopg 3.3.2 ^^^^^^^^^^^^^</p> <p>Fix race condition in adapters at startup (🎫<code>[#1230](https://github.com/psycopg/psycopg/issues/1230)</code>).</p> <p>Psycopg 3.3.1 ^^^^^^^^^^^^^</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/psycopg/psycopg/commit/83f110367cdd249cc0a352e2246ecea9e878e5a0"><code>83f1103</code></a> chore: bump psycopg_pool package version to 3.3.1</li> <li><a href="https://github.com/psycopg/psycopg/commit/18287707f56a2b4f0817d9c23d137f5d69db6e31"><code>1828770</code></a> chore: bump psycopg package version to 3.3.4</li> <li><a href="https://github.com/psycopg/psycopg/commit/8be14bbc18f74de7652606d2777e0950ec804cc0"><code>8be14bb</code></a> Merge pull request <a href="https://redirect.github.com/psycopg/psycopg/issues/1301">#1301</a> from oliverhaas/fix/sync-pool-open-race</li> <li><a href="https://github.com/psycopg/psycopg/commit/aee0bf2659db77c31154acf583baf0a98675c192"><code>aee0bf2</code></a> fix(pool): fix race in the construction of the sync ConnectionPool lock</li> <li><a href="https://github.com/psycopg/psycopg/commit/bc4d30375557fc32f2a91c2f8b75a5d21711ea89"><code>bc4d303</code></a> chore(deps): bump the actions group across 1 directory with 4 updates</li> <li><a href="https://github.com/psycopg/psycopg/commit/785379f196fc17473d312451a1fd4a06ef8dc895"><code>785379f</code></a> fix: retain statusmessage after executemany with returning=False</li> <li><a href="https://github.com/psycopg/psycopg/commit/8882a73871e65727549657085922d043a106127c"><code>8882a73</code></a> perf: do less if X in Y: return Y[X] for cache-like patterns</li> <li><a href="https://github.com/psycopg/psycopg/commit/2f785395c189e709da5fa74a02d3797bfb9db6a4"><code>2f78539</code></a> Merge pull request <a href="https://redirect.github.com/psycopg/psycopg/issues/1299">#1299</a> from dvarrazzo/fix-camel-enum</li> <li><a href="https://github.com/psycopg/psycopg/commit/37ef1dc4e6d19dc4af062d45a63243cb96a261c2"><code>37ef1dc</code></a> test: skip test on crdb depending on precise regtype behaviour</li> <li><a href="https://github.com/psycopg/psycopg/commit/7f2f1d159df881260e3086fd61ea71343ca98e58"><code>7f2f1d1</code></a> fix: fix client-side representation of enums requiring quotes</li> <li>Additional commits viewable in <a href="https://github.com/psycopg/psycopg/compare/3.3.2...3.3.4">compare view</a></li> </ul> </details> <br /> Updates `ormsgpack` from 1.12.1 to 1.12.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ormsgpack/ormsgpack/releases">ormsgpack's releases</a>.</em></p> <blockquote> <h2>1.12.2</h2> <p>Changed</p> <ul> <li>Add Python 3.14 free-threaded Windows x86_64 wheel</li> <li>Improve serialization performance</li> <li>Update dependencies</li> </ul> <p>Fixed</p> <ul> <li>Fix <code>unpackb</code> crash on Windows with Python 3.14 free-threaded and on Linux s390x (<a href="https://redirect.github.com/ormsgpack/ormsgpack/issues/499">#499</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/ormsgpack/ormsgpack/blob/master/docs/changelog.rst">ormsgpack's changelog</a>.</em></p> <blockquote> <h2>1.12.2 - 2026-01-18</h2> <p>Changed</p> <pre><code> - Add Python 3.14 free-threaded Windows x86_64 wheel - Improve serialization performance - Update dependencies <p>Fixed</p> <pre><code> - Fix ``unpackb`` crash on Windows with Python 3.14 free-threaded and on Linux s390x (:issue:`499`) </code></pre> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ormsgpack/ormsgpack/commit/9645772ab1e19420fa509197a95fb40fcc92fe9f"><code>9645772</code></a> 1.12.2</li> <li><a href="https://github.com/ormsgpack/ormsgpack/commit/cfc189fe17ea41cce9baffff0c55da105fce0d2e"><code>cfc189f</code></a> Update Changelog</li> <li><a href="https://github.com/ormsgpack/ormsgpack/commit/cf8c3bb3988e063f628e62e3ead0de24c3a95381"><code>cf8c3bb</code></a> Lint docs</li> <li><a href="https://github.com/ormsgpack/ormsgpack/commit/cc6e45a07d5cb13098da5752cc552deed525c8f6"><code>cc6e45a</code></a> Update development dependencies</li> <li><a href="https://github.com/ormsgpack/ormsgpack/commit/42f501fc0fdbb86601bcecafd77e0096e41b266f"><code>42f501f</code></a> Update dependencies</li> <li><a href="https://github.com/ormsgpack/ormsgpack/commit/6e621b8abcfa48cd9b4248bb5889baf3fdca06d3"><code>6e621b8</code></a> Update repository url</li> <li><a href="https://github.com/ormsgpack/ormsgpack/commit/079c7fcf9b96d5c869af106c61d156f06bd5f6cd"><code>079c7fc</code></a> Bump urllib3 from 2.6.0 to 2.6.3</li> <li><a href="https://github.com/ormsgpack/ormsgpack/commit/4bb944cf066fca788024ebd3614164627daeac33"><code>4bb944c</code></a> Bump ruff from 0.14.11 to 0.14.12 in the uv group</li> <li><a href="https://github.com/ormsgpack/ormsgpack/commit/2f447c2475c60f0e966428825229f456734a35dc"><code>2f447c2</code></a> Trigger workflows on merge group events</li> <li><a href="https://github.com/ormsgpack/ormsgpack/commit/2acc85d4437bcf6baa3a4f16fe333e46c97d7a66"><code>2acc85d</code></a> Bump chrono from 0.4.42 to 0.4.43</li> <li>Additional commits viewable in <a href="https://github.com/ormsgpack/ormsgpack/compare/1.12.1...1.12.2">compare view</a></li> </ul> </details> <br /></code></pre> Updates `sqlite-vec` from 0.1.6 to 0.1.9 Updates `orjson` from 3.11.6 to 3.11.9 <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.9</h2> <h3>Changed</h3> <ul> <li>Build now depends on Rust 1.95 or later instead of 1.89.</li> </ul> <h3>Fixed</h3> <ul> <li>Fix building on Rust 1.95.</li> </ul> <h2>3.11.8</h2> <h3>Changed</h3> <ul> <li>Build and compatibility improvements.</li> </ul> <h2>3.11.7</h2> <h3>Changed</h3> <ul> <li>Use a faster library to serialize <code>float</code>. Users with byte-exact regression tests should note positive exponents are now written using a <code>+</code>, e.g., <code>1.2e+30</code> instead of <code>1.2e30</code>. Both formats are spec-compliant.</li> <li>ABI compatibility with CPython 3.15 alpha 5 free-threading.</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.9 - 2026-05-06</h2> <h3>Changed</h3> <ul> <li>Build now depends on Rust 1.95 or later instead of 1.89.</li> </ul> <h3>Fixed</h3> <ul> <li>Fix building on Rust 1.95.</li> </ul> <h2>3.11.8 - 2026-03-31</h2> <h3>Changed</h3> <ul> <li>Build and compatibility improvements.</li> </ul> <h2>3.11.7 - 2026-02-02</h2> <h3>Changed</h3> <ul> <li>Use a faster library to serialize <code>float</code>. Users with byte-exact regression tests should note positive exponents are now written using a <code>+</code>, e.g., <code>1.2e+30</code> instead of <code>1.2e30</code>. Both formats are spec-compliant.</li> <li>ABI compatibility with CPython 3.15 alpha 5 free-threading.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ijl/orjson/commit/705515d77b28429d0b7c30c3d781abe52e8a1e5a"><code>705515d</code></a> 3.11.9</li> <li><a href="https://github.com/ijl/orjson/commit/d19055d5bab432f98d53b71606a9c6c23fb21bf6"><code>d19055d</code></a> build update</li> <li><a href="https://github.com/ijl/orjson/commit/77e2d96c3febe099cde2447856fe2523d68c71b0"><code>77e2d96</code></a> MSRV 1.95, remove compiler feature detection</li> <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>Additional commits viewable in <a href="https://github.com/ijl/orjson/compare/3.11.6...3.11.9">compare view</a></li> </ul> </details> <br /> Updates `psycopg` from 3.3.2 to 3.3.4 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's changelog</a>.</em></p> <blockquote> <p>.. currentmodule:: psycopg</p> <p>.. index:: single: Release notes single: News</p> <h1><code>psycopg</code> release notes</h1> <h2>Future releases</h2> <p>Psycopg 3.3.5 (unreleased) ^^^^^^^^^^^^^^^^^^^^^^^^^^</p> <ul> <li>Discard prepared statements upon :sql:<code>ALTER *</code> or <code>DISCARD *</code> (🎫<code>[#1307](https://github.com/psycopg/psycopg/issues/1307)</code>).</li> </ul> <h2>Current release</h2> <p>Psycopg 3.3.4 ^^^^^^^^^^^^^</p> <ul> <li>Fix possible spurious connection timeout in systems with very long uptimes in C extension (🎫<code>[#1280](https://github.com/psycopg/psycopg/issues/1280)</code>).</li> <li>Fix client-side adaptation of enums whose name require quotes (🎫<code>[#1298](https://github.com/psycopg/psycopg/issues/1298)</code>).</li> <li>Consistently populate <code>~Cursor.statusmessage</code> after <code>~Cursor.executemany()</code> (🎫<code>[#1302](https://github.com/psycopg/psycopg/issues/1302)</code>).</li> </ul> <p>Psycopg 3.3.3 ^^^^^^^^^^^^^</p> <ul> <li>Retain <code>Error.pgconn</code> when raising a single exception for multiple connection attempt errors (🎫<code>[#1246](https://github.com/psycopg/psycopg/issues/1246)</code>).</li> <li>Return a proper error when server sends <code>ErrorResponse</code> for a <code>Sync</code> after a <code>Parse</code> (🎫<code>[#1260](https://github.com/psycopg/psycopg/issues/1260)</code>).</li> </ul> <p>Psycopg 3.3.2 ^^^^^^^^^^^^^</p> <p>Fix race condition in adapters at startup (🎫<code>[#1230](https://github.com/psycopg/psycopg/issues/1230)</code>).</p> <p>Psycopg 3.3.1 ^^^^^^^^^^^^^</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/psycopg/psycopg/commit/83f110367cdd249cc0a352e2246ecea9e878e5a0"><code>83f1103</code></a> chore: bump psycopg_pool package version to 3.3.1</li> <li><a href="https://github.com/psycopg/psycopg/commit/18287707f56a2b4f0817d9c23d137f5d69db6e31"><code>1828770</code></a> chore: bump psycopg package version to 3.3.4</li> <li><a href="https://github.com/psycopg/psycopg/commit/8be14bbc18f74de7652606d2777e0950ec804cc0"><code>8be14bb</code></a> Merge pull request <a href="https://redirect.github.com/psycopg/psycopg/issues/1301">#1301</a> from oliverhaas/fix/sync-pool-open-race</li> <li><a href="https://github.com/psycopg/psycopg/commit/aee0bf2659db77c31154acf583baf0a98675c192"><code>aee0bf2</code></a> fix(pool): fix race in the construction of the sync ConnectionPool lock</li> <li><a href="https://github.com/psycopg/psycopg/commit/bc4d30375557fc32f2a91c2f8b75a5d21711ea89"><code>bc4d303</code></a> chore(deps): bump the actions group across 1 directory with 4 updates</li> <li><a href="https://github.com/psycopg/psycopg/commit/785379f196fc17473d312451a1fd4a06ef8dc895"><code>785379f</code></a> fix: retain statusmessage after executemany with returning=False</li> <li><a href="https://github.com/psycopg/psycopg/commit/8882a73871e65727549657085922d043a106127c"><code>8882a73</code></a> perf: do less if X in Y: return Y[X] for cache-like patterns</li> <li><a href="https://github.com/psycopg/psycopg/commit/2f785395c189e709da5fa74a02d3797bfb9db6a4"><code>2f78539</code></a> Merge pull request <a href="https://redirect.github.com/psycopg/psycopg/issues/1299">#1299</a> from dvarrazzo/fix-camel-enum</li> <li><a href="https://github.com/psycopg/psycopg/commit/37ef1dc4e6d19dc4af062d45a63243cb96a261c2"><code>37ef1dc</code></a> test: skip test on crdb depending on precise regtype behaviour</li> <li><a href="https://github.com/psycopg/psycopg/commit/7f2f1d159df881260e3086fd61ea71343ca98e58"><code>7f2f1d1</code></a> fix: fix client-side representation of enums requiring quotes</li> <li>Additional commits viewable in <a href="https://github.com/psycopg/psycopg/compare/3.3.2...3.3.4">compare view</a></li> </ul> </details> <br /> Updates `psycopg-pool` from 3.3.0 to 3.3.1 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg-pool's changelog</a>.</em></p> <blockquote> <p>.. currentmodule:: psycopg</p> <p>.. index:: single: Release notes single: News</p> <h1><code>psycopg</code> release notes</h1> <h2>Future releases</h2> <p>Psycopg 3.3.5 (unreleased) ^^^^^^^^^^^^^^^^^^^^^^^^^^</p> <ul> <li>Discard prepared statements upon :sql:<code>ALTER *</code> or <code>DISCARD *</code> (🎫<code>[#1307](https://github.com/psycopg/psycopg/issues/1307)</code>).</li> </ul> <h2>Current release</h2> <p>Psycopg 3.3.4 ^^^^^^^^^^^^^</p> <ul> <li>Fix possible spurious connection timeout in systems with very long uptimes in C extension (🎫<code>[#1280](https://github.com/psycopg/psycopg/issues/1280)</code>).</li> <li>Fix client-side adaptation of enums whose name require quotes (🎫<code>[#1298](https://github.com/psycopg/psycopg/issues/1298)</code>).</li> <li>Consistently populate <code>~Cursor.statusmessage</code> after <code>~Cursor.executemany()</code> (🎫<code>[#1302](https://github.com/psycopg/psycopg/issues/1302)</code>).</li> </ul> <p>Psycopg 3.3.3 ^^^^^^^^^^^^^</p> <ul> <li>Retain <code>Error.pgconn</code> when raising a single exception for multiple connection attempt errors (🎫<code>[#1246](https://github.com/psycopg/psycopg/issues/1246)</code>).</li> <li>Return a proper error when server sends <code>ErrorResponse</code> for a <code>Sync</code> after a <code>Parse</code> (🎫<code>[#1260](https://github.com/psycopg/psycopg/issues/1260)</code>).</li> </ul> <p>Psycopg 3.3.2 ^^^^^^^^^^^^^</p> <p>Fix race condition in adapters at startup (🎫<code>[#1230](https://github.com/psycopg/psycopg/issues/1230)</code>).</p> <p>Psycopg 3.3.1 ^^^^^^^^^^^^^</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/psycopg/psycopg/commit/9bdd78cf4360b9229ab3f641c646e232fc69cc8a"><code>9bdd78c</code></a> chore: bump psycopg package version to 3.3.1</li> <li><a href="https://github.com/psycopg/psycopg/commit/4d27426bf197a1eca8ea99ab9e236e1c8e0f15fa"><code>4d27426</code></a> Merge branch 'fix/server-cursor-iter'</li> <li><a href="https://github.com/psycopg/psycopg/commit/b9b82e86e3ce1972581a495ccbe28d5dbb15c449"><code>b9b82e8</code></a> fix: fix iteration on server-side cursor</li> <li><a href="https://github.com/psycopg/psycopg/commit/2a75357de22bb63ede33006cd17c99b30e360cdf"><code>2a75357</code></a> fix: add test to verify iteration in server-side cursor broken</li> <li><a href="https://github.com/psycopg/psycopg/commit/25ebaa3946bc0912e645dbf4d490a29865a2fc3f"><code>25ebaa3</code></a> chore: bump psycopg_pool package version to 3.3.1.dev1</li> <li><a href="https://github.com/psycopg/psycopg/commit/754282246e04c7ea32643de763fabd7fca7169d4"><code>7542822</code></a> chore: bump psycopg package version to 3.3.1.dev1</li> <li><a href="https://github.com/psycopg/psycopg/commit/380ccceb57ef44452a4c3e851e5e6dee09eb9eaf"><code>380ccce</code></a> chore: bump psycopg_pool package version to 3.3.0</li> <li>See full diff in <a href="https://github.com/psycopg/psycopg/compare/3.3.0...3.3.1">compare view</a></li> </ul> </details> <br /> Updates `anyio` from 4.12.1 to 4.13.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/releases">anyio's releases</a>.</em></p> <blockquote> <h2>4.13.0</h2> <ul> <li>Dropped support for Python 3.9</li> <li>Added a <code>ttl</code> parameter to the <code>anyio.functools.lru_cache</code> wrapper (<a href="https://redirect.github.com/agronholm/anyio/pull/1073">#1073</a>; PR by <a href="https://github.com/Graeme22"><code>@Graeme22</code></a>)</li> <li>Widened the type annotations of file I/O streams to accept <code>IO[bytes]</code> instead of just <code>BinaryIO</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/1078">#1078</a>)</li> <li>Fixed <code>anyio.Path</code> not being compatible with Python 3.15 due to the removal of <code>pathlib.Path.is_reserved()</code> and the addition of <code>pathlib.Path.__vfspath__()</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/1061">#1061</a>; PR by <a href="https://github.com/veeceey"><code>@veeceey</code></a>)</li> <li>Fixed the <code>BrokenResourceError</code> raised by the asyncio <code>SocketStream</code> not having the original exception as its cause (<a href="https://redirect.github.com/agronholm/anyio/issues/1055">#1055</a>; PR by <a href="https://github.com/veeceey"><code>@veeceey</code></a>)</li> <li>Fixed the <code>TypeError</code> raised when using "func" as a parameter name in <code>pytest.mark.parametrize</code> when using the pytest plugin (<a href="https://redirect.github.com/agronholm/anyio/pull/1068">#1068</a>; PR by <a href="https://github.com/JohnnyDeuss"><code>@JohnnyDeuss</code></a>)</li> <li>Fixed the pytest plugin not running tests that had the <code>anyio</code> marker added programmatically via <code>pytest_collection_modifyitems</code> (<a href="https://redirect.github.com/agronholm/anyio/issues/422">#422</a>; PR by <a href="https://github.com/chbndrhnns"><code>@chbndrhnns</code></a>)</li> <li>Fixed cancellation exceptions leaking from a <code>CancelScope</code> on asyncio when they are contained in an exception group alongside non-cancellation exceptions (<a href="https://redirect.github.com/agronholm/anyio/issues/1091">#1091</a>; PR by <a href="https://github.com/gschaffner"><code>@gschaffner</code></a>)</li> <li>Fixed <code>Condition.wait()</code> not passing on a notification when the task is cancelled but already received a notification</li> <li>Fixed inverted condition in the process pool shutdown phase which would cause still-running pooled processes not to be terminated (<a href="https://redirect.github.com/agronholm/anyio/pull/1074">#1074</a>; PR by <a href="https://github.com/bysiber"><code>@bysiber</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/agronholm/anyio/commit/afbe93ca9d0c447adf26e9c1715ac20870622bf2"><code>afbe93c</code></a> Bumped up the version</li> <li><a href="https://github.com/agronholm/anyio/commit/33bdf2e4b4f40c2df178123746147a6d2471808d"><code>33bdf2e</code></a> Rearranged the changelog entries</li> <li><a href="https://github.com/agronholm/anyio/commit/19e09e25bc5a23dd78a577d8c3909dd377057c78"><code>19e09e2</code></a> Fixed inverted condition in _forcibly_shutdown_process_pool_on_exit (<a href="https://redirect.github.com/agronholm/anyio/issues/1074">#1074</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/9369d80b9e8292f2a892a9d5c73923c6a28aa08c"><code>9369d80</code></a> Fixed Condition.wait() not handing over notification when cancelled</li> <li><a href="https://github.com/agronholm/anyio/commit/6f122abdc6f6b166c6b6ac27d36d55cdf8fa08e8"><code>6f122ab</code></a> Fixed cancellation exceptions leaking from a <code>CancelScope</code> on asyncio when th...</li> <li><a href="https://github.com/agronholm/anyio/commit/beaa45aff568a4020f2faf317321dd92f0e1f4a0"><code>beaa45a</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/1097">#1097</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/602f6606dcf3f37702686a4f3e161328c537b07f"><code>602f660</code></a> Widened type annotations to accept IO[bytes] in file streams</li> <li><a href="https://github.com/agronholm/anyio/commit/b5dcd45170701a756ba634197398f05d4710cab3"><code>b5dcd45</code></a> Added note about erasing the template</li> <li><a href="https://github.com/agronholm/anyio/commit/d68670b3b4e0917d4caff2de082e03220f3e05a1"><code>d68670b</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/1090">#1090</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/fc17a22dd948e6a3d90d99908813f0010dfc3d2c"><code>fc17a22</code></a> tweak to_thread docs about abandon_on_cancel (<a href="https://redirect.github.com/agronholm/anyio/issues/1088">#1088</a>)</li> <li>Additional commits viewable in <a href="https://github.com/agronholm/anyio/compare/4.12.1...4.13.0">compare view</a></li> </ul> </details> <br /> Updates `langchain-protocol` from 0.0.15 to 0.0.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/agent-protocol/releases">langchain-protocol's releases</a>.</em></p> <blockquote> <h2>langchain-protocol==0.0.16</h2> <h2>What's Changed</h2> <ul> <li>chore: bump <code>typing-extensions</code> floor from <code>>=4.7.0</code> to <code>>=4.13.0</code> by <a href="https://github.com/mdrxy"><code>@mdrxy</code></a> in <a href="https://redirect.github.com/langchain-ai/agent-protocol/pull/84">langchain-ai/agent-protocol#84</a></li> <li>feat(protocol): add batch resume for parallel interrupts by <a href="https://github.com/christian-bromann"><code>@christian-bromann</code></a> in <a href="https://redirect.github.com/langchain-ai/agent-protocol/pull/86">langchain-ai/agent-protocol#86</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/mdrxy"><code>@mdrxy</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/agent-protocol/pull/84">langchain-ai/agent-protocol#84</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/agent-protocol/compare/langchain-protocol==0.0.15...langchain-protocol==0.0.16">https://github.com/langchain-ai/agent-protocol/compare/langchain-protocol==0.0.15...langchain-protocol==0.0.16</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/langchain-ai/agent-protocol/commit/8246ac0b6c2db63fc3d9ffb257faa9325d49c8d2"><code>8246ac0</code></a> feat(protocol): add batch resume for parallel interrupts (<a href="https://redirect.github.com/langchain-ai/agent-protocol/issues/86">#86</a>)</li> <li><a href="https://github.com/langchain-ai/agent-protocol/commit/0f896ba72976145b0f98af1ddc25c3baaf652f1a"><code>0f896ba</code></a> Merge pull request <a href="https://redirect.github.com/langchain-ai/agent-protocol/issues/84">#84</a> from langchain-ai/mdrxy/bump-dep</li> <li><a href="https://github.com/langchain-ai/agent-protocol/commit/2e890bb0fb4887eb5f5f3e8ce21bc77f4cad2659"><code>2e890bb</code></a> chore: bump <code>typing-extensions</code> floor from <code>>=4.7.0</code> to <code>>=4.13.0</code></li> <li>See full diff in <a href="https://github.com/langchain-ai/agent-protocol/compare/langchain-protocol==0.0.15...langchain-protocol==0.0.16">compare view</a></li> </ul> </details> <br /> Updates `ty` from 0.0.33 to 0.0.42 <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.42</h2> <h2>Release Notes</h2> <p>Released on 2026-06-01.</p> <h3>Bug fixes</h3> <ul> <li>Fix narrowing of enum literal unions by member identity (<a href="https://redirect.github.com/astral-sh/ruff/pull/25520">#25520</a>)</li> <li>Detect recursive expansion in constraint-set solving (<a href="https://redirect.github.com/astral-sh/ruff/pull/25442">#25442</a>)</li> </ul> <h3>Core type checking</h3> <ul> <li>Support tagged-union narrowing for nominal types (<a href="https://redirect.github.com/astral-sh/ruff/pull/24916">#24916</a>)</li> <li>Extend <code>Generator</code> assignability workaround to Python 3.13+ (<a href="https://redirect.github.com/astral-sh/ruff/pull/25472">#25472</a>)</li> <li>Sync vendored typeshed stubs (<a href="https://redirect.github.com/astral-sh/ruff/pull/25514">#25514</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Avoid redundant work for empty collection context (<a href="https://redirect.github.com/astral-sh/ruff/pull/25527">#25527</a>)</li> <li>Deduplicate retained use-def place states (<a href="https://redirect.github.com/astral-sh/ruff/pull/25450">#25450</a>)</li> <li>Compact retained semantic maps (<a href="https://redirect.github.com/astral-sh/ruff/pull/25238">#25238</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/aholyoke"><code>@aholyoke</code></a></li> <li><a href="https://github.com/carljm"><code>@carljm</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> </ul> <h2>Install ty 0.0.42</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ty/releases/download/0.0.42/ty-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ty/releases/download/0.0.42/ty-installer.ps1 | iex" </code></pre> <h2>Download ty 0.0.42</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://releases.astral.sh/github/ty/releases/download/0.0.42/ty-aarch64-apple-darwin.tar.gz">ty-aarch64-apple-darwin.tar.gz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://releases.astral.sh/github/ty/releases/download/0.0.42/ty-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ty/releases/download/0.0.42/ty-x86_64-apple-darwin.tar.gz">ty-x86_64-apple-darwin.tar.gz</a></td> <td>Intel macOS</td> <td><a href="https://releases.astral.sh/github/ty/releases/download/0.0.42/ty-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ty/releases/download/0.0.42/ty-aarch64-pc-windows-msvc.zip">ty-aarch64-pc-windows-msvc.zip</a></td> <td>ARM64 Windows</td> <td><a href="https://releases.astral.sh/github/ty/releases/download/0.0.42/ty-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> </tbody> </table> <!-- 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.42</h2> <p>Released on 2026-06-01.</p> <h3>Bug fixes</h3> <ul> <li>Fix narrowing of enum literal unions by member identity (<a href="https://redirect.github.com/astral-sh/ruff/pull/25520">#25520</a>)</li> <li>Detect recursive expansion in constraint-set solving (<a href="https://redirect.github.com/astral-sh/ruff/pull/25442">#25442</a>)</li> </ul> <h3>Core type checking</h3> <ul> <li>Support tagged-union narrowing for nominal types (<a href="https://redirect.github.com/astral-sh/ruff/pull/24916">#24916</a>)</li> <li>Extend <code>Generator</code> assignability workaround to Python 3.13+ (<a href="https://redirect.github.com/astral-sh/ruff/pull/25472">#25472</a>)</li> <li>Sync vendored typeshed stubs (<a href="https://redirect.github.com/astral-sh/ruff/pull/25514">#25514</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Avoid redundant work for empty collection context (<a href="https://redirect.github.com/astral-sh/ruff/pull/25527">#25527</a>)</li> <li>Deduplicate retained use-def place states (<a href="https://redirect.github.com/astral-sh/ruff/pull/25450">#25450</a>)</li> <li>Compact retained semantic maps (<a href="https://redirect.github.com/astral-sh/ruff/pull/25238">#25238</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/aholyoke"><code>@aholyoke</code></a></li> <li><a href="https://github.com/carljm"><code>@carljm</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> </ul> <h2>0.0.41</h2> <p>Released on 2026-05-31.</p> <h3>Bug fixes</h3> <ul> <li>Avoid panic for deferred dataclass field annotations (<a href="https://redirect.github.com/astral-sh/ruff/pull/25444">#25444</a>)</li> <li>Avoid panic from cycle in function decorator inference (<a href="https://redirect.github.com/astral-sh/ruff/pull/25475">#25475</a>)</li> <li>Ignore rejected assignments for synthesized bindings (<a href="https://redirect.github.com/astral-sh/ruff/pull/25340">#25340</a>)</li> <li>Infer <code>bool</code> for <code>not</code> applied to dynamic values (<a href="https://redirect.github.com/astral-sh/ruff/pull/25445">#25445</a>)</li> <li>Use diagnostic message as tie-breaker when sorting (<a href="https://redirect.github.com/astral-sh/ruff/pull/25424">#25424</a>)</li> </ul> <h3>LSP server</h3> <ul> <li>Add call hierarchy support (<a href="https://redirect.github.com/astral-sh/ruff/pull/25338">#25338</a>)</li> <li>Add function parentheses completion (<a href="https://redirect.github.com/astral-sh/ruff/pull/25305">#25305</a>)</li> <li>Display docs for matching parameter when hovering over the name of an argument passed by keyword (<a href="https://redirect.github.com/astral-sh/ruff/pull/25283">#25283</a>)</li> <li>Document <code>completeFunctionParentheses</code> editor setting (<a href="https://redirect.github.com/astral-sh/ty/pull/3513">#3513</a>)</li> </ul> <h3>Diagnostics</h3> <ul> <li>Introduce opt-in <code>missing-override-decorator</code> rule (<a href="https://redirect.github.com/astral-sh/ruff/pull/25111">#25111</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/7f8cb6457e8d77178ae9204f9b81a516f44444ed"><code>7f8cb64</code></a> Bump version to 0.0.42 (<a href="https://redirect.github.com/astral-sh/ty/issues/3615">#3615</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/41bb0d24412ad97c214bd0019e602c463ae3feba"><code>41bb0d2</code></a> Bump version to 0.0.41 (<a href="https://redirect.github.com/astral-sh/ty/issues/3601">#3601</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/c690a4996a8ae804dda9a48246118402d855b671"><code>c690a49</code></a> Document <code>completeFunctionParentheses</code> editor setting (<a href="https://redirect.github.com/astral-sh/ty/issues/3513">#3513</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/85c5e327a7951f3b9d0cfa8163c41fd7b29d69cf"><code>85c5e32</code></a> Document that call hierarchy is now supported (<a href="https://redirect.github.com/astral-sh/ty/issues/3582">#3582</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/e118dd0553e7d08735c8edee4c48ea7bfe2b02bd"><code>e118dd0</code></a> docs: Add typeHierarchy support in LSP feature reference (<a href="https://redirect.github.com/astral-sh/ty/issues/3382">#3382</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/aa20b165b285fcfdce79e4dd4427d00524c59e81"><code>aa20b16</code></a> minor changelog nits for the latest release (<a href="https://redirect.github.com/astral-sh/ty/issues/3560">#3560</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/7b95bc219d1dcebc3ce39d222c66c14a3825c9a0"><code>7b95bc2</code></a> Bump version to 0.0.40 (<a href="https://redirect.github.com/astral-sh/ty/issues/3554">#3554</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/54c7498ec94de87135edb8b54c311b54d30ec534"><code>54c7498</code></a> Update prek dependencies (<a href="https://redirect.github.com/astral-sh/ty/issues/3546">#3546</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/0d8540acdbf1340af95a2f364b9fd7d3b6bba3a8"><code>0d8540a</code></a> docs: set Eglot <code>:language-id</code> so ty works with <code>python-base-mode</code> (<a href="https://redirect.github.com/astral-sh/ty/issues/3532">#3532</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/8f1cee048254accb008fc391428b9c3139cebb2f"><code>8f1cee0</code></a> scripts/update_schemastore: add text=True to git revision check_output calls ...</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ty/compare/0.0.33...0.0.42">compare view</a></li> </ul> </details> <br /> Updates `click` from 8.3.1 t... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
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) | ||
|
|
fb2618846b | fix(langgraph): keep _on_started backward-compatible with overrides predating cause (#7987) | ||
|
|
83dd61feac | release(langgraph): 1.2.3 (#7945) | ||
|
|
312c6d0ac1 | feat(langgraph): wire RemoteGraph.interleave to sdk-py interleave_projections (#7938) |