From 552b6a1a5cc4828b403a26a05b0ba5f8f9ede2eb Mon Sep 17 00:00:00 2001 From: Samantha Coyle Date: Fri, 26 Sep 2025 15:07:06 -0500 Subject: [PATCH 1/2] fix: allow us to run daprd at edge version Signed-off-by: Samantha Coyle --- dapr_agents/llm/dapr/chat.py | 4 ++-- dapr_agents/utils/semver.py | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/dapr_agents/llm/dapr/chat.py b/dapr_agents/llm/dapr/chat.py index 5e4603bc..c43bc4b4 100644 --- a/dapr_agents/llm/dapr/chat.py +++ b/dapr_agents/llm/dapr/chat.py @@ -332,10 +332,10 @@ def generate( if dapr_runtime_version is not None: # Allow only versions >=1.16.0 and <2.0.0 for Alpha2 Chat Client if not is_version_supported( - str(dapr_runtime_version), ">=1.16.0, <2.0.0" + str(dapr_runtime_version), ">=1.16.0, edge, <2.0.0" ): raise DaprRuntimeVersionNotSupportedError( - f"!!!!! Dapr Runtime Version {dapr_runtime_version} is not supported with Alpha2 Dapr Chat Client. Only Dapr runtime versions >=1.16.0 and <2.0.0 are supported." + f"!!!!! Dapr Runtime Version {dapr_runtime_version} is not supported with Alpha2 Dapr Chat Client. Only Dapr runtime versions >=1.16.0, edge,and <2.0.0 are supported." ) raw = self.client.chat_completion_alpha2( diff --git a/dapr_agents/utils/semver.py b/dapr_agents/utils/semver.py index 9f258c01..6bfa15e1 100644 --- a/dapr_agents/utils/semver.py +++ b/dapr_agents/utils/semver.py @@ -63,6 +63,8 @@ def is_version_supported(version: str, constraints: str) -> bool: - Each token supports operators: ==, !=, >=, <=, >, < - Missing operator defaults to == """ + if version == "edge": + return True v = Version.parse(version) for group in constraints.split("||"): group = group.strip() From bbfdf8f5e4f59bbb74c8a78c79e89483f97c8861 Mon Sep 17 00:00:00 2001 From: Samantha Coyle Date: Fri, 26 Sep 2025 15:38:04 -0500 Subject: [PATCH 2/2] test: add unit test for this change Signed-off-by: Samantha Coyle --- tests/utils/test_semver.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/utils/test_semver.py b/tests/utils/test_semver.py index 96004314..f7eafb1c 100644 --- a/tests/utils/test_semver.py +++ b/tests/utils/test_semver.py @@ -58,3 +58,25 @@ def test_version_parse_defaults_missing_parts_to_zero() -> None: assert Version.parse("1.2").major == 1 assert Version.parse("1.2").minor == 2 assert Version.parse("1.2").patch == 0 + + +def test_edge_version_always_satisfies_constraints() -> None: + """Edge version should always satisfy any constraint.""" + assert is_version_supported("edge", "==1.2.3") is True + assert is_version_supported("edge", "!=1.2.3") is True + assert is_version_supported("edge", ">1.2.2") is True + assert is_version_supported("edge", ">=1.2.3") is True + assert is_version_supported("edge", "<1.2.4") is True + assert is_version_supported("edge", "<=1.2.3") is True + assert is_version_supported("edge", ">=1.16.0, <2.0.0") is True + assert is_version_supported("edge", ">=2.0.0, <3.0.0 || ==1.16.1") is True + assert is_version_supported("edge", "==0.0.0") is True + assert is_version_supported("edge", ">999.999.999") is True + assert is_version_supported("edge", "<0.0.1") is True + + +def test_edge_version_case_sensitivity() -> None: + """Edge version should be case sensitive.""" + assert is_version_supported("edge", "==1.2.3") is True + assert is_version_supported("Edge", "==1.2.3") is False + assert is_version_supported("EDGE", "==1.2.3") is False