@@ -216,7 +216,7 @@ export class ScoringResultService {
216216
217217 /**
218218 * Processes one scorer callback payload after verifying the challenge config exists,
219- * then completes any SYSTEM review before final summation writes .
219+ * then writes terminal summations before completing any SYSTEM review .
220220 */
221221 async processScoringResult (
222222 payload : ScoringResultCallbackPayload ,
@@ -279,18 +279,6 @@ export class ScoringResultService {
279279 payload . score ,
280280 ) ;
281281
282- await this . completeSystemReviewIfNeeded (
283- token ,
284- payload . reviewId ,
285- currentReviewScore ,
286- normalizedPhase ,
287- {
288- challengeId : payload . challengeId ,
289- scorecardId : fallbackScorecardId ,
290- submissionId : payload . submissionId ,
291- } ,
292- ) ;
293-
294282 await this . upsertFromLegacyReviewPayload ( token , {
295283 legacyReview : payload . currentReview ,
296284 fallbackSubmissionId : payload . submissionId ,
@@ -311,6 +299,18 @@ export class ScoringResultService {
311299 } ) ;
312300 }
313301
302+ await this . completeSystemReviewIfNeeded (
303+ token ,
304+ payload . reviewId ,
305+ currentReviewScore ,
306+ normalizedPhase ,
307+ {
308+ challengeId : payload . challengeId ,
309+ scorecardId : fallbackScorecardId ,
310+ submissionId : payload . submissionId ,
311+ } ,
312+ ) ;
313+
314314 await this . notifyScoringCompletionEmailIfReady (
315315 token ,
316316 payload ,
@@ -328,6 +328,7 @@ export class ScoringResultService {
328328 testPhase : normalizedPhase ,
329329 } ) ;
330330
331+ await this . upsertReviewSummation ( token , normalizedPhase , reviewPayload ) ;
331332 await this . completeSystemReviewIfNeeded (
332333 token ,
333334 payload . reviewId ,
@@ -339,7 +340,6 @@ export class ScoringResultService {
339340 submissionId : payload . submissionId ,
340341 } ,
341342 ) ;
342- await this . upsertReviewSummation ( token , normalizedPhase , reviewPayload ) ;
343343 await this . notifyScoringCompletionEmailIfReady (
344344 token ,
345345 payload ,
@@ -452,6 +452,7 @@ export class ScoringResultService {
452452 testPhase : normalizedPhase ,
453453 } ) ;
454454
455+ await this . upsertReviewSummation ( token , normalizedPhase , reviewPayload ) ;
455456 await this . completeSystemReviewIfNeeded (
456457 token ,
457458 input . reviewId ,
@@ -463,7 +464,6 @@ export class ScoringResultService {
463464 submissionId : input . submissionId ,
464465 } ,
465466 ) ;
466- await this . upsertReviewSummation ( token , normalizedPhase , reviewPayload ) ;
467467 }
468468
469469 /**
@@ -755,7 +755,7 @@ export class ScoringResultService {
755755 /**
756756 * Recomputes relative scores for the latest submission from each member while
757757 * holding a challenge/phase advisory lock for the read-compute-write cycle.
758- * Completes the current SYSTEM review before writing the recomputed summations .
758+ * Writes recomputed summations before completing the current SYSTEM review .
759759 * Returns undefined when relative scoring cannot be applied and the caller
760760 * should fall back to direct review upserts.
761761 */
@@ -894,18 +894,6 @@ export class ScoringResultService {
894894 return undefined ;
895895 }
896896
897- await this . completeSystemReviewIfNeeded (
898- token ,
899- payload . reviewId ,
900- currentReviewPayload . payload . aggregateScore ,
901- testPhase ,
902- {
903- challengeId : payload . challengeId ,
904- scorecardId : fallbackScorecardId ,
905- submissionId : payload . submissionId ,
906- } ,
907- ) ;
908-
909897 for ( let index = 0 ; index < relativeReviewPayloads . length ; index += 1 ) {
910898 const reviewPayload = relativeReviewPayloads [ index ] ;
911899 const reviewId = this . asString ( reviewPayload . reviewObject . id ) ;
@@ -930,6 +918,18 @@ export class ScoringResultService {
930918 ) ;
931919 }
932920
921+ await this . completeSystemReviewIfNeeded (
922+ token ,
923+ payload . reviewId ,
924+ currentReviewPayload . payload . aggregateScore ,
925+ testPhase ,
926+ {
927+ challengeId : payload . challengeId ,
928+ scorecardId : fallbackScorecardId ,
929+ submissionId : payload . submissionId ,
930+ } ,
931+ ) ;
932+
933933 return currentReviewPayload ?. payload . aggregateScore ;
934934 }
935935
@@ -2801,7 +2801,7 @@ export class ScoringResultService {
28012801 }
28022802
28032803 /**
2804- * Completes the originating review record before final SYSTEM summations are persisted.
2804+ * Completes the originating review record after final SYSTEM summations are persisted.
28052805 */
28062806 private async completeSystemReviewIfNeeded (
28072807 token : string ,
0 commit comments