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
44 lines
2.1 KiB
Markdown
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.
|