p63
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user