# XAMXAM TODO ## Duplicate TFE submission prevention - [x] `DuplicateThesisException` — typed exception carrying existing thesis metadata - [x] `Database::findDuplicateThesis()` — year + author + normalised-title matching (exact, prefix, Levenshtein ≤10%) - [x] `ThesisCreateController::submit()` — calls duplicate check before any DB write, throws `DuplicateThesisException` - [x] `AppLogger::logDuplicate()` — dedicated log action (`status: duplicate`) for audit trail - [x] `App::flash/consumeFlash` — extended to support `warning` type alongside `error`/`success` - [x] `admin/actions/formulaire.php` — catches `DuplicateThesisException` separately; logs it; flashes HTML warning with link to existing thesis; repopulates form - [x] `partage/index.php` — same catch block; plain-text warning (no admin link) surfaced on the student form via `flash-warning` banner; form repopulated - [x] `toast.php` — renders `toast--warning` block - [x] `admin.css` — `.toast--warning` style + link colour - [x] `form.css` — `.flash-warning` style (partage form)