Simplify routing to award assignment, seed all CSV entries, fix category mapping
All checks were successful
Build and Push Docker Image / build (push) Successful in 8m3s

- Remove RoutingRule model and routing engine (replaced by direct award assignment)
- Simplify RoutingMode enum: PARALLEL/POST_MAIN → SHARED, keep EXCLUSIVE
- Remove routing router, routing-rules-editor, and related tests
- Update pipeline, award, and notification code to remove routing references
- Seed: include all CSV entries (no filtering/dedup), AI screening handles duplicates
- Seed: fix non-breaking space (U+00A0) bug in category/issue mapping
- Stage filtering: add duplicate detection that flags projects for admin review

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-15 14:25:05 +01:00
parent 382570cebd
commit 9ab4717f96
23 changed files with 249 additions and 2449 deletions

View File

@@ -7,7 +7,7 @@ type TrackInput = {
slug: string
kind: 'MAIN' | 'AWARD' | 'SHOWCASE'
sortOrder: number
routingMode: 'PARALLEL' | 'EXCLUSIVE' | 'POST_MAIN' | null
routingMode: 'SHARED' | 'EXCLUSIVE' | null
decisionMode:
| 'JURY_VOTE'
| 'AWARD_MASTER_DECISION'

View File

@@ -110,7 +110,7 @@ export function defaultAwardTrack(index: number): WizardTrackConfig {
slug: slugify(name),
kind: 'AWARD',
sortOrder: index + 1,
routingModeDefault: 'PARALLEL',
routingModeDefault: 'SHARED',
decisionMode: 'JURY_VOTE',
stages: [
{ name: 'Evaluation', slug: 'evaluation', stageType: 'EVALUATION', sortOrder: 0, configJson: defaultEvaluationConfig() as unknown as Record<string, unknown> },
@@ -125,7 +125,6 @@ export function defaultNotificationConfig(): Record<string, boolean> {
'stage.transitioned': true,
'filtering.completed': true,
'assignment.generated': true,
'routing.executed': true,
'live.cursor.updated': true,
'cohort.window.changed': true,
'decision.overridden': true,