Repository navigation
Conversation
🤖 CI report
|
| File | Comment lines | Added lines |
|---|---|---|
products/workflows/backend/services/workflow_email_health.py |
4 | 4 |
products/workflows/backend/management/commands/rewrite_email_asset_url.py |
2 | 3 |
This check does not block merging. It updates on every push and clears when the share drops.
This was referenced Oct 25, 2026
Silthus
force-pushed
the
email-v2/00-reload-after-commit
branch
from
October 29, 2026 06:16
2938704 to
7044941
Compare
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…loads Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…that still holds The post_save reload now publishes after commit, so the old reason no longer matches the code. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Silthus
force-pushed
the
email-v2/00-reload-after-commit
branch
from
October 31, 2026 09:08
7044941 to
f3d2122
Compare
A single save or delete now reloads through the same retry and error capture as a deferred batch. The two management commands drop their own after-commit workflow reload, because the model already publishes one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
Author
|
Moved to PostHog#127170. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of the code-first rebuild of the email send stack; replaces parts of PostHog#121867 (the workflow reload it needs, split out to land first).
Problem
Impact
Pays into Grow Workflows: an edit or a pause takes effect on the workers as soon as it commits. In scope: Workflows, every workflow save.
Merge Danger
Warning
🟡 Merge risk: medium · two-way door: a revert brings back the reload before commit
defer_hog_flow_reloads(UTM defaults, Customer.io import drafts) also reloads at the outer commit, not when its block ends.transactional_email.pyand in the tests that patch its reload. Those tests drop that patch.Changes
hog_flow_savedpublishes the reload intransaction.on_commit, not from inside the save's transaction.defer_hog_flow_reloadsflushes its batch on commit, not when its block ends. It coversapply_utm_defaultsand the Customer.io import drafts._reload_batch_on_workers: one retry, then a log line and a captured exception.sync_transactional_workflow,strip_placeholder_sender_overridesandrewrite_email_asset_urlare gone, because the model covers them.Saves that now reload at the outer commit, from
transaction.atomicblocks on master:services/hog_flow_writes.py: create, update, edit content, and publish a draft. A save that changes onlydraftanddraft_updated_atnever reloads.services/hog_flow_revisions.py(restore) andservices/workflow_proposals.py(apply).sync_transactional_workflow).refresh_hog_flows,migrate_hog_flow_secret_inputsandstrip_placeholder_sender_overridescommands.The pause and resume writers and
refresh_affected_hog_flowspublish their own reload after commit, and do not change.How did you test this code?
Test seams: the
post_saveandpost_deletereceivers (test_hog_flow.py), the transactional template PATCH endpoint (test_transactional_email.py), and therefresh_hog_flowscommand (test_refresh_hog_flows.py). Each runs the commit callbacks withcaptureOnCommitCallbacks(execute=True).Test rationale, run red against master first:
test_a_failed_reload_publish_is_retried_reported_and_runs_the_callbacks_after_it).reload-hog-flowspublish per affected row.Proofs on this head
8551c2c(saved withfleet proof):f9abed0, maildev as the sink. 21 requests through the public API: template edits then sends by id, code sends, uploads. Each email carries the content just saved.43333f8and on this head. No difference after ids and times are normalized.Earlier proofs, at f3d2122 and before the 2026-10-31 rebase
f3d2122, with cdp-api and both CDP workers at master43333f8(saved withfleet proof): PATCH a transactional template's subject, then send it by id at once, three rounds. Each email has the subject just saved.Earlier live run, before the 2026-10-31 rebase (same code)
Django at the pre-rebase head, cdp-api and the CDP workers at master, on data that master wrote first (saved with
fleet proof). Each send runs about 3 ms after its save answers.transactional_email_pausedCI: the fork has no Depot runners, so those jobs never start, and no secret for the project-board app, so
flags-project-boardfails; the other GitHub-hosted checks pass. The lane check passes: the PR changes only the Python side.Release status
Docs update
None.
🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Agent: Claude Code, Claude Opus 5.5 (claude-opus-5-5)
srv2of map Map: send code-managed email templates with one PostHog call #461. It was part of feat(messaging): mark a code send that leaves the sender to the project #578 and moves here unchanged, minus the edits to test files that are not on master.43333f8on 2026-10-31 by lanedj3. Only import context moved, so no new review round ran.8551c2cretries and reports a failed reload instead ofrobust=True, and drops the commands' own reloads.tdd,writing-tests,modernize-pr,qa-swarm,pr-description,writing-pr-descriptions.Involvement: one decision from Michael; reviewed inside #578 in two rounds; QA swarm on 2026-11-01 with two panel rounds (GPT-6.1 Sol review, Opus 5.5 fresh eyes): 4 findings fixed, 2 rejected; live run and shadow diff captured.
🤖 Generated with Claude Code