feat: user profile page and nav avatar dropdown (#35) #45
Reference in New Issue
Block a user
Delete Branch "feat/35-profile-page"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
MM), falling back to a person icon; clicking opens a dropdown with a/profilelink and logout/profile): two-card layout — personal info form (first name, last name, birth date, email, contact) and password change form, each with independentuse:enhanceactions/users/[id]): read-only view of another user's name, username, email, and contactfirstName,lastName,birthDate,contactfields onAppUser(V7 migration);PUT /api/users/me,POST /api/users/me/password,GET /api/users/{id}endpointshandleFetchhook no longer skips auth headers for/api/users/mesub-paths (the hook's own user-load usesglobalThis.fetchand is unaffected)AppUserschema fieldsTest plan
/profile; Escape closes dropdown/users/<id>shows name and contact for a known usernpm run test— layout spec (7/7 pass), all other existing specs passnpm run check— 0 errorsnpm run lint— clean🤖 Generated with Claude Code
Add firstName, lastName, birthDate, contact to AppUser via V7 migration. Add PUT /api/users/me and POST /api/users/me/password endpoints. Add GET /api/users/{id} for public profile lookup. Add EMAIL_ALREADY_IN_USE and WRONG_CURRENT_PASSWORD error codes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>