# RetrieX Shop Context + SSE Guard Hotfix Patch-only hotfix for the Shopware query meta-command flow and duplicate SSE reconnect handling. ## Problem After the user asked a domain question and then wrote a meta-command like `suche im shop`, the system could either: - fail to recover the previous domain question from history, - ask for a concrete search query even though a relevant previous question existed, - continue with a misleading RAG-only final answer after the shop search was skipped, - append a misleading duplicate SSE reconnect message such as `Der Antwort-Stream läuft bereits...`. ## Changes - The shop meta-command fallback now uses a larger history budget. - If the budgeted history is still polluted by repeated meta turns, the fallback checks the full recent context as a last resort. - The fallback still ignores meta-only turns such as `shop` / `suche im shop` and derives a compact shop query from the last non-meta domain question. - If no concrete shop query can be resolved, the agent now stops after the clarification message instead of generating a misleading final answer from RAG context. - Duplicate EventSource reconnects for already-running or completed jobs are silently closed with `done`, so the UI does not append a misleading stream error after the real stream already produced output. ## Expected behavior Conversation: ```text mit welchem testomat kann ich freies chlor messen suche im shop ``` Expected Shop query: ```text testomat freies chlor ``` Not expected: ```text shop mit welchem testomat kann ich freies chlor messen ``` ## Notes - No retrieval logic changed. - No scoring logic changed. - No product-family special case was added. - No Testomat 808 / Testomat 2000 / Tritromat special handling was added. - Existing config fallbacks remain intact. ## After applying Run: ```bash php bin/console cache:clear php bin/console mto:agent:config:validate php bin/console mto:agent:regression:test ```