fix(auth): scope blank-input grace window to page mount, not server boot #14

Merged
nrupard merged 1 commit from fix/register-grace-per-page into main 2026-04-14 20:19:40 +02:00
Owner

The hydration race that causes blank submissions is per-page-load: the
Register/Login button becomes clickable before Dioxus wires the
oninput handlers on that specific page. Tying the grace to server
startup only helped users who happened to load within 2 min of boot.

The guard now lives on the client: each page timestamps its own mount
and shows "Something went wrong, please try again" if a blank submit
happens within 2 minutes of that mount, otherwise the generic
"Registration failed" / "Invalid credentials". The client short-circuits
blank submissions so they never hit the server; the server still
rejects blank input defensively with the generic message.

Server-side startup-grace machinery (SERVER_STARTED_AT, STARTUP_GRACE,
server_started_at, within_startup_window, classify_blank_error) and its
unit tests are removed.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

The hydration race that causes blank submissions is per-page-load: the Register/Login button becomes clickable before Dioxus wires the oninput handlers on that specific page. Tying the grace to server startup only helped users who happened to load within 2 min of boot. The guard now lives on the client: each page timestamps its own mount and shows "Something went wrong, please try again" if a blank submit happens within 2 minutes of that mount, otherwise the generic "Registration failed" / "Invalid credentials". The client short-circuits blank submissions so they never hit the server; the server still rejects blank input defensively with the generic message. Server-side startup-grace machinery (SERVER_STARTED_AT, STARTUP_GRACE, server_started_at, within_startup_window, classify_blank_error) and its unit tests are removed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The hydration race that causes blank submissions is per-page-load: the
Register/Login button becomes clickable before Dioxus wires the
oninput handlers on that specific page. Tying the grace to server
startup only helped users who happened to load within 2 min of boot.

The guard now lives on the client: each page timestamps its own mount
and shows "Something went wrong, please try again" if a blank submit
happens within 2 minutes of that mount, otherwise the generic
"Registration failed" / "Invalid credentials". The client short-circuits
blank submissions so they never hit the server; the server still
rejects blank input defensively with the generic message.

Server-side startup-grace machinery (SERVER_STARTED_AT, STARTUP_GRACE,
server_started_at, within_startup_window, classify_blank_error) and its
unit tests are removed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
nrupard deleted branch fix/register-grace-per-page 2026-04-14 20:19:40 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/lets-chat!14
No description provided.