A New signup description with line breaks can pass the form, then be refused as too long
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 85/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- next.js, react, typescript
- 領域
- full-stack
調査の方向性
データフローを確認するために createSignupAction と SignupCreateInputSchema を読む。アクションの隣に、説明内で \r\n を \n に置き換えるヘルパーを createSignup の前に追加し、単体テストで固定する。pnpm lint && pnpm typecheck && pnpm knip && pnpm test を実行する;1,996文字、4改行の提出が \n 改行で保存され、すべてのチェックが通ると完了。
索引モデルが issue の本文から書いたものです。
説明
What happens
The description box on the New signup form (src/app/app/(chrome)/signups/new/page.tsx) has maxLength 2,000. The browser counts each line break as 1 character. When the form is sent, each line break becomes \r\n, which is 2 characters. createSignupAction passes the text on as it arrives, and SignupCreateInputSchema refuses anything over DESCRIPTION_MAX_LENGTH (2,000).
So a description near the limit with a few paragraph breaks passes in the browser, then the server refuses it with zod's own "String must contain at most 2000 character(s)". The form then comes back empty (#721).
Checked in Chromium: a textarea holding 1,996 letters and 4 line breaks reports a length of 2,000 and is valid. Sent with new FormData(form), the way a server action sends it, the server receives 2,004 characters with 4 \r\n.
Fix, in outline
- In
createSignupAction, turn\r\ninto\nin the description before callingcreateSignup. The browser and the server then count the same way. - Put that in a small helper next to the action, so a unit test can pin it.
Watch for
- The Build tab already saves
\n. It sends the textarea's value as JSON, so this makes both paths store the same thing. - Leave the schema alone. Don't change
DESCRIPTION_MAX_LENGTHorSignupCreateInputSchema. The API, the MCP tools and Magic Compose don't go through this form. - #721 changes the same action. Whichever lands second has a small merge.
Done when
- A description of 1,996 letters and 4 line breaks, sent as the browser sends it (
\r\n), creates the signup, and the saved description has 4\nbreaks. - A test pins that.
pnpm lint && pnpm typecheck && pnpm knip && pnpm testpass.
From the owner's review of #706. Checked against main at 2d4fdfe by reading createSignupAction and SignupCreateInputSchema, and in Chromium as above. Session: https://claude.ai/code/session_016YZ9SUMiUBccns5PMgoNS1
- 主要言語
- TypeScript
- スター
- 19
- フォーク
- 4
- 平均マージ
- 23時間 28分
- マージ済み PR(30日)
- 173
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
richshaw/OpenSignup のほかの issue
-
bug pipeline:ready pipeline:ux
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
richshaw/OpenSignup#723 ·
メンテナーはふだん 1 日以内に返信
-
Magic Compose calls fields "columns" on the draft banner, the drafting screen and its warnings対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンbug pipeline:ready pipeline:ux
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
richshaw/OpenSignup#719 ·
メンテナーはふだん 1 日以内に返信
-
The "You're in." confirmation doesn't say which email address it used対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンenhancement pipeline:ready pipeline:ux
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
richshaw/OpenSignup#715 ·
メンテナーはふだん 1 日以内に返信
-
The privacy and cookies pages don't mention three things the app stores対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンbug pipeline:ready pipeline:ux
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
richshaw/OpenSignup#711 ·
メンテナーはふだん 1 日以内に返信
-
Participant name and notes limits are typed twice, in the schemas and on the participant pages対応中かも @bfs2021 が 3 日前に担当しました。 オープンenhancement good first issue pipeline:ready
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
richshaw/OpenSignup#705 ·
メンテナーはふだん 1 日以内に返信
richshaw/OpenSignup の issue をすべて見る
似ている issue
-
area:cli bug P4
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
bug from-studio
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
esengine/DeepSeek-Reasonix#14868 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
loopbackio/loopback-next#11878 ·
メンテナーはふだん 2 日以内に返信
-
bug 🐛
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
comunica/comunica#1925 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信