fix: use previous_response_id chaining for OpenAI store=true follow-ups (#23450)

OpenAI Responses follow-up turns were replaying full assistant/tool
history even when `store=true`, which breaks after reasoning +
provider-executed `web_search` output.

This change persists the OpenAI response ID on assistant messages, then
in `coderd/x/chatd` switches `store=true` follow-ups to
`previous_response_id` chaining with a system + new-user-only prompt.
`store=false` and missing-ID cases still fall back to manual replay.

It also updates the fake OpenAI server and integration coverage for the
chaining contract, and carries the rebased path move to `coderd/x/chatd`
plus the migration renumber needed after rebasing onto `main`.
This commit is contained in:
Michael Suchacz
2026-03-24 14:57:40 +01:00
committed by GitHub
parent b9f0c479ac
commit 02356c61f6
12 changed files with 935 additions and 93 deletions
+2 -1
View File
@@ -1294,7 +1294,8 @@ CREATE TABLE chat_messages (
content_version smallint NOT NULL,
total_cost_micros bigint,
runtime_ms bigint,
deleted boolean DEFAULT false NOT NULL
deleted boolean DEFAULT false NOT NULL,
provider_response_id text
);
CREATE SEQUENCE chat_messages_id_seq