This commit is contained in:
team 1
2026-05-09 11:24:08 +02:00
parent 424aef2575
commit c327dc4102
7 changed files with 428 additions and 29 deletions

View File

@@ -0,0 +1,99 @@
# RetrieX Patch 64 - Frontend Chat Messages Config
## Ziel
p64 erweitert den mit p63 eingeführten `chat-messages.yaml`-Schnitt auf die sichtbaren Frontend-Chattexte in `public/index.html` und `public/assets/js/base.js`.
Ziel ist, dass die im Browser sichtbaren Chat-UI-, Loader-, Status- und Stream-Fallback-Texte nicht mehr hart in HTML/JavaScript gepflegt werden müssen, sondern zentral über `config/retriex/chat-messages.yaml` konfigurierbar sind.
## Änderungen
- `config/retriex/chat-messages.yaml`
- neuer Bereich `frontend`
- UI-Texte für Titel, Header, Buttons, Placeholder, Footer und Optionen
- Assistant-Hinweise wie Loader, Abbruch- und History-Cleared-Meldung
- Frontend-Stream-Fallback-Meldungen
- Run-Meta-Statuslabels
- Live-Shopdaten-Chip-Label
- konfigurierbare Marker für No-Concrete-Shop-Response-Erkennung
- `src/Config/ChatMessagesConfig.php`
- `getFrontendMessages()` ergänzt
- Validation um Frontend-Message-Pfade erweitert
- List-Validation für konfigurierbare Guard-Marker ergänzt
- `src/Controller/ChatMessagesController.php`
- neuer JSON-Endpunkt `/chat-messages/frontend`
- liefert den `frontend`-Teil aus `chat-messages.yaml` an das Browser-Frontend
- no-store/no-cache Header gesetzt
- `public/assets/js/base.js`
- lädt Chat-Frontend-Messages beim Start aus `/chat-messages/frontend`
- wendet UI-Texte über `data-chat-message-*` Attribute an
- ersetzt sichtbare Loader-/Stream-/Status-/Abbruch-/History-Texte durch YAML-Werte
- No-Concrete-Shop-Response-Marker kommen aus YAML statt aus JS-Stringliteralen
- `public/index.html`
- sichtbare harte UI-Texte entfernt
- stattdessen `data-chat-message-text`, `data-chat-message-placeholder` und `data-chat-message-aria-label`
- Dokumenttitel wird durch `base.js` aus YAML gesetzt
## Bewusste Nicht-Ziele
- p64 verschiebt die bereits YAML-basierten Agent-/Production-UI-Blöcke aus `agent.yaml` noch nicht nach `chat-messages.yaml`.
- p64 ändert keine RAG-, Shop-, Prompt-, Retrieval- oder Scoring-Logik.
- Technische Protokollwerte wie SSE-Eventnamen, Job-Statuswerte, Storage Keys, CSS-Klassen und Debug-/Console-Meldungen bleiben im Code.
## Checks
Lokal geprüft:
```bash
php -l src/Config/ChatMessagesConfig.php
php -l src/Controller/ChatMessagesController.php
php -l src/Controller/AskSseController.php
node --check public/assets/js/base.js
python3 - <<'PY'
import yaml
for path in ['config/retriex/chat-messages.yaml', 'config/services.yaml']:
with open(path, 'r', encoding='utf-8') as f:
yaml.safe_load(f)
print(f'YAML OK: {path}')
PY
```
Nicht ausführbar im entpackten ZIP ohne `vendor/`:
```bash
php bin/console mto:agent:config:validate
```
Fehler:
```text
Dependencies are missing. Try running "composer install".
```
## Empfohlene manuelle Regression
Nach Einspielen im echten Projekt mit Vendor-Abhängigkeiten:
```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
```
Browser-Check:
1. Startseite öffnen.
2. Prüfen, ob Titel, Header, Buttons, Placeholder und Footer korrekt erscheinen.
3. Eine normale Anfrage senden und Loader/Statuskarten prüfen.
4. Stream abbrechen und Abbruchmeldung prüfen.
5. Chat löschen und History-Cleared-Meldung prüfen.
6. Einen Stream-/Reconnect-Fehlerfall prüfen, falls reproduzierbar.
## Folgearbeit
Falls wirklich alle chat-sichtbaren Texte in exakt einer Datei liegen sollen, sollte ein späterer Patch die bereits YAML-konfigurierten Agent-UI-Bereiche aus `agent.yaml` nach `chat-messages.yaml` verschieben und die Getter in `AgentRunnerConfig` sauber delegieren oder auf eine Message-spezifische Config-Fassade umstellen.