6.16 Public Overview tagline 140-char limit too short for Motir's own 149-char tagline — can't save
Symptom. On the public project page Overview, the hero tagline cannot hold Motir's own intended tagline — the editor blocks anything over 140 characters, so the canonical line
"Vibe your whole project. Bring an idea — Motir's three AI layers plan it, track it, and ship it, end to end. You're looking at Motir, built in Motir."
(149 chars) can't be entered or saved.
Repro. Public page → Overview → admin in-place edit → paste/type the tagline above → the textarea hard-stops at 140 chars (the trailing ", built in Motir." is dropped); pasting the full string then saving would also 422.
Root cause (verified 2026-06-16, rung 2). PUBLIC_TAGLINE_MAX_LENGTH = 140 (lib/publicProjects/limits.ts:15), enforced twice:
- Client —
maxLength={PUBLIC_TAGLINE_MAX_LENGTH}on the tagline input (app/(public)/_components/PublicOverviewEditor.tsx:359), which prevents typing/pasting past 140. - Server —
projectsService.updatePublicOverviewthrowsProjectTaglineTooLongErrorwhentrimmed.length > PUBLIC_TAGLINE_MAX_LENGTH(lib/services/projectsService.ts:735;lib/projects/errors.ts:54→PROJECT_TAGLINE_TOO_LONG).
140 (a tweet-era limit) is too short for the product's own hero tagline (149) — the limit blocks the canonical content it's meant to hold.
Candidate fix (for triage, not pre-decided). Raise PUBLIC_TAGLINE_MAX_LENGTH to comfortably fit the intended tagline (e.g. 160–200; mirror: GitHub repo description ≈ 350, Linear/Notion page descriptions are not this tight) — a single const that flows to both the client maxLength and the server guard. Then VERIFY the PublicOverviewHero layout (PublicOverviewHero.tsx:48) still renders cleanly at the longer length (wrap/clamp), and update the two limit tests that assert at PUBLIC_TAGLINE_MAX_LENGTH + 1 (tests/project-details-service.test.ts:444, tests/publicProjects/publicOverviewEdit.test.ts:106). Alternatively, if 140 is to stay, the long pitch belongs in the hero BODY, not the tagline — but the report is that the tagline itself should hold it.
Acceptance criteria
- An admin can enter and save the 149-char Motir tagline above on the public Overview; it renders correctly in the hero.
- Client + server agree on the (new) limit via the single
PUBLIC_TAGLINE_MAX_LENGTHconst; the hero layout holds at max length. - The two
+ 1boundary tests track the new value.
Context refs
lib/publicProjects/limits.ts:15(the const),lib/services/projectsService.ts:734-738,lib/projects/errors.ts:50-54app/(public)/_components/PublicOverviewEditor.tsx:359(clientmaxLength),app/(public)/_components/PublicOverviewHero.tsx:48(render)tests/project-details-service.test.ts:444,tests/publicProjects/publicOverviewEdit.test.ts:106