@cfxlabsinc/b2b-services
    Preparing search index...

    Per-recipient idempotency for a caller that retries whole sends. claim answers sent once an earlier attempt's send was accepted, and held while another attempt holds the address and may be sending to it.

    type EmailRecipientGate = {
        claim(email: string): Promise<"claimed" | "sent" | "held">;
        markSent(email: string): Promise<void>;
        release(email: string): Promise<void>;
    }
    Index