Repository navigation
feat: Helius perk application form at /perks/helius - #122
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @thomgabriel's task in 22s —— View job Verdict: safe to merge. No findings. I checked the diff against CLAUDE.md in the priority order given:
I didn't run the tests or the build. One small thing that doesn't meet the bar for a finding: if the |
|
Claude finished @thomgabriel's task in 18s —— View job Verdict: safe to merge. No findings. I re-checked the diff after the new commit (
One thing that isn't a finding: if the |
Kuka asked for a form on our site for the new Superteam x Helius perk. Builders sign in, tell us their name, WhatsApp, project name, a summary and where they would use Helius; the team vets each one by hand and sends the activation code.
Same shape as the startup form: one application per person, editable afterwards, name and WhatsApp saved on
users, e-mail from the login. A first-time applicant who already described a project starts with it filled in, from the startup form if there is one, else from "Sobre você", both fields from the same source. Global admins get a "Perks" card on/adminwith the count and a CSV download (paginated past the 1,000-row cap). First application firesperk_appliedand an RD conversionglobal_2026_perk_helius.Migration 00068 is already applied to production (additive table). RLS was checked by impersonation: own row readable and editable, another user's row invisible and not writable, anon refused. The table revokes everything from
authenticatedbefore granting select/insert/update, because the default privileges also grant DELETE and TRUNCATE; the rest of the schema has the same TRUNCATE grant, which is out of scope here.Tested end to end at 390px with a throwaway account (deleted): signed-out hero, validation errors, send, confirmation, edit, admin CSV, 403 for non-admins. 267 unit tests pass.
The tier copy (Developer 1 year, Business 3 months) comes from the brief Kuka shared; it lives in
constants.tsfor edits.