Bumps the langchain-deps group with 4 updates in the /libs/core directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk), [uuid-utils](https://github.com/aminalaee/uuid-utils), [ruff](https://github.com/astral-sh/ruff) and [responses](https://github.com/getsentry/responses). Bumps the langchain-deps group with 9 updates in the /libs/langchain directory: | Package | From | To | | --- | --- | --- | | [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.7.3` | `0.7.6` | | [packaging](https://github.com/pypa/packaging) | `24.2` | `26.0` | | [ruff](https://github.com/astral-sh/ruff) | `0.15.1` | `0.15.2` | | [responses](https://github.com/getsentry/responses) | `0.25.8` | `0.26.0` | | [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.46` | `2.0.47` | | [langchain-anthropic](https://github.com/langchain-ai/langchain) | `1.3.3` | `1.3.4` | | [langchain-google-genai](https://github.com/langchain-ai/langchain-google) | `4.2.0` | `4.2.1` | | [langchain-aws](https://github.com/langchain-ai/langchain-aws) | `1.2.5` | `1.3.0` | | [fastapi](https://github.com/fastapi/fastapi) | `0.129.0` | `0.133.0` | Bumps the langchain-deps group with 5 updates in the /libs/langchain_v1 directory: | Package | From | To | | --- | --- | --- | | [ruff](https://github.com/astral-sh/ruff) | `0.15.1` | `0.15.2` | | [langchain-google-genai](https://github.com/langchain-ai/langchain-google) | `4.2.0` | `4.2.1` | | [langchain-aws](https://github.com/langchain-ai/langchain-aws) | `1.2.5` | `1.3.0` | | [langgraph](https://github.com/langchain-ai/langgraph) | `1.0.8` | `1.0.9` | | [langchain-azure-ai](https://github.com/langchain-ai/langchain-azure) | `1.0.4` | `1.0.61` | Updates `langsmith` from 0.7.3 to 0.7.6 <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.7.6</h2> <h2>What's Changed</h2> <ul> <li>feat(python): add sandbox exception types and client plumbing by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2442">langchain-ai/langsmith-sdk#2442</a></li> <li>fix(py, claude agent sdk): Correctly parent spans in asyncio context by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2457">langchain-ai/langsmith-sdk#2457</a></li> <li>perf(py): Improve retry logic for tracing ops by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2459">langchain-ai/langsmith-sdk#2459</a></li> <li>feat(py, claude agent sdk): Add wrapping for PostToolUseFailure hook by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2460">langchain-ai/langsmith-sdk#2460</a></li> <li>chore(claude agent sdk): rm debug logs by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2461">langchain-ai/langsmith-sdk#2461</a></li> <li>release(py): 0.7.6 by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2462">langchain-ai/langsmith-sdk#2462</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.5...v0.7.6">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.5...v0.7.6</a></p> <h2>v0.7.5</h2> <h2>What's Changed</h2> <ul> <li>chore(deps): bump chalk from 4.1.2 to 5.6.2 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/2416">langchain-ai/langsmith-sdk#2416</a></li> <li>chore(deps-dev): bump <code>@jest/reporters</code> from 29.7.0 to 30.2.0 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/2417">langchain-ai/langsmith-sdk#2417</a></li> <li>chore(deps): bump the py-minor-and-patch group across 1 directory with 16 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/2440">langchain-ai/langsmith-sdk#2440</a></li> <li>chore(deps-dev): bump pandas-stubs from 2.3.3.251219 to 2.3.3.260113 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/2404">langchain-ai/langsmith-sdk#2404</a></li> <li>chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 10 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/2433">langchain-ai/langsmith-sdk#2433</a></li> <li>make zstandard optional by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2453">langchain-ai/langsmith-sdk#2453</a></li> <li>fix(py/adk): fix multi-agent tracing by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2451">langchain-ai/langsmith-sdk#2451</a></li> <li>release(py): 0.7.5 by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2456">langchain-ai/langsmith-sdk#2456</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.4...v0.7.5">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.4...v0.7.5</a></p> <h2>v0.7.4</h2> <h2>What's Changed</h2> <ul> <li>fix(google-adk): add wrapt dependency by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2436">langchain-ai/langsmith-sdk#2436</a></li> <li>chore: lock dependencies by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2439">langchain-ai/langsmith-sdk#2439</a></li> <li>release(py): 0.7.4 by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2441">langchain-ai/langsmith-sdk#2441</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.3...v0.7.4">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.3...v0.7.4</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="22a048477a"><code>22a0484</code></a> release(py): 0.7.6 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2462">#2462</a>)</li> <li><a href="01acee8618"><code>01acee8</code></a> chore(claude agent sdk): rm debug logs (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2461">#2461</a>)</li> <li><a href="4e366c4685"><code>4e366c4</code></a> feat(py, claude agent sdk): Add wrapping for PostToolUseFailure hook (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2460">#2460</a>)</li> <li><a href="4e25507853"><code>4e25507</code></a> perf(py): Improve retry logic for tracing ops (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2459">#2459</a>)</li> <li><a href="daa0330aff"><code>daa0330</code></a> fix(py, claude agent sdk): Correctly parent spans in asyncio context (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2457">#2457</a>)</li> <li><a href="070a20719a"><code>070a207</code></a> feat(python): add sandbox exception types and client plumbing (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2442">#2442</a>)</li> <li><a href="6f852006cb"><code>6f85200</code></a> release(py): 0.7.5 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2456">#2456</a>)</li> <li><a href="901486fd5e"><code>901486f</code></a> fix(py/adk): fix multi-agent tracing (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2451">#2451</a>)</li> <li><a href="31d1828efe"><code>31d1828</code></a> make zstandard optional (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2453">#2453</a>)</li> <li><a href="78c263920a"><code>78c2639</code></a> chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 10...</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.3...v0.7.6">compare view</a></li> </ul> </details> <br /> Updates `uuid-utils` from 0.14.0 to 0.14.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/aminalaee/uuid-utils/releases">uuid-utils's releases</a>.</em></p> <blockquote> <h2>0.14.1</h2> <h2>What's Changed</h2> <ul> <li>Use SPDX license identifier by <a href="https://github.com/vargenau"><code>@vargenau</code></a> in <a href="https://redirect.github.com/aminalaee/uuid-utils/pull/129">aminalaee/uuid-utils#129</a></li> <li>Fix byte-order in <code>uuid1</code> and <code>uuid6</code> by <a href="https://github.com/aminalaee"><code>@aminalaee</code></a> in <a href="https://redirect.github.com/aminalaee/uuid-utils/pull/130">aminalaee/uuid-utils#130</a></li> <li>Remove uuid_unstable flag and minor docs update by <a href="https://github.com/aminalaee"><code>@aminalaee</code></a> in <a href="https://github.com">https://github.com</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/aminalaee/uuid-utils/compare/0.14.0...0.15.0">https://github.com/aminalaee/uuid-utils/compare/0.14.0...0.15.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="c09cd2940a"><code>c09cd29</code></a> Version 0.14.1 (<a href="https://redirect.github.com/aminalaee/uuid-utils/issues/134">#134</a>)</li> <li><a href="a547f37f69"><code>a547f37</code></a> Remove uuid_unstable flag and update docs (<a href="https://redirect.github.com/aminalaee/uuid-utils/issues/133">#133</a>)</li> <li><a href="4c632bfe63"><code>4c632bf</code></a> Fix byte-order in <code>uuid1</code> and <code>uuid6</code> (<a href="https://redirect.github.com/aminalaee/uuid-utils/issues/130">#130</a>)</li> <li><a href="a5aca8c399"><code>a5aca8c</code></a> Use SPDX license identifier (<a href="https://redirect.github.com/aminalaee/uuid-utils/issues/129">#129</a>)</li> <li><a href="21d14455b9"><code>21d1445</code></a> Update Github Action (<a href="https://redirect.github.com/aminalaee/uuid-utils/issues/132">#132</a>)</li> <li><a href="c935c3559f"><code>c935c35</code></a> Bump CodSpeedHQ/action from 4.8.2 to 4.10.2 (<a href="https://redirect.github.com/aminalaee/uuid-utils/issues/126">#126</a>)</li> <li><a href="c2613e3003"><code>c2613e3</code></a> Bump uraimo/run-on-arch-action from 2.8.1 to 3.0.1 (<a href="https://redirect.github.com/aminalaee/uuid-utils/issues/127">#127</a>)</li> <li><a href="df39faf8e8"><code>df39faf</code></a> Bump actions/setup-python from 5 to 6 (<a href="https://redirect.github.com/aminalaee/uuid-utils/issues/128">#128</a>)</li> <li><a href="f1b61c7ed1"><code>f1b61c7</code></a> Bump CodSpeedHQ/action from 4.5.2 to 4.8.2 (<a href="https://redirect.github.com/aminalaee/uuid-utils/issues/124">#124</a>)</li> <li><a href="08c833b3cb"><code>08c833b</code></a> Bump astral-sh/setup-uv from 4 to 7 (<a href="https://redirect.github.com/aminalaee/uuid-utils/issues/123">#123</a>)</li> <li>Additional commits viewable in <a href="https://github.com/aminalaee/uuid-utils/compare/0.14.0...0.14.1">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.1 to 0.15.2 <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.2</h2> <h2>Release Notes</h2> <p>Released on 2026-02-19.</p> <h3>Preview features</h3> <ul> <li> <p>Expand the default rule set (<a href="https://redirect.github.com/astral-sh/ruff/pull/23385">#23385</a>)</p> <p>In preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rules are mostly a superset of the stable defaults, with the exception of these rules, which are removed from the preview defaults:</p> <ul> <li><a href="https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line"><code>multiple-imports-on-one-line</code></a> (<code>E401</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file"><code>module-import-not-at-top-of-file</code></a> (<code>E402</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file"><code>module-import-not-at-top-of-file</code></a> (<code>E701</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon"><code>multiple-statements-on-one-line-semicolon</code></a> (<code>E702</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/useless-semicolon"><code>useless-semicolon</code></a> (<code>E703</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/none-comparison"><code>none-comparison</code></a> (<code>E711</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/true-false-comparison"><code>true-false-comparison</code></a> (<code>E712</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/not-in-test"><code>not-in-test</code></a> (<code>E713</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/not-is-test"><code>not-is-test</code></a> (<code>E714</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/type-comparison"><code>type-comparison</code></a> (<code>E721</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/lambda-assignment"><code>lambda-assignment</code></a> (<code>E731</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-variable-name"><code>ambiguous-variable-name</code></a> (<code>E741</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-class-name"><code>ambiguous-class-name</code></a> (<code>E742</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-function-name"><code>ambiguous-function-name</code></a> (<code>E743</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-import-star"><code>undefined-local-with-import-star</code></a> (<code>F403</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage"><code>undefined-local-with-import-star-usage</code></a> (<code>F405</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage"><code>undefined-local-with-nested-import-star-usage</code></a> (<code>F406</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error"><code>forward-annotation-syntax-error</code></a> (<code>F722</code>)</li> </ul> <p>If you use preview and prefer the old defaults, you can restore them with configuration like:</p> <pre lang="toml"><code> # ruff.toml <p>[lint] select = ["E4", "E7", "E9", "F"]</p> <h1>pyproject.toml</h1> <p>[tool.ruff.lint] select = ["E4", "E7", "E9", "F"] </code></pre></p> <p>If you do give them a try, feel free to share your feedback in the <a href="https://github.com/astral-sh/ruff/discussions/23203">GitHub discussion</a>!</p> </li> <li> <p>[<code>flake8-pyi</code>] Also check string annotations (<code>PYI041</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19023">#19023</a>)</p> </li> </ul> <h3>Bug fixes</h3> <!-- 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.2</h2> <p>Released on 2026-02-19.</p> <h3>Preview features</h3> <ul> <li> <p>Expand the default rule set (<a href="https://redirect.github.com/astral-sh/ruff/pull/23385">#23385</a>)</p> <p>In preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rules are mostly a superset of the stable defaults, with the exception of these rules, which are removed from the preview defaults:</p> <ul> <li><a href="https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line"><code>multiple-imports-on-one-line</code></a> (<code>E401</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file"><code>module-import-not-at-top-of-file</code></a> (<code>E402</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file"><code>module-import-not-at-top-of-file</code></a> (<code>E701</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon"><code>multiple-statements-on-one-line-semicolon</code></a> (<code>E702</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/useless-semicolon"><code>useless-semicolon</code></a> (<code>E703</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/none-comparison"><code>none-comparison</code></a> (<code>E711</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/true-false-comparison"><code>true-false-comparison</code></a> (<code>E712</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/not-in-test"><code>not-in-test</code></a> (<code>E713</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/not-is-test"><code>not-is-test</code></a> (<code>E714</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/type-comparison"><code>type-comparison</code></a> (<code>E721</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/lambda-assignment"><code>lambda-assignment</code></a> (<code>E731</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-variable-name"><code>ambiguous-variable-name</code></a> (<code>E741</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-class-name"><code>ambiguous-class-name</code></a> (<code>E742</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-function-name"><code>ambiguous-function-name</code></a> (<code>E743</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-import-star"><code>undefined-local-with-import-star</code></a> (<code>F403</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage"><code>undefined-local-with-import-star-usage</code></a> (<code>F405</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage"><code>undefined-local-with-nested-import-star-usage</code></a> (<code>F406</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error"><code>forward-annotation-syntax-error</code></a> (<code>F722</code>)</li> </ul> <p>If you use preview and prefer the old defaults, you can restore them with configuration like:</p> <pre lang="toml"><code> # ruff.toml <p>[lint] select = ["E4", "E7", "E9", "F"]</p> <h1>pyproject.toml</h1> <p>[tool.ruff.lint] select = ["E4", "E7", "E9", "F"] </code></pre></p> <p>If you do give them a try, feel free to share your feedback in the <a href="https://github.com/astral-sh/ruff/discussions/23203">GitHub discussion</a>!</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="9d18ee9115"><code>9d18ee9</code></a> Hard code workflow name and <code>cancel-in-progress</code> only for PRs (<a href="https://redirect.github.com/astral-sh/ruff/issues/23431">#23431</a>)</li> <li><a href="7cc15f024b"><code>7cc15f0</code></a> Bump 0.15.2 (<a href="https://redirect.github.com/astral-sh/ruff/issues/23430">#23430</a>)</li> <li><a href="d1b544393a"><code>d1b5443</code></a> Add extension mapping to configuration file options (<a href="https://redirect.github.com/astral-sh/ruff/issues/23384">#23384</a>)</li> <li><a href="222574af90"><code>222574a</code></a> Expand the default rule set (<a href="https://redirect.github.com/astral-sh/ruff/issues/23385">#23385</a>)</li> <li><a href="1465b5de38"><code>1465b5d</code></a> [<code>flake8-async</code>] Fix <code>in_async_context</code> logic (<a href="https://redirect.github.com/astral-sh/ruff/issues/23426">#23426</a>)</li> <li><a href="410902fa40"><code>410902f</code></a> [<code>pyupgrade</code>] Fix handling of <code>typing.{io,re}</code> (<code>UP035</code>) (<a href="https://redirect.github.com/astral-sh/ruff/issues/23131">#23131</a>)</li> <li><a href="729610acd9"><code>729610a</code></a> [ty] Fall back to ambiguous for large control flow graphs (<a href="https://redirect.github.com/astral-sh/ruff/issues/23399">#23399</a>)</li> <li><a href="1425c185b0"><code>1425c18</code></a> [ty] Add code folding support</li> <li><a href="97acaaea5f"><code>97acaae</code></a> [ty] Fix stack overflow for self-referential <code>TypeOf</code> in annotations (<a href="https://redirect.github.com/astral-sh/ruff/issues/23407">#23407</a>)</li> <li><a href="1f380c8258"><code>1f380c8</code></a> [ty] Update tests <code>reveal_type</code> and <code>Never</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/23418">#23418</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.15.1...0.15.2">compare view</a></li> </ul> </details> <br /> Updates `responses` from 0.25.8 to 0.26.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/getsentry/responses/releases">responses's releases</a>.</em></p> <blockquote> <h2>0.26.0</h2> <ul> <li>When using <code>assert_all_requests_are_fired=True</code>, assertions about unfired requests are now raised even when an exception occurs in the context manager or decorated function. Previously, these assertions were suppressed when exceptions occurred. This new behavior provides valuable debugging context about which mocked requests were or weren't called.</li> <li>Consider the <code>Retry-After</code> header when handling retries</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/getsentry/responses/blob/master/CHANGES">responses's changelog</a>.</em></p> <blockquote> <h2>0.26.0</h2> <ul> <li>When using <code>assert_all_requests_are_fired=True</code>, assertions about unfired requests are now raised even when an exception occurs in the context manager or decorated function. Previously, these assertions were suppressed when exceptions occurred. This new behavior provides valuable debugging context about which mocked requests were or weren't called.</li> <li>Consider the <code>Retry-After</code> header when handling retries</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="94913d0580"><code>94913d0</code></a> release: 0.26.0</li> <li><a href="051b79e7fc"><code>051b79e</code></a> Make <code>assert_all_requests_are_fired</code> always assert on exception (<a href="https://redirect.github.com/getsentry/responses/issues/782">#782</a>)</li> <li><a href="0905cb8bd5"><code>0905cb8</code></a> Fix query_param_matcher not matching empty query parameter values (<a href="https://redirect.github.com/getsentry/responses/issues/787">#787</a>)</li> <li><a href="e0c6faab41"><code>e0c6faa</code></a> ci(release): Switch from action-prepare-release to Craft (<a href="https://redirect.github.com/getsentry/responses/issues/785">#785</a>)</li> <li><a href="1be3a737b7"><code>1be3a73</code></a> fix: Consider the <code>Retry-After</code> header when handling retries (<a href="https://redirect.github.com/getsentry/responses/issues/784">#784</a>)</li> <li><a href="c6730fbc87"><code>c6730fb</code></a> Merge branch 'release/0.25.8'</li> <li>See full diff in <a href="https://github.com/getsentry/responses/compare/0.25.8...0.26.0">compare view</a></li> </ul> </details> <br /> Updates `langsmith` from 0.7.3 to 0.7.6 <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.7.6</h2> <h2>What's Changed</h2> <ul> <li>feat(python): add sandbox exception types and client plumbing by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2442">langchain-ai/langsmith-sdk#2442</a></li> <li>fix(py, claude agent sdk): Correctly parent spans in asyncio context by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2457">langchain-ai/langsmith-sdk#2457</a></li> <li>perf(py): Improve retry logic for tracing ops by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2459">langchain-ai/langsmith-sdk#2459</a></li> <li>feat(py, claude agent sdk): Add wrapping for PostToolUseFailure hook by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2460">langchain-ai/langsmith-sdk#2460</a></li> <li>chore(claude agent sdk): rm debug logs by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2461">langchain-ai/langsmith-sdk#2461</a></li> <li>release(py): 0.7.6 by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2462">langchain-ai/langsmith-sdk#2462</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.5...v0.7.6">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.5...v0.7.6</a></p> <h2>v0.7.5</h2> <h2>What's Changed</h2> <ul> <li>chore(deps): bump chalk from 4.1.2 to 5.6.2 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/2416">langchain-ai/langsmith-sdk#2416</a></li> <li>chore(deps-dev): bump <code>@jest/reporters</code> from 29.7.0 to 30.2.0 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/2417">langchain-ai/langsmith-sdk#2417</a></li> <li>chore(deps): bump the py-minor-and-patch group across 1 directory with 16 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/2440">langchain-ai/langsmith-sdk#2440</a></li> <li>chore(deps-dev): bump pandas-stubs from 2.3.3.251219 to 2.3.3.260113 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/2404">langchain-ai/langsmith-sdk#2404</a></li> <li>chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 10 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/2433">langchain-ai/langsmith-sdk#2433</a></li> <li>make zstandard optional by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2453">langchain-ai/langsmith-sdk#2453</a></li> <li>fix(py/adk): fix multi-agent tracing by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2451">langchain-ai/langsmith-sdk#2451</a></li> <li>release(py): 0.7.5 by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2456">langchain-ai/langsmith-sdk#2456</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.4...v0.7.5">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.4...v0.7.5</a></p> <h2>v0.7.4</h2> <h2>What's Changed</h2> <ul> <li>fix(google-adk): add wrapt dependency by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2436">langchain-ai/langsmith-sdk#2436</a></li> <li>chore: lock dependencies by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2439">langchain-ai/langsmith-sdk#2439</a></li> <li>release(py): 0.7.4 by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2441">langchain-ai/langsmith-sdk#2441</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.3...v0.7.4">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.3...v0.7.4</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="22a048477a"><code>22a0484</code></a> release(py): 0.7.6 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2462">#2462</a>)</li> <li><a href="01acee8618"><code>01acee8</code></a> chore(claude agent sdk): rm debug logs (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2461">#2461</a>)</li> <li><a href="4e366c4685"><code>4e366c4</code></a> feat(py, claude agent sdk): Add wrapping for PostToolUseFailure hook (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2460">#2460</a>)</li> <li><a href="4e25507853"><code>4e25507</code></a> perf(py): Improve retry logic for tracing ops (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2459">#2459</a>)</li> <li><a href="daa0330aff"><code>daa0330</code></a> fix(py, claude agent sdk): Correctly parent spans in asyncio context (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2457">#2457</a>)</li> <li><a href="070a20719a"><code>070a207</code></a> feat(python): add sandbox exception types and client plumbing (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2442">#2442</a>)</li> <li><a href="6f852006cb"><code>6f85200</code></a> release(py): 0.7.5 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2456">#2456</a>)</li> <li><a href="901486fd5e"><code>901486f</code></a> fix(py/adk): fix multi-agent tracing (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2451">#2451</a>)</li> <li><a href="31d1828efe"><code>31d1828</code></a> make zstandard optional (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2453">#2453</a>)</li> <li><a href="78c263920a"><code>78c2639</code></a> chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 10...</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.3...v0.7.6">compare view</a></li> </ul> </details> <br /> Updates `responses` from 0.25.8 to 0.26.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/getsentry/responses/releases">responses's releases</a>.</em></p> <blockquote> <h2>0.26.0</h2> <ul> <li>When using <code>assert_all_requests_are_fired=True</code>, assertions about unfired requests are now raised even when an exception occurs in the context manager or decorated function. Previously, these assertions were suppressed when exceptions occurred. This new behavior provides valuable debugging context about which mocked requests were or weren't called.</li> <li>Consider the <code>Retry-After</code> header when handling retries</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/getsentry/responses/blob/master/CHANGES">responses's changelog</a>.</em></p> <blockquote> <h2>0.26.0</h2> <ul> <li>When using <code>assert_all_requests_are_fired=True</code>, assertions about unfired requests are now raised even when an exception occurs in the context manager or decorated function. Previously, these assertions were suppressed when exceptions occurred. This new behavior provides valuable debugging context about which mocked requests were or weren't called.</li> <li>Consider the <code>Retry-After</code> header when handling retries</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="94913d0580"><code>94913d0</code></a> release: 0.26.0</li> <li><a href="051b79e7fc"><code>051b79e</code></a> Make <code>assert_all_requests_are_fired</code> always assert on exception (<a href="https://redirect.github.com/getsentry/responses/issues/782">#782</a>)</li> <li><a href="0905cb8bd5"><code>0905cb8</code></a> Fix query_param_matcher not matching empty query parameter values (<a href="https://redirect.github.com/getsentry/responses/issues/787">#787</a>)</li> <li><a href="e0c6faab41"><code>e0c6faa</code></a> ci(release): Switch from action-prepare-release to Craft (<a href="https://redirect.github.com/getsentry/responses/issues/785">#785</a>)</li> <li><a href="1be3a737b7"><code>1be3a73</code></a> fix: Consider the <code>Retry-After</code> header when handling retries (<a href="https://redirect.github.com/getsentry/responses/issues/784">#784</a>)</li> <li><a href="c6730fbc87"><code>c6730fb</code></a> Merge branch 'release/0.25.8'</li> <li>See full diff in <a href="https://github.com/getsentry/responses/compare/0.25.8...0.26.0">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.1 to 0.15.2 <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.2</h2> <h2>Release Notes</h2> <p>Released on 2026-02-19.</p> <h3>Preview features</h3> <ul> <li> <p>Expand the default rule set (<a href="https://redirect.github.com/astral-sh/ruff/pull/23385">#23385</a>)</p> <p>In preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rules are mostly a superset of the stable defaults, with the exception of these rules, which are removed from the preview defaults:</p> <ul> <li><a href="https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line"><code>multiple-imports-on-one-line</code></a> (<code>E401</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file"><code>module-import-not-at-top-of-file</code></a> (<code>E402</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file"><code>module-import-not-at-top-of-file</code></a> (<code>E701</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon"><code>multiple-statements-on-one-line-semicolon</code></a> (<code>E702</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/useless-semicolon"><code>useless-semicolon</code></a> (<code>E703</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/none-comparison"><code>none-comparison</code></a> (<code>E711</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/true-false-comparison"><code>true-false-comparison</code></a> (<code>E712</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/not-in-test"><code>not-in-test</code></a> (<code>E713</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/not-is-test"><code>not-is-test</code></a> (<code>E714</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/type-comparison"><code>type-comparison</code></a> (<code>E721</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/lambda-assignment"><code>lambda-assignment</code></a> (<code>E731</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-variable-name"><code>ambiguous-variable-name</code></a> (<code>E741</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-class-name"><code>ambiguous-class-name</code></a> (<code>E742</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-function-name"><code>ambiguous-function-name</code></a> (<code>E743</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-import-star"><code>undefined-local-with-import-star</code></a> (<code>F403</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage"><code>undefined-local-with-import-star-usage</code></a> (<code>F405</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage"><code>undefined-local-with-nested-import-star-usage</code></a> (<code>F406</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error"><code>forward-annotation-syntax-error</code></a> (<code>F722</code>)</li> </ul> <p>If you use preview and prefer the old defaults, you can restore them with configuration like:</p> <pre lang="toml"><code> # ruff.toml <p>[lint] select = ["E4", "E7", "E9", "F"]</p> <h1>pyproject.toml</h1> <p>[tool.ruff.lint] select = ["E4", "E7", "E9", "F"] </code></pre></p> <p>If you do give them a try, feel free to share your feedback in the <a href="https://github.com/astral-sh/ruff/discussions/23203">GitHub discussion</a>!</p> </li> <li> <p>[<code>flake8-pyi</code>] Also check string annotations (<code>PYI041</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19023">#19023</a>)</p> </li> </ul> <h3>Bug fixes</h3> <!-- 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.2</h2> <p>Released on 2026-02-19.</p> <h3>Preview features</h3> <ul> <li> <p>Expand the default rule set (<a href="https://redirect.github.com/astral-sh/ruff/pull/23385">#23385</a>)</p> <p>In preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rules are mostly a superset of the stable defaults, with the exception of these rules, which are removed from the preview defaults:</p> <ul> <li><a href="https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line"><code>multiple-imports-on-one-line</code></a> (<code>E401</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file"><code>module-import-not-at-top-of-file</code></a> (<code>E402</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file"><code>module-import-not-at-top-of-file</code></a> (<code>E701</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon"><code>multiple-statements-on-one-line-semicolon</code></a> (<code>E702</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/useless-semicolon"><code>useless-semicolon</code></a> (<code>E703</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/none-comparison"><code>none-comparison</code></a> (<code>E711</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/true-false-comparison"><code>true-false-comparison</code></a> (<code>E712</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/not-in-test"><code>not-in-test</code></a> (<code>E713</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/not-is-test"><code>not-is-test</code></a> (<code>E714</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/type-comparison"><code>type-comparison</code></a> (<code>E721</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/lambda-assignment"><code>lambda-assignment</code></a> (<code>E731</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-variable-name"><code>ambiguous-variable-name</code></a> (<code>E741</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-class-name"><code>ambiguous-class-name</code></a> (<code>E742</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-function-name"><code>ambiguous-function-name</code></a> (<code>E743</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-import-star"><code>undefined-local-with-import-star</code></a> (<code>F403</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage"><code>undefined-local-with-import-star-usage</code></a> (<code>F405</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage"><code>undefined-local-with-nested-import-star-usage</code></a> (<code>F406</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error"><code>forward-annotation-syntax-error</code></a> (<code>F722</code>)</li> </ul> <p>If you use preview and prefer the old defaults, you can restore them with configuration like:</p> <pre lang="toml"><code> # ruff.toml <p>[lint] select = ["E4", "E7", "E9", "F"]</p> <h1>pyproject.toml</h1> <p>[tool.ruff.lint] select = ["E4", "E7", "E9", "F"] </code></pre></p> <p>If you do give them a try, feel free to share your feedback in the <a href="https://github.com/astral-sh/ruff/discussions/23203">GitHub discussion</a>!</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="9d18ee9115"><code>9d18ee9</code></a> Hard code workflow name and <code>cancel-in-progress</code> only for PRs (<a href="https://redirect.github.com/astral-sh/ruff/issues/23431">#23431</a>)</li> <li><a href="7cc15f024b"><code>7cc15f0</code></a> Bump 0.15.2 (<a href="https://redirect.github.com/astral-sh/ruff/issues/23430">#23430</a>)</li> <li><a href="d1b544393a"><code>d1b5443</code></a> Add extension mapping to configuration file options (<a href="https://redirect.github.com/astral-sh/ruff/issues/23384">#23384</a>)</li> <li><a href="222574af90"><code>222574a</code></a> Expand the default rule set (<a href="https://redirect.github.com/astral-sh/ruff/issues/23385">#23385</a>)</li> <li><a href="1465b5de38"><code>1465b5d</code></a> [<code>flake8-async</code>] Fix <code>in_async_context</code> logic (<a href="https://redirect.github.com/astral-sh/ruff/issues/23426">#23426</a>)</li> <li><a href="410902fa40"><code>410902f</code></a> [<code>pyupgrade</code>] Fix handling of <code>typing.{io,re}</code> (<code>UP035</code>) (<a href="https://redirect.github.com/astral-sh/ruff/issues/23131">#23131</a>)</li> <li><a href="729610acd9"><code>729610a</code></a> [ty] Fall back to ambiguous for large control flow graphs (<a href="https://redirect.github.com/astral-sh/ruff/issues/23399">#23399</a>)</li> <li><a href="1425c185b0"><code>1425c18</code></a> [ty] Add code folding support</li> <li><a href="97acaaea5f"><code>97acaae</code></a> [ty] Fix stack overflow for self-referential <code>TypeOf</code> in annotations (<a href="https://redirect.github.com/astral-sh/ruff/issues/23407">#23407</a>)</li> <li><a href="1f380c8258"><code>1f380c8</code></a> [ty] Update tests <code>reveal_type</code> and <code>Never</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/23418">#23418</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.15.1...0.15.2">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.1 to 0.15.2 <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.2</h2> <h2>Release Notes</h2> <p>Released on 2026-02-19.</p> <h3>Preview features</h3> <ul> <li> <p>Expand the default rule set (<a href="https://redirect.github.com/astral-sh/ruff/pull/23385">#23385</a>)</p> <p>In preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rules are mostly a superset of the stable defaults, with the exception of these rules, which are removed from the preview defaults:</p> <ul> <li><a href="https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line"><code>multiple-imports-on-one-line</code></a> (<code>E401</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file"><code>module-import-not-at-top-of-file</code></a> (<code>E402</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file"><code>module-import-not-at-top-of-file</code></a> (<code>E701</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon"><code>multiple-statements-on-one-line-semicolon</code></a> (<code>E702</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/useless-semicolon"><code>useless-semicolon</code></a> (<code>E703</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/none-comparison"><code>none-comparison</code></a> (<code>E711</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/true-false-comparison"><code>true-false-comparison</code></a> (<code>E712</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/not-in-test"><code>not-in-test</code></a> (<code>E713</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/not-is-test"><code>not-is-test</code></a> (<code>E714</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/type-comparison"><code>type-comparison</code></a> (<code>E721</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/lambda-assignment"><code>lambda-assignment</code></a> (<code>E731</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-variable-name"><code>ambiguous-variable-name</code></a> (<code>E741</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-class-name"><code>ambiguous-class-name</code></a> (<code>E742</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-function-name"><code>ambiguous-function-name</code></a> (<code>E743</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-import-star"><code>undefined-local-with-import-star</code></a> (<code>F403</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage"><code>undefined-local-with-import-star-usage</code></a> (<code>F405</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage"><code>undefined-local-with-nested-import-star-usage</code></a> (<code>F406</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error"><code>forward-annotation-syntax-error</code></a> (<code>F722</code>)</li> </ul> <p>If you use preview and prefer the old defaults, you can restore them with configuration like:</p> <pre lang="toml"><code> # ruff.toml <p>[lint] select = ["E4", "E7", "E9", "F"]</p> <h1>pyproject.toml</h1> <p>[tool.ruff.lint] select = ["E4", "E7", "E9", "F"] </code></pre></p> <p>If you do give them a try, feel free to share your feedback in the <a href="https://github.com/astral-sh/ruff/discussions/23203">GitHub discussion</a>!</p> </li> <li> <p>[<code>flake8-pyi</code>] Also check string annotations (<code>PYI041</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/19023">#19023</a>)</p> </li> </ul> <h3>Bug fixes</h3> <!-- 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.2</h2> <p>Released on 2026-02-19.</p> <h3>Preview features</h3> <ul> <li> <p>Expand the default rule set (<a href="https://redirect.github.com/astral-sh/ruff/pull/23385">#23385</a>)</p> <p>In preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rules are mostly a superset of the stable defaults, with the exception of these rules, which are removed from the preview defaults:</p> <ul> <li><a href="https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line"><code>multiple-imports-on-one-line</code></a> (<code>E401</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file"><code>module-import-not-at-top-of-file</code></a> (<code>E402</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file"><code>module-import-not-at-top-of-file</code></a> (<code>E701</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon"><code>multiple-statements-on-one-line-semicolon</code></a> (<code>E702</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/useless-semicolon"><code>useless-semicolon</code></a> (<code>E703</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/none-comparison"><code>none-comparison</code></a> (<code>E711</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/true-false-comparison"><code>true-false-comparison</code></a> (<code>E712</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/not-in-test"><code>not-in-test</code></a> (<code>E713</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/not-is-test"><code>not-is-test</code></a> (<code>E714</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/type-comparison"><code>type-comparison</code></a> (<code>E721</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/lambda-assignment"><code>lambda-assignment</code></a> (<code>E731</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-variable-name"><code>ambiguous-variable-name</code></a> (<code>E741</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-class-name"><code>ambiguous-class-name</code></a> (<code>E742</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/ambiguous-function-name"><code>ambiguous-function-name</code></a> (<code>E743</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-import-star"><code>undefined-local-with-import-star</code></a> (<code>F403</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage"><code>undefined-local-with-import-star-usage</code></a> (<code>F405</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage"><code>undefined-local-with-nested-import-star-usage</code></a> (<code>F406</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error"><code>forward-annotation-syntax-error</code></a> (<code>F722</code>)</li> </ul> <p>If you use preview and prefer the old defaults, you can restore them with configuration like:</p> <pre lang="toml"><code> # ruff.toml <p>[lint] select = ["E4", "E7", "E9", "F"]</p> <h1>pyproject.toml</h1> <p>[tool.ruff.lint] select = ["E4", "E7", "E9", "F"] </code></pre></p> <p>If you do give them a try, feel free to share your feedback in the <a href="https://github.com/astral-sh/ruff/discussions/23203">GitHub discussion</a>!</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="9d18ee9115"><code>9d18ee9</code></a> Hard code workflow name and <code>cancel-in-progress</code> only for PRs (<a href="https://redirect.github.com/astral-sh/ruff/issues/23431">#23431</a>)</li> <li><a href="7cc15f024b"><code>7cc15f0</code></a> Bump 0.15.2 (<a href="https://redirect.github.com/astral-sh/ruff/issues/23430">#23430</a>)</li> <li><a href="d1b544393a"><code>d1b5443</code></a> Add extension mapping to configuration file options (<a href="https://redirect.github.com/astral-sh/ruff/issues/23384">#23384</a>)</li> <li><a href="222574af90"><code>222574a</code></a> Expand the default rule set (<a href="https://redirect.github.com/astral-sh/ruff/issues/23385">#23385</a>)</li> <li><a href="1465b5de38"><code>1465b5d</code></a> [<code>flake8-async</code>] Fix <code>in_async_context</code> logic (<a href="https://redirect.github.com/astral-sh/ruff/issues/23426">#23426</a>)</li> <li><a href="410902fa40"><code>410902f</code></a> [<code>pyupgrade</code>] Fix handling of <code>typing.{io,re}</code> (<code>UP035</code>) (<a href="https://redirect.github.com/astral-sh/ruff/issues/23131">#23131</a>)</li> <li><a href="729610acd9"><code>729610a</code></a> [ty] Fall back to ambiguous for large control flow graphs (<a href="https://redirect.github.com/astral-sh/ruff/issues/23399">#23399</a>)</li> <li><a href="1425c185b0"><code>1425c18</code></a> [ty] Add code folding support</li> <li><a href="97acaaea5f"><code>97acaae</code></a> [ty] Fix stack overflow for self-referential <code>TypeOf</code> in annotations (<a href="https://redirect.github.com/astral-sh/ruff/issues/23407">#23407</a>)</li> <li><a href="1f380c8258"><code>1f380c8</code></a> [ty] Update tests <code>reveal_type</code> and <code>Never</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/23418">#23418</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.15.1...0.15.2">compare view</a></li> </ul> </details> <br /> Updates `langsmith` from 0.7.3 to 0.7.6 <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.7.6</h2> <h2>What's Changed</h2> <ul> <li>feat(python): add sandbox exception types and client plumbing by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2442">langchain-ai/langsmith-sdk#2442</a></li> <li>fix(py, claude agent sdk): Correctly parent spans in asyncio context by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2457">langchain-ai/langsmith-sdk#2457</a></li> <li>perf(py): Improve retry logic for tracing ops by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2459">langchain-ai/langsmith-sdk#2459</a></li> <li>feat(py, claude agent sdk): Add wrapping for PostToolUseFailure hook by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2460">langchain-ai/langsmith-sdk#2460</a></li> <li>chore(claude agent sdk): rm debug logs by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2461">langchain-ai/langsmith-sdk#2461</a></li> <li>release(py): 0.7.6 by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2462">langchain-ai/langsmith-sdk#2462</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.5...v0.7.6">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.5...v0.7.6</a></p> <h2>v0.7.5</h2> <h2>What's Changed</h2> <ul> <li>chore(deps): bump chalk from 4.1.2 to 5.6.2 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/2416">langchain-ai/langsmith-sdk#2416</a></li> <li>chore(deps-dev): bump <code>@jest/reporters</code> from 29.7.0 to 30.2.0 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/2417">langchain-ai/langsmith-sdk#2417</a></li> <li>chore(deps): bump the py-minor-and-patch group across 1 directory with 16 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/2440">langchain-ai/langsmith-sdk#2440</a></li> <li>chore(deps-dev): bump pandas-stubs from 2.3.3.251219 to 2.3.3.260113 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/2404">langchain-ai/langsmith-sdk#2404</a></li> <li>chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 10 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/2433">langchain-ai/langsmith-sdk#2433</a></li> <li>make zstandard optional by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2453">langchain-ai/langsmith-sdk#2453</a></li> <li>fix(py/adk): fix multi-agent tracing by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2451">langchain-ai/langsmith-sdk#2451</a></li> <li>release(py): 0.7.5 by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2456">langchain-ai/langsmith-sdk#2456</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.4...v0.7.5">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.4...v0.7.5</a></p> <h2>v0.7.4</h2> <h2>What's Changed</h2> <ul> <li>fix(google-adk): add wrapt dependency by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2436">langchain-ai/langsmith-sdk#2436</a></li> <li>chore: lock dependencies by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2439">langchain-ai/langsmith-sdk#2439</a></li> <li>release(py): 0.7.4 by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2441">langchain-ai/langsmith-sdk#2441</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.3...v0.7.4">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.3...v0.7.4</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="22a048477a"><code>22a0484</code></a> release(py): 0.7.6 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2462">#2462</a>)</li> <li><a href="01acee8618"><code>01acee8</code></a> chore(claude agent sdk): rm debug logs (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2461">#2461</a>)</li> <li><a href="4e366c4685"><code>4e366c4</code></a> feat(py, claude a... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
The platform for reliable agents.
LangChain is a framework for building agents and LLM-powered applications. It helps you chain together interoperable components and third-party integrations to simplify AI application development – all while future-proofing decisions as the underlying technology evolves.
pip install langchain
If you're looking for more advanced customization or agent orchestration, check out LangGraph, our framework for building controllable agent workflows.
Documentation:
- docs.langchain.com – Comprehensive documentation, including conceptual overviews and guides
- reference.langchain.com/python – API reference docs for LangChain packages
- Chat LangChain – Chat with the LangChain documentation and get answers to your questions
Discussions: Visit the LangChain Forum to connect with the community and share all of your technical questions, ideas, and feedback.
Note
Looking for the JS/TS library? Check out LangChain.js.
Why use LangChain?
LangChain helps developers build applications powered by LLMs through a standard interface for models, embeddings, vector stores, and more.
Use LangChain for:
- Real-time data augmentation. Easily connect LLMs to diverse data sources and external/internal systems, drawing from LangChain's vast library of integrations with model providers, tools, vector stores, retrievers, and more.
- Model interoperability. Swap models in and out as your engineering team experiments to find the best choice for your application's needs. As the industry frontier evolves, adapt quickly – LangChain's abstractions keep you moving without losing momentum.
- Rapid prototyping. Quickly build and iterate on LLM applications with LangChain's modular, component-based architecture. Test different approaches and workflows without rebuilding from scratch, accelerating your development cycle.
- Production-ready features. Deploy reliable applications with built-in support for monitoring, evaluation, and debugging through integrations like LangSmith. Scale with confidence using battle-tested patterns and best practices.
- Vibrant community and ecosystem. Leverage a rich ecosystem of integrations, templates, and community-contributed components. Benefit from continuous improvements and stay up-to-date with the latest AI developments through an active open-source community.
- Flexible abstraction layers. Work at the level of abstraction that suits your needs - from high-level chains for quick starts to low-level components for fine-grained control. LangChain grows with your application's complexity.
LangChain ecosystem
While the LangChain framework can be used standalone, it also integrates seamlessly with any LangChain product, giving developers a full suite of tools when building LLM applications.
To improve your LLM application development, pair LangChain with:
- Deep Agents (new!) – Build agents that can plan, use subagents, and leverage file systems for complex tasks
- LangGraph – Build agents that can reliably handle complex tasks with LangGraph, our low-level agent orchestration framework. LangGraph offers customizable architecture, long-term memory, and human-in-the-loop workflows – and is trusted in production by companies like LinkedIn, Uber, Klarna, and GitLab.
- Integrations – List of LangChain integrations, including chat & embedding models, tools & toolkits, and more
- LangSmith – Helpful for agent evals and observability. Debug poor-performing LLM app runs, evaluate agent trajectories, gain visibility in production, and improve performance over time.
- LangSmith Deployment – Deploy and scale agents effortlessly with a purpose-built deployment platform for long-running, stateful workflows. Discover, reuse, configure, and share agents across teams – and iterate quickly with visual prototyping in LangSmith Studio.
Additional resources
- API Reference – Detailed reference on navigating base packages and integrations for LangChain.
- Contributing Guide – Learn how to contribute to LangChain projects and find good first issues.
- Code of Conduct – Our community guidelines and standards for participation.
- LangChain Academy – Comprehensive, free courses on LangChain libraries and products, made by the LangChain team.