fix: add GPT-5.5 capabilities to GitHub Copilot provider catalog#71924
fix: add GPT-5.5 capabilities to GitHub Copilot provider catalog#71924muhualing wants to merge 11 commits into
Conversation
Greptile SummaryThis PR populates the GitHub Copilot provider catalog by fetching Confidence Score: 4/5Safe to merge; only P2 findings present with no correctness-affecting defects in the production path. All production-path changes are well-guarded and the new tests cover the key scenarios. The two findings are P2: a test that accidentally passes due to error-handling fallbacks instead of explicit mocking, and a fragile /v1/messages substring heuristic for API selection. Neither affects runtime correctness today. extensions/github-copilot/index.test.ts — the 'uses live plugin config to re-enable discovery after startup disable' test should have a fetchFn mock added.
|
| api: endpoints.some((endpoint) => endpoint.includes("/v1/messages")) | ||
| ? "anthropic-messages" | ||
| : "openai-responses", |
There was a problem hiding this comment.
/v1/messages substring check is the only Anthropic API heuristic
The api field is resolved by checking whether any supported_endpoints entry contains the substring "/v1/messages". If the Copilot API surfaces Anthropic-compatible endpoints under a different path (e.g., /messages, /chat/v1/messages), the function would silently fall back to "openai-responses" for those models. A comment explaining the expected endpoint format, or a slightly broader check, would prevent silent mismapping.
Prompt To Fix With AI
This is a comment left during a code review.
Path: extensions/github-copilot/index.ts
Line: 78-80
Comment:
**`/v1/messages` substring check is the only Anthropic API heuristic**
The `api` field is resolved by checking whether any `supported_endpoints` entry contains the substring `"/v1/messages"`. If the Copilot API surfaces Anthropic-compatible endpoints under a different path (e.g., `/messages`, `/chat/v1/messages`), the function would silently fall back to `"openai-responses"` for those models. A comment explaining the expected endpoint format, or a slightly broader check, would prevent silent mismapping.
How can I resolve this? If you propose a fix, please make it concise.|
Thanks for the context here. I did a careful shell check against current Close as implemented on main: the central Copilot GPT-5.5/live So I’m closing this as already implemented rather than keeping a duplicate issue open. Review detailsBest possible solution: Keep the merged current-main implementation from #79566 and track any further Copilot catalog hardening separately. Do we have a high-confidence way to reproduce the issue? No. The original source-level repro no longer holds on current main: Copilot catalog discovery now calls Is this the best way to solve the issue? No for merging this branch. The newer mainline implementation is the better solution because it includes the manifest refreshability, static fallback rows, docs/tests, and release provenance missing from this branch. Security review: Security review needs attention: The PR branch adds a raw network fetch for a token-derived Copilot catalog URL; this is another reason to avoid merging the superseded branch.
What I checked:
Likely related people:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 9be8d38f9563; fix evidence: release v2026.5.9-beta.1, commit 75405f64d0a7. |
The Copilot /models endpoint also lists embedding models (e.g. text-embedding-3-small) consumed by the embedding provider. Filter them out in mapCopilotWireModel so they aren't surfaced as chat models with the Responses transport, which would fail at runtime.
|
Thanks for working on this. I re-checked the currently published images/tags today and this is still user-visible in the latest beta line. Findings from
That means users can manually configure |
|
Any updates on when this pr will be merged? Thank you for the detailed fixes. |
Summary
/modelsduring provider catalog discovery instead of publishing an empty model listcontextWindow,maxTokens,input,reasoning, transport API)Why
GitHub Copilot exposes current model capabilities via
/models, includinggpt-5.5with a 400k context window and 128k max output. The provider catalog previously returnedmodels: [], so newly configured Copilot models fell through to the synthetic dynamic-model path and inherited the conservative 128k/8192 defaults.Verification
corepack pnpm format:check -- extensions/github-copilot/index.ts extensions/github-copilot/index.test.tscorepack pnpm exec vitest run extensions/github-copilot/index.test.ts extensions/github-copilot/models.test.tsFixes #71936