This commit is contained in:
team 1
2026-05-06 17:44:07 +02:00
parent 2b9dcc6e5c
commit 8a2f4f3c67
5 changed files with 280 additions and 1 deletions

View File

@@ -0,0 +1,64 @@
# RetrieX Patch p57 - Single-Genre Source Audit / Legacy Cleanup Guard
## Ziel
Dieser Patch ist der naechste kleine Schritt nach p56. Er loescht noch keine Legacy-YAML-Werte, sondern haertet die zentrale Single-Genre-Pflegeflaeche fuer den spaeteren Cleanup.
Es bleibt strikt bei: eine Installation = ein Genre. Es gibt keine Multi-Genre-Umschaltung, keinen Tenant-Kontext und keinen Request-/Host-Resolver.
## Warum dieser Schritt
Nach p55/p56 sind viele fachliche Werte bevorzugt in `config/retriex/genre.yaml` gepflegt, waehrend die alten Pfade als Fallback bestehen bleiben. Damit diese Uebergangsphase kontrollierbar bleibt, muessen die in `genre.configuration_values.*.source_paths` dokumentierten Legacy-/Effective-Pfade selbst validierbar und auditierbar sein.
p57 macht diese Source-Path-Metadaten maschinenlesbar und sichtbar.
## Was geaendert wurde
- `GenreConfig` erhaelt `getConfigurationValueSourcePaths()`.
- `RetriexEffectiveConfigProvider` validiert nun auch die `source_paths` unter `genre.configuration_values` gegen bekannte effektive bzw. Legacy-Config-Pfade.
- `ConfigSourceAuditProvider` sammelt die Single-Genre-Source-Path-Metadaten fuer `mto:agent:config:audit-source --json`.
- `ConfigSourceAuditCommand --details` zeigt zusaetzlich eine Tabelle der Single-Genre-Source-Pfade.
## Nicht geaendert
- Keine Fachlogik-Aenderung.
- Keine neuen fachlichen Listen.
- Keine neuen Defaults.
- Keine Entfernung von Legacy-Fallback-Werten.
- Keine Shopware-Kriterien-, Ranking-, Retrieval- oder LLM-Verhaltensaenderung.
- Keine Multi-Genre-/Tenant-Loesung.
## Erwartetes Verhalten
Das Antwortverhalten bleibt unveraendert. Der Unterschied ist nur, dass die zentrale Genre-Konfiguration besser validiert und auditierbar ist.
Wenn spaeter ein falscher oder veralteter `source_paths`-Eintrag in `genre.yaml` entsteht, meldet `mto:agent:config:validate` eine Warnung statt den Fehler unbemerkt zu lassen.
## Geaenderte Dateien
- `src/Config/GenreConfig.php`
- `src/Config/RetriexEffectiveConfigProvider.php`
- `src/Config/ConfigSourceAuditProvider.php`
- `src/Command/ConfigSourceAuditCommand.php`
- `RETRIEX_PATCH_57_SINGLE_GENRE_SOURCE_AUDIT_README.md`
## Lokale Checks
```bash
php -l src/Config/GenreConfig.php
php -l src/Config/RetriexEffectiveConfigProvider.php
php -l src/Config/ConfigSourceAuditProvider.php
php -l src/Command/ConfigSourceAuditCommand.php
```
YAML-Parsing fuer alle Dateien unter `config/retriex/*.yaml`.
Projektchecks nach dem Einspielen:
```bash
bin/console cache:clear
bin/console mto:agent:config:validate
bin/console mto:agent:regression:test
bin/console mto:agent:config:audit-source --details
bin/console mto:agent:config:audit-patterns --details
```