feat: round finalization with ranking-based outcomes + award pool notifications
All checks were successful
Build and Push Docker Image / build (push) Successful in 10m0s
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:
@@ -14,8 +14,7 @@ const generalSettingsFields = {
|
||||
conceptAdvanceCount: z.number().int().nonnegative().optional(),
|
||||
advanceMode: z.enum(['count', 'threshold']).default('count'),
|
||||
advanceScoreThreshold: z.number().min(0).max(10).optional(),
|
||||
notifyOnEntry: z.boolean().default(false),
|
||||
notifyOnAdvance: z.boolean().default(false),
|
||||
gracePeriodHours: z.number().int().nonnegative().default(0),
|
||||
}
|
||||
|
||||
// ─── 1. IntakeConfig ─────────────────────────────────────────────────────────
|
||||
@@ -193,6 +192,9 @@ export const MentoringConfigSchema = z.object({
|
||||
|
||||
promotionTargetWindowId: z.string().optional(),
|
||||
autoAssignMentors: z.boolean().default(false),
|
||||
|
||||
mentoringRequestDeadlineDays: z.number().int().positive().default(14),
|
||||
passThroughIfNoRequest: z.boolean().default(true),
|
||||
})
|
||||
|
||||
export type MentoringConfig = z.infer<typeof MentoringConfigSchema>
|
||||
|
||||
Reference in New Issue
Block a user