feat(providers): Messages ingress onto Responses-only upstreams (MessagesViaResponses)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 38/100
Research direction
Read internal/server/messages_handler.go and the provider paths internal/providers/chatgpt/chatgpt.go; do not start until #1084 merges. Then trace the Messages-to-chat-to-Responses streaming path and add end-to-end tests for reasoning replay, interleaved thinking and tool calls, and documented or rejected losses. Done means the round trip preserves ordering and state, with no silent loss.
Written by the indexing model from the issue text.
Description
Part of #723 (dialect independence across providers). Blocked by #1084.
Filed from code research done for #1084 (AI agent, verified against source). No human reporter hit this in production yet.
Problem
The /v1/messages ingress translates Anthropic Messages requests into canonical chat requests (ADR-0007). It then dispatches to the provider's chat surface (internal/server/messages_handler.go:255 -> StreamChatCompletion / ExecuteChatCompletion at lines 269 and 283).
Responses-only upstreams (today: the chatgpt provider on the Codex backend) return 501 unsupported_provider_operation on the chat surface (internal/providers/chatgpt/chatgpt.go:140). An Anthropic client (Claude Code, other Messages harnesses) cannot use these providers today.
What is missing
#1084 adds the chat-to-Responses adapter (ChatViaResponses). When it merges, the chain /v1/messages -> canonical chat -> Responses upstream becomes possible in principle. This issue tracks what remains after #1084:
- Verification. End-to-end tests for the double translation: Messages request -> chat -> Responses upstream -> chat chunks -> Messages SSE events.
- Thinking and reasoning replay. Anthropic
thinkingblocks must survive two translations. Theextra_contentreplay state must round-trip: Messages -> chatreasoning_content/extra_content-> Responses reasoning items -> back. Loss points must be named and tested. - Loss points. Document what the double translation drops (for example:
cache_controlis already rejected at ingress; Codex dropstemperature,top_p,max_output_tokens). Follow the reject-or-document doctrine of #1055. No silent loss. - Interleaved thinking and tool calls. Anthropic clients interleave thinking blocks and tool use. The chat hub merges adjacent assistant messages and tool calls. The order must survive the round trip.
Out of scope
- A direct Messages-to-Responses converter. The chat hub stays canonical. No N-by-M translator matrix.
- Changes to the native Anthropic-to-Anthropic passthrough (
internal/server/messages_native.go).
Notes
- Do not start before #1084 merges. Most of this issue may close with tests only, if the chat hub composition works as designed.
- Dominant language
- Go
- Stars
- 1.2k
- Forks
- 111
- Avg merge
- 14h 43m
- Merged PRs (30d)
- 142
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ENTERPILOT/GoModel
-
enhancement
Difficulty 3/5 1-2 days Newbie friendliness 55/100
ENTERPILOT/GoModel#1182 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 15/100
ENTERPILOT/GoModel#1170 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 15/100
ENTERPILOT/GoModel#1165 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 Half a day Newbie friendliness 35/100
ENTERPILOT/GoModel#1154 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
ENTERPILOT/GoModel#1107 ·
Maintainers usually reply within 1 day
All issues in ENTERPILOT/GoModel
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
documentation hacktoberfest priority: low skill: good first issue status: ready for dev
Difficulty 2/5 Half a day Newbie friendliness 85/100
hyperledger-labs/fabric-smart-client#2142 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
numberly/vault-db-injector#107 ·
Maintainers usually reply within 1 day
-
area/import kind/bug
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
[DOC] Wrong sg_egress_ports range in the Terraform Databricks Guide for AWS Hub & Spoke with Network FirewallPossibly taken @akhil9tiet claimed this today. Opendocs
Difficulty 1/5 Under an hour Newbie friendliness 72/100
databricks/terraform-provider-databricks#6080 · 1 comment ·
Maintainers usually reply within 3 days