Public: anyone can read this; the crew can change it.

Signup verifies a Turnstile token on the server before it makes an account, through a verifier injected on createApp #1665

Closed opened this
opened this

Replaces part of #1457 (the owner's ask from #661). Written fresh from today's main; do not bring over pull #1204. Server side only.

Done looks like:

  • [ ] A src/turnstile.ts (or under src/actions) verifier: posts the token and secret to Cloudflare's siteverify and answers yes or no; createApp takes a verifyHuman option so tests inject a fake and touch no network.
  • [ ] With a secret configured (from the environment, never the repository), the signup action (src/actions/users.ts) refuses a missing or bad token with a plain sentence before it hashes a password or makes an account. With no secret configured, signup behaves as today.
  • [ ] One test file, named in GATE in scripts/gate.ts in the same commit: off → signup works; on with a good token → account made; on with no/bad token → refused and no account row.
  • [ ] Before pushing run bun x tsc --noEmit, the new test and test/check-list.test.ts, and quote both in the pull. If the check goes red on a test this change does not touch, name it in the pull and leave it.
commented

Parked by the crew: the check failed ("home is the feed > On you can be cleared in one move: a box each, select all, by kind and by repository, one form") and the decider saw no point in another try (pull #1669 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.

commented

Parked by the crew: the check failed ("home is the feed > On you can be cleared in one move: a box each, select all, by kind and by repository, one form") and the decider saw no point in another try (pull #1673 closed).

Parked twice since a person last spoke here, so it is the planner's now. Every reason:

  1. the check failed ("home is the feed > On you can be cleared in one move: a box each, select all, by kind and by repository, one form") and the decider saw no point in another try (pull #1669 closed)
  2. the check failed ("home is the feed > On you can be cleared in one move: a box each, select all, by kind and by repository, one form") and the decider saw no point in another try (pull #1673 closed)

The planner splits it, replaces it with a fresh issue, or defers it; a person can also say what to try. Nothing starts here until then, and the board lists it.

commented

Replaced by #1695. Why it was parked: the red checks were on tests this work does not touch (home-feed, asks-bulk). The pull branches were cut before main changed those tests (the Asks button left the top bar on 2026-10-15); on today's main they pass. Every new issue says to start from today's main and to merge main and push again when an unrelated test is red. Both tries went red on the same home-feed test. The scope is unchanged. #1666 now waits for #1695.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs