mirror of
https://github.com/cline/cline.git
synced 2026-09-17 17:45:33 +08:00
* fix: use vscode.env.asExternalUri for web OAuth callbacks In VS Code Web (Codespaces, code serve-web), OAuth callbacks using http://127.0.0.1:PORT break because the extension host runs remotely. Changes: - getCallbackUrl now accepts a path parameter - Desktop: uses vscode://extension-id/path directly - Web (UIKind.Web): uses vscode.env.asExternalUri() for web-reachable URL - Updated all callers (/auth, /openrouter, /hicap, /requesty, MCP) to pass path and use URL+searchParams for proper encoding - Added regression test asserting web callback URL is not 127.0.0.1 - AuthHandler (localhost HTTP) now only used by CLI/standalone mode * fix: use URL.searchParams for proper callback URL encoding Callers were using template literal interpolation to embed callback URLs into query strings, which breaks when the URL contains special characters (e.g. from asExternalUri with query params). Use URL+searchParams.set() which automatically encodes values. * chore: revert unrelated whitespace change in account.proto * revert: remove non-essential URL encoding changes in auth callers Keep only the core fix (getCallbackUrl path parameter + asExternalUri for web). Revert the URL+searchParams encoding improvement to minimize diff. * fix: URL-encode callback_url in auth callers, add encoding test In VS Code Web, callback URLs from asExternalUri can contain their own query params (?tkn=...&extra=...). String-interpolating them into callback_url= causes everything after the first & to be parsed as top-level params, truncating the callback URL. Use URL + searchParams.set() in openrouter, hicap, and requesty callers. Replace tautology test with deterministic round-trip encoding assertions.
Changesets
Hello and welcome! This folder has been automatically generated by @changesets/cli, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it in our repository
We have a quick list of common questions to get you started engaging with this project in our documentation