diff --git a/semantic/enricher.py b/semantic/enricher.py index 214237a..1e2e00c 100644 --- a/semantic/enricher.py +++ b/semantic/enricher.py @@ -42,7 +42,7 @@ def enrich_scene( def _with_known_widgets_only( scene: Scene, semantic_scene: SemanticScene, -) -> SemanticScene | None: +) -> SemanticScene: known_element_ids = {element.id for element in scene.elements} if not known_element_ids: return semantic_scene @@ -52,8 +52,6 @@ def _with_known_widgets_only( for widget in semantic_scene.widgets if widget.element_id in known_element_ids ] - if not widgets: - return None return SemanticScene( page=semantic_scene.page, diff --git a/semantic/llm_client.py b/semantic/llm_client.py index cf48dee..8861b3c 100644 --- a/semantic/llm_client.py +++ b/semantic/llm_client.py @@ -7,14 +7,6 @@ from semantic.config import DEFAULT_MODEL from semantic.models import SEMANTIC_SCENE_SCHEMA, SemanticScene from semantic.prompts import ENRICHMENT_SYSTEM_PROMPT, scene_user_prompt -_SDK_UNAVAILABLE_EXCEPTION_NAMES = { - "APITimeoutError", - "APIConnectionError", - "RateLimitError", - "AuthenticationError", - "APIStatusError", -} - class EnrichmentUnavailable(Exception): """Internal signal for expected enrichment transport/response failures.""" diff --git a/tests/test_semantic_enricher.py b/tests/test_semantic_enricher.py index 8365347..2e0a95c 100644 --- a/tests/test_semantic_enricher.py +++ b/tests/test_semantic_enricher.py @@ -123,7 +123,7 @@ def test_enrich_scene_filters_dangling_element_ids() -> None: ] -def test_enrich_scene_returns_none_when_all_widgets_are_dangling() -> None: +def test_enrich_scene_returns_empty_widgets_when_all_widgets_are_dangling() -> None: client = FakeClient( response={ "page": "Chat", @@ -138,4 +138,7 @@ def test_enrich_scene_returns_none_when_all_widgets_are_dangling() -> None: config=SemanticConfig(enabled=True), ) - assert result is None + assert result is not None + assert result.page == "Chat" + assert result.intents == ["send a message"] + assert result.widgets == []