optimize stream sse handling

This commit is contained in:
team 1
2026-04-25 13:21:59 +02:00
parent fa65417efe
commit b9252202eb
4 changed files with 408 additions and 107 deletions

View File

@@ -0,0 +1,37 @@
# RetrieX EventSource Stream Fix
Dieser Patch stabilisiert den Antwort-Stream bei Commerce-/Shop-Suchanfragen.
## Enthaltene Änderungen
- `public/assets/js/base.js`
- Browser-Streaming von manuellem `fetch().body.getReader()` auf natives `EventSource` umgestellt.
- Neuer Ablauf: `POST /ask-jobs` erstellt einen Stream-Job, anschließend `GET /ask-sse/{jobId}` per EventSource.
- Abbruch-Button schließt nun EventSource sauber.
- `src/Controller/AskSseController.php`
- Neuer Endpoint `POST /ask-jobs` zum Erstellen kurzlebiger Stream-Jobs.
- Neuer Endpoint `GET /ask-sse/{jobId}` für natives SSE/EventSource.
- Alter `POST /ask-sse` bleibt als Rückwärtskompatibilität erhalten.
- Stream-Header erweitert um `no-transform`; Job-Dateien liegen kurzlebig unter `var/stream_jobs`.
- `src/Commerce/ShopSearchService.php`
- Harte Shopware-Isolation bei Store-API-Systemfehlern.
- Wenn ein Reference-Probe bereits einen Store-API-Systemfehler auslöst, wird keine weitere Shop-Suche in derselben Anfrage gestartet.
- Retry ohne Commerce-History wird bei Store-API-Systemfehlern nicht mehr ausgeführt.
## Einspielen
ZIP im Projektroot entpacken, Dateien überschreiben, danach Symfony-Cache leeren.
Empfohlen:
```bash
bin/console cache:clear
```
Falls OPcache aktiv ist, PHP-FPM danach reloaden.
## Hinweis
Der Patch enthält bewusst nur geänderte Dateien und keine `var/cache`, Logs, Vendor-Dateien oder Wissensdaten.