founders-break/ops/README.md
gator 3572291933 Fix reminder postal configuration and require deliberate RSVP confirmation
Link previews no longer submit answers. Failed queue attempts retain reusable drafts; recipient queues prevent duplicate retries.

Tested: 18 isolated regressions pass; 13 fail on baseline.
AI-Agent: Codex (OpenAI)
AI-Session: 01a14186-e2ee-77b1-9526-a32c58cd6a00
2026-10-22 14:05:19 +00:00

44 lines
2.1 KiB
Markdown

# Corben function sources
These two files are the source of truth for the Corben functions behind the RSVP
flow. They do NOT deploy with the site: `deploy_site` only serves the site, and
Corben functions live in the platform, not in this repo. They are checked in so
the logic is reviewable and diffable instead of only existing inside the API.
To change one, edit here and push it up:
```bash
KEY=$(grep '^CORBEN_API_KEY=' ~/.corben.env | cut -d= -f2-)
jq -n --rawfile code ops/founders-break-rsvp.js '{code:$code}' \
| curl -sS -X PUT https://api.corben.world/functions/3d3c4bed-c073-40a4-9a32-9ff6944737dd \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" -d @-
```
The reminder is `cf2a1e4c-43f9-4cf4-8fc5-652c494940ae`. Their `env` (CORBEN_KEY,
LIST_ID, FROM, FROM_ADDRESS_ID, NOTIFY, and reminder POSTAL_ADDRESS) is set on the function record and is not
in these files. Never paste the key into this repo.
Test without waiting for a real submission:
```
execute_function id=3d3c4bed-... event={"form_name":"rsvp","data":{"name":"...","email":"..."}}
execute_function id=cf2a1e4c-... event={"force":true} # sends for real
```
## October 22 reliability repair
Email links now display a confirmation screen. Opening or previewing a link
does not POST a form. The RSVP function also rejects reminder responses without
the confirmation flag, and repeated answers send no duplicate notifications.
New reminder links carry their event date; stale dated links cannot answer for
the current week. Existing undated links show the current event date explicitly
before confirmation.
POSTAL_ADDRESS is required before campaign creation and is passed in the
send_campaign delivery configuration. The reminder reuses an unsent draft after
failure, records prepared versus queued state, and checks the campaign status
and durable recipients before retrying. Queued, sent or paused campaigns are
never re-sent. A prepared marker alone is not a successful send.
Run `node --test ops/regression.test.cjs` for network-isolated source tests.
They mock all API calls, including mail. Never use `force: true` as a smoke test.