Skip to content

v0.2.60 - GitHub Copilot CLI route is back

Choose a tag to compare

@Shashikant86 Shashikant86 released this 29 Jul 00:32

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 built CopilotClient inline, 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_TOKEN and GITHUB_TOKEN are no longer sent to Copilot - Both are
    normally plain git PATs with no Copilot entitlement, and gh, CI, and most
    enterprise setups export one. Forwarding it made the SDK start its runtime
    with --no-auto-login, bypassing a working copilot login and stalling on an
    account that could not authenticate. Only COPILOT_GITHUB_TOKEN is forwarded
    now, and :copilot status reports 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 switch completion no longer stalls - Building the picker ran a
    vendor CLI probe for every entry, forking devin and agy subprocesses on
    each keystroke. Those probes are now memoized for 30 seconds, with an explicit
    refresh so :runtime doctor still sees a new install or sign-in.

Added

  • The GitHub Copilot CLI route is back in the Connect picker -
    :connect copilot-cli and :copilot cli run 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
    anywhere copilot login already works but the SDK does not.
    :connect copilot-acp and :copilot acp still work as older aliases.

  • SUPERQODE_COPILOT_TIMEOUT is documented and validated. It sets the
    per-turn idle wait in seconds and defaults to 600.

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.