Implement Workstream I: Account pages with code review fixes

Add account management UI with profile settings, authentication options,
device/passkey management, and session management pages.

Key changes:
- Add account pages: profile, auth, devices, sessions
- Add dialog components: confirm, add-passkey, change-password, rename-passkey
- Return passkeyId from verifyRegistration to fix race condition
- Add hasPassword field to user schema
- Add aria-label to dialog close button for accessibility
- Add avatar URL validation and fix phone input styling
- Add comprehensive test plan documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
RevIQ
2026-01-09 18:04:02 +08:00
parent 2655c57b9e
commit 1083cde9b7
32 changed files with 2369 additions and 11 deletions

View File

@@ -88,7 +88,7 @@ export const contract = oc.router({
response: z.custom<RegistrationResponseJSON>(),
}),
)
.output(z.void()),
.output(z.object({ passkeyId: z.number() })),
createAuthenticationOptions: oc.output(
z.object({
challengeId: z.number(),

View File

@@ -15,6 +15,7 @@ export const userProfileSchema = z.object({
emailVerified: z.boolean(),
needsSetup: z.boolean(),
isSuperuser: z.boolean(),
hasPassword: z.boolean(),
});
/**