feat/user-badge-personalization #18

Merged
aureus merged 2 commits from feat/user-badge-personalization into main 2026-05-26 05:34:38 +00:00
Owner
No description provided.
Adds a Claude-specific guardrail: use ~/watchcraft-worktrees/<name> via
git worktree add + EnterWorktree path:..., not the default .claude/worktrees/.
Nested worktrees pollute the working tree and risk inclusion in tarballs
and grep sweeps even when gitignored.
feat(users): per-user badge personalization with email + Gravatar + DiceBear
Some checks failed
PR Checks / test (pull_request) Has been cancelled
3245d8f3a1
Adds an email column to users (optional in local mode, sourced from
AUTH_EMAIL_HEADER in proxy mode and immutable there) and a configurable
avatar with three kinds:

- initial: SHA-256-derived colour circle with first letter (default)
- gravatar: server-side proxy to gravatar.com hashed by email, cached to
  data/gravatar-images/ for CACHE_GRAVATAR_DAYS, falls back to DiceBear
  on 404 or network failure
- dicebear: one of ten curated styles from @dicebear/collection rendered
  to SVG; users can pick the style and seed at /settings/profile

GET /avatar/:userId serves the badge with an ETag tied to the rendering
inputs so caches refresh when settings change. The new user_badge.njk
macro is used everywhere a user is depicted (nav, member avatar strips,
Group Taste panel, audience selector).

Migration 007 adds email, email_locked, avatar_kind, avatar_style,
avatar_seed columns. Setup wizard and admin user creation accept email.
229 tests pass; docs and .env.example updated.
aureus force-pushed feat/user-badge-personalization from 3245d8f3a1
Some checks failed
PR Checks / test (pull_request) Has been cancelled
to 7a8ed5fdc8
All checks were successful
PR Checks / test (pull_request) Successful in 5m5s
2026-05-26 05:28:33 +00:00
Compare
aureus merged commit 44d6df652d into main 2026-05-26 05:34:38 +00:00
aureus referenced this pull request from a commit 2026-05-26 05:34:40 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
aureus/watchcraft!18
No description provided.