Skip to content

[pull] main from forem:main - #370

Merged
pull[bot] merged 3 commits into
amishakov:mainfrom
forem:main
Aug 25, 2026
Merged

pull[bot] merged 3 commits into
amishakov:mainfrom
forem:main

Conversation

@pull

@pull pull Bot commented Aug 25, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

benhalpern and others added 3 commits August 25, 2026 09:52
…ding broadcasts to the rollout cohort (#23774)

* Stop overriding the Customer.io template sender

DeliveryMethods::CustomerIo copied mail.from into the App API payload on
every send. Customer.io treats a from in the request as an override of the
sender identity configured on the transactional message, so every template
send went out as ForemInstance.from_email_address regardless of what the
message was set up with in Customer.io.

Only send from on the body-passthrough path (no transactional_message_id),
where the API needs it -- mirroring the existing guard on body. A mailer can
still override it explicitly by passing from: through
customerio_delivery_options.

Claude-Session: https://claude.ai/code/session_012jDiQz996H7daE3dZbz1Hu

* Don't double-send broadcasts to the Customer.io rollout cohort

The cutover guards in Email, Emails::BatchCustomSendWorker and
Admin::EmailsController all key off ForemInstance.customerio_email_cutover?,
which reads the *global* :customerio_email_delivery state. The flag rolls out
per actor, so while it is partially on the guards stay false and Forem keeps
broadcasting to everyone -- including the enabled cohort, who are already
getting the same broadcast from the Customer.io side.

Skip flag-enabled recipients in the batch worker, with a per-recipient
backstop in CustomMailer that also covers Emails::DripEmailWorker (it builds
its sends itself and never passes through the batch worker). Test sends stay
exempt so admins keep their preview during the rollout.

Claude-Session: https://claude.ai/code/session_012jDiQz996H7daE3dZbz1Hu
@pull pull Bot locked and limited conversation to collaborators Aug 25, 2026
@pull pull Bot added the ⤵️ pull label Aug 25, 2026
@pull
pull Bot merged commit 079a49b into amishakov:main Aug 25, 2026
0 of 2 checks passed

This branch had an error being deployed

1 failed deployment
production 079a49b1 Deployed Aug 25, 2026 by pull[bot] via deploy (production) #346
staging 079a49b1 Deployed Aug 25, 2026 by pull[bot] via deploy (staging) #346
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants