Stream policy seam (SEND-01 stage 3, D-25).
At v0.1 this is a no-op that returns :ok for every valid stream
(valid streams are enforced at schema level via Ecto.Enum on
Mailglass.Outbound.Delivery.stream). Emits a single telemetry
event for observability.
v0.5 DELIV-02 swaps this implementation in place; callers do not change. The v0.5 impl will enforce:
:transactionalstream: no tracking injection allowed:bulkstream: RFC 8058 List-Unsubscribe header auto-injected- Per-stream provider routing via per-tenant adapter resolver (DELIV-07)
Why a no-op seam at v0.1 rather than "omit the stage": the preflight pipeline (Plan 05) is stable across versions. Adding stream_policy later would be a breaking change to the pipeline order; shipping a no-op now locks the contract.
Summary
Functions
Checks stream policy for the given message. Returns :ok at v0.1 for all streams.
Functions
@spec policy_check(Mailglass.Message.t()) :: :ok
Checks stream policy for the given message. Returns :ok at v0.1 for all streams.
Pattern-matches on %Mailglass.Message{} only — passing a raw map raises FunctionClauseError.
Emits [:mailglass, :outbound, :stream_policy, :stop] telemetry on every call.
v0.5 DELIV-02 will swap this implementation; callers do not change.