Added
- Experimental: answer git, ssh, and sudo password prompts from agent commands in a masked dialog (enable with /experimental on)
Improved
- Selecting an unavailable account in /user switch shows recovery guidance and a retry action
- Click anywhere in expanded reasoning to collapse it without scrolling back to the header
- Offer a session AI-credit limit top-up at 90% usage, before the agent loses access to tools
Fixed
- Show failed and cancelled compaction outcomes in the timeline, and explain memory-pressure compactions with restart and resume guidance.
/diffon a feature branch now lists committed files whose names have accented or other non-ASCII characters, a double quote, a backslash or a tab, instead of leaving them out of the file list.- copilot help network now quotes the certificate error Copilot reports for an untrusted proxy CA on Linux ("certificate verify failed", "unable to get local issuer certificate"), not a message it no longer produces
copilot help permissionsno longer givesshell(gh pr create)as a rule example, which never matches; it now usesshell(gh pr)and explains that only the first subcommand is part of a command's name./mcp reloadno longer says the servers were restarted when the MCP configuration could not be loaded- MCP tool results that also carry a top-level key such as
skills,skill,toolsormessagesnow reach the model instead of failing the tool call - /every and /after keep the line breaks and indentation of a multi-line prompt when a natural-language time is parsed from it, instead of merging lines and collapsing repeated spaces.
- "Thought for" durations update when each reasoning part ends and no longer include time spent streaming the answer
- Show forked sessions by name in the exit summary so their resume commands are easier to identify
- /share file and /share html reject directory paths instead of creating hidden or misplaced export files
- Allow copilot config to read and update settings.json files containing only comments
- Shortened paths preserve folder names containing backslashes on Linux and macOS
- copilot -p honors trusted repositories' includeCoAuthoredBy setting for commit trailers
- Startup auto-install now waits for managed settings before reporting missing plugin marketplaces
- Interactive prompts appear correctly after extensions switch a session out of autopilot.
- /move preserves edits to files marked assume-unchanged and reports submodule changes left in the original working tree
- Changing a setting in /statusline preserves other footer settings updated by another session while the picker is open
- Avoid unnecessary path access prompts for in-repository reads after shell commands that change directories
- Keep permanently approved URLs approved after /new or /clear without restarting the CLI
- JSON prompt mode emits a final result record when authentication fails or the prompt is blank
- Reject prompt options combined with subcommands instead of silently dropping the prompt and running the subcommand
- Pressing Enter after completing an empty directory path runs /add-dir or /cd reliably on Windows
- Use the exact directory name typed in /cd, /cwd, and /add-dir instead of a similarly named sibling directory
- Show control characters visibly in folder trust dialogs so folder names display without hidden formatting or extra lines
- Show when files or directories are too large to read or list instead of reporting misleading counts in collapsed tool results
- Warn when repository settings override a saved default model for new sessions, naming the model and settings file that still apply
- Treat empty or fully commented repository settings files as empty settings without startup warnings or parsing errors
- Keep the command description and exit status visible in collapsed failed shell rows with multi-line output
- Show pasted terminal text plainly in Ctrl+R search and session confirmations so escape sequences cannot recolor or hide text
- Sandbox settings show their effective defaults and toggle default-on options off on the first press
- Show settings-file errors without duplicate, misleading policy-update warnings when settings.json is invalid
- Hook changes saved from /settings apply to the next prompt without restarting the CLI
- IDE auto-connect follows your current folder after /cd, keeping editor selections and diffs in the correct IDE
- Expanded Shell output preserves text before and after diffs and shows file names for diff-only output
- Keep
copilot lsp listoutput free of warnings when plugin language servers load successfully - Deleting the active voice model now shows that voice mode is off and how to choose another model.
- Show the output size instead of an incorrect match count when search results are too large to list
- MCP server and skill enable/disable commands correctly report success for names supplied through --additional-mcp-config or --plugin-dir
- Keep dialog borders and padding aligned when a line ends with an invisible zero-width character
- List items in plan and task summaries stay on one line when they contain literal asterisks or sentences ending in numbers
- Show the enabled state enforced by your organization's managed settings for built-in plugins in
copilot plugin listand--jsonoutput - Apply changes to Disable bypass permissions mode in /settings immediately, without restarting the CLI
- /cd, /cwd, and /add-dir select the exact directory name you type when siblings differ only by case or accents
- Hide custom agents with built-in names from /subagents so their controls cannot change built-in agent settings
- Preserve first-line indentation in shell command output so expanded Shell rows correctly show spacing-sensitive results such as git status --short
- Shell commands terminated by a signal report the correct exit status, such as 137 for SIGKILL or 139 for a segmentation fault
- Show a confirmation when a model switch queued while the agent is working takes effect
- Show the output size instead of an incorrect line count in Shell summaries when command output is too large to display
- Footer context usage shows the same pre-request percentage as /context.
- Plan quota and Copilot usage stay visible in the status line, /usage and the exit summary while a GitHub-hosted model is selected, even when providers.json configures a custom provider; they are hidden only while a model from that provider is selected
- Prompt history is no longer hidden, and then erased by the next prompt, when the file that stores session mentions for past prompts is damaged or was written by a newer version
- The ctrl+y footer hint no longer misses a plan written right after the session starts, and it keeps updating when the plan file cannot be watched
- Hook events and other JSON settings can be saved from their editor in /settings; unset hook events now open as an empty list
- Resuming a session by name with --resume no longer sends the session name in telemetry; only a session ID is reported
- Exiting no longer writes dozens of errors to the process log about cleaning up a session that has already shut down
- /sandbox no longer replaces your saved sandbox settings with defaults when settings.json has an invalid value; it shows the load error instead, and a sandbox path saved from a permission prompt is refused rather than overwriting the sandbox block
- A prompt submitted while Compact and switch is compacting shows as queued again, instead of disappearing until the compaction finishes
- Disabling an MCP server updates its token count in /mcp without waiting for another model response
- On Linux, language servers that watch files are no longer told that files still on disk were deleted after two files or directories are swapped through a temporary name
- copilot -p in a trusted folder no longer sometimes runs without the repository's hooks when plugins finish loading at the same time
copilot mcp removeand/mcp removenow delete anmcp-config.jsonentry that is skipped as invalid instead of reporting that the server was not found- Resuming a session by ID or name with
/resumenow keeps the session you leave open in the background, so it still runs its sessionEnd hooks, records its shutdown and is listed when you exit copilot -pand other CLI runs that exit within a minute now apply process-log retention, so old logs are removed after 7 days and beyond the newest 50 instead of piling up one per runcopilot plugin marketplace add ./name,../nameand~/namenow add the local marketplace directory instead of trying to clone a GitHub repository- A shell command killed because the sandbox settings changed while it ran is now reported as failed instead of as a successful command with no output
- The warning for an unsupported --reasoning-effort value is no longer lost when the session's model changes while the CLI is starting
copilot help ''prints the general help and exits successfully, just likecopilot help.- A
/compactwith nothing to compact no longer leaves a stale "Compacting conversation history..." row in the timeline - An mcp-config.json that cannot be read or is not a JSON object now fails with an error that names the file and the actual problem, and a syntax error in a file with comments or trailing commas points at the real mistake instead of the first comment or comma
Removed
- Remove legacy remote steering; cloud sessions and remote connections now require an AHP environment