Context
WebhooksService records WebhookDeliveryLog and admin queue endpoints exist, but there's no way to replay a failed event payload or prune old delivery logs; retention is unbounded.
Problem
Support workflows (docs/Handle_Support.md) need 're-send last event' without re-triggering underlying mutations; unbounded logs bloat the DB (see webhook index issue).
Proposed approach
Add POST /webhooks/:id/:deliveryId/replay (re-sends stored payload with same idempotency key), a payload size cap warning, and retention pruning in CleanupService for WebhookDeliveryLog (env CLEANUP_WEBHOOK_LOG_DAYS).
Acceptance criteria
- Replay + retention are user-visible and tested.
Context
WebhooksServicerecordsWebhookDeliveryLogand admin queue endpoints exist, but there's no way to replay a failed event payload or prune old delivery logs; retention is unbounded.Problem
Support workflows (docs/Handle_Support.md) need 're-send last event' without re-triggering underlying mutations; unbounded logs bloat the DB (see webhook index issue).
Proposed approach
Add
POST /webhooks/:id/:deliveryId/replay(re-sends stored payload with same idempotency key), apayloadsize cap warning, and retention pruning inCleanupServiceforWebhookDeliveryLog(envCLEANUP_WEBHOOK_LOG_DAYS).Acceptance criteria