Replace VSCode extension impersonation (client ID Iv1.b507a08c87ecfe98,
User-Agent GitHubCopilotChat/0.35.0) with the opencode OAuth app
(Ov23li8tweQw6odWQebz, User-Agent opencode/1.3.15).
Key changes:
- OAuth device flow now uses JSON body encoding and opencode headers
- GitHub OAuth token is used directly for all API requests; no JWT
exchange or refresh cycle needed
- Base URL changed from api.individual.githubcopilot.com to
api.githubcopilot.com across models.json, openai-compat.ts, and
the oauth module
- Removed proxy-ep JWT base URL extraction from github-copilot-headers.ts
and openai-compat.ts (resolveGitHubCopilotBaseUrl now passes through
the model baseUrl unchanged)
- refreshGitHubCopilotToken is now a synchronous identity return
- All 25 bundled Copilot model definitions updated to new headers/baseUrl
- Tests updated to reflect plain GitHub token format and new base URL
Existing users will need to re-authenticate once with /login github-copilot.
- Added raw HTTP request dumps to error messages for 400 status codes.
- Implemented client-side retry for Anthropic streaming on transient errors.
- Preserved context by converting aborted assistant tool calls to text.
- Optimized model registry refresh in coding agent sessions.