Files
vscode/extensions/copilot/src
Dileep YavanmandhaandCopilot fd249800b7 Fix Copilot reasoning replay using API provenance instead of ID prefixes (#336626)
* Track reasoning provenance instead of inferring it from ids

Responses API reasoning was only round-tripped when its id began with `rs`.
That treated one provider's id convention as a protocol guarantee: CAPI's
production /responses endpoint issues reasoning ids that are long opaque blobs
with no `rs` prefix, so valid reasoning was silently dropped from the next
stateless tool continuation and the model re-derived work it had already done.

Record the producing API and model on the thinking envelope when a round is
created, and gate the round-trip on that origin. The envelope tag lives inside
the same opaque value as its payload so prompt pruning cannot separate them, and
it is carried across the vscode.lm boundary as part metadata since that API has
no envelope of its own. The model check also gives the vscode.lm path the gate
it never had.

History persisted before provenance tracking carries no origin and keeps the
previous `rs` prefix behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d8a292b0-2f13-45cf-bfcc-8e808833b4a0

* Identify reasoning by API type only, dropping the model dimension

Provenance now records just the producing API (responses/messages/chatCompletions),
which is what decides whether an encrypted reasoning payload can be replayed.
The model is already gated separately by the same-model check in toolCalling, so
carrying it on the envelope added a second dimension without a distinct purpose.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d8a292b0-2f13-45cf-bfcc-8e808833b4a0

* Require explicit Responses API origin for reasoning replay

Remove the reasoning ID prefix fallback entirely. Untagged and foreign-protocol reasoning is excluded regardless of ID format.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d8a292b0-2f13-45cf-bfcc-8e808833b4a0

* Preserve legacy reasoning replay when API provenance is absent

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d8a292b0-2f13-45cf-bfcc-8e808833b4a0

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d8a292b0-2f13-45cf-bfcc-8e808833b4a0
2026-09-17 23:31:20 +00:00
..
…