# RetrieX Patch 6.2 – Constructor-Default-Audit-Cleanup

## Ziel

Dieser Patch bereinigt die verbleibende Audit-Warnung zu Constructor-Defaults, ohne Laufzeitlogik zu ändern.

Nach Patch 6.1 waren alle Fallback-Accessors YAML-gemappt, aber der Audit meldete weiterhin:

```text
constructor_defaults_without_yaml_mapping: 9
```

Diese 9 Defaults stammen aus `ModelGenerationDefaultsConfig`. Die Werte sind bereits in `config/retriex/model.yaml` vorhanden und werden in `config/services.yaml` als Service-Argumente injiziert. Der Audit kannte dieses Mapping bisher nur nicht.

## Änderung

Geändert wurde nur:

```text
src/Config/ConfigSourceAuditProvider.php
```

Ergänzt wurde das Audit-Mapping für:

```text
ModelGenerationDefaultsConfig::$modelName
ModelGenerationDefaultsConfig::$stream
ModelGenerationDefaultsConfig::$temperature
ModelGenerationDefaultsConfig::$topK
ModelGenerationDefaultsConfig::$topP
ModelGenerationDefaultsConfig::$repeatPenalty
ModelGenerationDefaultsConfig::$numCtx
ModelGenerationDefaultsConfig::$retrievalMaxChunks
ModelGenerationDefaultsConfig::$retrievalVectorTopK
```

auf die bestehenden YAML-Parameter:

```text
retriex.model.default_name
retriex.model.default_stream
retriex.model.default_temperature
retriex.model.default_top_k
retriex.model.default_top_p
retriex.model.default_repeat_penalty
retriex.model.default_num_ctx
retriex.model.default_retrieval_max_chunks
retriex.model.default_retrieval_vector_top_k
```

## Wichtig

Dieser Patch entfernt noch keine Constructor-Defaults aus `ModelGenerationDefaultsConfig`.

Er klassifiziert sie nur korrekt als YAML-/Service-Parameter-gemappt. Die eigentliche Entfernung von PHP-Defaults kann später in der finalen YAML-only-Phase erfolgen.

## Nach dem Einspielen testen

```bash
php bin/console cache:clear
php bin/console mto:agent:config:validate
php bin/console mto:agent:config:audit-source --details
php bin/console mto:agent:regression:test
```

Erwartung im Audit:

```text
constructor_defaults_without_yaml_mapping: 0
```

Wenn Patch 6.1 bereits eingespielt ist, sollte außerdem weiterhin gelten:

```text
fallback_accessors_missing_yaml: 0
```
