1e6713f531
Original task #33: The admin "Most active users" leaderboard rendered only a colored circle with the first letter of each user's name even though the API already returns each user's avatarUrl. Changes: - artifacts/teaboy-os/src/pages/admin.tsx - Added a small LeaderboardAvatar component that renders the avatar image when available and falls back to the initial when there is no avatarUrl or when the image fails to load (onError). - The avatar URL is resolved through the existing resolveServiceImageUrl helper (consistent with chat.tsx). - Kept the existing emerald circle styling as the fallback background; added overflow-hidden so the rounded image is clipped. - useEffect resets the error state when the src changes so a later valid URL still attempts to load. No API or schema changes were required (avatarUrl is already returned by GET /admin/stats and present in the generated client types). Pre-existing TypeScript errors in admin.tsx / chat.tsx / clock files are unrelated to this task and were not touched. Replit-Task-Id: a0fe21b3-7422-48ba-9731-ed8315eb9d68