Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
Commitfa06ad2unknown_key

fix(login): render the passkey sign-in button (dead JS handler)

fix(login): render the passkey sign-in button (dead JS handler)

Sibling defect to the SSO button fix. `/login` ships an inline JS
block that wires up `#pk-signin-btn` to the WebAuthn assertion flow
(`/api/passkeys/auth/options` → `navigator.credentials.get` →
`/api/passkeys/auth/verify`), but the button and its status element
were never rendered in the JSX. Passkey sign-in was unreachable from
`/login`.

Adds a "Sign in with passkey" button (`#pk-signin-btn`) and the
`#pk-signin-status` aria-live region after the SSO block. The existing
JS detects unsupported browsers and surfaces "Passkeys not supported"
inline.

Suite: 1273 / 0 fail.
Claude committed on May 13, 2026Parent: 09be7bf
1 file changed+110fa06ad2b73916338142a354f2848cadeef37e59d
1 changed file+11−0
Modifiedsrc/routes/auth.tsx+11−0View fileUnifiedSplit
228228 <LinkButton href="/login/sso">Sign in with {ssoLabel}</LinkButton>
229229 </div>
230230 )}
231 <div class="auth-passkey">
232 <div class="auth-divider">or</div>
233 <button type="button" id="pk-signin-btn" class="btn">
234 Sign in with passkey
235 </button>
236 <div
237 id="pk-signin-status"
238 class="auth-status"
239 aria-live="polite"
240 ></div>
241 </div>
231242 <p class="auth-switch">
232243 <Text>New to gluecron? <a href="/register">Create an account</a></Text>
233244 </p>
234245