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" },

Reply via email to