This commit is contained in:
team 1
2026-05-09 11:10:29 +02:00
parent 71fc5a2501
commit 424aef2575
8 changed files with 437 additions and 30 deletions

View File

@@ -0,0 +1,82 @@
# RetrieX Patch 63 - Chat Messages Config
## Ziel
Patch 63 führt eine zentrale YAML-Konfiguration für chat-sichtbare SSE-/Job-Meldungen ein. Der erste sichere Schnitt fokussiert bewusst den `AskSseController`, weil dort bislang viele nutzerlesbare Stream-, Job- und Fehlertexte direkt im PHP-Code standen.
## Geänderte Dateien
- `config/retriex/chat-messages.yaml`
- Neue zentrale Konfiguration `retriex.chat_messages.config`.
- Enthält nutzerlesbare SSE-/Job-/Stream-Meldungen inklusive Claim-, Stale-, Fatal- und Storage-Fehlertexten.
- `src/Config/ChatMessagesConfig.php`
- Neue Config-Fassade für Pflichttexte, Template-Rendering mit `{placeholder}` und Validierung der erforderlichen Message-Pfade.
- `src/Controller/AskSseController.php`
- Nutzerlesbare SSE-/Job-Meldungen werden über `ChatMessagesConfig` gelesen.
- Technische Protokollwerte bleiben im Code: SSE-Eventnamen, Job-Status-Enums, `[DONE]`, Retry-/Keepalive-Kommentare und Header.
- `config/services.yaml`
- Import von `retriex/chat-messages.yaml`.
- Service-Argument für `ChatMessagesConfig`.
- `src/Config/RetriexEffectiveConfigProvider.php`
- `chat_messages` wird im Effective-Config-Dump ausgegeben.
- Required-Message-Pfade werden in `mto:agent:config:validate` mitvalidiert.
- `src/Config/ConfigSourceAuditProvider.php`
- `ChatMessagesConfig` wird dem YAML-Parameter `retriex.chat_messages.config` zugeordnet.
- `src/Config/GenreSourceOfTruthGuard.php`
- Raw-Config-Root für `retriex.chat_messages.config` wird konsistent als `chat_messages` gemappt.
## Bewusste Abgrenzung
Dieser Patch migriert noch nicht alle bereits YAML-konfigurierten Agent-/Prompt-/Shop-UI-Texte aus `agent.yaml` nach `chat-messages.yaml`. Das wäre ein eigener zweiter Schritt, weil dort viele bestehende Getter und Regressionen betroffen sind.
Ebenfalls noch nicht migriert sind statische Frontend-Texte in:
- `public/assets/js/base.js`
- `public/index.html`
Für diese Texte sollte ein separater Frontend-/Template-Schnitt folgen, z. B. über Twig-Rendering oder einen kleinen `/chat-messages` JSON-Endpunkt.
## Leitlinien
- Keine neuen PHP-only User-Messages.
- Keine fachliche Runtime-Änderung.
- Keine Änderungen an Retrieval, Ranking, Shopquery, Prompting oder Produktlogik.
- Keine Migration technischer Protokolltokens nach YAML.
## Lokale Prüfungen
Durchgeführt:
```bash
php -l src/Config/ChatMessagesConfig.php
php -l src/Controller/AskSseController.php
php -l src/Config/RetriexEffectiveConfigProvider.php
php -l src/Config/ConfigSourceAuditProvider.php
php -l src/Config/GenreSourceOfTruthGuard.php
python3 -c "import yaml; yaml.safe_load(open('config/retriex/chat-messages.yaml')); yaml.safe_load(open('config/services.yaml'))"
```
Außerdem wurde `ChatMessagesConfig` mit einem kleinen PHP-Smoke-Test instanziiert und das Template-Rendering plus `validate()` geprüft.
Nicht ausführbar in der Patch-Umgebung:
```bash
php bin/console mto:agent:config:validate
```
Grund: Im entpackten ZIP fehlt `vendor/`; `bin/console` bricht mit `Dependencies are missing. Try running "composer install".` ab.
## Empfohlene Prüfungen nach Einspielen
```bash
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
```
Zusätzlich manuell prüfen:
- Leere Frage an `/ask-jobs` oder `/ask-sse` liefert die YAML-Meldung aus `chat-messages.yaml`.
- Ungültiger/fehlender Job liefert die YAML-Meldung `sse.job_missing` bzw. `sse.claim.missing`.
- Running-/Interrupted-/Failed-Reconnects zeigen weiterhin sinnvolle, aber YAML-konfigurierte Meldungen.