Context tile for pidge notification library v3 - async API with NotificationClient, Message, and dispatch pattern
99
Quality
99%
Does it follow best practices?
Impact
100%
2.85xAverage score across 3 eval scenarios
Passed
No known issues
{
"context": "Tests whether the agent implements correct retry logic for transient pidge dispatch failures, including exponential backoff, distinguishing permanent vs transient errors, short client lifecycle, and proper result checking.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Retry up to 3 attempts",
"description": "Retry loop runs for at most 3 attempts (e.g. `for attempt in range(3)`) — not fewer, not more",
"max_score": 12
},
{
"name": "Exponential backoff sleep",
"description": "Uses exponential backoff between retries — sleep duration follows a 2^attempt (or equivalent) pattern, not a fixed interval",
"max_score": 12
},
{
"name": "asyncio.sleep for backoff",
"description": "Uses `await asyncio.sleep(...)` (not `time.sleep(...)`) for the backoff delay",
"max_score": 8
},
{
"name": "No retry on permanent errors",
"description": "Distinguishes permanent errors (e.g. invalid address/recipient) from transient ones — does NOT retry when the error is permanent",
"max_score": 10
},
{
"name": "DispatchError caught",
"description": "Catches `DispatchError` from pidge explicitly in the retry loop",
"max_score": 10
},
{
"name": "Logs failure after retries",
"description": "After all retry attempts are exhausted, logs an error message (e.g. `logger.error`) indicating dispatch failed",
"max_score": 8
},
{
"name": "Async context manager lifecycle",
"description": "Uses `async with NotificationClient(...) as client:` — does not hold the client open across multiple unrelated dispatch operations",
"max_score": 10
},
{
"name": "Result check after success",
"description": "After a successful dispatch (no exception), checks `result.success` or `result.status == Status.SENT` before treating it as confirmed",
"max_score": 10
},
{
"name": "Logs message_id on success",
"description": "Logs `result.message_id` after a successful dispatch",
"max_score": 8
},
{
"name": "notification_sent in response",
"description": "Returns `notification_sent: True` or `notification_sent: False` in the function/endpoint result",
"max_score": 12
}
]
}