---
phase: 28-profile-and-logto-integration
plan: 03
subsystem: client, server
tags: [navigation, auth, logto-config]
key-files:
  created: []
  modified:
    - src/client/components/UserMenu.tsx
    - src/server/routes/auth.ts
    - src/client/hooks/useAuth.ts
metrics:
  tasks: 1/2
  commits: 1
  files-changed: 3
---

# Plan 28-03 Summary: Navigation, /me Extension, Logto Configuration

## What Was Built

1. **Profile navigation link** — Added "Profile" entry to UserMenu dropdown (above Settings), using circle-user icon from curated Lucide set. Only visible to authenticated users.

2. **Extended /me endpoint** — Returns `createdAt` field from user record for member-since display on profile page. Formatted as ISO string.

3. **AuthState type update** — Added optional `createdAt?: string` to the client-side AuthState interface.

## Task 2: Logto Console Configuration (PENDING - Human Action Required)

The following must be configured manually in the Logto admin console:
- D-07: Sign-in page branding (logo, colors, custom CSS)
- D-08: Custom domain (auth.gearbox.de) — optional
- D-09: Google and GitHub social sign-in connectors
- D-10: Email verification required at signup
- D-11: Password policy (8+ chars, mixed case, number)

## Commits

| # | Hash | Description |
|---|------|-------------|
| 1 | 1b00134 | feat(28-03): add profile navigation link and extend /me with createdAt |

## Deviations

- Task 2 (Logto Console config) is a human-action checkpoint — cannot be automated. Instructions are documented in the plan.

## Self-Check: PASSED

- [x] UserMenu has Profile link pointing to /profile
- [x] /me endpoint returns createdAt field
- [x] AuthState interface includes createdAt
- [x] Lint passes
- [x] All project tests pass (storage failures are pre-existing)
