Skip to content

feat(friends): add private friends leaderboard - #67

Merged
IsaacThoman merged 60 commits into
mainfrom
feat-friends-system
Aug 14, 2026
Merged

feat(friends): add private friends leaderboard#67
IsaacThoman merged 60 commits into
mainfrom
feat-friends-system

Conversation

@IsaacThoman

@IsaacThoman IsaacThoman commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • replace the anonymous global leaderboard with a private accepted-friends usage circle
  • add required, case-insensitively unique usernames across setup, web/native signup, admin creation, profile contracts, and management settings
  • add a Change username Account modal matching the password flow and show @username beside the display name in the Account header
  • add profile colors, normalized avatars, friend requests, blocking, rate limits, and transactional relationship changes
  • add the responsive Friends page, pending-request badge, shared avatars, and the canonical /usage/friends route
  • preserve friend/profile data and avatar blobs in full-instance backup and restore while accepting older backups
  • remove nickname and legacy public-leaderboard profile fields, and keep user chat messages avatar-free

Migration

  • migration 0029 adds profile fields, friendships, and user blocks and intentionally removes the legacy nickname and leaderboard visibility/color data
  • migration 0030 assigns every existing account a collision-safe pulpo username, makes usernames non-null, and retains case-insensitive uniqueness
  • restoring a pre-feature backup applies the same pulpo fallback to accounts without usernames

Verification

  • npm run lint -- --deny-warnings
  • npm run build
  • npm test (576 tests across all workspaces)
  • desktop and 390px responsive browser QA for the Friends implementation
  • git diff --check

# Conflicts:
#	apps/server/drizzle/meta/0031_snapshot.json
#	apps/server/drizzle/meta/_journal.json
# Conflicts:
#	apps/server/src/settings/routes.ts
# Conflicts:
#	apps/server/src/settings/model-preferences.test.ts
#	apps/server/src/settings/model-preferences.ts
#	apps/web/src/features/settings/SettingsBridge.tsx
#	apps/web/src/stores/settings.ts
#	packages/contracts/src/index.test.ts
#	packages/contracts/src/index.ts
@IsaacThoman
IsaacThoman merged commit 8cdcc67 into main Aug 14, 2026
13 checks passed
@IsaacThoman
IsaacThoman deleted the feat-friends-system branch August 14, 2026 03:20
@isaacthoman-bee-coolify2

Copy link
Copy Markdown

The preview deployment for pulpo:main failed. 🔴

Open Build Logs | Open Application Logs

Last updated at: 2026-08-14 03:20:10 CET

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant