mirror of
https://github.com/hwchase17/langchain.git
synced 2026-06-09 10:17:00 +00:00
efb0a4589b6fb39300e78f39486592632d770e4e
16088 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
efb0a4589b |
chore: bump aiohttp from 3.13.5 to 3.14.0 in /libs/partners/fireworks (#37882)
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/langchain-ai/langchain/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
f717342a86 |
chore: bump langsmith from 0.8.7 to 0.8.9 in /libs/partners/fireworks (#37883)
Bumps [langsmith](https://github.com/langchain-ai/langsmith-sdk) from 0.8.7 to 0.8.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.8.9</h2> <h2>What's Changed</h2> <ul> <li>feat(sandbox): add JS Dockerfile snapshots by <a href="https://github.com/langchain-infra"><code>@langchain-infra</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2951">langchain-ai/langsmith-sdk#2951</a></li> <li>chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 11 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/2931">langchain-ai/langsmith-sdk#2931</a></li> <li>chore(deps): bump websockets from 15.0.1 to 16.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/2811">langchain-ai/langsmith-sdk#2811</a></li> <li>chore(deps): update myst-parser requirement from >=3 to >=4.0.1 in /python by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2841">langchain-ai/langsmith-sdk#2841</a></li> <li>chore(deps): bump the py-minor-and-patch group across 1 directory with 19 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/2934">langchain-ai/langsmith-sdk#2934</a></li> <li>chore(deps): bump typescript from 5.9.3 to 6.0.3 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/2839">langchain-ai/langsmith-sdk#2839</a></li> <li>chore(deps-dev): bump google-adk from 1.10.0 to 2.1.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/2960">langchain-ai/langsmith-sdk#2960</a></li> <li>chore(deps-dev): bump wrapt from 1.17.3 to 2.2.1 in /python by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2961">langchain-ai/langsmith-sdk#2961</a></li> <li>chore(deps-dev): bump the py-minor-and-patch group in /python with 6 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/2958">langchain-ai/langsmith-sdk#2958</a></li> <li>chore(deps-dev): bump types-tqdm from 4.67.3.20260408 to 4.67.3.20260518 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/2959">langchain-ai/langsmith-sdk#2959</a></li> <li>ci: add minimum workflow permissions by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2967">langchain-ai/langsmith-sdk#2967</a></li> <li>chore: update dependabot.yml to comply with posture checks by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2966">langchain-ai/langsmith-sdk#2966</a></li> <li>test(python): deflake test_tracing_queue_limit_drops_when_full by <a href="https://github.com/baskaryan"><code>@baskaryan</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2964">langchain-ai/langsmith-sdk#2964</a></li> <li>feat(sandbox): size the dockerfile-build sandbox via vcpus/mem_bytes (python) by <a href="https://github.com/langchain-infra"><code>@langchain-infra</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2979">langchain-ai/langsmith-sdk#2979</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.8...v0.8.9">https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.8...v0.8.9</a></p> <h2>v0.8.8</h2> <h2>What's Changed</h2> <ul> <li>fix(python): retry sandbox pool timeouts by <a href="https://github.com/baskaryan"><code>@baskaryan</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2953">langchain-ai/langsmith-sdk#2953</a></li> <li>fix(sandbox): build Dockerfile snapshots off /tmp by <a href="https://github.com/langchain-infra"><code>@langchain-infra</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2956">langchain-ai/langsmith-sdk#2956</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.7...v0.8.8">https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.7...v0.8.8</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
d55c08bc72 |
chore: bump langsmith from 0.8.7 to 0.8.9 in /libs/partners/chroma (#37884)
Bumps [langsmith](https://github.com/langchain-ai/langsmith-sdk) from 0.8.7 to 0.8.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.8.9</h2> <h2>What's Changed</h2> <ul> <li>feat(sandbox): add JS Dockerfile snapshots by <a href="https://github.com/langchain-infra"><code>@langchain-infra</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2951">langchain-ai/langsmith-sdk#2951</a></li> <li>chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 11 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/2931">langchain-ai/langsmith-sdk#2931</a></li> <li>chore(deps): bump websockets from 15.0.1 to 16.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/2811">langchain-ai/langsmith-sdk#2811</a></li> <li>chore(deps): update myst-parser requirement from >=3 to >=4.0.1 in /python by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2841">langchain-ai/langsmith-sdk#2841</a></li> <li>chore(deps): bump the py-minor-and-patch group across 1 directory with 19 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/2934">langchain-ai/langsmith-sdk#2934</a></li> <li>chore(deps): bump typescript from 5.9.3 to 6.0.3 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/2839">langchain-ai/langsmith-sdk#2839</a></li> <li>chore(deps-dev): bump google-adk from 1.10.0 to 2.1.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/2960">langchain-ai/langsmith-sdk#2960</a></li> <li>chore(deps-dev): bump wrapt from 1.17.3 to 2.2.1 in /python by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2961">langchain-ai/langsmith-sdk#2961</a></li> <li>chore(deps-dev): bump the py-minor-and-patch group in /python with 6 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/2958">langchain-ai/langsmith-sdk#2958</a></li> <li>chore(deps-dev): bump types-tqdm from 4.67.3.20260408 to 4.67.3.20260518 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/2959">langchain-ai/langsmith-sdk#2959</a></li> <li>ci: add minimum workflow permissions by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2967">langchain-ai/langsmith-sdk#2967</a></li> <li>chore: update dependabot.yml to comply with posture checks by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2966">langchain-ai/langsmith-sdk#2966</a></li> <li>test(python): deflake test_tracing_queue_limit_drops_when_full by <a href="https://github.com/baskaryan"><code>@baskaryan</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2964">langchain-ai/langsmith-sdk#2964</a></li> <li>feat(sandbox): size the dockerfile-build sandbox via vcpus/mem_bytes (python) by <a href="https://github.com/langchain-infra"><code>@langchain-infra</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2979">langchain-ai/langsmith-sdk#2979</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.8...v0.8.9">https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.8...v0.8.9</a></p> <h2>v0.8.8</h2> <h2>What's Changed</h2> <ul> <li>fix(python): retry sandbox pool timeouts by <a href="https://github.com/baskaryan"><code>@baskaryan</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2953">langchain-ai/langsmith-sdk#2953</a></li> <li>fix(sandbox): build Dockerfile snapshots off /tmp by <a href="https://github.com/langchain-infra"><code>@langchain-infra</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2956">langchain-ai/langsmith-sdk#2956</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.7...v0.8.8">https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.7...v0.8.8</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
8fc277a4f4 |
chore: bump aiohttp from 3.13.4 to 3.14.0 in /libs/partners/huggingface (#37885)
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/langchain-ai/langchain/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
86be220e7d |
docs(infra): document uv-based Python environment setup (#37881)
Adds an "Environment and dependency management" subsection to the contributor guidance files, codifying the existing `uv`-only workflow so agents and contributors don't reach for `pip`/`poetry`/`conda`, pin a global Python version, or spin up stray virtualenvs. The guidance is adapted to the monorepo's reality (per-package `requires-python`, `uv sync`/`uv run` without manual activation) rather than a generic single-project setup. |
||
|
|
06ab861ace |
chore(model-profiles): refresh model profile data (#37870)
Automated refresh of model profile data for all in-monorepo partner integrations via `langchain-profiles refresh`. 🤖 Generated by the `refresh_model_profiles` workflow. Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com>langchain-deepseek==1.1.0 |
||
|
|
eb2dabb8b7 | release(langchain): 1.3.4 (#37861) langchain==1.3.4 | ||
|
|
17d1c274c4 |
fix(langchain): improve HITL rejection guidance (#37859)
Improves the default `reject` `ToolMessage` so models see that the human denied the action, the tool was not executed, and the same call should not be retried unless the user asks. Also documents that clients can provide a custom `reject` message for domain-specific guidance. [Docs](https://github.com/langchain-ai/docs/pull/4269) _Opened collaboratively by Mason Daugherty and open-swe._ --------- Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com> Co-authored-by: Mason Daugherty <61371264+mdrxy@users.noreply.github.com> Co-authored-by: Mason Daugherty <github@mdrxy.com> |
||
|
|
14b1a243e5 | release(langchain): 1.3.3 (#37843) langchain==1.3.3 | ||
|
|
eb1f731aee |
chore(langchain): bump langgraph to 1.2.4 (#37857)
|
||
|
|
06e3c2a2af |
chore(langchain): loosen langgraph dep range (#37855)
|
||
|
|
44545a0ffc |
chore: bump aws-actions/configure-aws-credentials from 6.1.1 to 6.2.0 in the minor-and-patch group (#37846)
Bumps the minor-and-patch group with 1 update: [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials). Updates `aws-actions/configure-aws-credentials` from 6.1.1 to 6.2.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/aws-actions/configure-aws-credentials/releases">aws-actions/configure-aws-credentials's releases</a>.</em></p> <blockquote> <h2>v6.2.0</h2> <h2><a href="https://github.com/aws-actions/configure-aws-credentials/compare/v6.1.3...v6.2.0">6.2.0</a> (2026-06-01)</h2> <h3>Features</h3> <ul> <li>add additional session tags by default (<a href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/1775">#1775</a>) (<a href=" |
||
|
|
7a74eeb33c |
chore(model-profiles): refresh model profile data (#37852)
Automated refresh of model profile data for all in-monorepo partner integrations via `langchain-profiles refresh`. 🤖 Generated by the `refresh_model_profiles` workflow. Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com> |
||
|
|
dfca7f4424 | feat(langchain): project subagent runs onto typed run.subagents channel (#37739) | ||
|
|
36be77b0f1 |
feat(langchain): add interrupt_mode and when predicate to HumanInTheLoopMiddleware (#37579)
Adds an optional `when` predicate to `InterruptOnConfig`, allowing
dynamic per-tool-call control over whether a HITL interrupt fires.
---
**`when` predicate in `InterruptOnConfig`**
```python
class InterruptOnConfig(TypedDict):
allowed_decisions: list[DecisionType]
description: NotRequired[str | _DescriptionFactory]
args_schema: NotRequired[dict[str, Any]]
when: NotRequired[Callable[[ToolCallRequest], bool]] # new
```
When provided, `when` is called before adding a tool call to the batch
interrupt. If it returns `False`, the call is auto-approved and
excluded. If it returns `True` (or `when` is absent), existing behaviour
is unchanged.
The predicate receives a `ToolCallRequest` with:
- `tool_call` — the raw tool call dict (name, args, id)
- `tool` — `None` (no `BaseTool` instance is available at the
`after_model` stage)
- `state` — current agent state
- `runtime` — a `ToolRuntime` constructed from the node-level `Runtime`,
with `tool_call_id` populated
Example:
```python
HumanInTheLoopMiddleware(
interrupt_on={
"delete_file": InterruptOnConfig(
allowed_decisions=["approve", "reject"],
when=lambda req: req.tool_call["args"].get("path", "").startswith("/etc"),
)
}
)
```
This change is fully backwards-compatible — `when` is `NotRequired` and
existing configs without it behave identically.
> This PR was developed with AI-agent assistance.
|
||
|
|
bc5f1517cf |
chore(model-profiles): refresh model profile data (#37802)
Automated refresh of model profile data for all in-monorepo partner integrations via `langchain-profiles refresh`. 🤖 Generated by the `refresh_model_profiles` workflow. Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com> |
||
|
|
22ebaf95f9 |
chore(deps): bump uv to 0.11.17 (#37824)
Bumps the uv pin in `.github/actions/uv_setup/action.yml` from `0.11.15` to [`0.11.17`](https://github.com/astral-sh/uv/releases/tag/0.11.17). Opened automatically by `bump_uv_pin.yml`. Mirror availability on `releases.astral.sh` was verified before this PR was created, so CI should not race the fallback. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> |
||
|
|
a79298a791 |
chore(model-profiles): refresh model profile data (#37791)
Automated refresh of model profile data for all in-monorepo partner integrations via `langchain-profiles refresh`. 🤖 Generated by the `refresh_model_profiles` workflow. Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com> |
||
|
|
4a7476093d |
chore: bump chromadb from 1.5.5 to 1.5.9 in /libs/partners/chroma (#37779)
Bumps [chromadb](https://github.com/chroma-core/chroma) from 1.5.5 to 1.5.9. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/chroma-core/chroma/releases">chromadb's releases</a>.</em></p> <blockquote> <h2>1.5.9</h2> <p>Version: <code>1.5.9</code> Git ref: <code>refs/tags/1.5.9</code> Build Date: <code>2026-05-05T05:55</code> PIP Package: <code>chroma-1.5.9.tar.gz</code> Github Container Registry Image: <code>:1.5.9</code> DockerHub Image: <code>:1.5.9</code></p> <h2>What's Changed</h2> <ul> <li><a href="https://github.com/chroma-core/chroma/blob/HEAD/frontend">ENH</a>: block functions on topology dbs by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6836">chroma-core/chroma#6836</a></li> <li><a href="https://github.com/chroma-core/chroma/blob/HEAD/faults">ENH</a>: Add Tilt fault injection CLI by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6881">chroma-core/chroma#6881</a></li> <li>[CHORE] Debug TimeoutError in test_add.py by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6905">chroma-core/chroma#6905</a></li> <li>[ENH]: Enable rebuilds for sharded collections by <a href="https://github.com/tanujnay112"><code>@tanujnay112</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6916">chroma-core/chroma#6916</a></li> <li>[ENH]: Group by support with sharding by <a href="https://github.com/sanketkedia"><code>@sanketkedia</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6909">chroma-core/chroma#6909</a></li> <li>[CHORE]: Denormalize tenant and database into collection_compaction_cursors table by <a href="https://github.com/tanujnay112"><code>@tanujnay112</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6940">chroma-core/chroma#6940</a></li> <li>[CHORE] Use normalized record sets for test add by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6935">chroma-core/chroma#6935</a></li> <li>[ENH]: Add workflow to build and publish service container images by <a href="https://github.com/jasonvigil"><code>@jasonvigil</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6944">chroma-core/chroma#6944</a></li> <li>[ENH] - Updates language around Chroma Cloud to be more representative. by <a href="https://github.com/tjkrusinskichroma"><code>@tjkrusinskichroma</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6952">chroma-core/chroma#6952</a></li> <li>[ENH]: Add change stream to collection compaction cursors by <a href="https://github.com/tanujnay112"><code>@tanujnay112</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6955">chroma-core/chroma#6955</a></li> <li>[BUG] Switch to storing DOCKERHUB_USERNAME as var by <a href="https://github.com/jasonvigil"><code>@jasonvigil</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6962">chroma-core/chroma#6962</a></li> <li>[CHORE]: Standardize Tilt CI image build on root docker-bake.hcl by <a href="https://github.com/jasonvigil"><code>@jasonvigil</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6958">chroma-core/chroma#6958</a></li> <li>[BUG]: Rename database on soft delete by <a href="https://github.com/tanujnay112"><code>@tanujnay112</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6943">chroma-core/chroma#6943</a></li> <li>Revert "[CHORE]: Standardize Tilt CI image build on root docker-bake.hcl" by <a href="https://github.com/jasonvigil"><code>@jasonvigil</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6965">chroma-core/chroma#6965</a></li> <li><a href="https://github.com/chroma-core/chroma/blob/HEAD/system">ENH</a>: name and size all worker threads by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6936">chroma-core/chroma#6936</a></li> <li><a href="https://github.com/chroma-core/chroma/blob/HEAD/test">BUG</a>: simplify flaky indexing progress test by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6968">chroma-core/chroma#6968</a></li> <li>[CHORE] stabilize Tilt dev environment configs by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6937">chroma-core/chroma#6937</a></li> <li><a href="https://github.com/chroma-core/chroma/blob/HEAD/garbage_collector">BUG</a>: use correct version file per collection in ancestor walk by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6970">chroma-core/chroma#6970</a></li> <li>[ENH] Add SparsePostingBlock by <a href="https://github.com/HammadB"><code>@HammadB</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6823">chroma-core/chroma#6823</a></li> <li>[ENH] Add basic maxscore writer/reader by <a href="https://github.com/HammadB"><code>@HammadB</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6825">chroma-core/chroma#6825</a></li> <li>[ENH] Add maxscore lazy cursor by <a href="https://github.com/HammadB"><code>@HammadB</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6829">chroma-core/chroma#6829</a></li> <li>[ENH] Add SIMD for maxscore by <a href="https://github.com/Sicheng-Pan"><code>@Sicheng-Pan</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6865">chroma-core/chroma#6865</a></li> <li>[ENH] Benchmark maxscore by <a href="https://github.com/Sicheng-Pan"><code>@Sicheng-Pan</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6866">chroma-core/chroma#6866</a></li> <li>[ENH] Add maxscore option in schema by <a href="https://github.com/Sicheng-Pan"><code>@Sicheng-Pan</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6878">chroma-core/chroma#6878</a></li> <li>[ENH] Add maxscore index to metadata segment by <a href="https://github.com/Sicheng-Pan"><code>@Sicheng-Pan</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6880">chroma-core/chroma#6880</a></li> <li>[ENH] Wire maxscore reader in search by <a href="https://github.com/Sicheng-Pan"><code>@Sicheng-Pan</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6899">chroma-core/chroma#6899</a></li> <li>[PERF] Batch load lazy cursor by <a href="https://github.com/Sicheng-Pan"><code>@Sicheng-Pan</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6974">chroma-core/chroma#6974</a></li> <li><a href="https://github.com/chroma-core/chroma/blob/HEAD/garbage_collector">ENH</a>: add MCMR support for log GC by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6946">chroma-core/chroma#6946</a></li> <li><a href="https://github.com/chroma-core/chroma/blob/HEAD/test">ENH</a>: parameterize multi-region config by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6951">chroma-core/chroma#6951</a></li> <li>[CHORE] fix merge conflict in main by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6986">chroma-core/chroma#6986</a></li> <li>[ENH]: Refactor offset_id to be a mutable AtomicU32 in record by <a href="https://github.com/tanujnay112"><code>@tanujnay112</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6922">chroma-core/chroma#6922</a></li> <li><a href="https://github.com/chroma-core/chroma/blob/HEAD/spanner">ENH</a>: add spanner-cli wrapper binary by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6959">chroma-core/chroma#6959</a></li> <li><a href="https://github.com/chroma-core/chroma/blob/HEAD/sysdb">BUG</a>: preserve legacy hnsw: metadata keys by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6953">chroma-core/chroma#6953</a></li> <li>[TST] refactor repair collection log offset test by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6954">chroma-core/chroma#6954</a></li> <li><a href="https://github.com/chroma-core/chroma/blob/HEAD/garbage_collector">TST</a>: add MCMR hard delete test by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6947">chroma-core/chroma#6947</a></li> <li><a href="https://github.com/chroma-core/chroma/blob/HEAD/log-service">ENH</a>: defer Spanner init to first use by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6915">chroma-core/chroma#6915</a></li> <li>[CHORE]: Denormalize is_deleted in mcmr by <a href="https://github.com/tanujnay112"><code>@tanujnay112</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6989">chroma-core/chroma#6989</a></li> <li>[BUG] Reject NaN/Infinity in base64-encoded embeddings by <a href="https://github.com/philipithomas"><code>@philipithomas</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6664">chroma-core/chroma#6664</a></li> <li>Revert "<a href="https://github.com/chroma-core/chroma/blob/HEAD/garbage_collector">TST</a>: add MCMR hard delete test" by <a href="https://github.com/rescrv"><code>@rescrv</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6992">chroma-core/chroma#6992</a></li> <li>[ENH] Verify file path for compaction by <a href="https://github.com/Sicheng-Pan"><code>@Sicheng-Pan</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6991">chroma-core/chroma#6991</a></li> <li>[DOC]: Document file-upload sync API, AWS credential reuse, and EU region by <a href="https://github.com/philipithomas"><code>@philipithomas</code></a> in <a href="https://redirect.github.com/chroma-core/chroma/pull/6988">chroma-core/chroma#6988</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
7336690902 |
chore: bump langsmith from 0.8.3 to 0.8.7 in /libs/partners/chroma (#37780)
Bumps [langsmith](https://github.com/langchain-ai/langsmith-sdk) from 0.8.3 to 0.8.7. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langsmith-sdk/releases">langsmith's releases</a>.</em></p> <blockquote> <h2>v0.8.7</h2> <h2>What's Changed</h2> <ul> <li>fix: reconnect sandbox command streams on EOF by <a href="https://github.com/ramon-langchain"><code>@ramon-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2941">langchain-ai/langsmith-sdk#2941</a></li> <li>feat(sandbox): build snapshots from Dockerfiles by <a href="https://github.com/langchain-infra"><code>@langchain-infra</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2950">langchain-ai/langsmith-sdk#2950</a></li> <li>fix(python): add organization id to context URLs by <a href="https://github.com/vishnu-ssuresh"><code>@vishnu-ssuresh</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2945">langchain-ai/langsmith-sdk#2945</a></li> <li>fix(js): add organization id to context URLs by <a href="https://github.com/vishnu-ssuresh"><code>@vishnu-ssuresh</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2946">langchain-ai/langsmith-sdk#2946</a></li> <li>release(py): 0.8.7 by <a href="https://github.com/ramon-langchain"><code>@ramon-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2947">langchain-ai/langsmith-sdk#2947</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.6...v0.8.7">https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.6...v0.8.7</a></p> <h2>v0.8.6</h2> <h2>What's Changed</h2> <ul> <li>chore(deps-dev): bump <code>@google/genai</code> from 1.50.1 to 2.0.1 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/2875">langchain-ai/langsmith-sdk#2875</a></li> <li>chore(deps): bump mako from 1.3.11 to 1.3.12 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/2880">langchain-ai/langsmith-sdk#2880</a></li> <li>chore(deps): bump authlib from 1.6.11 to 1.6.12 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/2888">langchain-ai/langsmith-sdk#2888</a></li> <li>chore(deps): bump hono from 4.12.15 to 4.12.18 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/2894">langchain-ai/langsmith-sdk#2894</a></li> <li>chore(deps): bump fast-uri from 3.1.0 to 3.1.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/2895">langchain-ai/langsmith-sdk#2895</a></li> <li>chore(deps-dev): bump <code>@anthropic-ai/sdk</code> from 0.94.0 to 0.95.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/2881">langchain-ai/langsmith-sdk#2881</a></li> <li>chore(deps): bump postcss from 8.5.8 to 8.5.14 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/2898">langchain-ai/langsmith-sdk#2898</a></li> <li>chore(deps): bump <code>@protobufjs/utf8</code> from 1.1.0 to 1.1.1 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/2908">langchain-ai/langsmith-sdk#2908</a></li> <li>chore(deps): bump hono from 4.12.18 to 4.12.19 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/2909">langchain-ai/langsmith-sdk#2909</a></li> <li>chore(deps): bump protobufjs from 7.5.7 to 8.0.1 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/2896">langchain-ai/langsmith-sdk#2896</a></li> <li>chore(deps): bump idna from 3.11 to 3.15 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/2913">langchain-ai/langsmith-sdk#2913</a></li> <li>chore(deps-dev): bump <code>@anthropic-ai/sdk</code> from 0.95.0 to 0.95.1 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/2912">langchain-ai/langsmith-sdk#2912</a></li> <li>AI SDK telemetry and AI SDK v7 support by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2901">langchain-ai/langsmith-sdk#2901</a></li> <li>feat: install websockets by default for sandbox by <a href="https://github.com/open-swe"><code>@open-swe</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2916">langchain-ai/langsmith-sdk#2916</a></li> <li>release(js): 0.7.2 by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2922">langchain-ai/langsmith-sdk#2922</a></li> <li>feat: add list_runs_from_annotation_queue method [closes LSDK-193] by <a href="https://github.com/open-swe"><code>@open-swe</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2892">langchain-ai/langsmith-sdk#2892</a></li> <li>chore(deps-dev): bump <code>@anthropic-ai/sdk</code> from 0.95.1 to 0.95.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/2917">langchain-ai/langsmith-sdk#2917</a></li> <li>chore(deps-dev): bump types-pyyaml from 6.0.12.20250915 to 6.0.12.20260518 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/2927">langchain-ai/langsmith-sdk#2927</a></li> <li>chore(deps): update pydata-sphinx-theme requirement from >=0.15 to >=0.18.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/2928">langchain-ai/langsmith-sdk#2928</a></li> <li>chore: exclude langsmith_api from ruff linter by <a href="https://github.com/KiewanVillatel"><code>@KiewanVillatel</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2933">langchain-ai/langsmith-sdk#2933</a></li> <li>fix(python): retry sandbox connect timeouts by <a href="https://github.com/ramon-langchain"><code>@ramon-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2940">langchain-ai/langsmith-sdk#2940</a></li> <li>fix(js): [LSDK-202] return context hub URLs for pushed contexts by <a href="https://github.com/vishnu-ssuresh"><code>@vishnu-ssuresh</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2939">langchain-ai/langsmith-sdk#2939</a></li> <li>fix(python): RunTree.create_child appends to self.child_runs LSE-2221 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/2942">langchain-ai/langsmith-sdk#2942</a></li> <li>release(js): 0.7.3 by <a href="https://github.com/vishnu-ssuresh"><code>@vishnu-ssuresh</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2943">langchain-ai/langsmith-sdk#2943</a></li> <li>fix(python): [LSDK-202] return context hub URLs for pushed contexts by <a href="https://github.com/vishnu-ssuresh"><code>@vishnu-ssuresh</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2938">langchain-ai/langsmith-sdk#2938</a></li> <li>release(py): 0.8.6 by <a href="https://github.com/vishnu-ssuresh"><code>@vishnu-ssuresh</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2944">langchain-ai/langsmith-sdk#2944</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/KiewanVillatel"><code>@KiewanVillatel</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2933">langchain-ai/langsmith-sdk#2933</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.5...v0.8.6">https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.5...v0.8.6</a></p> <h2>v0.8.5</h2> <h2>What's Changed</h2> <ul> <li>release(js): 0.7.0 by <a href="https://github.com/ramon-langchain"><code>@ramon-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2890">langchain-ai/langsmith-sdk#2890</a></li> <li>fix(js): add alias for <code>experimental/sandbox</code> to appease broad peer dep range within <code>deepagents</code> by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2893">langchain-ai/langsmith-sdk#2893</a></li> <li>feat(js): allow disabling multipart streaming via env variable by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2900">langchain-ai/langsmith-sdk#2900</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
66ba4b7592 |
chore: bump langsmith from 0.8.0 to 0.8.7 in /libs/partners/fireworks (#37781)
Bumps [langsmith](https://github.com/langchain-ai/langsmith-sdk) from 0.8.0 to 0.8.7. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langsmith-sdk/releases">langsmith's releases</a>.</em></p> <blockquote> <h2>v0.8.7</h2> <h2>What's Changed</h2> <ul> <li>fix: reconnect sandbox command streams on EOF by <a href="https://github.com/ramon-langchain"><code>@ramon-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2941">langchain-ai/langsmith-sdk#2941</a></li> <li>feat(sandbox): build snapshots from Dockerfiles by <a href="https://github.com/langchain-infra"><code>@langchain-infra</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2950">langchain-ai/langsmith-sdk#2950</a></li> <li>fix(python): add organization id to context URLs by <a href="https://github.com/vishnu-ssuresh"><code>@vishnu-ssuresh</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2945">langchain-ai/langsmith-sdk#2945</a></li> <li>fix(js): add organization id to context URLs by <a href="https://github.com/vishnu-ssuresh"><code>@vishnu-ssuresh</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2946">langchain-ai/langsmith-sdk#2946</a></li> <li>release(py): 0.8.7 by <a href="https://github.com/ramon-langchain"><code>@ramon-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2947">langchain-ai/langsmith-sdk#2947</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.6...v0.8.7">https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.6...v0.8.7</a></p> <h2>v0.8.6</h2> <h2>What's Changed</h2> <ul> <li>chore(deps-dev): bump <code>@google/genai</code> from 1.50.1 to 2.0.1 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/2875">langchain-ai/langsmith-sdk#2875</a></li> <li>chore(deps): bump mako from 1.3.11 to 1.3.12 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/2880">langchain-ai/langsmith-sdk#2880</a></li> <li>chore(deps): bump authlib from 1.6.11 to 1.6.12 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/2888">langchain-ai/langsmith-sdk#2888</a></li> <li>chore(deps): bump hono from 4.12.15 to 4.12.18 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/2894">langchain-ai/langsmith-sdk#2894</a></li> <li>chore(deps): bump fast-uri from 3.1.0 to 3.1.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/2895">langchain-ai/langsmith-sdk#2895</a></li> <li>chore(deps-dev): bump <code>@anthropic-ai/sdk</code> from 0.94.0 to 0.95.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/2881">langchain-ai/langsmith-sdk#2881</a></li> <li>chore(deps): bump postcss from 8.5.8 to 8.5.14 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/2898">langchain-ai/langsmith-sdk#2898</a></li> <li>chore(deps): bump <code>@protobufjs/utf8</code> from 1.1.0 to 1.1.1 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/2908">langchain-ai/langsmith-sdk#2908</a></li> <li>chore(deps): bump hono from 4.12.18 to 4.12.19 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/2909">langchain-ai/langsmith-sdk#2909</a></li> <li>chore(deps): bump protobufjs from 7.5.7 to 8.0.1 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/2896">langchain-ai/langsmith-sdk#2896</a></li> <li>chore(deps): bump idna from 3.11 to 3.15 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/2913">langchain-ai/langsmith-sdk#2913</a></li> <li>chore(deps-dev): bump <code>@anthropic-ai/sdk</code> from 0.95.0 to 0.95.1 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/2912">langchain-ai/langsmith-sdk#2912</a></li> <li>AI SDK telemetry and AI SDK v7 support by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2901">langchain-ai/langsmith-sdk#2901</a></li> <li>feat: install websockets by default for sandbox by <a href="https://github.com/open-swe"><code>@open-swe</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2916">langchain-ai/langsmith-sdk#2916</a></li> <li>release(js): 0.7.2 by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2922">langchain-ai/langsmith-sdk#2922</a></li> <li>feat: add list_runs_from_annotation_queue method [closes LSDK-193] by <a href="https://github.com/open-swe"><code>@open-swe</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2892">langchain-ai/langsmith-sdk#2892</a></li> <li>chore(deps-dev): bump <code>@anthropic-ai/sdk</code> from 0.95.1 to 0.95.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/2917">langchain-ai/langsmith-sdk#2917</a></li> <li>chore(deps-dev): bump types-pyyaml from 6.0.12.20250915 to 6.0.12.20260518 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/2927">langchain-ai/langsmith-sdk#2927</a></li> <li>chore(deps): update pydata-sphinx-theme requirement from >=0.15 to >=0.18.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/2928">langchain-ai/langsmith-sdk#2928</a></li> <li>chore: exclude langsmith_api from ruff linter by <a href="https://github.com/KiewanVillatel"><code>@KiewanVillatel</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2933">langchain-ai/langsmith-sdk#2933</a></li> <li>fix(python): retry sandbox connect timeouts by <a href="https://github.com/ramon-langchain"><code>@ramon-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2940">langchain-ai/langsmith-sdk#2940</a></li> <li>fix(js): [LSDK-202] return context hub URLs for pushed contexts by <a href="https://github.com/vishnu-ssuresh"><code>@vishnu-ssuresh</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2939">langchain-ai/langsmith-sdk#2939</a></li> <li>fix(python): RunTree.create_child appends to self.child_runs LSE-2221 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/2942">langchain-ai/langsmith-sdk#2942</a></li> <li>release(js): 0.7.3 by <a href="https://github.com/vishnu-ssuresh"><code>@vishnu-ssuresh</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2943">langchain-ai/langsmith-sdk#2943</a></li> <li>fix(python): [LSDK-202] return context hub URLs for pushed contexts by <a href="https://github.com/vishnu-ssuresh"><code>@vishnu-ssuresh</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2938">langchain-ai/langsmith-sdk#2938</a></li> <li>release(py): 0.8.6 by <a href="https://github.com/vishnu-ssuresh"><code>@vishnu-ssuresh</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2944">langchain-ai/langsmith-sdk#2944</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/KiewanVillatel"><code>@KiewanVillatel</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2933">langchain-ai/langsmith-sdk#2933</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.5...v0.8.6">https://github.com/langchain-ai/langsmith-sdk/compare/v0.8.5...v0.8.6</a></p> <h2>v0.8.5</h2> <h2>What's Changed</h2> <ul> <li>release(js): 0.7.0 by <a href="https://github.com/ramon-langchain"><code>@ramon-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2890">langchain-ai/langsmith-sdk#2890</a></li> <li>fix(js): add alias for <code>experimental/sandbox</code> to appease broad peer dep range within <code>deepagents</code> by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2893">langchain-ai/langsmith-sdk#2893</a></li> <li>feat(js): allow disabling multipart streaming via env variable by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2900">langchain-ai/langsmith-sdk#2900</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
7d6a78a036 |
chore: bump requests from 2.34.0 to 2.34.2 in /libs/partners/fireworks (#37782)
Bumps [requests](https://github.com/psf/requests) from 2.34.0 to 2.34.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/requests/releases">requests's releases</a>.</em></p> <blockquote> <h2>v2.34.2</h2> <h2>2.34.2 (2026-05-14)</h2> <ul> <li>Moved <code>headers</code> input type back to <code>Mapping</code> to avoid invariance issues with <code>MutableMapping</code> and inferred dict types. Users calling <code>Request.headers.update()</code> may need to narrow typing in their code. (<a href="https://redirect.github.com/psf/requests/issues/7441">#7441</a>)</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14">https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14</a></p> <h2>v2.34.1</h2> <h2>2.34.1 (2026-05-13)</h2> <p><strong>Bugfixes</strong></p> <ul> <li>Widened <code>json</code> input type from <code>dict</code> and <code>list</code> to <code>Mapping</code> and <code>Sequence</code>. (<a href="https://redirect.github.com/psf/requests/issues/7436">#7436</a>)</li> <li>Changed <code>headers</code> input type to MutableMapping and removed <code>None</code> from <code>Request.headers</code> typing to improve handling for users. (<a href="https://redirect.github.com/psf/requests/issues/7431">#7431</a>)</li> <li><code>Response.reason</code> moved from <code>str | None</code> to <code>str</code> to improve handling for users. (<a href="https://redirect.github.com/psf/requests/issues/7437">#7437</a>)</li> <li>Fixed a bug where some bodies with custom <code>__getattr__</code> implementations weren't being properly detected as Iterables. (<a href="https://redirect.github.com/psf/requests/issues/7433">#7433</a>)</li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/k223kim"><code>@k223kim</code></a> made their first contribution in <a href="https://redirect.github.com/psf/requests/pull/7433">psf/requests#7433</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13">https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/psf/requests/blob/main/HISTORY.md">requests's changelog</a>.</em></p> <blockquote> <h2>2.34.2 (2026-05-14)</h2> <ul> <li>Moved <code>headers</code> input type back to <code>Mapping</code> to avoid invariance issues with <code>MutableMapping</code> and inferred dict types. Users calling <code>Request.headers.update()</code> may need to narrow typing in their code. (<a href="https://redirect.github.com/psf/requests/issues/7441">#7441</a>)</li> </ul> <h2>2.34.1 (2026-05-13)</h2> <p><strong>Bugfixes</strong></p> <ul> <li>Widened <code>json</code> input type from <code>dict</code> and <code>list</code> to <code>Mapping</code> and <code>Sequence</code>. (<a href="https://redirect.github.com/psf/requests/issues/7436">#7436</a>)</li> <li>Changed <code>headers</code> input type to MutableMapping and removed <code>None</code> from <code>Request.headers</code> typing to improve handling for users. (<a href="https://redirect.github.com/psf/requests/issues/7431">#7431</a>)</li> <li><code>Response.reason</code> moved from <code>str | None</code> to <code>str</code> to improve handling for users. (<a href="https://redirect.github.com/psf/requests/issues/7437">#7437</a>)</li> <li>Fixed a bug where some bodies with custom <code>__getattr__</code> implementations weren't being properly detected as Iterables. (<a href="https://redirect.github.com/psf/requests/issues/7433">#7433</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
b8c02e4389 |
chore(infra): note branch conventions in AGENTS.md (#37776)
|
||
|
|
3893b9e344 |
chore(model-profiles): refresh model profile data (#37771)
Automated refresh of model profile data for all in-monorepo partner integrations via `langchain-profiles refresh`. 🤖 Generated by the `refresh_model_profiles` workflow. Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com> |
||
|
|
4493b2cce1 |
ci(anthropic): check version consistency in pre-commit (#37758)
Local pre-commit already verified `pyproject.toml`/version-file sync for `core` and `langchain_v1`, but not `anthropic` — even though the `check_core_versions.yml` CI workflow already gates all three. This wires the existing `anthropic` check into pre-commit so the mismatch gets caught before commit rather than only in CI. |
||
|
|
133887180e | release(anthropic): 1.4.4 (#37757) langchain-anthropic==1.4.4 | ||
|
|
1a5403d848 |
fix(anthropic): normalize cross-provider tool-call IDs (#37756)
Anthropic's API rejects `tool_use`/`tool_result` IDs that don't match `^[a-zA-Z0-9_-]+$` with a 400. When a conversation thread is replayed across providers — e.g. a user switches a running thread from Kimi (via Fireworks) to Claude — the prior turns carry tool-call IDs minted by the other provider (Kimi emits `functions.write_todos:0`, whose `.` and `:` are invalid), and the request fails. Tool-call IDs are now normalized to an Anthropic-compatible form during request formatting, with the original `tool_use.id` and its paired `tool_use_id` mapped identically so they stay linked. |
||
|
|
80ca60014f |
chore(model-profiles): refresh model profile data (#37726)
Automated refresh of model profile data for all in-monorepo partner integrations via `langchain-profiles refresh`. 🤖 Generated by the `refresh_model_profiles` workflow. Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com> |
||
|
|
84e3c795ec | release(perplexity): 1.3.1 (#37720) langchain-perplexity==1.3.1 | ||
|
|
8951e5666f |
chore(perplexity): bump perplexityai to 0.34.1 (#37710)
## Description Bumps `langchain-perplexity` to require the Perplexity SDK release with fixed Responses streaming and removes the temporary SSE shim workaround. ## Release Note `langchain-perplexity` now requires `perplexityai>=0.34.1` for Responses API streaming. ## Test Plan - [x] `NO_COLOR=1 uv run --group test pytest tests/unit_tests/test_chat_models_responses.py --disable-socket --allow-unix-socket` _Opened collaboratively by Mason Daugherty and open-swe._ --------- Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com> Co-authored-by: Mason Daugherty <61371264+mdrxy@users.noreply.github.com> Co-authored-by: Mason Daugherty <github@mdrxy.com> |
||
|
|
b26b0ff23b |
ci: remove unnecessary permission and improve logging in waiting-on-author workflow (#37717)
Tightens the `remove_waiting_on_author` workflow by dropping an unneeded permission and improving debuggability when the target label is missing. |
||
|
|
dc215f8af2 |
ci(infra): auto-remove waiting-on-author label on author reply (#37716)
Ports langchain-ai/deepagents#3626. Adds a workflow that clears the `waiting-on-author` label from an issue or PR as soon as the original author posts a follow-up comment, closing the manual loop where maintainers had to remember to strip the label after a reply landed. |
||
|
|
44d9f86bad | release(fireworks): 1.4.2 (#37715) langchain-fireworks==1.4.2 | ||
|
|
e3ce6e557c |
fix(fireworks): strip non-wire keys from all content parts before serialization (#37714)
`_sanitize_chat_completions_content` now filters every content-part dict against an allowlist derived at import time from the `fireworks-ai` SDK's `ContentUnionMember1` TypedDict, and runs on every message role — not just `ToolMessage`. Fixes 400s of the form `Extra inputs are not permitted, field: 'messages[N].content.list[ChatMessageContent][i].<key>'` when cross-provider history (e.g. an Anthropic-shaped `AIMessage` carrying the v1 streaming-reassembly `index` marker) is forwarded to a Fireworks-hosted model. |
||
|
|
800f02148b |
chore(model-profiles): refresh model profile data (#37712)
Automated refresh of model profile data for all in-monorepo partner integrations via `langchain-profiles refresh`. 🤖 Generated by the `refresh_model_profiles` workflow. Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com> |
||
|
|
b6a4138318 | release(perplexity): 1.3.0 (#37707) langchain-perplexity==1.3.0 | ||
|
|
f9be3cc328 |
feat(perplexity): use_responses_api flag on ChatPerplexity (#37359)
Closes #37360 Adds a `use_responses_api` flag to `ChatPerplexity` so requests can be routed through Perplexity's Agent API (the Perplexity-flavored Responses API) in addition to the existing Chat Completions endpoint. This mirrors the `use_responses_api` flag on `ChatOpenAI`. ## Motivation Perplexity exposes two HTTP surfaces from the same SDK client object: `client.chat.completions.create()` (Chat Completions) and `client.responses.create()` (Agent API, OpenAI-compatible Responses shape). The Agent API supports built-in tools (`web_search`, `fetch_url`, `finance_search`, `people_search`), `instructions`, `input`, `previous_response_id`, and `include` — none of which exist on Chat Completions. Today `ChatPerplexity` only calls Chat Completions, so users who want the Agent API have to drop down to the raw SDK. ## What this changes - New field `use_responses_api: bool | None = None` on `ChatPerplexity`. - New module-level helper `_use_responses_api(payload)` that returns `True` when the payload contains a built-in tool (any `tools[*]` whose `type` is not `"function"`) or any of the Responses-only fields `previous_response_id`, `instructions`, `input`, `include`. - New instance method `ChatPerplexity._use_responses_api(payload)` that honors `self.use_responses_api` when it is a `bool`, otherwise delegates to the module helper. - New converters `_convert_responses_to_chat_result(response)` and `_convert_responses_stream_event_to_chunk(event)` that translate Agent API objects/events into `AIMessage` and `AIMessageChunk` (preserving `usage_metadata`, `response_metadata`, citations, images, related questions, search results, and `function_call` tool calls). - A surgical `_to_responses_payload(...)` helper that renames `messages` → `input` and `max_tokens` → `max_output_tokens`, passes through Responses-supported fields, and parks anything Perplexity-specific under `extra_body`. - Each of the four API call sites (`_stream`, `_astream`, `_generate`, `_agenerate`) now branches on `self._use_responses_api(payload)`. The Chat Completions path is untouched. ## Auto-detection rules When `use_responses_api` is unset (the default), routing is decided per call from the outgoing payload: - Has a built-in tool? → Responses - Has `previous_response_id`, `instructions`, `input`, or `include`? → Responses - Otherwise → Chat Completions Explicit `use_responses_api=True` or `=False` always overrides auto-detection. ## Backwards compatibility Existing usage is unchanged. `ChatPerplexity(model="sonar").invoke("hi")` still calls `client.chat.completions.create()`. No public field was renamed or removed; the new field is purely additive. ## Tests Adds `tests/unit_tests/test_chat_models_responses.py` covering the helper, auto-detect routing, explicit overrides in both directions, response-to-`AIMessage` conversion (content, `usage_metadata`, `response_metadata.id`), `function_call` → `tool_calls` conversion, and sync + async streaming of `response.output_text.delta` and `response.completed` events. All mocks use `MagicMock`/`AsyncMock`; no network calls. ## Notes for reviewers This was implemented with help from an AI agent. The shape mirrors `langchain-openai`'s `use_responses_api` — same field name, same helper name, same docstring style — so the diff should be familiar. Closes nothing — net new feature. --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: Mason Daugherty <github@mdrxy.com> |
||
|
|
7bb4130c7d |
chore(langchain): bump to 1.3.2, require langgraph>=1.2.2 (#37703)
- Bumps `langchain` to **1.3.2** (patch) - Raises minimum `langgraph` requirement from `>=1.2.1` to `>=1.2.2` langgraph 1.2.2 fixes a race condition where DeltaChannel checkpoint writes could serialize `BaseMessage` objects with `id=None` before `apply_writes()` ran the reducer, causing the same message to appear with a different ID on every `get_state()` call and across resumed invocations (langchain-ai/langgraph#7913). The lockfile will be updated once langgraph 1.2.2 is published to PyPI (langchain-ai/langgraph#7914).langchain==1.3.2 |
||
|
|
d9b8dd5183 |
fix(langchain): land final answer in last AIMessage for TodoListMiddleware (#37643)
|
||
|
|
95c6a8aa76 |
chore(core): bump uuid-utils to 0.16.0 (#37699)
Refresh `langchain-core`'s lockfile so the dev/CI environment resolves `uuid-utils` to a release that ships free-threading wheels (`cp313t`, `cp314t`). Unblocks `pip install` on Python 3.14 free-threaded builds — previously the lock pinned `0.14.1`, which had no FT wheel and forced an sdist build. Related to #34870. |
||
|
|
c7858c46d8 |
test(anthropic): retry integration tests on transient failures (#37697)
Enable `pytest-retry` on the `integration_tests` Make target so live API flakes (e.g. `test_batch` timing out against `api.anthropic.com`) no longer fail the job on first miss. Matches the existing convention in `libs/partners/groq`. |
||
|
|
53a5ac3352 |
chore(model-profiles): refresh model profile data (#37694)
Automated refresh of model profile data for all in-monorepo partner integrations via `langchain-profiles refresh`. 🤖 Generated by the `refresh_model_profiles` workflow. Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com> |
||
|
|
69d9e95ef4 |
chore(model-profiles): refresh model profile data (#37650)
Automated refresh of model profile data for all in-monorepo partner integrations via `langchain-profiles refresh`. 🤖 Generated by the `refresh_model_profiles` workflow. Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com> |
||
|
|
33875fde2a |
ci(infra): serialize integration test shards across runs (#37648)
Add job-level `concurrency` to the scheduled integration tests so per-package shards from overlapping workflow dispatches don't hit the same live API credentials at once — e.g. a manually triggered `anthropic` run colliding with the daily `all libs` run. |
||
|
|
2638f75e13 |
feat(standard-tests): forward LangSmith CI env vars to traces (#37645)
Scheduled integration runs set `LANGSMITH_TAGS` and `LANGSMITH_METADATA` in `$GITHUB_ENV` (per #37615), but the LangSmith SDK does not read those env vars natively, so the tags/metadata were silently dropped. A new pytest plugin in `langchain-tests` bridges that gap by entering `langsmith.run_helpers.tracing_context` for the duration of each session. |
||
|
|
bdd7f71a1b |
ci(infra): trace scheduled integration tests (#37615)
Wire LangSmith tracing into the scheduled integration test workflow so partner test runs emit traces to a shared project with GitHub Actions metadata attached. Makes failures traceable back to the originating workflow run, sha, and matrix shard without hunting through CI logs. ## Usage - Filter the `oss-python-integration-tests` project by the `github-actions` tag to see only CI runs; add a `sha-<sha>` or `working_directory=<partner>` filter to narrow to a specific commit or partner shard. - From a failing trace, open the `github_run_url` metadata field to jump directly to the originating workflow run; `github_run_attempt` disambiguates reruns. - Tags are flat strings (good for facets); structured fields like `python_version` and `working_directory` live in metadata for richer querying. |
||
|
|
11cdce91dc |
ci(infra): add middleware evals workflow for workflow_dispatch discovery (#37644)
Fast-track companion to #37643. GitHub's `workflow_dispatch` event is only discoverable when the workflow file exists on the default branch — even though the workflow code that runs comes from the `ref` passed to the dispatch. This PR lands the `Middleware Evals` workflow file on master so that #37643 (which adds `libs/langchain_v1/tests/evals/`) can be dispatched against the feature branch via: ```bash gh workflow run middleware_evals.yml \ --ref nh/todo-middleware-loop-contract \ --field models='claude-sonnet-4-6,...' ``` without first merging the full eval framework. ## Caveats - The workflow's pytest invocation depends on `libs/langchain_v1/tests/evals/` and the partner SDK list, neither of which exists on master yet. Dispatching with `--ref master` before #37643 lands will fail at pytest collection. That's the intended behavior — the workflow's purpose is to dispatch against branches that ship the eval suite. - Once #37643 merges to master, this workflow file already matches what #37643 adds. The merge will be a no-op for `middleware_evals.yml` itself. |
||
|
|
d08245f70d |
feat(langchain): redact streamed PII in flight on PIIMiddleware (#37616)
`PIIMiddleware` previously scrubbed detected PII only at the state level via its `after_model` / `before_model` hooks. Consumers reading the live stream — `astream_events(version="v3")` or `run.messages` / `run.tool_calls` / `run.values` — saw the raw model text, the raw tool-call args, the raw tool outputs, and the raw state snapshots until the run finished and the canonical conversation history was written. This change registers a stream transformer ahead of `MessagesTransformer` that redacts every wire surface of an agent run. The transformer holds a sliding lookback buffer (default 128 characters) per `(run_id, content-block index)` so PII patterns that straddle delta boundaries are caught before the safe prefix is released downstream. Anything older than the lookback is run through the configured detector and emitted; the trailing tail stays buffered until a later delta extends it past the cap or the block finishes. `_finalize_block` always re-runs detection over the full block snapshot so the finalized content lands fully redacted even when the in-flight buffer never released a tail (short responses, or PII arriving in the final delta). The `block` strategy is now supported on the streaming path via a buffering mode that withholds every delta until the block resolves — clean blocks release the full text at finalize, PII-bearing blocks zero the wire and let `after_model` / `apply_to_tool_results` raise `PIIDetectionError` on the original state message. Activation is gated on `apply_to_output=True`, matching the existing post-hoc semantics. The middleware's transformer factory is cloned by `StreamMux._make_child` into every subgraph scope, so attaching `PIIMiddleware` at the outer agent also redacts streamed deltas from sub-agents invoked inside tools. ## Tool-call and tools-channel coverage The transformer covers every wire surface of an agent run, not just AI message text: - **Streamed AI text deltas** (`content-block-delta` of type `text-delta`) — lookback machinery, redacted in place. - **Streamed tool-call args** (`content-block-delta` with `tool_call_chunk` / `server_tool_call_chunk` fields) — each delta carries the full cumulative args string; detection runs on the field directly and redacts in place. Verified empirically against `_compat_bridge.py` and the consumer-side `_merge_block_delta_into_store` snapshot-replace semantics. - **Finalized tool-call blocks** (`content-block-finish` with `tool_call` / `server_tool_call` / `invalid_tool_call`) — `args` dict walked recursively and each string leaf redacted. - **Tool execution events on the `tools` channel** — `tool-started.input`, `tool-output-delta`, `tool-finished.output`, `tool-error.message` all run through detection. String deltas use the same lookback machinery as text-deltas keyed by `tool_call_id`; structured payloads walk recursively. - **State snapshots on the `values` channel** — message lists are walked and each message's `.content` is redacted on a fresh copy. Graph state itself stays intact for the state-level enforcer (`apply_to_tool_results` via `before_model`) to act on independently. - **Legacy `(BaseMessage, metadata)` payloads** on the `messages` channel (Python 3.10 path, where `langgraph`'s `ASYNCIO_ACCEPTS_CONTEXT = sys.version_info >= (3, 11)` falls back to a code path that doesn't propagate the streaming callback into the chat model) — `.content` and `AIMessage.tool_calls[*].args` are scrubbed. For `block`, the event's `data` tuple is replaced with an empty-content copy so the original message stays in state for `after_model` to raise on. ## Worth a careful look - `_PIIStreamTransformer._mutate_text_delta` — lookback partition. Anything older than `lookback` characters is released after redaction; the tail stays buffered. Bulletproof against whitespace-permissive detectors (notably `credit_card`, whose regex matches across spaces). - `_PIIStreamTransformer._mutate_tool_call_chunk_delta` — direct in-place redaction of the cumulative args string. No buffer; the wire shape is cumulative-snapshot, the consumer-side merge is replace-not-append. - `_PIIStreamTransformer._mutate_legacy_payload` — the dual path: mutate-in-place for non-`block` (idempotent with `after_model`), replace-with-empty-copy for `block` (keeps original in graph state for `after_model` to raise on). - `_PIIStreamTransformer._redact_value` — the recursive walker. `BaseMessage` branch returns a fresh `.content`-redacted copy via `model_copy(update=...)` — never mutates in place — so tool-output payloads that wrap a `ToolMessage` and message lists in state snapshots flow through cleanly. - The new `transformers` attribute on `PIIMiddleware`: this is what makes `create_agent` pick the factory up. Multiple `PIIMiddleware` instances each register one transformer; ordering is preserved within the `before_builtins` lane. ## Compatibility Bumps `langgraph` to `>=1.2.1` for the `before_builtins` opt-in on `StreamTransformer`. |
||
|
|
06e65072af |
chore(model-profiles): refresh model profile data (#37626)
Automated refresh of model profile data for all in-monorepo partner integrations via `langchain-profiles refresh`. 🤖 Generated by the `refresh_model_profiles` workflow. Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com> |
||
|
|
a1e2daf098 | release(openai): 1.2.2 (#37617) langchain-openai==1.2.2 |