Repository navigation
Conversation
This was referenced Oct 27, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…working Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nges type A stored email step that turns into a generic function step no longer keeps its sandbox sender as an unchanged value, so the step-type rule rejects it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Projects without workflows-sandbox-sender skip the sandbox sender checks and their integration lookup, so the save path stays as it was for everyone else. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Silthus
force-pushed
the
workflows-sandbox-product/channels-row
branch
from
October 28, 2026 10:00
1f4ddaf to
ed38f61
Compare
Silthus
force-pushed
the
workflows-sandbox-product/save-validation
branch
from
October 28, 2026 10:00
356d02f to
d233d18
Compare
Silthus
changed the base branch from
workflows-sandbox-product/channels-row
to
workflows-sandbox-product/email-step-picker
October 28, 2026 10:00
This was referenced Oct 28, 2026
Silthus
added a commit
that referenced
this pull request
Oct 28, 2026
Silthus
added a commit
that referenced
this pull request
Oct 28, 2026
This branch has not been deployed
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.
Problem
Stack
workflows-sandbox-product/email-step-picker(feat(workflows): offer the sandbox sender in workflow email steps #629). Lands after feat(workflows): offer the sandbox sender in workflow email steps #629 and every PR below it.workflows-sandbox-senderis on for the project. With the flag off, a save skips the sandbox checks and their integration lookup.d233d18682a: ruff clean, Workflows and CDP sandbox suites 473 passed. Review: GPT-6.1 Sol through a delegated review of the restack (each PR's diff, its conflict resolutions, the slice seams and the save gate), no findings.d233d18682a, 2026-10-28: live run and UI walk below. Proof gate: fails only on the fork-onlycigap (exit 3); every other check passes.Impact
Keeps the sandbox funnel step honest: a sandbox send only happens where the trial allows it.
Merge Danger
Caution
🔴 Merge risk: high · two-way door (merge-risk rubric)
Changes
integrationIdnext to an own rotation does not block a save.Production lines (tests excluded): 223, from
git diff --numstatagainst #629.How did you test this code?
Live run on the slice tip
7f851f2a9dcon a PostHog preview. Stubs: a local SES endpoint that records each call, andexample.comseeded as a valid MX domain.from: {integrationId: <sandbox>}and an empty reply-to, and a test send from it reached SES.d233d18682a: the same save requests against this PR's base and head. Only the sandbox cases outside workflow email steps changed, from accepted to 400; every other case returned the same response.Lane gate on the head, run on a Fleet box:
products/cdp/backend/test/test_validation.py: 896 passed.products/cdp/backend/api/test/): 333 passed.test_validation.py: 207 passed; the hog flow API suite: 594 passed.uv run mypy --cache-fine-grained .): no issues, on the stack head.hogli ci:preflight --strict: 0 failures.Test rationale:
test_sandbox_sender_validation.py: each place the sandbox sender is allowed or rejected, rotation with other senders, overrides, the flag, unchanged steps, and test sends. Carried from feat(workflows): validate sandbox sender use at save time #430; no existing test covered the sandbox sender.integrationIdbeside an own rotation, and an email step changed to a generic function step with the sender unchanged. Each failed before its fix; the last returned 200.test_broadcast_conversion.py: conversion refuses a workflow on the sandbox sender.test_validation.py: one assertion follows the shared cache rename.Proof (
fleet proof, on a preview of the stack):Release status
Docs update
docs/internal/workflows-email-sending-tiers.mdnames the save-time rules.🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Agent: Claude Code, Claude Opus 5.5 (carving); review by GPT-6.1 Sol
tdd,writing-tests,writing-pr-descriptions,pr-description,merge-risk,qa-swarmdesign pass.Decisions
Involvement: no grilling rounds; one design pass (GPT-6.1 Sol); one review round and two final reads (GPT-6.1 Sol); proof captured.
🤖 Generated with Claude Code