Fix: Use Openlit <1.36.6 to avoid bug with langgraph instrumentation (#457)

* Use openlit <1.36.6

Openlit >=1.36.6 has a bug with langgraph instrumentation.

Also add a test to seed-gen for when openlit is enabled

* Link to issue
This commit is contained in:
Ronald Eytchison
2026-01-27 16:28:41 -05:00
committed by GitHub
parent 42fb0c126d
commit a31b670a2e
9 changed files with 126 additions and 33 deletions
+2 -1
View File
@@ -19,7 +19,8 @@ dependencies = [
[project.optional-dependencies]
full = [
"protobuf>=5.0",
"openlit ~=1.36.0",
# openlit 1.36.6+ breaks langgraph ToolNode: https://github.com/openlit/openlit/issues/986
"openlit >=1.36.0,<1.36.6",
]
+4 -5
View File
@@ -216,7 +216,7 @@ requires-dist = [
{ name = "langchain-core", specifier = "~=0.3.81" },
{ name = "langchain-openai", specifier = "~=0.3.30" },
{ name = "langfuse", specifier = "~=2.59.2" },
{ name = "openlit", marker = "extra == 'full'", specifier = "~=1.36.0" },
{ name = "openlit", marker = "extra == 'full'", specifier = ">=1.36.0,<1.36.6" },
{ name = "protobuf", marker = "extra == 'full'", specifier = ">=5.0" },
{ name = "pydantic-settings", specifier = "~=2.7.1" },
{ name = "pymongo", specifier = "~=4.10.1" },
@@ -358,7 +358,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" },
{ url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" },
{ url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" },
{ url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" },
{ url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" },
{ url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" },
{ url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" },
@@ -745,7 +744,7 @@ wheels = [
[[package]]
name = "openlit"
version = "1.36.7"
version = "1.36.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anthropic" },
@@ -776,9 +775,9 @@ dependencies = [
{ name = "schedule" },
{ name = "xmltodict" },
]
sdist = { url = "https://files.pythonhosted.org/packages/0a/92/ddebfab7e8feb519f5a96c0bb5410bd57f336528300c37d051d9e10bb3ce/openlit-1.36.7.tar.gz", hash = "sha256:553f533daf37fd9612df4a19f1da84a1c00a737253ef7580dd63f8c6353d19ec", size = 281884, upload-time = "2026-01-27T07:35:25.812Z" }
sdist = { url = "https://files.pythonhosted.org/packages/ae/06/8253e93a13ae45ecd1d8db3be63f90db39c5c8995a7f4a1f58f53ca63431/openlit-1.36.3.tar.gz", hash = "sha256:31f3227bc4c9904dd399cc625aee70e073f3d905453f2e972ca2b9b6c0b99b8f", size = 260444, upload-time = "2025-12-12T10:27:01.327Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/5e/04/bfe4fa48ce1e88ae12e0abcf726f688e55861d7341d3b5b00d991dce3490/openlit-1.36.7-py3-none-any.whl", hash = "sha256:090f9c5545e8d9a57a25d572067beff1daf40eb4f485e2fbdd32020bcc07d0bd", size = 431693, upload-time = "2026-01-27T07:35:23.991Z" },
{ url = "https://files.pythonhosted.org/packages/83/f8/67f4d76aab540645a59182af65a24b7913a8bf3dcee3ef767a2efcdba1ea/openlit-1.36.3-py3-none-any.whl", hash = "sha256:bf6edcdf96da69f14b79d80aa2a9d05a7393de448e3d8d264e3ac4f63f5aadf3", size = 401640, upload-time = "2025-12-12T10:26:59.329Z" },
]
[[package]]
+4 -5
View File
@@ -216,7 +216,7 @@ requires-dist = [
{ name = "langchain-core", specifier = "~=0.3.81" },
{ name = "langchain-openai", specifier = "~=0.3.30" },
{ name = "langfuse", specifier = "~=2.59.2" },
{ name = "openlit", marker = "extra == 'full'", specifier = "~=1.36.0" },
{ name = "openlit", marker = "extra == 'full'", specifier = ">=1.36.0,<1.36.6" },
{ name = "protobuf", marker = "extra == 'full'", specifier = ">=5.0" },
{ name = "pydantic-settings", specifier = "~=2.7.1" },
{ name = "pymongo", specifier = "~=4.10.1" },
@@ -401,7 +401,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" },
{ url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" },
{ url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" },
{ url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" },
{ url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" },
{ url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" },
{ url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" },
@@ -802,7 +801,7 @@ wheels = [
[[package]]
name = "openlit"
version = "1.36.7"
version = "1.36.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anthropic" },
@@ -833,9 +832,9 @@ dependencies = [
{ name = "schedule" },
{ name = "xmltodict" },
]
sdist = { url = "https://files.pythonhosted.org/packages/0a/92/ddebfab7e8feb519f5a96c0bb5410bd57f336528300c37d051d9e10bb3ce/openlit-1.36.7.tar.gz", hash = "sha256:553f533daf37fd9612df4a19f1da84a1c00a737253ef7580dd63f8c6353d19ec", size = 281884, upload-time = "2026-01-27T07:35:25.812Z" }
sdist = { url = "https://files.pythonhosted.org/packages/ae/06/8253e93a13ae45ecd1d8db3be63f90db39c5c8995a7f4a1f58f53ca63431/openlit-1.36.3.tar.gz", hash = "sha256:31f3227bc4c9904dd399cc625aee70e073f3d905453f2e972ca2b9b6c0b99b8f", size = 260444, upload-time = "2025-12-12T10:27:01.327Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/5e/04/bfe4fa48ce1e88ae12e0abcf726f688e55861d7341d3b5b00d991dce3490/openlit-1.36.7-py3-none-any.whl", hash = "sha256:090f9c5545e8d9a57a25d572067beff1daf40eb4f485e2fbdd32020bcc07d0bd", size = 431693, upload-time = "2026-01-27T07:35:23.991Z" },
{ url = "https://files.pythonhosted.org/packages/83/f8/67f4d76aab540645a59182af65a24b7913a8bf3dcee3ef767a2efcdba1ea/openlit-1.36.3-py3-none-any.whl", hash = "sha256:bf6edcdf96da69f14b79d80aa2a9d05a7393de448e3d8d264e3ac4f63f5aadf3", size = 401640, upload-time = "2025-12-12T10:26:59.329Z" },
]
[[package]]
+1 -2
View File
@@ -153,7 +153,7 @@ requires-dist = [
{ name = "langchain-core", specifier = "~=0.3.81" },
{ name = "langchain-openai", specifier = "~=0.3.30" },
{ name = "langfuse", specifier = "~=2.59.2" },
{ name = "openlit", marker = "extra == 'full'", specifier = "~=1.36.0" },
{ name = "openlit", marker = "extra == 'full'", specifier = ">=1.36.0,<1.36.6" },
{ name = "protobuf", marker = "extra == 'full'", specifier = ">=5.0" },
{ name = "pydantic-settings", specifier = "~=2.7.1" },
{ name = "pymongo", specifier = "~=4.10.1" },
@@ -526,7 +526,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" },
{ url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" },
{ url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" },
{ url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" },
{ url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" },
{ url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" },
{ url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" },
+4 -5
View File
@@ -236,7 +236,7 @@ requires-dist = [
{ name = "langchain-core", specifier = "~=0.3.81" },
{ name = "langchain-openai", specifier = "~=0.3.30" },
{ name = "langfuse", specifier = "~=2.59.2" },
{ name = "openlit", marker = "extra == 'full'", specifier = "~=1.36.0" },
{ name = "openlit", marker = "extra == 'full'", specifier = ">=1.36.0,<1.36.6" },
{ name = "protobuf", marker = "extra == 'full'", specifier = ">=5.0" },
{ name = "pydantic-settings", specifier = "~=2.7.1" },
{ name = "pymongo", specifier = "~=4.10.1" },
@@ -477,7 +477,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" },
{ url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" },
{ url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" },
{ url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" },
{ url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" },
{ url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" },
{ url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" },
@@ -908,7 +907,7 @@ wheels = [
[[package]]
name = "openlit"
version = "1.36.7"
version = "1.36.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anthropic" },
@@ -939,9 +938,9 @@ dependencies = [
{ name = "schedule" },
{ name = "xmltodict" },
]
sdist = { url = "https://files.pythonhosted.org/packages/0a/92/ddebfab7e8feb519f5a96c0bb5410bd57f336528300c37d051d9e10bb3ce/openlit-1.36.7.tar.gz", hash = "sha256:553f533daf37fd9612df4a19f1da84a1c00a737253ef7580dd63f8c6353d19ec", size = 281884, upload-time = "2026-01-27T07:35:25.812Z" }
sdist = { url = "https://files.pythonhosted.org/packages/ae/06/8253e93a13ae45ecd1d8db3be63f90db39c5c8995a7f4a1f58f53ca63431/openlit-1.36.3.tar.gz", hash = "sha256:31f3227bc4c9904dd399cc625aee70e073f3d905453f2e972ca2b9b6c0b99b8f", size = 260444, upload-time = "2025-12-12T10:27:01.327Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/5e/04/bfe4fa48ce1e88ae12e0abcf726f688e55861d7341d3b5b00d991dce3490/openlit-1.36.7-py3-none-any.whl", hash = "sha256:090f9c5545e8d9a57a25d572067beff1daf40eb4f485e2fbdd32020bcc07d0bd", size = 431693, upload-time = "2026-01-27T07:35:23.991Z" },
{ url = "https://files.pythonhosted.org/packages/83/f8/67f4d76aab540645a59182af65a24b7913a8bf3dcee3ef767a2efcdba1ea/openlit-1.36.3-py3-none-any.whl", hash = "sha256:bf6edcdf96da69f14b79d80aa2a9d05a7393de448e3d8d264e3ac4f63f5aadf3", size = 401640, upload-time = "2025-12-12T10:26:59.329Z" },
]
[[package]]
+4 -5
View File
@@ -259,7 +259,7 @@ requires-dist = [
{ name = "langchain-core", specifier = "~=0.3.81" },
{ name = "langchain-openai", specifier = "~=0.3.30" },
{ name = "langfuse", specifier = "~=2.59.2" },
{ name = "openlit", marker = "extra == 'full'", specifier = "~=1.36.0" },
{ name = "openlit", marker = "extra == 'full'", specifier = ">=1.36.0,<1.36.6" },
{ name = "protobuf", marker = "extra == 'full'", specifier = ">=5.0" },
{ name = "pydantic-settings", specifier = "~=2.7.1" },
{ name = "pymongo", specifier = "~=4.10.1" },
@@ -439,7 +439,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" },
{ url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" },
{ url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" },
{ url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" },
{ url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" },
{ url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" },
{ url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" },
@@ -949,7 +948,7 @@ wheels = [
[[package]]
name = "openlit"
version = "1.36.7"
version = "1.36.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anthropic" },
@@ -980,9 +979,9 @@ dependencies = [
{ name = "schedule" },
{ name = "xmltodict" },
]
sdist = { url = "https://files.pythonhosted.org/packages/0a/92/ddebfab7e8feb519f5a96c0bb5410bd57f336528300c37d051d9e10bb3ce/openlit-1.36.7.tar.gz", hash = "sha256:553f533daf37fd9612df4a19f1da84a1c00a737253ef7580dd63f8c6353d19ec", size = 281884, upload-time = "2026-01-27T07:35:25.812Z" }
sdist = { url = "https://files.pythonhosted.org/packages/ae/06/8253e93a13ae45ecd1d8db3be63f90db39c5c8995a7f4a1f58f53ca63431/openlit-1.36.3.tar.gz", hash = "sha256:31f3227bc4c9904dd399cc625aee70e073f3d905453f2e972ca2b9b6c0b99b8f", size = 260444, upload-time = "2025-12-12T10:27:01.327Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/5e/04/bfe4fa48ce1e88ae12e0abcf726f688e55861d7341d3b5b00d991dce3490/openlit-1.36.7-py3-none-any.whl", hash = "sha256:090f9c5545e8d9a57a25d572067beff1daf40eb4f485e2fbdd32020bcc07d0bd", size = 431693, upload-time = "2026-01-27T07:35:23.991Z" },
{ url = "https://files.pythonhosted.org/packages/83/f8/67f4d76aab540645a59182af65a24b7913a8bf3dcee3ef767a2efcdba1ea/openlit-1.36.3-py3-none-any.whl", hash = "sha256:bf6edcdf96da69f14b79d80aa2a9d05a7393de448e3d8d264e3ac4f63f5aadf3", size = 401640, upload-time = "2025-12-12T10:26:59.329Z" },
]
[[package]]
+4 -5
View File
@@ -203,7 +203,7 @@ requires-dist = [
{ name = "langchain-core", specifier = "~=0.3.81" },
{ name = "langchain-openai", specifier = "~=0.3.30" },
{ name = "langfuse", specifier = "~=2.59.2" },
{ name = "openlit", marker = "extra == 'full'", specifier = "~=1.36.0" },
{ name = "openlit", marker = "extra == 'full'", specifier = ">=1.36.0,<1.36.6" },
{ name = "protobuf", marker = "extra == 'full'", specifier = ">=5.0" },
{ name = "pydantic-settings", specifier = "~=2.7.1" },
{ name = "pymongo", specifier = "~=4.10.1" },
@@ -336,7 +336,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" },
{ url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" },
{ url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" },
{ url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" },
{ url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" },
{ url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" },
{ url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" },
@@ -700,7 +699,7 @@ wheels = [
[[package]]
name = "openlit"
version = "1.36.7"
version = "1.36.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anthropic" },
@@ -731,9 +730,9 @@ dependencies = [
{ name = "schedule" },
{ name = "xmltodict" },
]
sdist = { url = "https://files.pythonhosted.org/packages/0a/92/ddebfab7e8feb519f5a96c0bb5410bd57f336528300c37d051d9e10bb3ce/openlit-1.36.7.tar.gz", hash = "sha256:553f533daf37fd9612df4a19f1da84a1c00a737253ef7580dd63f8c6353d19ec", size = 281884, upload-time = "2026-01-27T07:35:25.812Z" }
sdist = { url = "https://files.pythonhosted.org/packages/ae/06/8253e93a13ae45ecd1d8db3be63f90db39c5c8995a7f4a1f58f53ca63431/openlit-1.36.3.tar.gz", hash = "sha256:31f3227bc4c9904dd399cc625aee70e073f3d905453f2e972ca2b9b6c0b99b8f", size = 260444, upload-time = "2025-12-12T10:27:01.327Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/5e/04/bfe4fa48ce1e88ae12e0abcf726f688e55861d7341d3b5b00d991dce3490/openlit-1.36.7-py3-none-any.whl", hash = "sha256:090f9c5545e8d9a57a25d572067beff1daf40eb4f485e2fbdd32020bcc07d0bd", size = 431693, upload-time = "2026-01-27T07:35:23.991Z" },
{ url = "https://files.pythonhosted.org/packages/83/f8/67f4d76aab540645a59182af65a24b7913a8bf3dcee3ef767a2efcdba1ea/openlit-1.36.3-py3-none-any.whl", hash = "sha256:bf6edcdf96da69f14b79d80aa2a9d05a7393de448e3d8d264e3ac4f63f5aadf3", size = 401640, upload-time = "2025-12-12T10:26:59.329Z" },
]
[[package]]
@@ -0,0 +1,99 @@
"""Integration tests with openlit telemetry enabled.
These tests verify seed-gen works correctly when openlit instrumentation is active,
as it would be in production when OTEL_EXPORTER_OTLP_ENDPOINT is set.
"""
from unittest.mock import MagicMock, Mock, patch
import openlit
import pytest
from langchain_core.messages import AIMessage
from buttercup.seed_gen.seed_init import SeedInitTask
from test.conftest import mock_sandbox_exec_funcs
# Initialize openlit at module load to enable instrumentation
# This simulates production where init_telemetry() is called at startup
openlit.init(
disable_batch=True,
otlp_endpoint=None,
)
@pytest.fixture
def seed_init_task(
mock_challenge_task,
mock_codequery,
mock_project_yaml,
mock_redis,
mock_llm,
):
"""Create a SeedInitTask instance with mocked dependencies."""
with patch("buttercup.seed_gen.task.Task.get_llm", return_value=mock_llm):
task = SeedInitTask(
package_name="test_package",
harness_name="test_harness",
challenge_task=mock_challenge_task,
codequery=mock_codequery,
project_yaml=mock_project_yaml,
redis=mock_redis,
)
return task
def test_do_task_with_telemetry(
seed_init_task,
mock_llm,
mock_harness_info,
mock_llm_responses,
mock_codequery_responses,
mock_challenge_task_responses,
tmp_path,
):
"""Test seed-gen do_task works with openlit telemetry enabled."""
out_dir = tmp_path / "out"
out_dir.mkdir()
seed_init_task.get_harness_source = Mock(return_value=mock_harness_info)
with (
patch("buttercup.common.llm.get_langfuse_callbacks", return_value=[]),
patch("opentelemetry.trace.get_tracer") as mock_tracer,
patch("buttercup.seed_gen.seed_init.set_crs_attributes"),
patch("buttercup.seed_gen.task.sandbox_exec_funcs") as mock_sandbox_exec,
):
mock_span = MagicMock()
mock_tracer.return_value.start_as_current_span.return_value.__enter__.return_value = mock_span
mock_sandbox_exec.side_effect = mock_sandbox_exec_funcs
seed_messages = [
AIMessage(
content=(
"```python\n"
"def gen_seed_1() -> bytes:\n"
' return b"A" * 50\n\n'
"def gen_seed_2() -> bytes:\n"
' return b"B" * 100\n```'
),
),
]
mock_llm.invoke.side_effect = mock_llm_responses + seed_messages
seed_init_task.codequery.get_functions = Mock(
return_value=mock_codequery_responses["get_functions"],
)
seed_init_task.codequery.get_callers = Mock(
return_value=mock_codequery_responses["get_callers"],
)
seed_init_task.codequery.get_types = Mock(
return_value=mock_codequery_responses["get_types"],
)
seed_init_task.challenge_task.exec_docker_cmd = Mock(
return_value=mock_challenge_task_responses["exec_docker_cmd"],
)
seed_init_task.do_task(out_dir)
seed_files = list(out_dir.glob("*.seed"))
assert len(seed_files) == 2
+4 -5
View File
@@ -203,7 +203,7 @@ requires-dist = [
{ name = "langchain-core", specifier = "~=0.3.81" },
{ name = "langchain-openai", specifier = "~=0.3.30" },
{ name = "langfuse", specifier = "~=2.59.2" },
{ name = "openlit", marker = "extra == 'full'", specifier = "~=1.36.0" },
{ name = "openlit", marker = "extra == 'full'", specifier = ">=1.36.0,<1.36.6" },
{ name = "protobuf", marker = "extra == 'full'", specifier = ">=5.0" },
{ name = "pydantic-settings", specifier = "~=2.7.1" },
{ name = "pymongo", specifier = "~=4.10.1" },
@@ -336,7 +336,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" },
{ url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" },
{ url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" },
{ url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" },
{ url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" },
{ url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" },
{ url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" },
@@ -783,7 +782,7 @@ wheels = [
[[package]]
name = "openlit"
version = "1.36.7"
version = "1.36.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anthropic" },
@@ -814,9 +813,9 @@ dependencies = [
{ name = "schedule" },
{ name = "xmltodict" },
]
sdist = { url = "https://files.pythonhosted.org/packages/0a/92/ddebfab7e8feb519f5a96c0bb5410bd57f336528300c37d051d9e10bb3ce/openlit-1.36.7.tar.gz", hash = "sha256:553f533daf37fd9612df4a19f1da84a1c00a737253ef7580dd63f8c6353d19ec", size = 281884, upload-time = "2026-01-27T07:35:25.812Z" }
sdist = { url = "https://files.pythonhosted.org/packages/ae/06/8253e93a13ae45ecd1d8db3be63f90db39c5c8995a7f4a1f58f53ca63431/openlit-1.36.3.tar.gz", hash = "sha256:31f3227bc4c9904dd399cc625aee70e073f3d905453f2e972ca2b9b6c0b99b8f", size = 260444, upload-time = "2025-12-12T10:27:01.327Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/5e/04/bfe4fa48ce1e88ae12e0abcf726f688e55861d7341d3b5b00d991dce3490/openlit-1.36.7-py3-none-any.whl", hash = "sha256:090f9c5545e8d9a57a25d572067beff1daf40eb4f485e2fbdd32020bcc07d0bd", size = 431693, upload-time = "2026-01-27T07:35:23.991Z" },
{ url = "https://files.pythonhosted.org/packages/83/f8/67f4d76aab540645a59182af65a24b7913a8bf3dcee3ef767a2efcdba1ea/openlit-1.36.3-py3-none-any.whl", hash = "sha256:bf6edcdf96da69f14b79d80aa2a9d05a7393de448e3d8d264e3ac4f63f5aadf3", size = 401640, upload-time = "2025-12-12T10:26:59.329Z" },
]
[[package]]