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

@@ -124,26 +124,7 @@ async function runChecks(): Promise<CheckResult[]> {
: `${emptyPipelineCount} empty pipelines, ${emptyTrackCount} empty tracks`,
})
// 8. RoutingRule destinations reference valid tracks in same pipeline
const badRoutingRules = await prisma.$queryRaw<{ count: bigint }[]>`
SELECT COUNT(*) as count FROM "RoutingRule" rr
WHERE rr."destinationTrackId" IS NOT NULL
AND NOT EXISTS (
SELECT 1 FROM "Track" t
WHERE t.id = rr."destinationTrackId"
AND t."pipelineId" = rr."pipelineId"
)
`
const badRouteCount = Number(badRoutingRules[0]?.count ?? 0)
results.push({
name: 'RoutingRule destinations reference valid tracks in same pipeline',
passed: badRouteCount === 0,
details: badRouteCount === 0
? 'All routing rules reference valid destination tracks'
: `Found ${badRouteCount} routing rules with invalid destinations`,
})
// 9. LiveProgressCursor references valid stage
// 8. LiveProgressCursor references valid stage
const badCursors = await prisma.$queryRaw<{ count: bigint }[]>`
SELECT COUNT(*) as count FROM "LiveProgressCursor" lpc
WHERE NOT EXISTS (SELECT 1 FROM "Stage" s WHERE s.id = lpc."stageId")