From 75e16305505fafa6775dd1d5047826801267c160 Mon Sep 17 00:00:00 2001 From: Chin Rock Date: Thu, 29 Oct 2026 15:48:06 +0000 Subject: [PATCH] fix(localagent): keep the SDK constraint installable across 0.7.x LocalAgent declared langbot-plugin>=0.7.18, and the published 0.2.2 artifact pinned langbot-plugin==0.7.16. The plugin runtime rejects any SDK requirement its own SDK version does not satisfy, so both directions were dead ends: 4.11.4 (SDK 0.7.19) could not install the published build, and a 0.7.18 floor would have locked out 4.11.2/4.11.3 (SDK 0.7.16) from the next one. Use a bounded range from the 4.11.2 baseline instead, matching every other official Runner and KnowledgeEngine plugin. Verified on SDK 0.7.16 and 0.7.19: 327 tests pass on both, including the runtime dependency admission contract. Co-authored-by: multica-agent --- plugins/Runner/LocalAgent/manifest.yaml | 2 +- plugins/Runner/LocalAgent/pyproject.toml | 4 ++-- plugins/Runner/LocalAgent/requirements.txt | 2 +- .../Runner/LocalAgent/tests/test_sdk_dependency_contract.py | 6 +++--- plugins/catalog.json | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/Runner/LocalAgent/manifest.yaml b/plugins/Runner/LocalAgent/manifest.yaml index 4079c78b6..39b90e3d1 100644 --- a/plugins/Runner/LocalAgent/manifest.yaml +++ b/plugins/Runner/LocalAgent/manifest.yaml @@ -3,7 +3,7 @@ kind: Plugin metadata: author: langbot-team name: LocalAgent - version: 0.2.3 + version: 0.2.4 repository: https://github.com/langbot-app/LangBot/tree/master/plugins/Runner/LocalAgent label: en_US: Local Agent diff --git a/plugins/Runner/LocalAgent/pyproject.toml b/plugins/Runner/LocalAgent/pyproject.toml index 9c8bc0653..a824c660a 100644 --- a/plugins/Runner/LocalAgent/pyproject.toml +++ b/plugins/Runner/LocalAgent/pyproject.toml @@ -1,11 +1,11 @@ [project] name = "langbot-local-agent" -version = "0.2.3" +version = "0.2.4" description = "Built-in agent with model fallback, tools, and knowledge retrieval" requires-python = ">=3.11,<4.0" dependencies = [ "pydantic>=2.0.0", - "langbot-plugin>=0.7.18", + "langbot-plugin>=0.7.16,<0.8", ] [project.optional-dependencies] diff --git a/plugins/Runner/LocalAgent/requirements.txt b/plugins/Runner/LocalAgent/requirements.txt index 4aa78f3b2..fec63366d 100644 --- a/plugins/Runner/LocalAgent/requirements.txt +++ b/plugins/Runner/LocalAgent/requirements.txt @@ -1,2 +1,2 @@ -langbot-plugin>=0.7.18 +langbot-plugin>=0.7.16,<0.8 pydantic>=2.0.0 diff --git a/plugins/Runner/LocalAgent/tests/test_sdk_dependency_contract.py b/plugins/Runner/LocalAgent/tests/test_sdk_dependency_contract.py index 24912c52a..d27b01ac1 100644 --- a/plugins/Runner/LocalAgent/tests/test_sdk_dependency_contract.py +++ b/plugins/Runner/LocalAgent/tests/test_sdk_dependency_contract.py @@ -22,15 +22,15 @@ def _sdk_requirements(): def test_project_and_packaged_sdk_constraints_match(): project, packaged = _sdk_requirements() assert project.specifier == packaged.specifier - assert str(project.specifier) == ">=0.7.18" + assert str(project.specifier) == "<0.8,>=0.7.16" -@pytest.mark.parametrize("version", ["0.7.18", "0.7.19", "0.8.0", "1.0.0"]) +@pytest.mark.parametrize("version", ["0.7.16", "0.7.17", "0.7.18", "0.7.19"]) def test_sdk_constraints_accept_stable_releases_from_minimum(version): assert all(requirement.specifier.contains(version) for requirement in _sdk_requirements()) -@pytest.mark.parametrize("version", ["0.7.16", "0.7.17"]) +@pytest.mark.parametrize("version", ["0.7.4", "0.7.15", "0.8.0", "1.0.0"]) def test_sdk_constraints_reject_older_releases(version): assert not any(requirement.specifier.contains(version) for requirement in _sdk_requirements()) diff --git a/plugins/catalog.json b/plugins/catalog.json index 9331ef413..9741fb01a 100644 --- a/plugins/catalog.json +++ b/plugins/catalog.json @@ -36,7 +36,7 @@ }, { "id": "langbot-team/LocalAgent", - "version": "0.2.3", + "version": "0.2.4", "category": "Runner", "path": "Runner/LocalAgent", "repository": "https://github.com/langbot-app/LangBot/tree/master/plugins/Runner/LocalAgent"