p101d
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# RetrieX Patch p101c - Admin Eval Case Delete
|
||||
|
||||
## Ziel
|
||||
|
||||
Ergänzt die Admin-Eval-Case-Verwaltung um eine sichere Löschfunktion für einzelne Eval-Cases.
|
||||
|
||||
Damit können falsch angelegte oder nicht mehr benötigte Cases direkt im Admin entfernt werden, ohne die Eval-Suite-Übersicht weiter aufzublähen.
|
||||
|
||||
## Umfang
|
||||
|
||||
- Neue POST-Route `admin_evals_case_delete` unter `/admin/evals/cases/delete`
|
||||
- CSRF-Schutz pro Eval-Typ und Case-ID
|
||||
- Rollenprüfung über `ROLE_KNOWLEDGE_ADMIN`
|
||||
- Entfernen genau des ausgewählten Cases aus `tests/evals/cases/<type>.ndjson`
|
||||
- Abbruch ohne Änderung, wenn die NDJSON-Datei ungültig ist oder der Case nicht gefunden wird
|
||||
- Löschbereich auf der separaten Case-Seite `/admin/evals/cases/new`
|
||||
- Bestätigungsdialog vor dem Löschen
|
||||
- Hinweis, dass nach dem Löschen der betroffene Eval-Typ erneut ausgeführt werden sollte
|
||||
|
||||
## Nicht geändert
|
||||
|
||||
- Keine Retrieval-Logik
|
||||
- Keine Shopquery-Logik
|
||||
- Keine Follow-up-Logik
|
||||
- Keine Answer-Guard-Logik
|
||||
- Keine Eval-Assertions
|
||||
- Keine bestehenden Cases automatisch gelöscht
|
||||
- Keine YAML-/Parameteränderung
|
||||
- Keine Migration
|
||||
|
||||
## Prüfung
|
||||
|
||||
Nach Einspielen:
|
||||
|
||||
```bash
|
||||
php bin/console mto:agent:config:validate
|
||||
php bin/console mto:agent:eval:run retrieval
|
||||
php bin/console mto:agent:eval:run shop_query
|
||||
php bin/console mto:agent:eval:run followup
|
||||
php bin/console mto:agent:eval:run answer_guard
|
||||
```
|
||||
|
||||
Im Admin:
|
||||
|
||||
1. `/admin/evals/cases/new` öffnen.
|
||||
2. Einen Test-Case anlegen oder einen bestehenden Test-Case auswählen.
|
||||
3. `Case löschen` klicken.
|
||||
4. Bestätigungsdialog bestätigen.
|
||||
5. Prüfen, dass der Case aus der Liste verschwindet.
|
||||
6. Den betroffenen Eval-Typ erneut laufen lassen.
|
||||
@@ -0,0 +1,53 @@
|
||||
# RetrieX Patch p101d - Admin Eval Case Delete Hotfix
|
||||
|
||||
## Ziel
|
||||
|
||||
Behebt einen Fehler aus p101c, bei dem beim Löschen eines Eval-Cases folgende Exception auftreten konnte:
|
||||
|
||||
```text
|
||||
Call to undefined method App\Service\Admin\EvalAdminService::normalizeExistingCaseId()
|
||||
```
|
||||
|
||||
## Ursache
|
||||
|
||||
`EvalAdminService::deleteCase()` ruft eine Validierungs-Hilfsmethode für bestehende Case-IDs auf. Diese Methode wurde in p101c referenziert, aber nicht in die Service-Klasse aufgenommen.
|
||||
|
||||
## Änderung
|
||||
|
||||
Ergänzt `normalizeExistingCaseId()` in `EvalAdminService`.
|
||||
|
||||
Die Methode:
|
||||
|
||||
- trimmt die übergebene Case-ID,
|
||||
- verhindert leere IDs,
|
||||
- erlaubt nur Buchstaben, Zahlen, Unterstriche und Bindestriche,
|
||||
- gibt eine verständliche Fehlermeldung bei ungültigen IDs zurück.
|
||||
|
||||
## Geänderte Dateien
|
||||
|
||||
```text
|
||||
src/Service/Admin/EvalAdminService.php
|
||||
patch_history/RETRIEX_PATCH_101D_ADMIN_EVAL_CASE_DELETE_HOTFIX_README.md
|
||||
```
|
||||
|
||||
## Nicht geändert
|
||||
|
||||
```text
|
||||
keine Eval-Logik
|
||||
keine Retrieval-Logik
|
||||
keine Shopquery-Logik
|
||||
keine Follow-up-Logik
|
||||
keine Answer-Guard-Logik
|
||||
keine YAML-/Parameteränderung
|
||||
keine bestehenden Eval-Cases
|
||||
keine Migration
|
||||
```
|
||||
|
||||
## Prüfung
|
||||
|
||||
```bash
|
||||
php -l src/Service/Admin/EvalAdminService.php
|
||||
php bin/console mto:agent:config:validate
|
||||
```
|
||||
|
||||
Danach im Admin einen Eval-Case löschen.
|
||||
Reference in New Issue
Block a user