feat: round finalization with ranking-based outcomes + award pool notifications
All checks were successful
Build and Push Docker Image / build (push) Successful in 10m0s

- processRoundClose EVALUATION uses ranking scores + advanceMode config
  (threshold vs count) to auto-set proposedOutcome instead of defaulting all to PASSED
- Advancement emails generate invite tokens for passwordless users with
  "Create Your Account" CTA; rejection emails have no link
- Finalization UI shows account stats (invite vs dashboard link counts)
- Fixed getFinalizationSummary ranking query (was using non-existent rankingsJson)
- New award pool notification system: getAwardSelectionNotificationTemplate email,
  notifyEligibleProjects mutation with invite token generation,
  "Notify Pool" button on award detail page with custom message dialog

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-03 19:14:41 +01:00
parent 7735f3ecdf
commit cfee3bc8a9
48 changed files with 5294 additions and 676 deletions

View File

@@ -11,7 +11,7 @@ type UserAvatarProps = {
email?: string | null
profileImageKey?: string | null
}
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'
className?: string
showEditOverlay?: boolean
avatarUrl?: string | null
@@ -23,6 +23,7 @@ const sizeClasses = {
md: 'h-10 w-10',
lg: 'h-12 w-12',
xl: 'h-16 w-16',
'2xl': 'h-24 w-24',
}
const textSizeClasses = {
@@ -31,6 +32,7 @@ const textSizeClasses = {
md: 'text-sm',
lg: 'text-base',
xl: 'text-lg',
'2xl': 'text-2xl',
}
const iconSizeClasses = {
@@ -39,6 +41,7 @@ const iconSizeClasses = {
md: 'h-4 w-4',
lg: 'h-5 w-5',
xl: 'h-6 w-6',
'2xl': 'h-8 w-8',
}
export function UserAvatar({