Bumps the langchain-deps group with 2 updates in the /libs/core directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk) and [ruff](https://github.com/astral-sh/ruff). Bumps the langchain-deps group with 6 updates in the /libs/langchain directory: | Package | From | To | | --- | --- | --- | | [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.7.6` | `0.7.9` | | [ruff](https://github.com/astral-sh/ruff) | `0.15.2` | `0.15.4` | | [langchain-aws](https://github.com/langchain-ai/langchain-aws) | `1.3.0` | `1.3.1` | | [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` | | langchainhub | `0.1.18` | `0.1.21` | | [fastapi](https://github.com/fastapi/fastapi) | `0.133.0` | `0.135.1` | Bumps the langchain-deps group with 4 updates in the /libs/langchain_v1 directory: [ruff](https://github.com/astral-sh/ruff), [langchain-aws](https://github.com/langchain-ai/langchain-aws), [python-dotenv](https://github.com/theskumar/python-dotenv) and [langgraph](https://github.com/langchain-ai/langgraph). Updates `langsmith` from 0.7.6 to 0.7.9 <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.9</h2> <h2>What's Changed</h2> <ul> <li>fix: catch blocksize typeError by <a href="https://github.com/ericdong-langchain"><code>@ericdong-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2499">langchain-ai/langsmith-sdk#2499</a></li> <li>chore: bump py ver by <a href="https://github.com/ericdong-langchain"><code>@ericdong-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2501">langchain-ai/langsmith-sdk#2501</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.8...v0.7.9">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.8...v0.7.9</a></p> <h2>v0.7.8</h2> <h2>What's Changed</h2> <ul> <li>fix(ci): replace mistakenly pinned Node 22.4.1 with 22.x by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2477">langchain-ai/langsmith-sdk#2477</a></li> <li>chore: bump GitHub workflow Node.js versions to 24.x by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2485">langchain-ai/langsmith-sdk#2485</a></li> <li>chore(deps): bump the py-minor-and-patch group across 1 directory with 15 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/2475">langchain-ai/langsmith-sdk#2475</a></li> <li>chore(deps): bump rollup from 4.57.1 to 4.59.0 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2483">langchain-ai/langsmith-sdk#2483</a></li> <li>feat(sandbox): add retry mechanism for python client by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2486">langchain-ai/langsmith-sdk#2486</a></li> <li>chore(deps): bump rollup from 4.40.2 to 4.59.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/2484">langchain-ai/langsmith-sdk#2484</a></li> <li>Description change for read_dataset_version by <a href="https://github.com/catherine-langchain"><code>@catherine-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2487">langchain-ai/langsmith-sdk#2487</a></li> <li>feat(sandbox): async sandbox creation by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2493">langchain-ai/langsmith-sdk#2493</a></li> <li>docs: rm pytest beta docstring by <a href="https://github.com/baskaryan"><code>@baskaryan</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2496">langchain-ai/langsmith-sdk#2496</a></li> <li>fix(anthropic): Add usage_metadata to metadata 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/2497">langchain-ai/langsmith-sdk#2497</a></li> <li>Bump version: 0.7.7 → 0.7.8 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/2498">langchain-ai/langsmith-sdk#2498</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/catherine-langchain"><code>@catherine-langchain</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2487">langchain-ai/langsmith-sdk#2487</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.7...v0.7.8">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.7...v0.7.8</a></p> <h2>v0.7.7</h2> <h2>What's Changed</h2> <ul> <li>fix(js): subagent tool calls tracking for latest claude agent sdk by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2463">langchain-ai/langsmith-sdk#2463</a></li> <li>release(js): 0.5.5 by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2464">langchain-ai/langsmith-sdk#2464</a></li> <li>fix(js): Respect traceRawHttp for tracing streaming AI SDK calls by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2466">langchain-ai/langsmith-sdk#2466</a></li> <li>release(js): 0.5.6 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2467">langchain-ai/langsmith-sdk#2467</a></li> <li>feat(python): add WebSocket transport for sandbox commands by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2443">langchain-ai/langsmith-sdk#2443</a></li> <li>test(python): add tests for WebSocket transport layer by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2445">langchain-ai/langsmith-sdk#2445</a></li> <li>feat(python): use WebSocket transport by default with HTTP fallback by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2446">langchain-ai/langsmith-sdk#2446</a></li> <li>feat(python): add CommandHandle for streaming, kill, stdin, and reconnect by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2450">langchain-ai/langsmith-sdk#2450</a></li> <li>test(python): add tests for CommandHandle and sandbox streaming integration by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2448">langchain-ai/langsmith-sdk#2448</a></li> <li>docs(python): document sandbox streaming, kill, stdin, and reconnect by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2449">langchain-ai/langsmith-sdk#2449</a></li> <li>chore(deps): bump google-cloud-aiplatform from 1.126.1 to 1.133.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/2465">langchain-ai/langsmith-sdk#2465</a></li> <li>fix(js): Fix list commits endpoint for private prompts by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2479">langchain-ai/langsmith-sdk#2479</a></li> <li>feat: persist failed trace payloads to disk for later replay 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/2476">langchain-ai/langsmith-sdk#2476</a></li> <li>feat: add native thread querying support by <a href="https://github.com/ericdong-langchain"><code>@ericdong-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2455">langchain-ai/langsmith-sdk#2455</a></li> <li>feat: add raw response parsing for responses api to openai wrapper by <a href="https://github.com/victorm-lc"><code>@victorm-lc</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2480">langchain-ai/langsmith-sdk#2480</a></li> <li>fix: add integration and version num by <a href="https://github.com/samecrowder"><code>@samecrowder</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2481">langchain-ai/langsmith-sdk#2481</a></li> <li>release(py): 0.5.7 by <a href="https://github.com/samecrowder"><code>@samecrowder</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2482">langchain-ai/langsmith-sdk#2482</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/samecrowder"><code>@samecrowder</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2481">langchain-ai/langsmith-sdk#2481</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="52339a4d73"><code>52339a4</code></a> chore: bump py ver (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2501">#2501</a>)</li> <li><a href="8d464b565f"><code>8d464b5</code></a> fix: catch blocksize typeError (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2499">#2499</a>)</li> <li><a href="d442f952ca"><code>d442f95</code></a> Bump version: 0.7.7 → 0.7.8 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2498">#2498</a>)</li> <li><a href="498536f09d"><code>498536f</code></a> fix(anthropic): Add usage_metadata to metadata (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2497">#2497</a>)</li> <li><a href="96a6801ac3"><code>96a6801</code></a> docs: rm pytest beta docstring (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2496">#2496</a>)</li> <li><a href="b3141e3e4b"><code>b3141e3</code></a> feat(sandbox): async sandbox creation (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2493">#2493</a>)</li> <li><a href="430999bedb"><code>430999b</code></a> Description change for read_dataset_version (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2487">#2487</a>)</li> <li><a href="b20cf2a7bd"><code>b20cf2a</code></a> chore(deps): bump rollup from 4.40.2 to 4.59.0 in /js (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2484">#2484</a>)</li> <li><a href="3c15041afa"><code>3c15041</code></a> feat(sandbox): add retry mechanism for python client (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2486">#2486</a>)</li> <li><a href="1d29f1ce9b"><code>1d29f1c</code></a> chore(deps): bump rollup from 4.57.1 to 4.59.0 in /js/internal/environment_te...</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.6...v0.7.9">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.2 to 0.15.4 <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.4</h2> <h2>Release Notes</h2> <p>Released on 2026-02-26.</p> <p>This is a follow-up release to 0.15.3 that resolves a panic when the new rule <code>PLR1712</code> was enabled with any rule that analyzes definitions, such as many of the <code>ANN</code> or <code>D</code> rules.</p> <h3>Bug fixes</h3> <ul> <li>Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23588">#23588</a>)</li> <li>[<code>pyflakes</code>] Suppress false positive in <code>F821</code> for names used before <code>del</code> in stub files (<a href="https://redirect.github.com/astral-sh/ruff/pull/23550">#23550</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/pull/23591">#23591</a>)</li> <li>Fix incorrect <code>import-heading</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/23568">#23568</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/stakeswky"><code>@stakeswky</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/thejcannon"><code>@thejcannon</code></a></li> <li><a href="https://github.com/GeObts"><code>@GeObts</code></a></li> </ul> <h2>Install ruff 0.15.4</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-installer.ps1 | iex" </code></pre> <h2>Download ruff 0.15.4</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-apple-darwin.tar.gz">ruff-aarch64-apple-darwin.tar.gz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-apple-darwin.tar.gz">ruff-x86_64-apple-darwin.tar.gz</a></td> <td>Intel macOS</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-pc-windows-msvc.zip">ruff-aarch64-pc-windows-msvc.zip</a></td> <td>ARM64 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-pc-windows-msvc.zip">ruff-i686-pc-windows-msvc.zip</a></td> <td>x86 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-pc-windows-msvc.zip">ruff-x86_64-pc-windows-msvc.zip</a></td> <td>x64 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-unknown-linux-gnu.tar.gz">ruff-aarch64-unknown-linux-gnu.tar.gz</a></td> <td>ARM64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-unknown-linux-gnu.tar.gz">ruff-i686-unknown-linux-gnu.tar.gz</a></td> <td>x86 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-powerpc64-unknown-linux-gnu.tar.gz">ruff-powerpc64-unknown-linux-gnu.tar.gz</a></td> <td>PPC64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-powerpc64-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.4</h2> <p>Released on 2026-02-26.</p> <p>This is a follow-up release to 0.15.3 that resolves a panic when the new rule <code>PLR1712</code> was enabled with any rule that analyzes definitions, such as many of the <code>ANN</code> or <code>D</code> rules.</p> <h3>Bug fixes</h3> <ul> <li>Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23588">#23588</a>)</li> <li>[<code>pyflakes</code>] Suppress false positive in <code>F821</code> for names used before <code>del</code> in stub files (<a href="https://redirect.github.com/astral-sh/ruff/pull/23550">#23550</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/pull/23591">#23591</a>)</li> <li>Fix incorrect <code>import-heading</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/23568">#23568</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/stakeswky"><code>@stakeswky</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/thejcannon"><code>@thejcannon</code></a></li> <li><a href="https://github.com/GeObts"><code>@GeObts</code></a></li> </ul> <h2>0.15.3</h2> <p>Released on 2026-02-26.</p> <h3>Preview features</h3> <ul> <li> <p>Drop explicit support for <code>.qmd</code> file extension (<a href="https://redirect.github.com/astral-sh/ruff/pull/23572">#23572</a>)</p> <p>This can now be enabled instead by setting the <a href="https://docs.astral.sh/ruff/settings/#extension"><code>extension</code></a> option:</p> <pre lang="toml"><code># ruff.toml extension = { qmd = "markdown" } <h1>pyproject.toml</h1> <p>[tool.ruff] extension = { qmd = "markdown" } </code></pre></p> </li> <li> <p>Include configured extensions in file discovery (<a href="https://redirect.github.com/astral-sh/ruff/pull/23400">#23400</a>)</p> </li> <li> <p>[<code>flake8-bandit</code>] Allow suspicious imports in <code>TYPE_CHECKING</code> blocks (<code>S401</code>-<code>S415</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23441">#23441</a>)</p> </li> <li> <p>[<code>flake8-bugbear</code>] Allow <code>B901</code> in pytest hook wrappers (<a href="https://redirect.github.com/astral-sh/ruff/pull/21931">#21931</a>)</p> </li> <li> <p>[<code>flake8-import-conventions</code>] Add missing conventions from upstream (<code>ICN001</code>, <code>ICN002</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/21373">#21373</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="f14edd8661"><code>f14edd8</code></a> Bump 0.15.4 (<a href="https://redirect.github.com/astral-sh/ruff/issues/23595">#23595</a>)</li> <li><a href="fd09d37007"><code>fd09d37</code></a> Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/issues/23588">#23588</a>)</li> <li><a href="81d655fadc"><code>81d655f</code></a> [<code>pyflakes</code>] suppress false positive in <code>F821</code> for names used before <code>del</code> in...</li> <li><a href="625b4f5a67"><code>625b4f5</code></a> [ruff] docs: Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/issues/23591">#23591</a>)</li> <li><a href="60facfa0bc"><code>60facfa</code></a> one word typo fix in a <code>while_loop.md</code> test case (<a href="https://redirect.github.com/astral-sh/ruff/issues/23589">#23589</a>)</li> <li><a href="fbb9fa75cc"><code>fbb9fa7</code></a> docs: fix incorrect import-heading example (<a href="https://redirect.github.com/astral-sh/ruff/issues/23568">#23568</a>)</li> <li><a href="5bc49a9412"><code>5bc49a9</code></a> Increase the ruleset size to 16 bits (<a href="https://redirect.github.com/astral-sh/ruff/issues/23586">#23586</a>)</li> <li><a href="a62ba8c6e2"><code>a62ba8c</code></a> [ty] Fix overloaded callable assignability for unary Callable targets (<a href="https://redirect.github.com/astral-sh/ruff/issues/23277">#23277</a>)</li> <li><a href="e5f2f36a3f"><code>e5f2f36</code></a> Bump 0.15.3 (<a href="https://redirect.github.com/astral-sh/ruff/issues/23585">#23585</a>)</li> <li><a href="0e19fc9a61"><code>0e19fc9</code></a> [ty] defer calculating conjunctions in narrowing constraints (<a href="https://redirect.github.com/astral-sh/ruff/issues/23552">#23552</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.15.2...0.15.4">compare view</a></li> </ul> </details> <br /> Updates `langsmith` from 0.7.6 to 0.7.9 <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.9</h2> <h2>What's Changed</h2> <ul> <li>fix: catch blocksize typeError by <a href="https://github.com/ericdong-langchain"><code>@ericdong-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2499">langchain-ai/langsmith-sdk#2499</a></li> <li>chore: bump py ver by <a href="https://github.com/ericdong-langchain"><code>@ericdong-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2501">langchain-ai/langsmith-sdk#2501</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.8...v0.7.9">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.8...v0.7.9</a></p> <h2>v0.7.8</h2> <h2>What's Changed</h2> <ul> <li>fix(ci): replace mistakenly pinned Node 22.4.1 with 22.x by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2477">langchain-ai/langsmith-sdk#2477</a></li> <li>chore: bump GitHub workflow Node.js versions to 24.x by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2485">langchain-ai/langsmith-sdk#2485</a></li> <li>chore(deps): bump the py-minor-and-patch group across 1 directory with 15 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/2475">langchain-ai/langsmith-sdk#2475</a></li> <li>chore(deps): bump rollup from 4.57.1 to 4.59.0 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2483">langchain-ai/langsmith-sdk#2483</a></li> <li>feat(sandbox): add retry mechanism for python client by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2486">langchain-ai/langsmith-sdk#2486</a></li> <li>chore(deps): bump rollup from 4.40.2 to 4.59.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/2484">langchain-ai/langsmith-sdk#2484</a></li> <li>Description change for read_dataset_version by <a href="https://github.com/catherine-langchain"><code>@catherine-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2487">langchain-ai/langsmith-sdk#2487</a></li> <li>feat(sandbox): async sandbox creation by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2493">langchain-ai/langsmith-sdk#2493</a></li> <li>docs: rm pytest beta docstring by <a href="https://github.com/baskaryan"><code>@baskaryan</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2496">langchain-ai/langsmith-sdk#2496</a></li> <li>fix(anthropic): Add usage_metadata to metadata 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/2497">langchain-ai/langsmith-sdk#2497</a></li> <li>Bump version: 0.7.7 → 0.7.8 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/2498">langchain-ai/langsmith-sdk#2498</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/catherine-langchain"><code>@catherine-langchain</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2487">langchain-ai/langsmith-sdk#2487</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.7...v0.7.8">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.7...v0.7.8</a></p> <h2>v0.7.7</h2> <h2>What's Changed</h2> <ul> <li>fix(js): subagent tool calls tracking for latest claude agent sdk by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2463">langchain-ai/langsmith-sdk#2463</a></li> <li>release(js): 0.5.5 by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2464">langchain-ai/langsmith-sdk#2464</a></li> <li>fix(js): Respect traceRawHttp for tracing streaming AI SDK calls by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2466">langchain-ai/langsmith-sdk#2466</a></li> <li>release(js): 0.5.6 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2467">langchain-ai/langsmith-sdk#2467</a></li> <li>feat(python): add WebSocket transport for sandbox commands by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2443">langchain-ai/langsmith-sdk#2443</a></li> <li>test(python): add tests for WebSocket transport layer by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2445">langchain-ai/langsmith-sdk#2445</a></li> <li>feat(python): use WebSocket transport by default with HTTP fallback by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2446">langchain-ai/langsmith-sdk#2446</a></li> <li>feat(python): add CommandHandle for streaming, kill, stdin, and reconnect by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2450">langchain-ai/langsmith-sdk#2450</a></li> <li>test(python): add tests for CommandHandle and sandbox streaming integration by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2448">langchain-ai/langsmith-sdk#2448</a></li> <li>docs(python): document sandbox streaming, kill, stdin, and reconnect by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2449">langchain-ai/langsmith-sdk#2449</a></li> <li>chore(deps): bump google-cloud-aiplatform from 1.126.1 to 1.133.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/2465">langchain-ai/langsmith-sdk#2465</a></li> <li>fix(js): Fix list commits endpoint for private prompts by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2479">langchain-ai/langsmith-sdk#2479</a></li> <li>feat: persist failed trace payloads to disk for later replay 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/2476">langchain-ai/langsmith-sdk#2476</a></li> <li>feat: add native thread querying support by <a href="https://github.com/ericdong-langchain"><code>@ericdong-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2455">langchain-ai/langsmith-sdk#2455</a></li> <li>feat: add raw response parsing for responses api to openai wrapper by <a href="https://github.com/victorm-lc"><code>@victorm-lc</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2480">langchain-ai/langsmith-sdk#2480</a></li> <li>fix: add integration and version num by <a href="https://github.com/samecrowder"><code>@samecrowder</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2481">langchain-ai/langsmith-sdk#2481</a></li> <li>release(py): 0.5.7 by <a href="https://github.com/samecrowder"><code>@samecrowder</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2482">langchain-ai/langsmith-sdk#2482</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/samecrowder"><code>@samecrowder</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2481">langchain-ai/langsmith-sdk#2481</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="52339a4d73"><code>52339a4</code></a> chore: bump py ver (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2501">#2501</a>)</li> <li><a href="8d464b565f"><code>8d464b5</code></a> fix: catch blocksize typeError (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2499">#2499</a>)</li> <li><a href="d442f952ca"><code>d442f95</code></a> Bump version: 0.7.7 → 0.7.8 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2498">#2498</a>)</li> <li><a href="498536f09d"><code>498536f</code></a> fix(anthropic): Add usage_metadata to metadata (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2497">#2497</a>)</li> <li><a href="96a6801ac3"><code>96a6801</code></a> docs: rm pytest beta docstring (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2496">#2496</a>)</li> <li><a href="b3141e3e4b"><code>b3141e3</code></a> feat(sandbox): async sandbox creation (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2493">#2493</a>)</li> <li><a href="430999bedb"><code>430999b</code></a> Description change for read_dataset_version (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2487">#2487</a>)</li> <li><a href="b20cf2a7bd"><code>b20cf2a</code></a> chore(deps): bump rollup from 4.40.2 to 4.59.0 in /js (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2484">#2484</a>)</li> <li><a href="3c15041afa"><code>3c15041</code></a> feat(sandbox): add retry mechanism for python client (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2486">#2486</a>)</li> <li><a href="1d29f1ce9b"><code>1d29f1c</code></a> chore(deps): bump rollup from 4.57.1 to 4.59.0 in /js/internal/environment_te...</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.6...v0.7.9">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.2 to 0.15.4 <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.4</h2> <h2>Release Notes</h2> <p>Released on 2026-02-26.</p> <p>This is a follow-up release to 0.15.3 that resolves a panic when the new rule <code>PLR1712</code> was enabled with any rule that analyzes definitions, such as many of the <code>ANN</code> or <code>D</code> rules.</p> <h3>Bug fixes</h3> <ul> <li>Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23588">#23588</a>)</li> <li>[<code>pyflakes</code>] Suppress false positive in <code>F821</code> for names used before <code>del</code> in stub files (<a href="https://redirect.github.com/astral-sh/ruff/pull/23550">#23550</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/pull/23591">#23591</a>)</li> <li>Fix incorrect <code>import-heading</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/23568">#23568</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/stakeswky"><code>@stakeswky</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/thejcannon"><code>@thejcannon</code></a></li> <li><a href="https://github.com/GeObts"><code>@GeObts</code></a></li> </ul> <h2>Install ruff 0.15.4</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-installer.ps1 | iex" </code></pre> <h2>Download ruff 0.15.4</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-apple-darwin.tar.gz">ruff-aarch64-apple-darwin.tar.gz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-apple-darwin.tar.gz">ruff-x86_64-apple-darwin.tar.gz</a></td> <td>Intel macOS</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-pc-windows-msvc.zip">ruff-aarch64-pc-windows-msvc.zip</a></td> <td>ARM64 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-pc-windows-msvc.zip">ruff-i686-pc-windows-msvc.zip</a></td> <td>x86 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-pc-windows-msvc.zip">ruff-x86_64-pc-windows-msvc.zip</a></td> <td>x64 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-unknown-linux-gnu.tar.gz">ruff-aarch64-unknown-linux-gnu.tar.gz</a></td> <td>ARM64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-unknown-linux-gnu.tar.gz">ruff-i686-unknown-linux-gnu.tar.gz</a></td> <td>x86 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-powerpc64-unknown-linux-gnu.tar.gz">ruff-powerpc64-unknown-linux-gnu.tar.gz</a></td> <td>PPC64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-powerpc64-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.4</h2> <p>Released on 2026-02-26.</p> <p>This is a follow-up release to 0.15.3 that resolves a panic when the new rule <code>PLR1712</code> was enabled with any rule that analyzes definitions, such as many of the <code>ANN</code> or <code>D</code> rules.</p> <h3>Bug fixes</h3> <ul> <li>Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23588">#23588</a>)</li> <li>[<code>pyflakes</code>] Suppress false positive in <code>F821</code> for names used before <code>del</code> in stub files (<a href="https://redirect.github.com/astral-sh/ruff/pull/23550">#23550</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/pull/23591">#23591</a>)</li> <li>Fix incorrect <code>import-heading</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/23568">#23568</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/stakeswky"><code>@stakeswky</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/thejcannon"><code>@thejcannon</code></a></li> <li><a href="https://github.com/GeObts"><code>@GeObts</code></a></li> </ul> <h2>0.15.3</h2> <p>Released on 2026-02-26.</p> <h3>Preview features</h3> <ul> <li> <p>Drop explicit support for <code>.qmd</code> file extension (<a href="https://redirect.github.com/astral-sh/ruff/pull/23572">#23572</a>)</p> <p>This can now be enabled instead by setting the <a href="https://docs.astral.sh/ruff/settings/#extension"><code>extension</code></a> option:</p> <pre lang="toml"><code># ruff.toml extension = { qmd = "markdown" } <h1>pyproject.toml</h1> <p>[tool.ruff] extension = { qmd = "markdown" } </code></pre></p> </li> <li> <p>Include configured extensions in file discovery (<a href="https://redirect.github.com/astral-sh/ruff/pull/23400">#23400</a>)</p> </li> <li> <p>[<code>flake8-bandit</code>] Allow suspicious imports in <code>TYPE_CHECKING</code> blocks (<code>S401</code>-<code>S415</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23441">#23441</a>)</p> </li> <li> <p>[<code>flake8-bugbear</code>] Allow <code>B901</code> in pytest hook wrappers (<a href="https://redirect.github.com/astral-sh/ruff/pull/21931">#21931</a>)</p> </li> <li> <p>[<code>flake8-import-conventions</code>] Add missing conventions from upstream (<code>ICN001</code>, <code>ICN002</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/21373">#21373</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="f14edd8661"><code>f14edd8</code></a> Bump 0.15.4 (<a href="https://redirect.github.com/astral-sh/ruff/issues/23595">#23595</a>)</li> <li><a href="fd09d37007"><code>fd09d37</code></a> Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/issues/23588">#23588</a>)</li> <li><a href="81d655fadc"><code>81d655f</code></a> [<code>pyflakes</code>] suppress false positive in <code>F821</code> for names used before <code>del</code> in...</li> <li><a href="625b4f5a67"><code>625b4f5</code></a> [ruff] docs: Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/issues/23591">#23591</a>)</li> <li><a href="60facfa0bc"><code>60facfa</code></a> one word typo fix in a <code>while_loop.md</code> test case (<a href="https://redirect.github.com/astral-sh/ruff/issues/23589">#23589</a>)</li> <li><a href="fbb9fa75cc"><code>fbb9fa7</code></a> docs: fix incorrect import-heading example (<a href="https://redirect.github.com/astral-sh/ruff/issues/23568">#23568</a>)</li> <li><a href="5bc49a9412"><code>5bc49a9</code></a> Increase the ruleset size to 16 bits (<a href="https://redirect.github.com/astral-sh/ruff/issues/23586">#23586</a>)</li> <li><a href="a62ba8c6e2"><code>a62ba8c</code></a> [ty] Fix overloaded callable assignability for unary Callable targets (<a href="https://redirect.github.com/astral-sh/ruff/issues/23277">#23277</a>)</li> <li><a href="e5f2f36a3f"><code>e5f2f36</code></a> Bump 0.15.3 (<a href="https://redirect.github.com/astral-sh/ruff/issues/23585">#23585</a>)</li> <li><a href="0e19fc9a61"><code>0e19fc9</code></a> [ty] defer calculating conjunctions in narrowing constraints (<a href="https://redirect.github.com/astral-sh/ruff/issues/23552">#23552</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.15.2...0.15.4">compare view</a></li> </ul> </details> <br /> Updates `langchain-aws` from 1.3.0 to 1.3.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langchain-aws/releases">langchain-aws's releases</a>.</em></p> <blockquote> <h2>langchain-aws==1.3.1</h2> <h2>What's Changed</h2> <ul> <li>fix(aws): handle video blocks in _format_data_content_block by <a href="https://github.com/sharyar"><code>@sharyar</code></a> in <a href="https://redirect.github.com/langchain-ai/langchain-aws/pull/898">langchain-ai/langchain-aws#898</a></li> <li>feat(aws): Support strict parameter in ChatBedrockConverse bind_tools by <a href="https://github.com/michaelnchin"><code>@michaelnchin</code></a> in <a href="https://redirect.github.com/langchain-ai/langchain-aws/pull/882">langchain-ai/langchain-aws#882</a></li> <li>fix(aws): Preserve input format of ChatBedrockConverse additional_model_request_fields keys by <a href="https://github.com/michaelnchin"><code>@michaelnchin</code></a> in <a href="https://redirect.github.com/langchain-ai/langchain-aws/pull/886">langchain-ai/langchain-aws#886</a></li> <li>release(aws): 1.3.1 by <a href="https://github.com/michaelnchin"><code>@michaelnchin</code></a> in <a href="https://redirect.github.com/langchain-ai/langchain-aws/pull/902">langchain-ai/langchain-aws#902</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/sharyar"><code>@sharyar</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langchain-aws/pull/898">langchain-ai/langchain-aws#898</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langchain-aws/compare/langchain-aws==1.3.0...langchain-aws==1.3.1">https://github.com/langchain-ai/langchain-aws/compare/langchain-aws==1.3.0...langchain-aws==1.3.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="2bec09d097"><code>2bec09d</code></a> release(aws): 1.3.1 (<a href="https://redirect.github.com/langchain-ai/langchain-aws/issues/902">#902</a>)</li> <li><a href="7166abca9f"><code>7166abc</code></a> fix(aws): Preserve input format of ChatBedrockConverse additional_model_reque...</li> <li><a href="81fdf34237"><code>81fdf34</code></a> feat(aws): Support strict parameter in ChatBedrockConverse bind_tools (<a href="https://redirect.github.com/langchain-ai/langchain-aws/issues/882">#882</a>)</li> <li><a href="b0cab4705c"><code>b0cab47</code></a> fix(aws): handle video blocks in _format_data_content_block (<a href="https://redirect.github.com/langchain-ai/langchain-aws/issues/898">#898</a>)</li> <li><a href="42edadb0e8"><code>42edadb</code></a> fix(langgraph-checkpoint-aws): shorten session_id when checkpoint_ns is set t...</li> <li><a href="558aeeacea"><code>558aeea</code></a> fix(langgraph-checkpoint-aws): Update to work with parallelized integration t...</li> <li>See full diff in <a href="https://github.com/langchain-ai/langchain-aws/compare/langchain-aws==1.3.0...langchain-aws==1.3.1">compare view</a></li> </ul> </details> <br /> Updates `python-dotenv` from 1.2.1 to 1.2.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/theskumar/python-dotenv/releases">python-dotenv's releases</a>.</em></p> <blockquote> <h2>v1.2.2</h2> <h3>Added</h3> <ul> <li>Support for Python 3.14, including the free-threaded (3.14t) build. (#)</li> </ul> <h3>Changed</h3> <ul> <li>The <code>dotenv run</code> command now forwards flags directly to the specified command by <a href="https://github.com/bbc2"><code>@bbc2</code></a> in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/607">theskumar/python-dotenv#607</a></li> <li>Improved documentation clarity regarding override behavior and the reference page.</li> <li>Updated PyPy support to version 3.11.</li> <li>Documentation for FIFO file support.</li> <li>Support for Python 3.9.</li> </ul> <h3>Fixed</h3> <ul> <li>Improved <code>set_key</code> and <code>unset_key</code> behavior when interacting with symlinks by <a href="https://github.com/bbc2"><code>@bbc2</code></a> in <a href="790c5c0299">#790c5</a></li> <li>Corrected the license specifier and added missing Python 3.14 classifiers in package metadata by <a href="https://github.com/JYOuyang"><code>@JYOuyang</code></a> in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/590">theskumar/python-dotenv#590</a></li> </ul> <h3>Breaking Changes</h3> <ul> <li> <p><code>dotenv.set_key</code> and <code>dotenv.unset_key</code> used to follow symlinks in some situations. This is no longer the case. For that behavior to be restored in all cases, <code>follow_symlinks=True</code> should be used.</p> </li> <li> <p>In the CLI, <code>set</code> and <code>unset</code> used to follow symlinks in some situations. This is no longer the case.</p> </li> <li> <p><code>dotenv.set_key</code>, <code>dotenv.unset_key</code> and the CLI commands <code>set</code> and <code>unset</code> used to reset the file mode of the modified .env file to <code>0o600</code> in some situations. This is no longer the case: The original mode of the file is now preserved. Is the file needed to be created or wasn't a regular file, mode <code>0o600</code> is used.</p> </li> </ul> <h3>Misc</h3> <ul> <li>skip 000 permission tests for root user by <a href="https://github.com/burnout-projects"><code>@burnout-projects</code></a> in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/561">theskumar/python-dotenv#561</a></li> <li>Bump actions/checkout from 5 to 6 in the github-actions group by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/593">theskumar/python-dotenv#593</a></li> <li>Add Windows testing to CI by <a href="https://github.com/bbc2"><code>@bbc2</code></a> in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/604">theskumar/python-dotenv#604</a></li> <li>Improve workflow efficiency with best practices by <a href="https://github.com/theskumar"><code>@theskumar</code></a> in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/609">theskumar/python-dotenv#609</a></li> <li>Remove the use of <code>sh</code> in tests by <a href="https://github.com/bbc2"><code>@bbc2</code></a> in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/612">theskumar/python-dotenv#612</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/JYOuyang"><code>@JYOuyang</code></a> made their first contribution in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/590">theskumar/python-dotenv#590</a></li> <li><a href="https://github.com/burnout-projects"><code>@burnout-projects</code></a> made their first contribution in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/561">theskumar/python-dotenv#561</a></li> <li><a href="https://github.com/cpackham-atlnz"><code>@cpackham-atlnz</code></a> made their first contribution in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/597">theskumar/python-dotenv#597</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2">https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md">python-dotenv's changelog</a>.</em></p> <blockquote> <h2>[1.2.2] - 2026-03-01</h2> <h3>Added</h3> <ul> <li>Support for Python 3.14, including the free-threaded (3.14t) build. (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/588">#588</a>)</li> </ul> <h3>Changed</h3> <ul> <li>The <code>dotenv run</code> command now forwards flags directly to the specified command by [<a href="https://github.com/bbc2"><code>@bbc2</code></a>] in <a href="https://redirect.github.com/theskumar/python-dotenv/issues/607">#607</a></li> <li>Improved documentation clarity regarding override behavior and the reference page.</li> <li>Updated PyPy support to version 3.11.</li> <li>Documentation for FIFO file support.</li> <li>Dropped Support for Python 3.9.</li> </ul> <h3>Fixed</h3> <ul> <li>Improved <code>set_key</code> and <code>unset_key</code> behavior when interacting with symlinks by [<a href="https://github.com/bbc2"><code>@bbc2</code></a>] in [790c5c0]</li> <li>Corrected the license specifier and added missing Python 3.14 classifiers in package metadata by [<a href="https://github.com/JYOuyang"><code>@JYOuyang</code></a>] in <a href="https://redirect.github.com/theskumar/python-dotenv/issues/590">#590</a></li> </ul> <h3>Breaking Changes</h3> <ul> <li> <p><code>dotenv.set_key</code> and <code>dotenv.unset_key</code> used to follow symlinks in some situations. This is no longer the case. For that behavior to be restored in all cases, <code>follow_symlinks=True</code> should be used.</p> </li> <li> <p>In the CLI, <code>set</code> and <code>unset</code> used to follow symlinks in some situations. This is no longer the case.</p> </li> <li> <p><code>dotenv.set_key</code>, <code>dotenv.unset_key</code> and the CLI commands <code>set</code> and <code>unset</code> used to reset the file mode of the modified .env file to <code>0o600</code> in some situations. This is no longer the case: The original mode of the file is now preserved. Is the file needed to be created or wasn't a regular file, mode <code>0o600</code> is used.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="36004e0e34"><code>36004e0</code></a> Bump version: 1.2.1 → 1.2.2</li> <li><a href="eb202520e5"><code>eb20252</code></a> docs: update changelog for v1.2.2</li> <li><a href="790c5c0299"><code>790c5c0</code></a> Merge commit from fork</li> <li><a href="43340da220"><code>43340da</code></a> Remove the use of <code>sh</code> in tests (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/612">#612</a>)</li> <li><a href="09d7cee324"><code>09d7cee</code></a> docs: clarify override behavior and document FIFO support (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/610">#610</a>)</li> <li><a href="c8de2887c0"><code>c8de288</code></a> ci: improve workflow efficiency with best practices (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/609">#609</a>)</li> <li><a href="7bd9e3dbfe"><code>7bd9e3d</code></a> Add Windows testing to CI (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/604">#604</a>)</li> <li><a href="1baaf04f33"><code>1baaf04</code></a> Drop Python 3.9 support and update to PyPy 3.11 (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/608">#608</a>)</li> <li><a href="4a22cf8993"><code>4a22cf8</code></a> ci: enable testing on Python 3.14t (free-threaded) (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/588">#588</a>)</li> <li><a href="e2e8e776b4"><code>e2e8e77</code></a> Fix license specifier (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/597">#597</a>)</li> <li>Additional commits viewable in <a href="https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2">compare view</a></li> </ul> </details> <br /> Updates `langchainhub` from 0.1.18 to 0.1.21 Updates `fastapi` from 0.133.0 to 0.135.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fastapi/fastapi/releases">fastapi's releases</a>.</em></p> <blockquote> <h2>0.135.1</h2> <h3>Fixes</h3> <ul> <li>🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15038">#15038</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> </ul> <h3>Docs</h3> <ul> <li>✏️ Fix typo in <code>docs/en/docs/_llm-test.md</code>. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15007">#15007</a> by <a href="https://github.com/adityagiri3600"><code>@adityagiri3600</code></a>.</li> <li>📝 Update Skill, optimize context, trim and refactor into references. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15031">#15031</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> </ul> <h3>Internal</h3> <ul> <li>👥 Update FastAPI People - Experts. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15037">#15037</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> <li>👥 Update FastAPI People - Contributors and Translators. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15029">#15029</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> <li>👥 Update FastAPI GitHub topic repositories. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15036">#15036</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> </ul> <h2>0.135.0</h2> <h3>Features</h3> <ul> <li>✨ Add support for Server Sent Events. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15030">#15030</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>. <ul> <li>New docs: <a href="https://fastapi.tiangolo.com/tutorial/server-sent-events/">Server-Sent Events (SSE)</a>.</li> </ul> </li> </ul> <h2>0.134.0</h2> <h3>Features</h3> <ul> <li>✨ Add support for streaming JSON Lines and binary data with <code>yield</code>. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15022">#15022</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>. <ul> <li>This also upgrades Starlette from <code>>=0.40.0</code> to <code>>=0.46.0</code>, as it's needed to properly unrwap and re-raise exceptions from exception groups.</li> <li>New docs: <a href="https://fastapi.tiangolo.com/tutorial/stream-json-lines/">Stream JSON Lines</a>.</li> <li>And new docs: <a href="https://fastapi.tiangolo.com/advanced/stream-data/">Stream Data</a>.</li> </ul> </li> </ul> <h3>Docs</h3> <ul> <li>📝 Update Library Agent Skill with streaming responses. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15024">#15024</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> <li>📝 Update docs for responses and new stream with <code>yield</code>. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15023">#15023</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> <li>📝 Add <code>await</code> in <code>StreamingResponse</code> code example to allow cancellation. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14681">#14681</a> by <a href="https://github.com/casperdcl"><code>@casperdcl</code></a>.</li> <li>📝 Rename <code>docs_src/websockets</code> to <code>docs_src/websockets_</code> to avoid import errors. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14979">#14979</a> by <a href="https://github.com/YuriiMotov"><code>@YuriiMotov</code></a>.</li> </ul> <h3>Internal</h3> <ul> <li>🔨 Run tests with <code>pytest-xdist</code> and <code>pytest-cov</code>. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14992">#14992</a> by <a href="https://github.com/YuriiMotov"><code>@YuriiMotov</code></a>.</li> </ul> <h2>0.133.1</h2> <h3>Features</h3> <ul> <li>🔧 Add FastAPI Agent Skill. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14982">#14982</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>. <ul> <li>Read more about it in <a href="https://tiangolo.com/ideas/library-agent-skills/">Library Agent Skills</a>.</li> </ul> </li> </ul> <h3>Internal</h3> <ul> <li>✅ Fix all tests are skipped on Windows. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14994">#14994</a> by <a href="https://github.com/YuriiMotov"><code>@YuriiMotov</code></a>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="ca5f60ee72"><code>ca5f60e</code></a> 🔖 Release version 0.135.1</li> <li><a href="87f75aa62c"><code>87f75aa</code></a> 📝 Update release notes</li> <li><a href="8a9258b169"><code>8a9258b</code></a> 🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed...</li> <li><a href="6038507823"><code>6038507</code></a> 📝 Update release notes</li> <li><a href="c796ba4f46"><code>c796ba4</code></a> 👥 Update FastAPI People - Experts (<a href="https://redirect.github.com/fastapi/fastapi/issues/15037">#15037</a>)</li> <li><a href="b24aa03b88"><code>b24aa03</code></a> 📝 Update release notes</li> <li><a href="2c6104752a"><code>2c61047</code></a> ✏️ Fix typo in <code>docs/en/docs/_llm-test.md</code> (<a href="https://redirect.github.com/fastapi/fastapi/issues/15007">#15007</a>)</li> <li><a href="e3bbeef8a2"><code>e3bbeef</code></a> 📝 Update release notes</li> <li><a href="d726c8cb2b"><code>d726c8c</code></a> 📝 Update release notes</li> <li><a href="cf514e6d38"><code>cf514e6</code></a> 👥 Update FastAPI People - Contributors and Translators (<a href="https://redirect.github.com/fastapi/fastapi/issues/15029">#15029</a>)</li> <li>Additional commits viewable in <a href="https://github.com/fastapi/fastapi/compare/0.133.0...0.135.1">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.2 to 0.15.4 <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.4</h2> <h2>Release Notes</h2> <p>Released on 2026-02-26.</p> <p>This is a follow-up release to 0.15.3 that resolves a panic when the new rule <code>PLR1712</code> was enabled with any rule that analyzes definitions, such as many of the <code>ANN</code> or <code>D</code> rules.</p> <h3>Bug fixes</h3> <ul> <li>Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23588">#23588</a>)</li> <li>[<code>pyflakes</code>] Suppress false positive in <code>F821</code> for names used before <code>del</code> in stub files (<a href="https://redirect.github.com/astral-sh/ruff/pull/23550">#23550</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/pull/23591">#23591</a>)</li> <li>Fix... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
🦜🍎️ LangChain Core
Looking for the JS/TS version? Check out LangChain.js.
To help you ship LangChain apps to production faster, check out LangSmith. LangSmith is a unified developer platform for building, testing, and monitoring LLM applications.
Quick Install
pip install langchain-core
🤔 What is this?
LangChain Core contains the base abstractions that power the LangChain ecosystem.
These abstractions are designed to be as modular and simple as possible.
The benefit of having these abstractions is that any provider can implement the required interface and then easily be used in the rest of the LangChain ecosystem.
⛰️ Why build on top of LangChain Core?
The LangChain ecosystem is built on top of langchain-core. Some of the benefits:
- Modularity: We've designed Core around abstractions that are independent of each other, and not tied to any specific model provider.
- Stability: We are committed to a stable versioning scheme, and will communicate any breaking changes with advance notice and version bumps.
- Battle-tested: Core components have the largest install base in the LLM ecosystem, and are used in production by many companies.
📖 Documentation
For full documentation, see the API reference. For conceptual guides, tutorials, and examples on using LangChain, see the LangChain Docs. You can also chat with the docs using Chat LangChain.
📕 Releases & Versioning
See our Releases and Versioning policies.
💁 Contributing
As an open-source project in a rapidly developing field, we are extremely open to contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation.
For detailed information on how to contribute, see the Contributing Guide.