Files
tessera-ctl/.planning/quick/260630-user-settings-bugfix/PLAN.md
T
schalli 2869da83c0 chore: planning artifacts + mcp.json update
- .mcp.json: Playwright MCP config
- 08-UAT.md: Phase 8 UAT results
- quick task summaries: 260630 user-settings, 260701 calendar domain

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-02 08:57:44 +02:00

1.7 KiB

slug, date, status
slug date status
user-settings-bugfix 2026-06-30 in-progress

User Settings Bug Fixes

Fix two bugs found during Playwright verification of the account settings page.

Bug 1: Stale password error message

Problem: After a failed password submit (e.g. wrong current password), the error message stays visible while the user types new values. It only disappears on the next submit.

Fix: Add onChange handlers to all three password inputs in account-settings-form.tsx that clear pwError and pwMismatch state when the user starts typing.

File: apps/web/src/components/settings/account-settings-form.tsx

Bug 2: Header avatar no live update

Problem: After successful avatar upload, the avatar in the account settings form updates immediately, but the small header avatar (top-right) still shows the "A" initial until page reload. The header reads user.hasAvatar from the Zustand auth store, which is never updated after upload.

Fix:

  1. Add avatarVersion: number and bumpAvatarVersion: () => void to auth-store.ts
  2. In account-settings-form.tsx: after successful upload, call bumpAvatarVersion() AND update user.hasAvatar = true in the store via setUser
  3. In header.tsx: use avatarVersion from the store as a cache-busting query param on the avatar img src

Files:

  • apps/web/src/lib/stores/auth-store.ts
  • apps/web/src/components/settings/account-settings-form.tsx
  • apps/web/src/components/layout/header.tsx

Tasks

  • auth-store: add avatarVersion + bumpAvatarVersion
  • account-settings-form: clear errors on input change; call bumpAvatarVersion + update store hasAvatar on upload success
  • header: use avatarVersion as cache-busting param in avatar img src