Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-langsmith for 
openSUSE:Factory checked in at 2026-09-18 22:05:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-langsmith (Old)
 and      /work/SRC/openSUSE:Factory/.python-langsmith.new.383539 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-langsmith"

Fri Sep 18 22:05:13 2026 rev:27 rq:1378668 version:0.12.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-langsmith/python-langsmith.changes        
2026-09-17 15:18:29.919645001 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-langsmith.new.383539/python-langsmith.changes
    2026-09-18 22:05:47.466713969 +0200
@@ -1,0 +2,7 @@
+Thu Sep 17 16:27:52 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to 0.12.6:
+  * LiveKit traces keep system instructions alongside history -
+    gen_ai.input.messages was shadowing the merged prompt at ingest
+
+-------------------------------------------------------------------

Old:
----
  langsmith-0.12.5.tar.gz

New:
----
  langsmith-0.12.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-langsmith.spec ++++++
--- /var/tmp/diff_new_pack.xn2y0k/_old  2026-09-18 22:05:48.690765268 +0200
+++ /var/tmp/diff_new_pack.xn2y0k/_new  2026-09-18 22:05:48.691765310 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python-langsmith
-Version:        0.12.5
+Version:        0.12.6
 Release:        0
 Summary:        Client library for the LangSmith LLM tracing and evaluation 
platform
 License:        MIT

++++++ langsmith-0.12.5.tar.gz -> langsmith-0.12.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/langsmith-0.12.5/.bumpversion.cfg 
new/langsmith-0.12.6/.bumpversion.cfg
--- old/langsmith-0.12.5/.bumpversion.cfg       2020-02-02 01:00:00.000000000 
+0100
+++ new/langsmith-0.12.6/.bumpversion.cfg       2020-02-02 01:00:00.000000000 
+0100
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 0.12.5
+current_version = 0.12.6
 parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)
 serialize = {major}.{minor}.{patch}
 search = {current_version}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/langsmith-0.12.5/PKG-INFO 
new/langsmith-0.12.6/PKG-INFO
--- old/langsmith-0.12.5/PKG-INFO       2020-02-02 01:00:00.000000000 +0100
+++ new/langsmith-0.12.6/PKG-INFO       2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.5
 Name: langsmith
-Version: 0.12.5
+Version: 0.12.6
 Summary: Client library to connect to the LangSmith Observability and 
Evaluation Platform.
 Project-URL: Homepage, https://smith.langchain.com/
 Project-URL: Documentation, https://docs.smith.langchain.com/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/langsmith-0.12.5/langsmith/__init__.py 
new/langsmith-0.12.6/langsmith/__init__.py
--- old/langsmith-0.12.5/langsmith/__init__.py  2020-02-02 01:00:00.000000000 
+0100
+++ new/langsmith-0.12.6/langsmith/__init__.py  2020-02-02 01:00:00.000000000 
+0100
@@ -50,7 +50,7 @@
 
 # Avoid calling into importlib on every call to __version__
 
-__version__ = "0.12.5"
+__version__ = "0.12.6"
 version = __version__  # for backwards compatibility
 
 # Metadata key to hide a traced run from LangSmith's Messages View.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/langsmith-0.12.5/langsmith/integrations/livekit/processor.py 
new/langsmith-0.12.6/langsmith/integrations/livekit/processor.py
--- old/langsmith-0.12.5/langsmith/integrations/livekit/processor.py    
2020-02-02 01:00:00.000000000 +0100
+++ new/langsmith-0.12.6/langsmith/integrations/livekit/processor.py    
2020-02-02 01:00:00.000000000 +0100
@@ -586,8 +586,8 @@
     def _handle_llm_request(self, tspan: TranslatedSpan) -> None:
         """Read GenAI message attributes (1.8+) or legacy message events.
 
-        The translated events are then stripped so the ingester doesn't render
-        them twice.
+        The translated attributes and events are then stripped so the ingester
+        doesn't prefer the source representation or render messages twice.
         """
         tspan.set_kind("llm")
 
@@ -615,6 +615,12 @@
         if completion is None:
             completion = legacy_completion or None
         tspan.set_messages(prompt=prompt, completion=completion)
+        for attribute in (
+            "gen_ai.input.messages",
+            "gen_ai.output.messages",
+            "gen_ai.system_instructions",
+        ):
+            tspan.attributes.pop(attribute, None)
 
         provider = extract_provider_from_lk_metrics(
             tspan.attributes.get("lk.llm_metrics")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/langsmith-0.12.5/tests/unit_tests/wrappers/test_livekit.py 
new/langsmith-0.12.6/tests/unit_tests/wrappers/test_livekit.py
--- old/langsmith-0.12.5/tests/unit_tests/wrappers/test_livekit.py      
2020-02-02 01:00:00.000000000 +0100
+++ new/langsmith-0.12.6/tests/unit_tests/wrappers/test_livekit.py      
2020-02-02 01:00:00.000000000 +0100
@@ -1794,6 +1794,12 @@
             "output_tokens": 5,
             "total_tokens": 25,
         }
+        assert not {
+            "gen_ai.input.messages",
+            "gen_ai.output.messages",
+            "gen_ai.system_instructions",
+        }.intersection(span._attributes)
+        # Translating the exported copy must not mutate the source span 
attributes.
         assert attrs["gen_ai.input.messages"] == json.dumps(inputs)
 
     @pytest.mark.parametrize(
@@ -1859,6 +1865,8 @@
             
json.loads(span._attributes["gen_ai.completion"])["messages"][0]["content"]
             == "New answer"
         )
+        assert "gen_ai.input.messages" not in span._attributes
+        assert "gen_ai.output.messages" not in span._attributes
 
     def 
test_new_fields_prevent_duplicates_and_empty_arrays_are_authoritative(self):
         diagnostic = self._event("diagnostic", detail="kept")
@@ -1881,6 +1889,11 @@
             {"role": "system", "content": "New instructions"}
         ]
         assert json.loads(span._attributes["gen_ai.completion"])["messages"] 
== []
+        assert not {
+            "gen_ai.input.messages",
+            "gen_ai.output.messages",
+            "gen_ai.system_instructions",
+        }.intersection(span._attributes)
         assert list(span.events) == [diagnostic]
 
     def test_instructions_only_and_legacy_output(self):

Reply via email to