fix(cron): preserve Telegram topic targets

This commit is contained in:
helix4u 2026-04-27 23:45:47 -06:00 committed by Teknium
parent cff29fa7fd
commit 6ce796b495
2 changed files with 19 additions and 1 deletions

View File

@ -198,7 +198,9 @@ def _resolve_single_delivery_target(job: dict, deliver_value: str) -> Optional[d
if resolved:
parsed_chat_id, parsed_thread_id, resolved_is_explicit = _parse_target_ref(platform_key, resolved)
if resolved_is_explicit:
chat_id, thread_id = parsed_chat_id, parsed_thread_id
chat_id = parsed_chat_id
if parsed_thread_id is not None:
thread_id = parsed_thread_id
else:
chat_id = resolved
except Exception:

View File

@ -129,6 +129,22 @@ class TestResolveDeliveryTarget:
"thread_id": "17",
}
def test_explicit_telegram_topic_thread_survives_bare_directory_match(self):
"""Exact channel-directory matches must not erase an explicit topic id."""
job = {
"deliver": "telegram:-1003724596514:17",
}
with patch(
"gateway.channel_directory.resolve_channel_name",
return_value="-1003724596514",
):
result = _resolve_delivery_target(job)
assert result == {
"platform": "telegram",
"chat_id": "-1003724596514",
"thread_id": "17",
}
def test_explicit_telegram_chat_id_without_thread_id(self):
"""deliver: 'telegram:chat_id' sets thread_id to None."""
job = {