Skip to content

feat(workflows): let the node hog flow type hold a waiting for domain status - #617

Draft
Silthus wants to merge 1 commit into
t3/workflows-sender-verification-refreshfrom
wf71/sov-v1n-hogflow-waiting-status
Draft

Silthus wants to merge 1 commit into
t3/workflows-sender-verification-refreshfrom
wf71/sov-v1n-hogflow-waiting-status

Conversation

@Silthus

@Silthus Silthus commented Oct 27, 2026

Copy link
Copy Markdown
Owner

Problem

"Send once verified" adds a waiting_for_domain workflow status: Enable saves it while the sender's email domain is unverified. #590 adds that status in Django and widened the node HogFlow schema in the same diff. Upstream rejects a PR that mixes Python and nodejs/ changes, so #590 cannot land as it stands.

Part of Silthus/personal#196. This PR lands before #590.

Note

🟢 Merge risk: low · two-way door (merge-risk rubric)

  • One value added to the status enum of HogFlowSchema. No runtime code parses hog flows with this schema; it gives the shared HogFlow type.
  • The node side loads only status='active' workflows, so a waiting workflow never reaches the worker. Nothing changes at runtime.

Changes

Production lines: 2 (+1 −1) by git diff --numstat against the base branch.

The base is t3/workflows-sender-verification-refresh (#590's base), so the diff is that one line. The commit also applies cleanly on today's master.

How did you test this code?

  • Lane gate on HEAD (on the leased box): pnpm typescript:check in nodejs/ is clean, oxlint and eslint pass on the changed file, and src/cdp/schema/hogflow.test.ts passes.
  • hogli ci:preflight --strict at push reported no failures.
  • CI: fork CI cannot run here, so CI on HEAD is a recorded gap.

Test rationale: no new test. The schema gives a type only, and the node side never loads a waiting workflow, so no runtime behavior can regress. The typecheck is the seam: it fails if node code switches over HogFlow['status'] without the new value.

Proofs (recorded with fleet proof):

Proof Status
Lane gate Typecheck, lint and the schema test pass on HEAD.
Live run, UI walk Not owed: type-only change with no runtime path.
CI Gap: fork CI cannot run.

Release status

  • No feature flag controls this change

The type change has no runtime effect. Only workflows-email-domain-wizard makes a workflow wait.

Docs update

None.

🤖 Agent context

Autonomy: Human-driven (agent-assisted)

Agent: Claude Code, Opus 5.5 (claude-opus-5-5)

Question Answer Who Where
Base of the nodejs PR? #590's base branch, so the diff is the one line; the commit also applies on master. 🤖 Agent Silthus/personal#196
New test for the enum value? None; the schema is type-only and node never loads a waiting workflow, so the typecheck is the seam. 🤖 Agent Silthus/personal#196

Involvement: one GPT-6.1 Sol review; lane gate captured.

🤖 Generated with Claude Code

… status

The Django side gains a waiting_for_domain status for a workflow that waits
for its sender domain to verify. The node side only loads active workflows,
so this change keeps the shared HogFlow type in step and changes no runtime
behavior. It lands before the Django change so neither PR mixes lanes.

Refs Silthus/personal#196

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant