51ebdff570
Encrypted reasoning blobs are sealed to the model that minted them, not only to the endpoint. Switching models on the same custom Responses endpoint therefore replayed blobs the new model cannot decrypt and the turn failed with HTTP 400. Stamp captured reasoning items with `_issuer_model` (the canonical wire model) alongside `_issuer_kind`, and replay an item only when both the issuer kind and the model match the current request. Endpoint-stamped legacy items without model provenance are dropped once the current model is known (fail closed); ordinary assistant text stays replayable. The transport threads the effective wire model (request_overrides win) into conversion and normalization; the auxiliary Codex adapter stamps and filters against its own model rather than the main agent's. The 400 classifier also recognises the custom-endpoint wording "encrypted content could not be decrypted or parsed" so recovery strips the replay state instead of aborting. Hand-grafted from #95849 (final head d9cf6bcc08) onto current main; the middleware-model-rewrite half is intentionally left out. Closes #95834