fix(agent99): dispatch actionable alerts with receipts
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 2m27s
CD Pipeline / build-and-deploy (push) Successful in 6m39s
CD Pipeline / post-deploy-checks (push) Successful in 1m55s
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 2m27s
CD Pipeline / build-and-deploy (push) Successful in 6m39s
CD Pipeline / post-deploy-checks (push) Successful in 1m55s
This commit is contained in:
@@ -468,6 +468,7 @@ def test_send_request_payload_normalizer_blocks_direct_host_raw_dump() -> None:
|
||||
async def test_send_request_mirrors_direct_ai_alert_card_to_agent99(monkeypatch) -> None:
|
||||
"""direct sendMessage AI cards must reach Agent99 even without wrapper helpers."""
|
||||
mirrored: list[dict[str, str]] = []
|
||||
outbound_receipts: list[dict[str, object]] = []
|
||||
gateway = TelegramGateway()
|
||||
gateway._initialized = True
|
||||
|
||||
@@ -476,15 +477,25 @@ async def test_send_request_mirrors_direct_ai_alert_card_to_agent99(monkeypatch)
|
||||
return None
|
||||
|
||||
def json(self) -> dict:
|
||||
return {"ok": True, "result": True}
|
||||
return {"ok": True, "result": {"message_id": 991}}
|
||||
|
||||
class FakeHttpClient:
|
||||
async def post(self, url, json): # type: ignore[no-untyped-def]
|
||||
return FakeResponse()
|
||||
|
||||
async def fake_mirror(text: str, *, source: str = "telegram_gateway") -> str:
|
||||
async def fake_mirror(
|
||||
text: str, *, source: str = "telegram_gateway"
|
||||
) -> dict[str, object]:
|
||||
mirrored.append({"text": text, "source": source})
|
||||
return "mirrored"
|
||||
return {
|
||||
"schema_version": "telegram_agent99_dispatch_receipt_v1",
|
||||
"status": "accepted_inbox_triggered",
|
||||
"accepted": True,
|
||||
"inbox_triggered": True,
|
||||
}
|
||||
|
||||
async def fake_outbound_message(**kwargs) -> None: # type: ignore[no-untyped-def]
|
||||
outbound_receipts.append(kwargs)
|
||||
|
||||
monkeypatch.setattr(TelegramGateway, "api_url", property(lambda _self: "https://telegram.test/botx"))
|
||||
monkeypatch.setattr(
|
||||
@@ -497,6 +508,7 @@ async def test_send_request_mirrors_direct_ai_alert_card_to_agent99(monkeypatch)
|
||||
"_mirror_ai_automation_alert_card_to_agent99",
|
||||
fake_mirror,
|
||||
)
|
||||
monkeypatch.setattr(gateway, "_mirror_outbound_message", fake_outbound_message)
|
||||
gateway._http_client = FakeHttpClient()
|
||||
|
||||
result = await gateway._send_request(
|
||||
@@ -513,12 +525,18 @@ async def test_send_request_mirrors_direct_ai_alert_card_to_agent99(monkeypatch)
|
||||
)
|
||||
await asyncio.sleep(0)
|
||||
|
||||
assert result == {"ok": True, "result": True}
|
||||
assert result == {"ok": True, "result": {"message_id": 991}}
|
||||
assert mirrored
|
||||
assert mirrored[0]["source"] == "send_request"
|
||||
assert "ai_automation_alert_card_v1" in mirrored[0]["text"]
|
||||
assert "provider_freshness_signal" in mirrored[0]["text"]
|
||||
assert "runtime_write_gate=controlled" in mirrored[0]["text"]
|
||||
assert outbound_receipts
|
||||
receipt = outbound_receipts[0]["source_envelope_extra"][
|
||||
"agent99_dispatch_receipt"
|
||||
]
|
||||
assert receipt["status"] == "accepted_inbox_triggered"
|
||||
assert receipt["accepted"] is True
|
||||
|
||||
|
||||
def test_weekly_report_marks_all_zero_as_low_trust_anomaly() -> None:
|
||||
|
||||
Reference in New Issue
Block a user