npm @github/copilot 1.0.106-10

3 hours ago

Improved

  • Use OneAuth as the default Microsoft Entra sign-in path on Windows and macOS
  • Keep agent selection at startup and resume quiet, with the selected agent still shown in the footer

Fixed

  • MCP Entra authentication now falls back to the VS Code registration when Copilot CLI preauthorization is unavailable.
  • Sandboxed local MCP servers now start correctly when configured with a relative cwd.
  • On Windows, sandboxed sessions in nested Git directories can change to and write at the repository root
  • Autopilot no longer starts implementing its own recommendation after a request that only asked for a review or analysis
  • Suppress unnecessary MCP reload summaries when plugin servers remain unchanged
  • A model request that Copilot's service answers with an empty 404 while under load is now retried instead of ending the turn with "Execution failed: 404".
  • copilot help config now lists every setting the settings catalog offers, including the ones that were missing from its hand-written text, such as askUser, effortLevel, planModel, toolSearch and worktreeBaseRef
  • ACP clients can switch a session started with --yolo out of autopilot, and allow-all stays on, instead of the switch failing as blocked by policy and a second attempt turning allow-all off.
  • The @ file picker now underlines a name with a capital dotted I, such as İstanbul.txt, when the query is typed without the dot, and no longer shortens that row's matched folder.
  • The @ file picker now underlines matches in names stored with decomposed accents or found by a query typed without accents, and no longer shortens such a row's matched folder.
  • Up and Down in a multi-line prompt keep the column you started from when they pass through a shorter line, instead of leaving the caret near the start of the line.
  • Ctrl+Y and /share research skip research folder entries that are not readable files, such as a broken link or a folder named like a report, instead of failing or offering them.
  • Show each agent's selection ID in /agent when multiple agents share a display name.
  • The edit tool now fails at once on a named pipe, socket or device instead of waiting forever for the other end of a FIFO, which stalled the turn.
  • An empty plan.md no longer shows the ctrl+y plan hint or Plan: yes in /session, and ctrl+y opens the research report instead, matching /session plan.
  • The footer keeps the "N scheduled", sandbox, YOLO and CI status items whole on narrow terminals by shortening the directory and branch first, instead of cutting the items off the end of the row.
  • Pull request, issue and gist details, and their load errors, no longer let escape sequences in titles, names, branches, gist files or server messages restyle the terminal.
  • Show the saved paused goal and continuation guidance when resuming an autopilot session.
  • Issues and pull requests picked with # are no longer dropped from the message when another one is picked in front of them, and an issue picked twice is sent once.
  • copilot help billing now says the footer shows the AI credits used in this session (nothing by default on the legacy billing platform), and that the /statusline quota item is off by default and ai-used is on.
  • copilot help config now says copyOnSelect is on by default on macOS, that /keep-alive changes only the current session, that logLevel is set in the /settings dialog or settings.json rather than copilot config, and that trustedFolders lives in config.json and is filled by the folder-trust prompt.
  • copilot help environment now says a COPILOT_AUTO_TIER value of "fast" is ignored with a notice rather than rejected, and that USE_TGREP=true does not override whether indexed search is available for your account or USE_BUILTIN_RIPGREP=false.
  • copilot help config, copilot help environment and copilot help acp no longer name the hidden --prefer-version, --server and --stdio options.
  • copilot help limits shows a status example at the real minimum AI credit limit and says the final-call warning appears when 10% or less of the limit remains
  • copilot help monitoring now says an http:// OTLP endpoint disables export only when an OTLP CA certificate or client certificate/key variable is set, not for every http:// endpoint.
  • copilot help permissions now documents glob patterns in write(path) and read(path) rules, lists the read and memory kinds, and explains that an unscoped write rule approves shell output redirection but not the command itself; it no longer says wildcard matching is coming in the future.
  • copilot --help and copilot help --help now list the acp help topic, and copilot help --help no longer prints its description and topic list with stray indentation.
  • Form and settings text fields show the control characters of a stored value, such as an MCP server command, instead of letting them recolor or hide its text.
  • Issue and pull request details on the home screen hide HTML comments from the description, as GitHub does, instead of printing template instructions as text
  • Issue and pull request details also hide an HTML comment that a blank line splits inside a <details> or other HTML block, instead of showing its opening and its text.
  • Assistant replies keep angle-bracket words that are not HTML, such as Vec<String>, Set<T> and <file> placeholders, instead of silently dropping them from the sentence.
  • Removing a local marketplace now refuses while one of its plugins is enabled, --force also clears that plugin, and /plugin marketplace remove accepts --force before the name.
  • A follow-up sent while an earlier one is pending is no longer rejected with "Submission failed" when it mentions a file with a very long number after a colon (@file:99999999999999999999).
  • The model picker keeps its Context and Reasoning column labels when a search or scroll hides the first model group.
  • The /model picker shows token prices in terminals narrower than 64 columns, and the dot leaders start right after each price label.
  • --no-ask-user and the askUser setting now say they remove the ask_user question form, and that the agent can still ask questions in its replies; they no longer say the agent stops asking questions.
  • The /user switch, environment and /mcp auth pickers, the Run on: status and the Outgoing connections list no longer let escape sequences in names, paths or URLs restyle the terminal.
  • Plugin rules with alwaysApply: false now stay out of the prompt until you enable them in /instructions; before, every session applied them until /instructions or /plugins was opened.
  • /pr shows the pull request's title, labels and branch as written, so a title such as Fix init.py exports no longer loses its underscores and turns bold.
  • /pr shows a closed or merged draft as Closed or Merged, keeps branch names and labels that contain a | intact, and counts a check run that failed to start or is waiting on an action as failing instead of pending.
  • A repository hook file under .github/hooks that cannot be read, or a hook entry in it that is invalid, is now reported with the file and the reason, at startup and after /cd into the repository, instead of being skipped silently.
  • /session delete --yes=false and a mistyped --yes=<value> no longer delete the current session, and /session delete --local-only <id> now previews that session.
  • Completed /ask and /btw answers left open now reappear when you return to their session within the same CLI process.
  • copilot skill remove and /skills remove now forget the removed skill's disabled state, so a skill added later under the same name no longer starts disabled.
  • When --ui-server cannot start its server (port already in use or out of range), the session now shows why instead of starting without it silently
  • Sessions where a tool returned a binary result of a type other than image or resource can be resumed again, instead of failing with "Session file is corrupted".
  • The SDK's session.workspaces.updateMetadata now renames a session that already has a name, and both it and session.name.set reject names that session creation rejects.
  • web_fetch now decodes an XML document (RSS, Atom or other XML) in the encoding its XML declaration names when the server sends no charset, so ISO-8859-1 and other non-UTF-8 feeds no longer reach the model with their accented characters replaced.
  • When a Claude model declines a request after it has started a tool call, the fallback retry no longer fails with an unmatched tool_use error and keeps its fallback credit.
  • Terminal setup configures every Windows Terminal settings file it finds and correctly detects existing Shift+Enter bindings.
  • copilot login --device-code now refuses a cleartext http:// host, as browser sign-in already did: the device code is exchanged for a bearer token there. Use an https:// host instead.
  • Keep /diff output intact for Unicode characters like emoji and supplementary symbols.
  • Quick questions now report an explicit error when the model returns no answer text.
  • Sandboxed local MCP servers now honor a configured npm_config_cache and can write to that cache when dev-tool access is enabled.
  • Allow --continue and --resume to send prompts when resuming a session with no recorded model
  • Model picker leaves more room for choices by budgeting each model's details separately
  • Show the footer's copy shortcut hint only when copyOnSelect is disabled
  • Show the MCP reload confirmation after /cd even when a plugin refresh happens at the same time
  • Avoid false "MCP Servers reloaded" notifications during startup when no servers change
  • Dismiss the model picker cleanly after resizing the terminal, without leaving stale picker text behind
  • Keep the footer's model display up to date after a session resync
  • Reduce the wait for the first prompt when multiple MCP servers are unresponsive
  • Keep the highlighted microphone selected in /voice devices when refreshing the device list
  • Show remote MCP servers that return a bare HTTP 401 in the /mcp auth picker so you can sign in
  • Stopping an npm-installed copilot by signal now cancels the active turn and waits for shutdown instead of leaving it running
  • Show the MCP reload confirmation after /cd even when a plugin refresh happens at the same time
  • Sandboxed commands now grant expected dev-tool access when the tool is invoked via a literal quoted path.
  • /chronicle cost reports count each newly recorded model call once, even when its usage event is received again
  • Resumed sessions keep shell IDs unique so bash tool calls target the correct shell
  • The lsp tool's documentSymbol operation no longer fails, losing every symbol, when a language server reports a symbol's children as null; that symbol is now listed without children
  • The /tasks detail view shows recent output for detached shell tasks while they run and after they finish
  • MAI-Code-1.1-Flash requests no longer fail with unsupported_api_for_model when the model is missing from the model list (for example as a HydraFusion constituent); they now use the Responses API.
  • Sandboxed Go builds and tests on Windows reuse the build cache across commands for faster repeat runs.
  • LSP rename asks for every file's write permission before changing anything, so declining one file leaves all files untouched. It also no longer corrupts a file the language server lists more than once, keeps inserts at the same position in order, preserves bytes that are not valid UTF-8, and says when it skipped a file create, rename or delete
  • Ctrl+V, Alt+V, and Super+V paste clipboard text into the prompt when no attachment is detected
  • A HydraFusion turn that cannot retrieve the model catalog now says so, instead of blaming the allowed-model policy
  • Sessions without required recovery tools continue automatic compaction instead of failing rollover.
  • Returning to an interactive session keeps pending questions instead of auto-answering after visiting an Autopilot session

Don't miss a new copilot release

NewReleases is sending notifications on new releases.