add chat as own route
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user