v0.2.60 - GitHub Copilot CLI route is back
This release fixes GitHub Copilot, which could freeze the terminal completely on
the first prompt, and brings back the Copilot CLI route for accounts the SDK
cannot serve. It also removes a stall from the harness picker.
Fixed
-
GitHub Copilot SDK no longer freezes the terminal - Three separate calls
blocked the UI event loop, and each one looked like a hang rather than an
error. The first prompt builtCopilotClientinline, and that constructor
downloads the pinned Copilot CLI through a blocking request with a 120 second
timeout and three retries: roughly 13 seconds of frozen terminal on a fast
link, and minutes behind a corporate proxy. The client is now built off the
event loop, and the first turn tells you the download is happening instead of
showing nothing. -
Copilot permission prompts no longer deadlock - The SDK awaits its
permission handler on the event loop, while SuperQode's approval bridge blocks
until you answer the prompt. Deciding inline meant the approval card could
never render and the keypress could never be read, so every request froze
until the bridge timed out and denied it. Decisions now resolve on a worker
thread, matching the Claude Agent SDK runtime. -
GH_TOKENandGITHUB_TOKENare no longer sent to Copilot - Both are
normally plain git PATs with no Copilot entitlement, andgh, CI, and most
enterprise setups export one. Forwarding it made the SDK start its runtime
with--no-auto-login, bypassing a workingcopilot loginand stalling on an
account that could not authenticate. OnlyCOPILOT_GITHUB_TOKENis forwarded
now, and:copilot statusreports when the others are present and ignored. -
A failed turn explains itself - A turn that could not start, timed out, or
errored ended with an empty response and no message, which is
indistinguishable from a hang. Failures now end the turn with the reason and
the command that addresses it. This applies to every self-contained runtime,
not only Copilot. -
:harness switchcompletion no longer stalls - Building the picker ran a
vendor CLI probe for every entry, forkingdevinandagysubprocesses on
each keystroke. Those probes are now memoized for 30 seconds, with an explicit
refresh so:runtime doctorstill sees a new install or sign-in.
Added
-
The GitHub Copilot CLI route is back in the Connect picker -
:connect copilot-cliand:copilot clirun the official CLI over ACP, so
the vendor CLI owns authentication and its own agent loop. It was previously
reachable only as a hidden compatibility alias. Use it on Copilot Business and
Enterprise seats, on networks that block the SDK runtime download, and
anywherecopilot loginalready works but the SDK does not.
:connect copilot-acpand:copilot acpstill work as older aliases. -
SUPERQODE_COPILOT_TIMEOUTis documented and validated. It sets the
per-turn idle wait in seconds and defaults to600.
Upgrading
uv tool install --upgrade "superqode[copilot-sdk]"If Copilot previously hung for you, :copilot status now shows which
authentication source is in effect and which token variables are being ignored.
If your network blocks the Copilot runtime download, either set
COPILOT_CLI_PATH to an installed copilot binary or switch to
:connect copilot-cli.