Skip to content

fix(frontdoor): recognise a translator's model choice from the request and response bodies - #511

Merged
Mearman merged 1 commit into
mainfrom
fix/model-choice-reconstructed
Oct 18, 2026
Merged

Mearman merged 1 commit into
mainfrom
fix/model-choice-reconstructed

Conversation

@Mearman

@Mearman Mearman commented Oct 18, 2026

Copy link
Copy Markdown
Member

fix(frontdoor): recognise a translator's model choice from the request and response bodies

The internal response header that carried a route's model choice back
through the headroom hop reached the recording pipeline only when the
daemon relayed the response head verbatim, which its transformed
streaming paths do not: they build their own SSE head, so a compressed
main turn lost the choice a translator noted behind the hop while small
untransformed requests kept it.

The choice is now recognised where the record is built, from two facts
the recording pipeline sees itself: the model name the request's own
body carried, which the hop reads out when it collects the body to
forward (the same read that already yields the conversation thread), and
the model the response body was served under, which the body scan
already records. When the two names differ and no routing layer noted a
choice outright, the record carries the requested name beside the served
model, naming the serving provider. No daemon behaviour is depended on,
and the superseded header channel is gone.

…t and response bodies

The internal response header that carried a route's model choice back
through the headroom hop reached the recording pipeline only when the
daemon relayed the response head verbatim, which its transformed
streaming paths do not: they build their own SSE head, so a compressed
main turn lost the choice a translator noted behind the hop while small
untransformed requests kept it.

The choice is now recognised where the record is built, from two facts
the recording pipeline sees itself: the model name the request's own
body carried, which the hop reads out when it collects the body to
forward (the same read that already yields the conversation thread), and
the model the response body was served under, which the body scan
already records. When the two names differ and no routing layer noted a
choice outright, the record carries the requested name beside the served
model, naming the serving provider. No daemon behaviour is depended on,
and the superseded header channel is gone.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
🔒 Security Review ✅ Completed 2026-10-18T14:48:44.784680Z c85c0b8 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@Mearman
Mearman merged commit 1849879 into main Oct 18, 2026
32 checks passed
@Mearman
Mearman deleted the fix/model-choice-reconstructed branch October 18, 2026 14:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant