docs+landing: forms email-link decision documented; landing mobile polish
Docs: API_REFERENCE + ARCHITECTURE updated to the owner-chosen email-match association model (incl. anonymous, tradeoff documented) and listMemberSubmissions; HANDOFF pass-32; corrected pass-31 header. Landing: tightened the <=600px breakpoint (nav/section/card padding) and added a <=400px block so the nav fits ~320px without overflow. CSS-only inside media queries; desktop unchanged.
This commit is contained in:
@@ -464,6 +464,16 @@ served by a service-client server action, so the `anon` Postgres role gets no
|
||||
grant on `forms`. Form management is gated by the new additive `forms.manage`
|
||||
permission via `user_has_permission`.
|
||||
|
||||
Email-match association (migration 039 + app, owner-chosen 2026-05): a
|
||||
submission is linked to a member whenever `submitter_email` matches a member
|
||||
in the space — at submit time, on member add/email-change
|
||||
(`linkSubmissionsByEmail`), via self-claim at join/onboarding, and a one-time
|
||||
backfill. This intentionally includes raw anonymous submissions (attribution
|
||||
only, no access); the tradeoff is documented inline in `submitForm` so it is
|
||||
not mistaken for a bug. `forms.manage` holders see a member's submissions on
|
||||
the `/members` per-member panel (`listMemberSubmissions`, RLS-honoring,
|
||||
metadata only).
|
||||
|
||||
### Certifications & Instructor (migration 030)
|
||||
|
||||
`certifications` (per-space cert types; optional `validity_months`;
|
||||
|
||||
Reference in New Issue
Block a user