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:
maxLength={PUBLIC_TAGLINE_MAX_LENGTH} on the tagline input (app/(public)/_components/PublicOverviewEditor.tsx:359), which prevents typing/pasting past 140.projectsService.updatePublicOverview throws ProjectTaglineTooLongError when trimmed.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.
PUBLIC_TAGLINE_MAX_LENGTH const; the hero layout holds at max length.+ 1 boundary tests track the new value.lib/publicProjects/limits.ts:15 (the const), lib/services/projectsService.ts:734-738, lib/projects/errors.ts:50-54app/(public)/_components/PublicOverviewEditor.tsx:359 (client maxLength), app/(public)/_components/PublicOverviewHero.tsx:48 (render)tests/project-details-service.test.ts:444, tests/publicProjects/publicOverviewEdit.test.ts:106