Saltar a contenido

PDF-012I - OUTBOX WORKER IDEMPOTENCY HARDENING

Estado: PDF-012I_IDEMPOTENCY_HARDENING_DRY_RUN_PASS.

PDF-012H cerro como NO-GO_VALIDATION_FAILED: se enviaron exactamente 2 emails reales internos a facturacion@ladirecta.com.ar cuando se esperaba exactamente 1. La causa fue un fallback elegible creado en retry despues de que la notification original PDF-012C:BILLING_CUSTOMER_REQUEST:TEST001 ya estaba SENT.

Impacto: interno. No hubo emails a clientes, proveedores ni listas. Produccion sigue bloqueada y PDF-012H no debe usarse como exito operativo.

Hardening PDF-012I:

  • Guard global obligatorio antes de cualquier SMTP y antes de cualquier fallback.
  • Bloqueo por exito previo compatible en request_id, payload_hash, notification_type, recipient_email, scope/gate/manual run key o semantic_event=SEND_SUCCEEDED.
  • Resultado bloqueante: ALREADY_SENT_GLOBAL_BLOCKED.
  • email_sent=false.
  • smtp_connected_for_send=false.
  • smtp_send_commands_executed=false.
  • La notification sintetica PDF-012I permanece READY_BLOCKED.

Cleanup/reseed local/dev:

  • No se borraron eventos historicos SEND_SUCCEEDED.
  • Se preservo evidencia PDF-012H.
  • Se creo o reutilizo PDF-012I:BILLING_CUSTOMER_REQUEST:TEST001 para dry-run.
  • Se registraron eventos SEND_BLOCKED con semantic ALREADY_SENT_GLOBAL_BLOCKED para primary dry-run y retry dry-run.

Resultado dry-run:

  • No se enviaron emails reales nuevos.
  • No se conecto SMTP para envio.
  • No se ejecuto MAIL FROM, RCPT TO ni DATA.
  • Fallback/retry bloqueado antes de SMTP.
  • Produccion sigue bloqueada hasta nuevo GO.

Proximo paso: integrar este guard global en cualquier worker real antes de autorizar otro SMTP real o una promocion a produccion.