From ea22528630670c980918e458473afee9faa068c8 Mon Sep 17 00:00:00 2001 From: Teknium <127238744+teknium1@users.noreply.github.com> Date: Mon, 7 Sep 2026 02:32:55 -0700 Subject: [PATCH] fix: reject blank unknown delivery destinations too --- gateway/delivery.py | 4 ++-- tests/gateway/test_delivery_unknown_target.py | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/gateway/delivery.py b/gateway/delivery.py index 6357eafef4..6585cfbe1e 100644 --- a/gateway/delivery.py +++ b/gateway/delivery.py @@ -134,7 +134,7 @@ class DeliveryTarget: """Convert back to string format.""" if self.is_origin: return "origin" - if self.unknown_platform: + if self.unknown_platform is not None: return self.unknown_platform if self.platform == Platform.LOCAL: return "local" @@ -168,7 +168,7 @@ class DeliveryRouter: """Deliver content to all targets; returns per-target results keyed by target string.""" results = {} for target in targets: - if target.unknown_platform: + if target.unknown_platform is not None: results[target.to_string()] = { "success": False, "error": f"unknown_platform: {target.unknown_platform}"} continue diff --git a/tests/gateway/test_delivery_unknown_target.py b/tests/gateway/test_delivery_unknown_target.py index 3ff7623583..4ce705d1fb 100644 --- a/tests/gateway/test_delivery_unknown_target.py +++ b/tests/gateway/test_delivery_unknown_target.py @@ -9,11 +9,13 @@ from gateway.delivery import DeliveryRouter, DeliveryTarget @pytest.mark.asyncio -async def test_unknown_destination_fails_without_writing_and_local_still_works(tmp_path, monkeypatch): +@pytest.mark.parametrize("raw", ["MisspelledPlatform:ChatID:ThreadID", "", " "]) +async def test_unknown_destination_fails_without_writing_and_local_still_works(tmp_path, monkeypatch, raw): monkeypatch.setenv("HERMES_HOME", str(tmp_path)) router = DeliveryRouter(GatewayConfig()) - raw = "MisspelledPlatform:ChatID:ThreadID" - result = await router.deliver("must not save", [DeliveryTarget.parse(raw)], job_id="bad") + target = DeliveryTarget.parse(raw) + raw = raw.strip() + result = await router.deliver("must not save", [target], job_id="bad") assert not any(receipt["success"] for receipt in result.values()), result assert raw in result assert result[raw]["error"] == f"unknown_platform: {raw}"