Commit Graph
195 Commits
Author SHA1 Message Date
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>William Fu-Hinthorn
82f9c09b95 chore(deps-dev): bump ruff from 0.14.7 to 0.14.11 in /libs/sdk-py (#6673)
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.7 to 0.14.11.
<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.14.11</h2>
<h2>Release Notes</h2>
<p>Released on 2026-01-08.</p>
<h3>Preview features</h3>
<ul>
<li>Consolidate diagnostics for matched disable/enable suppression
comments (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22099">#22099</a>)</li>
<li>Report diagnostics for invalid/unmatched range suppression comments
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/21908">#21908</a>)</li>
<li>[<code>airflow</code>] Passing positional argument into
<code>airflow.lineage.hook.HookLineageCollector.create_asset</code> is
not allowed (<code>AIR303</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22046">#22046</a>)</li>
<li>[<code>refurb</code>] Mark <code>FURB192</code> fix as always unsafe
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/22210">#22210</a>)</li>
<li>[<code>ruff</code>] Add <code>non-empty-init-module</code>
(<code>RUF067</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22143">#22143</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Fix GitHub format for multi-line diagnostics (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22108">#22108</a>)</li>
<li>[<code>flake8-unused-arguments</code>] Mark <code>**kwargs</code> in
<code>TypeVar</code> as used (<code>ARG001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22214">#22214</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>Add <code>help:</code> subdiagnostics for several Ruff rules that
can sometimes appear to disagree with <code>ty</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22331">#22331</a>)</li>
<li>[<code>pylint</code>] Demote <code>PLW1510</code> fix to
display-only (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22318">#22318</a>)</li>
<li>[<code>pylint</code>] Ignore identical members
(<code>PLR1714</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22220">#22220</a>)</li>
<li>[<code>pylint</code>] Improve diagnostic range for
<code>PLC0206</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22312">#22312</a>)</li>
<li>[<code>ruff</code>] Improve fix title for <code>RUF102</code>
invalid rule code (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22100">#22100</a>)</li>
<li>[<code>flake8-simplify</code>]: Avoid unnecessary builtins import
for <code>SIM105</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22358">#22358</a>)</li>
</ul>
<h3>Configuration</h3>
<ul>
<li>Allow Python 3.15 as valid <code>target-version</code> value in
preview (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22419">#22419</a>)</li>
<li>Check <code>required-version</code> before parsing rules (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22410">#22410</a>)</li>
<li>Include configured <code>src</code> directories when resolving
graphs (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22451">#22451</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Update <code>T201</code> suggestion to not use root logger to
satisfy <code>LOG015</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22059">#22059</a>)</li>
<li>Fix <code>iter</code> example in unsafe fixes doc (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22118">#22118</a>)</li>
<li>[<code>flake8_print</code>] better suggestion for
<code>basicConfig</code> in <code>T201</code> docs (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22101">#22101</a>)</li>
<li>[<code>pylint</code>] Restore the fix safety docs for
<code>PLW0133</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22211">#22211</a>)</li>
<li>Fix Jupyter notebook discovery info for editors (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22447">#22447</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a
href="https://github.com/charliermarsh"><code>@​charliermarsh</code></a></li>
<li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li>
<li><a
href="https://github.com/cenviity"><code>@​cenviity</code></a></li>
<li><a href="https://github.com/njhearp"><code>@​njhearp</code></a></li>
<li><a
href="https://github.com/cbachhuber"><code>@​cbachhuber</code></a></li>
<li><a
href="https://github.com/jelle-openai"><code>@​jelle-openai</code></a></li>
<li><a
href="https://github.com/AlexWaygood"><code>@​AlexWaygood</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.14.11</h2>
<p>Released on 2026-01-08.</p>
<h3>Preview features</h3>
<ul>
<li>Consolidate diagnostics for matched disable/enable suppression
comments (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22099">#22099</a>)</li>
<li>Report diagnostics for invalid/unmatched range suppression comments
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/21908">#21908</a>)</li>
<li>[<code>airflow</code>] Passing positional argument into
<code>airflow.lineage.hook.HookLineageCollector.create_asset</code> is
not allowed (<code>AIR303</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22046">#22046</a>)</li>
<li>[<code>refurb</code>] Mark <code>FURB192</code> fix as always unsafe
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/22210">#22210</a>)</li>
<li>[<code>ruff</code>] Add <code>non-empty-init-module</code>
(<code>RUF067</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22143">#22143</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Fix GitHub format for multi-line diagnostics (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22108">#22108</a>)</li>
<li>[<code>flake8-unused-arguments</code>] Mark <code>**kwargs</code> in
<code>TypeVar</code> as used (<code>ARG001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22214">#22214</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>Add <code>help:</code> subdiagnostics for several Ruff rules that
can sometimes appear to disagree with <code>ty</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22331">#22331</a>)</li>
<li>[<code>pylint</code>] Demote <code>PLW1510</code> fix to
display-only (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22318">#22318</a>)</li>
<li>[<code>pylint</code>] Ignore identical members
(<code>PLR1714</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22220">#22220</a>)</li>
<li>[<code>pylint</code>] Improve diagnostic range for
<code>PLC0206</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22312">#22312</a>)</li>
<li>[<code>ruff</code>] Improve fix title for <code>RUF102</code>
invalid rule code (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22100">#22100</a>)</li>
<li>[<code>flake8-simplify</code>]: Avoid unnecessary builtins import
for <code>SIM105</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22358">#22358</a>)</li>
</ul>
<h3>Configuration</h3>
<ul>
<li>Allow Python 3.15 as valid <code>target-version</code> value in
preview (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22419">#22419</a>)</li>
<li>Check <code>required-version</code> before parsing rules (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22410">#22410</a>)</li>
<li>Include configured <code>src</code> directories when resolving
graphs (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22451">#22451</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Update <code>T201</code> suggestion to not use root logger to
satisfy <code>LOG015</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22059">#22059</a>)</li>
<li>Fix <code>iter</code> example in unsafe fixes doc (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22118">#22118</a>)</li>
<li>[<code>flake8_print</code>] better suggestion for
<code>basicConfig</code> in <code>T201</code> docs (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22101">#22101</a>)</li>
<li>[<code>pylint</code>] Restore the fix safety docs for
<code>PLW0133</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22211">#22211</a>)</li>
<li>Fix Jupyter notebook discovery info for editors (<a
href="https://redirect.github.com/astral-sh/ruff/pull/22447">#22447</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a
href="https://github.com/charliermarsh"><code>@​charliermarsh</code></a></li>
<li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li>
<li><a
href="https://github.com/cenviity"><code>@​cenviity</code></a></li>
<li><a href="https://github.com/njhearp"><code>@​njhearp</code></a></li>
<li><a
href="https://github.com/cbachhuber"><code>@​cbachhuber</code></a></li>
<li><a
href="https://github.com/jelle-openai"><code>@​jelle-openai</code></a></li>
<li><a
href="https://github.com/AlexWaygood"><code>@​AlexWaygood</code></a></li>
<li><a
href="https://github.com/ValdonVitija"><code>@​ValdonVitija</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/astral-sh/ruff/commit/c920cf8cdb247a9fd8e15a4c9d2efa838f7a78a3"><code>c920cf8</code></a>
Bump 0.14.11 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/22462">#22462</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/bb757b5a79888f28264f629b5667a0514071f7d6"><code>bb757b5</code></a>
[ty] Don't show diagnostics for excluded files (<a
href="https://redirect.github.com/astral-sh/ruff/issues/22455">#22455</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/1f49e8ef518b75207e155595aba57acd48205078"><code>1f49e8e</code></a>
Include configured <code>src</code> directories when resolving graphs
(<a
href="https://redirect.github.com/astral-sh/ruff/issues/22451">#22451</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/701f5134ab7c1a860145dccc8abb3716a3f89fe7"><code>701f513</code></a>
[ty] Only consider fully static pivots when deriving transitive
constraints (...</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/eea9ad83528a7f492662f6427cdbb6fc2f655bb5"><code>eea9ad8</code></a>
Pin maturin version (<a
href="https://redirect.github.com/astral-sh/ruff/issues/22454">#22454</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/eeac2bd3eed2f4b8f4a71e0c945721481b25efc0"><code>eeac2bd</code></a>
[ty] Optimize union building for unions with many enum-literal members
(<a
href="https://redirect.github.com/astral-sh/ruff/issues/22363">#22363</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/7319c37f4eb063e9590e1f09c8e92d7dabc63403"><code>7319c37</code></a>
docs: fix jupyter notebook discovery info for editors (<a
href="https://redirect.github.com/astral-sh/ruff/issues/22447">#22447</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/805503c19a6b74c5803e10123077997e29a0da37"><code>805503c</code></a>
[<code>ruff</code>] Improve fix title for <code>RUF102</code> invalid
rule code (<a
href="https://redirect.github.com/astral-sh/ruff/issues/22100">#22100</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/68a2f6c57d70052d0805b46b0e3a2538598b856f"><code>68a2f6c</code></a>
[ty] Fix <code>super()</code> with TypeVar-annotated <code>self</code>
and <code>cls</code> parameter (<a
href="https://redirect.github.com/astral-sh/ruff/issues/22208">#22208</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/abaa735e1d027cf458a2ab83d8a422d74111580c"><code>abaa735</code></a>
[ty] Improve <code>UnionBuilder</code> performance by changing
<code>Type::is_subtype_of</code> cal...</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.14.7...0.14.11">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ruff&package-manager=pip&previous-version=0.14.7&new-version=0.14.11)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com>
2026-01-31 00:14:16 -08:00
193e128c20 chore: Omit lock when using connection pool (#6734)
Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
2026-01-31 00:30:34 +00:00
Mason DaughertyandGitHub 2dd39432a3 docs: enhance Runtime and ToolRuntime class descriptions for clarity (#6689) 2026-01-26 13:22:54 -08:00
Sydney RunkleandGitHub 7b9ff6129b release: langgraph and prebuilt 1.0.7 (#6712) 2026-01-22 11:28:22 -05:00
Sydney RunkleandGitHub c1b3598ca8 feat: support dynamic tool calling via tool override in wrap_model_call (#6711)
Allow overriding `tool` impl in `wrap_tool_call` in order to support
dynamically registered tools via middleware
2026-01-22 15:53:43 +00:00
William FHandGitHub 30355a7a5d fix: aiosqlite's breaking change (#6699)
`aiosqlite` changed it's Connection type to no longer subclass
`threading.Thread`. This removed the is_alive method, which is called
proactively in setup().

This PR handles this in a backwards compat way.
2026-01-18 16:35:50 -08:00
b0c6126f2a chore(deps): upgrade dependencies with uv lock --upgrade (#6671)
This PR updates the dependencies in all Python packages using `uv lock
--upgrade`.

This is an automated PR created by the UV Lock Upgrade workflow.

Co-authored-by: sydney-runkle <54324534+sydney-runkle@users.noreply.github.com>
2026-01-18 16:19:35 -08:00
Mason DaughertyandGitHub 089cdd0ffb chore: update twitter URLs (#6683) 2026-01-13 09:33:56 -05:00
Sydney RunkleandGitHub f91d79d0c8 fix: flip default on base cache (#6677)
rebasing https://github.com/langchain-ai/langgraph/pull/6562 w/ current
main
2026-01-12 15:26:37 -05:00
cb2faa7dda fix(prebuilt): support generic type arguments for ToolRuntime injection (#6509)
**Description:**
This PR fixes an issue where injection types (like `ToolRuntime`) were
not recognized by `ToolNode` when used with generic type arguments
(e.g., `ToolRuntime[MyContext]`).

Previously, the `_is_injection` check relied solely on `isinstance` and
`issubclass`, which fail for `typing._GenericAlias` objects. This update
adds a check using `typing.get_origin()` to correctly identify the base
class of generic types, ensuring the runtime is injected correctly even
when type hints are present.

**Issue:** Fixes #6465

**Dependencies:** None

**Twitter handle:** @SidharthRajmoh2

---------

Co-authored-by: Sydney Runkle <54324534+sydney-runkle@users.noreply.github.com>
2026-01-12 18:43:45 +00:00
Mason DaughertyandGitHub 7045a23148 fix: add state attribute to ToolCallRequest overrides (#6668)
Following https://github.com/langchain-ai/langchain/pull/34692
2026-01-09 21:26:39 -05:00
Mason DaughertyandGitHub 728db10b1f fix: suppress unintended deprecation warning (#6669)
1. Any import `from langgraph.prebuilt import X` (even `ToolNode`,
`ToolRuntime`, etc.)
2. -> Loads `langgraph/prebuilt/__init__.py`
3. -> Line 3 imports `create_react_agent` from `chat_agent_executor.py`
4. -> `chat_agent_executor.py` loads completely
5. -> Line 111 evaluates: `StateSchema = TypeVar("StateSchema",
bound=AgentState | AgentStatePydantic)`
6. -> Accessing `AgentStatePydantic` triggers its `@deprecated`
decorator -> warning
2026-01-09 21:25:20 -05:00
Mason DaughertyandGitHub 8ccead9560 docs: x-refs and explainer in tool node docs (#6653) 2026-01-05 20:17:38 +00:00
Mason DaughertyandGitHub 3a9749a0ed docs: ToolNode nit (#6652)
match the other bullets
2026-01-05 14:41:45 -05:00
Imvikram99andGitHub 87cb509528 feat(checkpoint): Validate checkpointer type at compile time (#6586)
Description: Catch invalid checkpointer objects early by validating any
checkpointer argument before compilation/execution, raising a clear
TypeError that instructs users to pass a proper BaseCheckpointSaver
(e.g., AsyncPostgresSaver) instead of stores like AsyncPostgresStore.
Includes shared validation logic and a regression test so we don’t see
AttributeError: 'AsyncPostgresStore' object has no attribute
'get_next_version' again.

Issue: Fixes #6585

Dependencies: None

Twitter handle: none
2025-12-15 07:22:47 +00:00
Josh RogersandGitHub 84023451a2 release(langgraph): bump to 1.0.5 (#6582)
- **Description:** Bumping to 1.0.5 for compatibility with the latest
changes to the python langgraph-sdk.
  - **Issue:** N/A
  - **Dependencies:** N/A
  - **Twitter handle:** N/A
2025-12-12 17:56:30 -05:00
William FHandGitHub 4d01e69b82 release(checkpoint-postgres): 3.0.1 (#6568) 2025-12-09 23:05:49 +00:00
Eugene YurtsevandGitHub b70d5aac0e release(checkpoint-sqlite): 3.0.1 (#6566)
Release 3.0.1
2025-12-09 17:00:00 -05:00
94698c8a34 feat: custom encryption at rest (#6482)
**Description:** 
This PR adds the Python SDK types necessary for langgraph platform users
to inject their own custom encryption-at-rest functions. See [docs
PR](https://github.com/langchain-ai/docs/pull/1715) for more details.

note: this PR adds a starlette dev dependency so that custom encryption
can access BaseUser information.

**Issue:**
required for LSD-172 

**Dependencies:**
- [depended upon by associated langgraph-api
changes](https://github.com/langchain-ai/langgraph-api/pull/1773)(this
PR must merge before that one)
- [docs PR](https://github.com/langchain-ai/docs/pull/1715)

**TODO:**
- [x] move docs to docs repo
- [x] bump package versions before merge

---------

Signed-off-by: Connor Braa <cwlbraa@langchain.dev>
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-06 00:10:17 +00:00
William FHandGitHub 024468c5dd chore: Bump lockfile (#6537) 2025-12-05 11:16:19 -08:00
William FHandGitHub 55ed7d4b49 feat: Include pagination in assistants search response (#6526) 2025-12-01 20:18:26 -08:00
William FHandGitHub b945b1f21e release(langgraph): 1.0.4 (#6502)
This patch release includes a couple of small fixes and improvements,
such as:
- Include interrupt information in the values stream mode (no longer
rely solely on the updates stream mode):
https://github.com/langchain-ai/langgraph/pull/6475
- Omit thread_id from configurable to allow using context for stateful
runs via RemoteGraph:
https://github.com/langchain-ai/langgraph/pull/6497
2025-11-25 20:27:49 +00:00
William FHandGitHub ed07d4a5d4 chore(sdk-py): Add more type checking. (#6479) 2025-11-20 17:40:23 -08:00
Caspar BroekhuizenandGitHub 2284a54b64 fix: interrupt stream mode values (#6475)
This PR improves the consistency of interrupt streaming. 

- when streaming with stream_mode values, the stream chunk now contains
the entire state alongside the interrupt:

```python
class State(TypedDict):
    robot_input: str
# at this point in time robot_input is already set to  "beep boop i am a robot"
app.stream(..., stream_mode="values")
# before
{"__interrupt__": (Interrupt(value="interrupt",))}}
# after
{"robot_input": "beep boop i am a robot", "__interrupt__": (Interrupt(value="interrupt"))}
```

- when streaming with stream_mode=["values", "updates"], interrupts are
surfaced in both an update stream chunk and the value stream chunk, when
previously we keep interrupt in values only if we request values mode
only

```python
class State(TypedDict):
    robot_input: str
# at this point in time robot_input is already set to  "beep boop i am a robot"
app.stream(..., stream_mode=["values", "updates"])
# before (interrupt would only emit on update chunk, there would be no values chunk)
("updates", {"__interrupt__": (Interrupt(value="interrupt",))}})
# after
("updates", {"__interrupt__": (Interrupt(value="interrupt",))}})
("values", {"robot_input": "beep boop i am a robot", "__interrupt__": (Interrupt(value="interrupt"))})
```

For housekeeping: this PR improves on this revert:
https://github.com/langchain-ai/langgraph/pull/6141
2025-11-20 14:23:09 -08:00
Sydney RunkleandGitHub f8006b2fee release: langgraph-prebuilt 1.0.5 (#6473) 2025-11-20 11:45:19 -05:00
Sydney RunkleandGitHub 2164b7daa3 fix: refactor injection logic to respect function signatures (#6468)
## overview

The main purpose of this is to respect tool signatures that request
injected args (like `ToolRuntime`) even when the explicitly specified
`args_schema` does not.

Ex in the following example, we should still inject `runtime` despite
its absence in `ArgsSchema`

```py
class ArgsSchema(BaseModel):
    some_arg: int = Field(...)

@tool(args_schema=ArgsSchema)
def my_tool(some_arg: int, runtime: ToolRuntime): ...
```

This is accompanied by
https://github.com/langchain-ai/langchain/pull/34051 which has tests
that pass w/ this change. This tests injection w/ `create_agent` (more
end to end than tests added in
https://github.com/langchain-ai/langchain/pull/33999.

This unblocks the injection of `ToolRuntime` into MCP tools which is
exciting bc that exposes tool call id and state, which we previously
were unable to do.

## other benefits

* Cleaner code structure w/ more helpful docs about injected args.
* Nice perf boost, we're no longer inspecting the annotations of a
tool's schema 3 different times to detect store, state, and runtime
injections.

## additional notes

1. I could see a world where we want more of this logic to reside on the
tools themselves, but tools don't now about LG specific injection types
(like `ToolRuntime`, hence having this logic here for now).
2. We could separately add validation for the case where something is
specified in `args_schema` and not in the function signature (probably
at the tool level though).
2025-11-20 11:37:54 -05:00
Sydney RunkleandGitHub 6d20a0b9c7 fix: deprecate setattr on ToolCallRequest (#6462)
* one alternative considered was setting `frozen=True` on the dataclass,
but this is breaking, so a deprecation is a nicer approach
2025-11-19 13:12:11 -05:00
Sydney RunkleandGitHub 02300de24c fix: dep warnings in prebuilt (#6443) 2025-11-13 13:59:34 -05:00
Sydney RunkleandGitHub ac16bdb795 release: prebuilt 1.0.3 (#6441) 2025-11-13 13:38:24 -05:00
Caspar BroekhuizenandGitHub 0d4ac836e3 chore: langgraph patch release (#6429) 2025-11-10 09:37:35 -08:00
Mason DaughertyandGitHub 4ec92f9fb1 chore: add pyproject.toml links (#6364) 2025-11-07 07:43:51 -05:00
Josh RogersandGitHub 9fd3dfc542 chore(checkpoint-postgres): bump to 3.0.1 (#6402)
**Description:** Bumping the checkpoint-postgres package to version
3.0.1 to release an update to migrations
(https://github.com/langchain-ai/langgraph/pull/6400).
**Issue:** N/A
**Dependencies:** N/A
**Twitter handle:** N/A
2025-11-06 11:14:02 -05:00
William FHandGitHub 092c9ecde6 chore: update ormsgpack minbound and add OPT_REPLACE_SURROGATES (#6395)
This lets the default `msgpack` serialization mode handle more cases
where user data contains invalid unicode.
2025-11-04 13:51:34 -08:00
Mason DaughertyandGitHub a6dde39be7 chore: style fixes for refs (#6365) 2025-10-30 17:59:40 -04:00
Sydney RunkleandGitHub 4ac1c628ee chore: port tool node improvements back to langgraph (#6321)
namespace decisions

```
langgraph.prebuilt
  ├── ToolRuntime  # new
# all of the other stuff that was already there

langgraph.prebuilt.tool_node
  ├── ToolNode
  ├── ToolCallRequest  # new
  ├── ToolRuntime  # new
  ├── InjectedState
  ├── InjectedStore
  ├── ToolCallWrapper
  ├── AsyncToolCallWrapper
  ├── tools_condition
```
```
langchain.tools
  ├── ToolRuntime  # now from langgraph.prebuilt
  ├── InjectedState  # now from langgraph.prebuilt
  ├── InjectedStore  # now from langgraph.prebuilt
  ├── ToolException
  ├── tool
  ├── BaseTool
  ├── InjectedToolArg
  ├── InjectedToolCallId
```
2025-10-29 09:58:06 -07:00
Sydney RunkleandGitHub 41f8e61589 chore: bump core dep for prebuilt (#6323)
bumping core dependency for `langgraph-prebuilt` to `>1.0.0` so that we
can take advantage of internal utils that allow `ToolRuntime` injection.

We were previously bumping the version in lock step with prebuilt (prev
version was 0.3.67), so this pattern is in line with that.

Also updating snapshots accordingly:
* New mermaid syntax for a few graphs
* Removal of `examples` from `AIMessage`
2025-10-29 09:51:51 -07:00
William FHandGitHub fca3e4513c release: Checkpointers 3.0 (#6313)
In this PR:

- Bump `langgraph-checkpoint` to 3.0
- Bump `langgraph-checkpoint-sqlite` to 3.0; Update
`langgraph-checkpoint` deps to >=3,<4
- Bump `langgraph-checkpoint-postgres` to 3.0; Update
`langgraph-checkpoint` max to <4 (keep prior min since the deprecated
functionality wasn't explicitly used)
- Bump `langgraph` to 1.0.1; update `langgraph-checkpoint` max bound to
4
- Bump `prebuilt` to 1.0.1; update `langgraph-checkpoint` max bound to 4
2025-10-20 11:31:55 -07:00
Sydney RunkleandGitHub c4144bb48f release: langgraph + langgraph-prebuilt v1.0.0 (#6300) 2025-10-17 19:15:29 +00:00
Sydney RunkleandGitHub 2c3e380a35 feat: adding cursory Python 3.14 support (#6298)
* catching error thrown by asyncio
* using 2nd check for annotations given Pydantic 2.12 changes
* skipping tests for remote graph bc langgraph-api is dependent on
`jsonschema-rs`
* skipping tests w/ pydantic v1 models

```bash
hint: This usually indicates a problem with the package or the build environment.
  help: `jsonschema-rs` (v0.29.1) was included because `langgraph:dev` (v1.0.0rc1) depends on `langgraph-cli[inmem]` which
        depends on `langgraph-api` (v0.4.29) which depends on `jsonschema-rs`
```

not yet testing for free threaded python, that'll be much more involved!

ended up separating lint / testing deps during this process bc I was
getting a ton of not required deps while testing that were complicating
things :/
2025-10-17 08:26:52 -04:00
Mason DaughertyandGitHub 7e666b58cd style: fixes for ref docs (#6297) 2025-10-16 20:58:16 -04:00
Sydney RunkleandGitHub 6527df688c chore: release rcs for prebuilt + langgraph (#6296) 2025-10-17 00:35:56 +00:00
Sydney RunkleandGitHub aec841bd2a chore(prebuilt): un-deprecate tool node for now (#6295) 2025-10-16 20:27:24 -04:00
Sydney RunkleandGitHub 2d3121a17c chore: drop Python 3.9 (and syntax) (#6289)
* `strict=False` is the default, pyupgrade to min version 3.10 adds this
to be explicit w/ behavior
2025-10-16 20:17:46 -04:00
d9e3d83894 docs: style linting (#6260)
also fixes some links

---------

Co-authored-by: Sydney Runkle <54324534+sydney-runkle@users.noreply.github.com>
Co-authored-by: ccurme <chester.curme@gmail.com>
Co-authored-by: Sydney Runkle <sydneymarierunkle@gmail.com>
Co-authored-by: William FH <13333726+hinthornw@users.noreply.github.com>
2025-10-16 11:25:50 +00:00
6bf9a7a4bc docs: relocate init args to __init__ (#6259)
Griffe expects parameter documentation to be in the method where
parameters are defined, not in the class docstring.

Class docstrings describe what the class does, while `__init__`
docstrings describe how to instantiate it with specific parameters.

---------

Co-authored-by: Sydney Runkle <54324534+sydney-runkle@users.noreply.github.com>
Co-authored-by: ccurme <chester.curme@gmail.com>
Co-authored-by: Sydney Runkle <sydneymarierunkle@gmail.com>
Co-authored-by: William FH <13333726+hinthornw@users.noreply.github.com>
2025-10-16 07:11:42 -04:00
bce1dcfcd2 release(langgraph): v1 working branch (#6093)
Diff viewer for langgraph v1 alpha releases

---------

Co-authored-by: ccurme <chester.curme@gmail.com>
Co-authored-by: William FH <13333726+hinthornw@users.noreply.github.com>
Co-authored-by: Mason Daugherty <github@mdrxy.com>
Co-authored-by: Mason Daugherty <mason@langchain.dev>
2025-10-16 07:11:22 -04:00
Caspar BroekhuizenandGitHub c2bc6ab8e9 chore(langgraph): bump langgraph version (#6257)
- Bump langgraph version to 0.6.10
2025-10-09 09:39:42 -07:00
Caspar BroekhuizenandGitHub 7f78a011fd chore(langgraph): bump version (#6245)
- Bump langgraph version from 0.6.8 to 0.6.9
2025-10-07 13:45:25 -07:00
Caspar BroekhuizenandGitHub 7d166bfb9f chore(checkpoint): bump patch version (#6244)
- Bump `langgraph-checkpoint` to 2.1.2
- Bump `langgraph-checkpoint-postgres` to 2.0.25 and raise
`langgraph-checkpoint` dep lower bound to 2.1.2
2025-10-07 10:41:24 -07:00
Isaac FranciscoandGitHub 9d1bb9d86c chore(checkpoint-postgres): bump version (#6222) 2025-09-30 07:41:59 -07:00