Fix filtering config save, auto-save, streamed results, improved AI prompt
All checks were successful
Build and Push Docker Image / build (push) Successful in 9m7s

- Add missing fields to FilteringConfigSchema (aiParseFiles, startupAdvanceCount,
  conceptAdvanceCount, notifyOnEntry, notifyOnAdvance) — Zod was silently
  stripping them on save
- Restore auto-save with 800ms debounce on config changes
- Add staggered animations for filtering results (stream in one-by-one)
- Improve AI screening prompt: file type label mappings, soft cap handling,
  missing documents = fail, better user prompt structure

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Matt
2026-02-17 17:18:04 +01:00
parent bed444e5f4
commit cf1508f856
4 changed files with 107 additions and 11 deletions

View File

@@ -1,6 +1,6 @@
'use client'
import { useState, useMemo, useCallback, useRef } from 'react'
import { useState, useMemo, useCallback, useRef, useEffect } from 'react'
import { useParams } from 'next/navigation'
import Link from 'next/link'
import type { Route } from 'next'
@@ -397,6 +397,20 @@ export default function RoundDetailPage() {
updateMutation.mutate({ id: roundId, configJson: config })
}, [config, roundId, updateMutation])
// ── Auto-save: debounce config changes and save automatically ────────
useEffect(() => {
if (!configInitialized.current) return
if (JSON.stringify(config) === JSON.stringify(serverConfig)) return
const timer = setTimeout(() => {
setAutosaveStatus('saving')
updateMutation.mutate({ id: roundId, configJson: config })
}, 800)
return () => clearTimeout(timer)
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [config])
// ── Computed values ────────────────────────────────────────────────────
const projectCount = round?._count?.projectRoundStates ?? 0
const stateCounts = useMemo(() =>