Halopen output
“"In apps slash web slash app slash api slash users slash route dot ts, the create-user handler currently writes the user row, then sends the welcome email, then enrolls the user in the default Stripe trial — all sequentially, all without a transaction. If any step after the database write fails, the user exists in the system in a half-onboarded state. Refactor it so the row write is committed first, then the welcome email and the Stripe enrollment run as background tasks via the existing inngest queue. Use the queue helper from lib slash queue dot ts; don't inline a new queue client. Add error handling that retries the email/Stripe steps up to three times with exponential backoff, and on final failure inserts a row into the onboarding-failures table for an admin to triage. Don't change the public API of the handler — the response shape stays the same."”
- · 170-word multi-constraint prompt dictated in a single 60-second hold
- · Five distinct constraints stacked, all preserved verbatim
- · File paths, helper names, and table names captured exactly
- · "Don't change the public API" — preference preserved exactly as spoken
- · Voice version: ~60 seconds; typed version would have been 3-4 minutes