The privacy and cookies pages don't mention three things the app stores
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 75/100
- issue の種類
- ドキュメント
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
調査の方向性
src/app/(legal)/ にあるプライバシーと Cookie のページから始め、現在の文言を、issue に記載されたデータ保存の挙動と比較してください: commit-dialog.tsx、src/lib/rate-limit.ts、src/db/schema/rate-limits.ts、src/auth/adapter.ts。Cookie ページのテストと、登録フォームの事前入力に関するヘルプ記事があれば確認してください。両方のページで3項目すべてが正確に開示され、日付が更新され、関連するチェックが通れば完了です。
索引モデルが issue の本文から書いたものです。
説明
Needs your OK: this changes the wording of /privacy and /cookies. Swap pipeline:proposed for pipeline:ready to have it built.
What happens
/privacy and /cookies (src/app/(legal)/) leave out three things the code stores:
- The sign-up form remembers the participant in the browser.
commit-dialog.tsxinsrc/app/s/[slug]/writes{ name, email }tolocalStorageunderopensignup:lastCommitafter every successful sign-up, and reads it back to fill the next form on any signup on the instance. It has no expiry and nothing removes it./cookieslists only cookies, and says every cookie is strictly necessary as its reason for having no banner./privacydescribes only theos_commitcookie. - Rate-limit rows hold email addresses.
/privacysays the server records request IP addresses in short-lived rate-limit records. The per-email buckets (magicLinkPerEmail,loginCodePerEmail,commitmentPerEmail) store the normalized address as the row'ssubject, in plain text (src/lib/rate-limit.ts,src/db/schema/rate-limits.ts). That includes participants' addresses. Organizer ids are subjects too. Rows go within a few hours (sweepExpiredRateLimits, run hourly by housekeeping), so "short-lived" holds. - Google sign-in keeps the avatar address.
createUserinsrc/auth/adapter.tswritesuser.imagetoorganizers.image./privacy's "We store" list for organizers doesn't include it. The Google section says the provider returns an avatar, but says only the account link and tokens are stored.
Fix, in outline
/privacy, participants: one sentence saying the browser keeps the name and email last entered so the next form is filled in, that it never leaves the browser, and that clearing the site's data removes it./cookies: a short "Other storage in your browser" paragraph namingopensignup:lastCommit, what it holds, and that it has no expiry./privacy: say rate-limit records hold request IP addresses and the email address a sign-in link, sign-in code or sign-up is for, deleted within a few hours./privacy: add the avatar's web address to what's stored for organizers who first signed in with a third-party provider.- Bump "Last updated" on both pages.
Choices this makes
- Disclose the prefill rather than remove it. Default: disclose. It's a real convenience for people who sign up often, and nothing leaves the browser. The alternatives are dropping the email from it or giving it an expiry. Those are code changes and a separate issue.
- The "no cookie banner" reasoning. Default: say the prefill is set only after the person signs up, to fill in their own details, and stays in their browser. Don't claim it's strictly necessary. If you'd rather not have that argument on the page, the alternative is to stop storing the email.
- The avatar. Default: disclose it. Nothing reads
organizers.image, so the alternative is to stop writing it, which is a code change and also needs a check that no migration or adapter test depends on it.
Watch for
- CLAUDE.md's "Trust docs reflect the code": use the real key name and real retention, nothing approximate.
src/app/(legal)/has a cookies page test. Update it if it pins the cookie list.- Any help article that describes what the sign-up form remembers should say the same thing.
Done when
- Both pages name each of the three things, with dates bumped.
pnpm lint && pnpm typecheck && pnpm knip && pnpm testpass.
Found by the pipeline's security scout in the legal pages against the participant dialog, rate limits and auth adapter, at bfe814c. Checked by matching each line of code against the page text that should cover it, across all of src/app/(legal)/. https://claude.ai/code/session_016YZ9SUf4VfjDXD1iaVHvCL
- 主要言語
- TypeScript
- スター
- 19
- フォーク
- 4
- 平均マージ
- 22時間 46分
- マージ済み PR(30日)
- 170
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
richshaw/OpenSignup のほかの issue
-
Participant name and notes limits are typed twice, in the schemas and on the participant pages対応中かも @bfs2021 が 2 日前に担当しました。 オープンenhancement good first issue pipeline:ready
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
richshaw/OpenSignup#705 ·
メンテナーはふだん 1 日以内に返信
-
enhancement pipeline:proposed pipeline:ux
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
richshaw/OpenSignup#654 ·
メンテナーはふだん 1 日以内に返信
-
The "what people see" picture on the Close or reopen a signup help page is too small to read on a phone対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンenhancement pipeline:proposed pipeline:ux
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
richshaw/OpenSignup#652 ·
メンテナーはふだん 1 日以内に返信
-
On a phone, a signup's page has two links called "Settings" that go to different places対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンenhancement pipeline:proposed pipeline:ux
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
richshaw/OpenSignup#589 ·
メンテナーはふだん 1 日以内に返信
-
The dashboard shows a draft's public address, which only says the signup isn't ready対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンenhancement pipeline:proposed pipeline:ux
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
richshaw/OpenSignup#588 ·
メンテナーはふだん 1 日以内に返信
richshaw/OpenSignup の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
components-web-app/docs#307 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
localstack/localstack-mcp-server#112 ·
メンテナーはふだん 1 日以内に返信
-
area:frontend kind:bug priority:p1 ready
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
bug ready-for-agent
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
PhyberApex/kuroshiro#1687 ·
メンテナーはふだん 1 日以内に返信
-
Performance (Web Vitals) collector: LCP/FCP from background tabs are not discarded, inflating p75オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
umami-software/umami#4720 ·
メンテナーはふだん 3 日以内に返信