add chat as own route

This commit is contained in:
team 1
2026-05-11 11:18:36 +02:00
parent a29e395806
commit 919f78a517
7 changed files with 420 additions and 2 deletions

View File

@@ -0,0 +1,82 @@
# RetrieX Patch p87 - Chat Frontend Symfony Controller
## Zweck
Der Chat lief bisher als statische `public/index.html`. Dadurch konnte die Startseite den Symfony-Kernel umgehen und war fuer spaetere PHP-seitige Erweiterungen wie Rollen-/Rechtepruefung, Mandantenlogik oder dynamische Chat-Optionen ungeeignet.
p87 hebt nur den Chat-Frontend-Einstieg in einen eigenen Symfony-Controller und trennt ihn architektonisch vom Adminbereich. Es gibt keine Aenderungen an Agent, Retrieval, Scoring, Ranking, Shop-Matching, SSE, History oder Frontend-JavaScript-Logik.
## Aenderungen
- Neuer Controller: `src/Controller/Chat/ChatController.php`
- Namespace bewusst getrennt von `App\Controller\Admin`
- Route `/` als Chat-Startseite
- Route `/chat` als expliziter Chat-Alias
- rendert `templates/chat/index.html.twig`
- Neues Twig-Template: `templates/chat/index.html.twig`
- Inhalt aus der bisherigen `public/index.html` uebernommen
- Asset-Pfade ueber `asset()` gerendert
- Chat-UI bleibt optisch und funktional gleich
- `public/index.html` entfernt
- wichtig, damit der Webserver die Root-Anfrage nicht weiter statisch vor Symfony abfaengt
- `src/Controller/Admin/DashboardController.php` angepasst
- Root-Routen `''` und `/` entfernt
- Admin-Redirect bleibt nur unter `/admin` und `/admin/`
## Architekturentscheidung
Chat und Admin bleiben getrennt:
- Chat: `App\Controller\Chat\...`, `templates/chat/...`, oeffentliche Route `/` bzw. `/chat`
- Admin: `App\Controller\Admin\...`, `templates/admin/...`, geschuetzte Route `/admin...`
Damit kann Schritt 2 spaeter sauber aufsetzen, z. B. mit einem eigenen Chat-Firewall-/Access-Control-Bereich oder Controller-Attributen wie `#[IsGranted(...)]`, ohne Admin-Templates, Admin-Routen oder Admin-Navigation mit dem Chat zu vermischen.
## Bewusst nicht geaendert
- Keine Rollen-/Rechtepflicht fuer den Chat in diesem Patch
- Keine Aenderung an `security.yaml`, ausser dass die bestehende Trennung weiterhin moeglich bleibt
- Keine Aenderung an `/ask-jobs`, `/ask-sse`, `/history`, `/chat-messages/frontend`
- Keine Aenderung an `public/assets/js/base.js`
- Keine Aenderung an RAG-/Commerce-/Prompt-/YAML-Logik
## Lokale Checks
Ausgefuehrt:
```bash
php -l src/Controller/Chat/ChatController.php
php -l src/Controller/Admin/DashboardController.php
python3 - <<'PY'
from pathlib import Path
assert Path('templates/chat/index.html.twig').exists()
assert not Path('public/index.html').exists()
assert "#[Route('/', name: 'chat_index'" in Path('src/Controller/Chat/ChatController.php').read_text()
print('p87 structural checks OK')
PY
```
Ergebnis:
- PHP lint OK
- Chat-Template vorhanden
- statische `public/index.html` entfernt
- Root-Route liegt jetzt beim ChatController
## Noch in Zielumgebung ausfuehren
```bash
php bin/console cache:clear
php bin/console debug:router | grep -E 'chat_index|admin_dashboard'
php bin/console mto:agent:config:validate
php bin/console mto:agent:regression:test
php bin/console mto:agent:config:audit-source --details
php bin/console mto:agent:config:audit-patterns --details
```
Manuelle Smoke-Tests:
1. `/` oeffnet den Chat.
2. `/chat` oeffnet denselben Chat.
3. `/admin` leitet weiterhin zum Admin-Dashboard/Login.
4. `/ask-jobs`, `/ask-sse/{jobId}`, `/history`, `/history/delete`, `/chat-messages/frontend` funktionieren unveraendert.