auditRowless writes the audit rows WITHOUT denormalizing a message row — for outbound paths that persist no message row: a blocked (refused) send, and a flagged test send. Callers pass a stable soft-ref id (blockAuditID) so retries stay idempotent.
(ctx context.Context, agent *identity.AgentIdentity, messageID string, req outbound.SendRequest, v outboundVerdict)
| 281 | // flagged test send. Callers pass a stable soft-ref id (blockAuditID) so retries |
| 282 | // stay idempotent. |
| 283 | func (a *API) auditRowless(ctx context.Context, agent *identity.AgentIdentity, messageID string, req outbound.SendRequest, v outboundVerdict) { |
| 284 | a.writeProtectionEvents(ctx, messageID, v.screeningEvents(messageID, agent)) |
| 285 | } |
| 286 | |
| 287 | // emitBlockedOutbound fires the fire-and-forget email.blocked event for an outbound |
| 288 | // send refused by screening (applied action = block). messageID is the stable |
no test coverage detected