# RetrieX Patch p20p - History Product Anchor Follow-up Fix

## Ziel

Behebt den Fall, dass kurze Shop-Follow-ups wie `suche im shop` den Produkt-/Modellanker aus dem vorherigen fachlichen Turn nicht mehr sicher übernehmen.

Beispiel:

1. `welche grenzwerte kann der testomat 2000 thcl messen`
2. `suche im shop`

Vorher konnte die Shop-Suche mit `keine Suchquery` enden, obwohl der vorherige Turn einen klaren Produktanker enthält.

## Ursache

Die bisherige Shop-Follow-up-Auflösung nutzte primär extrahierte `Question:`-Zeilen. Wenn diese Extraktion nicht greift oder der stabile Produktanker nur in der Antwort bzw. im gesamten letzten Turn steht, wurde keine belastbare Shopquery erzeugt.

Außerdem erkannte der Testomat-Modellanker bisher numerische Testomat-Modelle ohne nachgestellten Varianten-/Parameter-Suffix. Dadurch wurde `Testomat 2000 THCL` nicht als kompletter Modellanker erfasst.

## Änderung

- `AgentRunner::extractContextualShopSearchQuery()` wurde gehärtet.
- Wenn aus den letzten Nutzerfragen keine Query entsteht, werden die neuesten History-Turns selbst geprüft.
- Pro Turn wird zuerst die Nutzerfrage ausgewertet.
- Danach wird ein expliziter Testomat-Modellanker aus dem gesamten Turn extrahiert.
- Das Modellanker-Pattern erlaubt nun numerische Testomat-Modelle mit Suffix, z. B. `Testomat 2000 THCL`.

## Dateien

- `src/Agent/AgentRunner.php`
- `config/retriex/agent.yaml`

## Erwartung

`suche im shop` nach einem technischen Turn zu `Testomat 2000 THCL` soll eine Shopquery wie `testomat 2000 thcl` ableiten, statt mit `keine Suchquery` abzubrechen.

Der Fix ist generisch für History-Produktanker und enthält keine harte 808- oder THCL-Sonderquery.

## Prüfungen lokal

- `php -l src/Agent/AgentRunner.php`: OK
- `config/retriex/agent.yaml` mit Python YAML Parser: OK
- Regex-Smoke-Test für `Testomat 2000 THCL`, `Testomat 808`, `Testomat EVO TH`: OK

## Nach dem Einspielen prüfen

```bash
bin/console cache:clear
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
```

PHP-FPM/OPcache danach neu laden, falls aktiv.
