Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-langchain-core for
openSUSE:Factory checked in at 2026-10-01 16:44:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-langchain-core (Old)
and /work/SRC/openSUSE:Factory/.python-langchain-core.new.1253 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-langchain-core"
Thu Oct 1 16:44:43 2026 rev:17 rq:1381680 version:1.6.6
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-langchain-core/python-langchain-core.changes
2026-09-28 10:40:19.215536720 +0200
+++
/work/SRC/openSUSE:Factory/.python-langchain-core.new.1253/python-langchain-core.changes
2026-10-01 16:45:33.106285415 +0200
@@ -1,0 +2,10 @@
+Wed Sep 30 08:27:39 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to version 1.6.6:
+ * Claude Sonnet 5.5 compatibility: server tool calls with absent
+ or malformed args no longer block message serialization, and
+ the Anthropic block translator carries toolset_name through
+ tool call blocks and chunks
+ * Fix docstring examples that don't run as copied
+
+-------------------------------------------------------------------
Old:
----
langchain_core-1.6.5.tar.gz
New:
----
langchain_core-1.6.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-langchain-core.spec ++++++
--- /var/tmp/diff_new_pack.o7NUwH/_old 2026-10-01 16:45:33.757312706 +0200
+++ /var/tmp/diff_new_pack.o7NUwH/_new 2026-10-01 16:45:33.759312790 +0200
@@ -17,7 +17,7 @@
Name: python-langchain-core
-Version: 1.6.5
+Version: 1.6.6
Release: 0
Summary: Building applications with LLMs through composability
License: MIT
++++++ langchain_core-1.6.5.tar.gz -> langchain_core-1.6.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langchain_core-1.6.5/PKG-INFO
new/langchain_core-1.6.6/PKG-INFO
--- old/langchain_core-1.6.5/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
+++ new/langchain_core-1.6.6/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.5
Name: langchain-core
-Version: 1.6.5
+Version: 1.6.6
Summary: Building applications with LLMs through composability
Project-URL: Homepage, https://docs.langchain.com/
Project-URL: Documentation,
https://reference.langchain.com/python/langchain_core/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langchain_core-1.6.5/langchain_core/messages/ai.py
new/langchain_core-1.6.6/langchain_core/messages/ai.py
--- old/langchain_core-1.6.5/langchain_core/messages/ai.py 2020-02-02
01:00:00.000000000 +0100
+++ new/langchain_core-1.6.6/langchain_core/messages/ai.py 2020-02-02
01:00:00.000000000 +0100
@@ -617,8 +617,7 @@
isinstance(block, dict)
and block.get("type")
in {"server_tool_call", "server_tool_call_chunk"}
- and (args_str := block.get("args"))
- and isinstance(args_str, str)
+ and isinstance(args_str := block.get("args") or "{}", str)
):
try:
args = json.loads(args_str)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/langchain_core-1.6.5/langchain_core/messages/block_translators/anthropic.py
new/langchain_core-1.6.6/langchain_core/messages/block_translators/anthropic.py
---
old/langchain_core-1.6.5/langchain_core/messages/block_translators/anthropic.py
2020-02-02 01:00:00.000000000 +0100
+++
new/langchain_core-1.6.6/langchain_core/messages/block_translators/anthropic.py
2020-02-02 01:00:00.000000000 +0100
@@ -286,8 +286,9 @@
args=chunk.get("args"),
type="tool_call_chunk",
)
- if "caller" in block:
- tool_call_chunk["extras"] = {"caller": block["caller"]}
+ for key in ("caller", "toolset_name"):
+ if key in block:
+ tool_call_chunk.setdefault("extras", {})[key] =
block[key]
index = chunk.get("index")
if index is not None:
@@ -322,10 +323,9 @@
}
if "index" in block:
tool_call_block["index"] = block["index"]
- if "caller" in block:
- if "extras" not in tool_call_block:
- tool_call_block["extras"] = {}
- tool_call_block["extras"]["caller"] = block["caller"]
+ for key in ("caller", "toolset_name"):
+ if key in block:
+ tool_call_block.setdefault("extras", {})[key] =
block[key]
yield tool_call_block
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/langchain_core-1.6.5/langchain_core/messages/utils.py
new/langchain_core-1.6.6/langchain_core/messages/utils.py
--- old/langchain_core-1.6.5/langchain_core/messages/utils.py 2020-02-02
01:00:00.000000000 +0100
+++ new/langchain_core-1.6.6/langchain_core/messages/utils.py 2020-02-02
01:00:00.000000000 +0100
@@ -1289,7 +1289,7 @@
messages,
max_tokens=45,
strategy="last",
- token_counter=ChatOpenAI(model="openai:gpt-5.5"),
+ token_counter=ChatOpenAI(model="gpt-5.5"),
# Most chat models expect that chat history starts with either:
# (1) a HumanMessage or
# (2) a SystemMessage followed by a HumanMessage
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/langchain_core-1.6.5/langchain_core/output_parsers/string.py
new/langchain_core-1.6.6/langchain_core/output_parsers/string.py
--- old/langchain_core-1.6.5/langchain_core/output_parsers/string.py
2020-02-02 01:00:00.000000000 +0100
+++ new/langchain_core-1.6.6/langchain_core/output_parsers/string.py
2020-02-02 01:00:00.000000000 +0100
@@ -19,7 +19,7 @@
from langchain_core.output_parsers import StrOutputParser
from langchain_openai import ChatOpenAI
- model = ChatOpenAI(model="openai:gpt-5.5")
+ model = ChatOpenAI(model="gpt-5.5")
parser = StrOutputParser()
# Get string output from a model
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/langchain_core-1.6.5/langchain_core/prompts/few_shot.py
new/langchain_core-1.6.6/langchain_core/prompts/few_shot.py
--- old/langchain_core-1.6.5/langchain_core/prompts/few_shot.py 2020-02-02
01:00:00.000000000 +0100
+++ new/langchain_core-1.6.6/langchain_core/prompts/few_shot.py 2020-02-02
01:00:00.000000000 +0100
@@ -369,9 +369,9 @@
print(final_prompt.format_messages(input="What's 3+3?")) # noqa: T201
# Use within an LLM
- from langchain_core.chat_models import ChatAnthropic
+ from langchain_anthropic import ChatAnthropic
- chain = final_prompt | ChatAnthropic(model="claude-3-haiku-20240307")
+ chain = final_prompt | ChatAnthropic(model="claude-sonnet-5")
chain.invoke({"input": "What's 3+3?"})
```
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langchain_core-1.6.5/langchain_core/rate_limiters.py
new/langchain_core-1.6.6/langchain_core/rate_limiters.py
--- old/langchain_core-1.6.5/langchain_core/rate_limiters.py 2020-02-02
01:00:00.000000000 +0100
+++ new/langchain_core-1.6.6/langchain_core/rate_limiters.py 2020-02-02
01:00:00.000000000 +0100
@@ -105,9 +105,7 @@
from langchain_anthropic import ChatAnthropic
- model = ChatAnthropic(
- model_name="claude-sonnet-4-5-20250929", rate_limiter=rate_limiter
- )
+ model = ChatAnthropic(model_name="claude-sonnet-5",
rate_limiter=rate_limiter)
for _ in range(5):
tic = time.time()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/langchain_core-1.6.5/langchain_core/runnables/fallbacks.py
new/langchain_core-1.6.6/langchain_core/runnables/fallbacks.py
--- old/langchain_core-1.6.5/langchain_core/runnables/fallbacks.py
2020-02-02 01:00:00.000000000 +0100
+++ new/langchain_core-1.6.6/langchain_core/runnables/fallbacks.py
2020-02-02 01:00:00.000000000 +0100
@@ -52,10 +52,10 @@
Example:
```python
- from langchain_core.chat_models.openai import ChatOpenAI
- from langchain_core.chat_models.anthropic import ChatAnthropic
+ from langchain_anthropic import ChatAnthropic
+ from langchain_openai import ChatOpenAI
- model = ChatAnthropic(model="claude-sonnet-4-6").with_fallbacks(
+ model = ChatAnthropic(model="claude-sonnet-5").with_fallbacks(
[ChatOpenAI(model="gpt-5.4-mini")]
)
# Will usually use ChatAnthropic, but fallback to ChatOpenAI
@@ -604,8 +604,8 @@
from langchain_openai import ChatOpenAI
from langchain_anthropic import ChatAnthropic
- gpt_55 = ChatOpenAI(model="openai:gpt-5.5")
- claude_3_sonnet = ChatAnthropic(model="claude-sonnet-4-5-20250929")
+ gpt_55 = ChatOpenAI(model="gpt-5.5")
+ claude_3_sonnet = ChatAnthropic(model="claude-sonnet-5")
model = gpt_55.with_fallbacks([claude_3_sonnet])
model.model_name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/langchain_core-1.6.5/langchain_core/runnables/history.py
new/langchain_core-1.6.6/langchain_core/runnables/history.py
--- old/langchain_core-1.6.5/langchain_core/runnables/history.py
2020-02-02 01:00:00.000000000 +0100
+++ new/langchain_core-1.6.6/langchain_core/runnables/history.py
2020-02-02 01:00:00.000000000 +0100
@@ -136,7 +136,7 @@
]
)
- chain = prompt | ChatAnthropic(model="claude-2")
+ chain = prompt | ChatAnthropic(model="claude-sonnet-5")
chain_with_history = RunnableWithMessageHistory(
chain,
@@ -189,7 +189,7 @@
]
)
- chain = prompt | ChatAnthropic(model="claude-2")
+ chain = prompt | ChatAnthropic(model="claude-sonnet-5")
with_message_history = RunnableWithMessageHistory(
chain,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/langchain_core-1.6.5/langchain_core/runnables/retry.py
new/langchain_core-1.6.6/langchain_core/runnables/retry.py
--- old/langchain_core-1.6.5/langchain_core/runnables/retry.py 2020-02-02
01:00:00.000000000 +0100
+++ new/langchain_core-1.6.6/langchain_core/runnables/retry.py 2020-02-02
01:00:00.000000000 +0100
@@ -96,7 +96,7 @@
Example:
```python
- from langchain_core.chat_models import ChatOpenAI
+ from langchain_openai import ChatOpenAI
from langchain_core.prompts import PromptTemplate
template = PromptTemplate.from_template("tell me a joke about
{topic}.")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langchain_core-1.6.5/langchain_core/version.py
new/langchain_core-1.6.6/langchain_core/version.py
--- old/langchain_core-1.6.5/langchain_core/version.py 2020-02-02
01:00:00.000000000 +0100
+++ new/langchain_core-1.6.6/langchain_core/version.py 2020-02-02
01:00:00.000000000 +0100
@@ -1,3 +1,3 @@
"""Version information for `langchain-core`."""
-VERSION = "1.6.5"
+VERSION = "1.6.6"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langchain_core-1.6.5/pyproject.toml
new/langchain_core-1.6.6/pyproject.toml
--- old/langchain_core-1.6.5/pyproject.toml 2020-02-02 01:00:00.000000000
+0100
+++ new/langchain_core-1.6.6/pyproject.toml 2020-02-02 01:00:00.000000000
+0100
@@ -21,7 +21,7 @@
"Topic :: Software Development :: Libraries :: Python Modules",
]
-version = "1.6.5"
+version = "1.6.6"
requires-python = ">=3.10.0,<4.0.0"
dependencies = [
"langsmith>=0.3.45,<1.0.0",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/langchain_core-1.6.5/tests/unit_tests/messages/block_translators/test_anthropic.py
new/langchain_core-1.6.6/tests/unit_tests/messages/block_translators/test_anthropic.py
---
old/langchain_core-1.6.5/tests/unit_tests/messages/block_translators/test_anthropic.py
2020-02-02 01:00:00.000000000 +0100
+++
new/langchain_core-1.6.6/tests/unit_tests/messages/block_translators/test_anthropic.py
2020-02-02 01:00:00.000000000 +0100
@@ -572,3 +572,34 @@
],
},
]
+
+
+def test_toolset_namespace_in_content_blocks() -> None:
+ block = {
+ "type": "tool_use",
+ "id": "call_1",
+ "name": "click",
+ "input": {},
+ "toolset_name": "computer",
+ }
+ metadata = {"model_provider": "anthropic"}
+ message = AIMessage([block], response_metadata=metadata)
+ content_block = message.content_blocks[0]
+ assert content_block["type"] == "tool_call"
+ assert content_block["extras"]["toolset_name"] == "computer"
+ chunk = AIMessageChunk(
+ content=[{**block, "index": 0}],
+ tool_call_chunks=[
+ {
+ "type": "tool_call_chunk",
+ "id": "call_1",
+ "name": "click",
+ "args": "{}",
+ "index": 0,
+ }
+ ],
+ response_metadata=metadata,
+ )
+ chunk_block = chunk.content_blocks[0]
+ assert chunk_block["type"] == "tool_call_chunk"
+ assert chunk_block["extras"]["toolset_name"] == "computer"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/langchain_core-1.6.5/tests/unit_tests/messages/test_ai.py
new/langchain_core-1.6.6/tests/unit_tests/messages/test_ai.py
--- old/langchain_core-1.6.5/tests/unit_tests/messages/test_ai.py
2020-02-02 01:00:00.000000000 +0100
+++ new/langchain_core-1.6.6/tests/unit_tests/messages/test_ai.py
2020-02-02 01:00:00.000000000 +0100
@@ -423,6 +423,18 @@
{"type": "server_tool_call", "name": "foo", "index": 0, "args": {"a":
1}}
]
+ # Server tool calls with no input stream no args
+ empty_args_chunk = AIMessageChunk(
+ content=[
+ {"type": "server_tool_call_chunk", "index": 0, "name": "foo",
"args": ""}
+ ]
+ ) + AIMessageChunk(
+ content=[], chunk_position="last",
response_metadata={"output_version": "v1"}
+ )
+ assert empty_args_chunk.content == [
+ {"type": "server_tool_call", "name": "foo", "index": 0, "args": {}}
+ ]
+
# Test non-standard + non-standard
chunk_1 = AIMessageChunk(
content=[
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langchain_core-1.6.5/uv.lock
new/langchain_core-1.6.6/uv.lock
--- old/langchain_core-1.6.5/uv.lock 2020-02-02 01:00:00.000000000 +0100
+++ new/langchain_core-1.6.6/uv.lock 2020-02-02 01:00:00.000000000 +0100
@@ -1073,7 +1073,7 @@
[[package]]
name = "langchain-core"
-version = "1.6.5"
+version = "1.6.6"
source = { editable = "." }
dependencies = [
{ name = "httpx" },