Fixed
- Label partial responses and reasoning from interrupted or failed attempts as incomplete while preserving their text
- Starting
copilotfrom a directory that has since been deleted now says the directory no longer exists and how to recover, instead of crashing with a Node stack trace, and-C <directory>now works from there. - The workflow run tool no longer tells the model that a user reviews every run's limits when all tool permissions are pre-approved.
- /compact respects the session AI credit limit, preventing additional charges once the limit is reached
- Vim normal mode keeps j/k at line ends after $ or End and preserves the cursor column when using Up/Down across shorter lines
- Plugin listings show enabled local marketplace plugins with missing directories as enabled but not loaded, with an explanation
- /init suppress immediately hides the Getting started /init tip and keeps it hidden when returning to the folder.
- Copying wrapped prompt text preserves typed line breaks without adding newlines at visual wraps
- /worktree HEAD and /move HEAD create a worktree using the normalized branch name "head" instead of failing.
- /session prune and its dry run skip sessions open in other processes and report how many were skipped
- The /statusline preview keeps footer segments readable on narrow terminals
- Ctrl+S in the /mcp add and edit forms saves once, with a single success message and server reload.
- Ctrl+Y and /share research show their usual no-report messages instead of raw filesystem errors when the research folder cannot be read.
- /lsp list and /lsp reload report syntax errors in your LSP configuration instead of a misleading missing-key error.
- Unnamed sessions show their short ID in the Sessions tab and /resume list, keeping the same label after resuming
- Assistant replies no longer indent or wrap the row after an inline code span that ends exactly at the right edge
- With the Sessions sidebar docked,
/lsp logs, the/everyschedule manager,/workflowsand the/mcp addform fit the pane beside it instead of being cut off at its edge - Mouse selections in scrolled-up conversations copy only highlighted text when released over the prompt or status line
- Searches in /agent and the Sessions tab match visible text rather than hidden escape sequences.
- Ctrl+R history search highlights, scrolls to, and places the cursor on matches with decomposed accents.
- Installing, uninstalling, enabling or disabling a plugin, or adding or removing a marketplace, no longer erases your other plugin and marketplace settings when settings.json has an invalid value; the command now reports the error and leaves the file unchanged
- Slash commands that fail at an idle prompt now show an error with the command name and reason
- The slash-command picker underlines matching characters correctly in descriptions containing a capital dotted I.
- /cwd, /cd, and /add-dir use the path you type when you press Enter before directory suggestions update
- Pressing Enter twice on a permission prompt approves the request without showing a false retry warning
- Prompt text wraps without splitting words that fit on a line, wrapping early, or adding stray leading spaces and blank lines
- Keep accented and CJK characters intact when typing after keyboard shortcuts or pasting over slow terminal connections
- Read JSON-valued settings, such as hook definitions, with
copilot config <key>and/settings show <key>. - Ctrl+C stops a ! shell command even when pressed immediately after submitting it
- Memory changes in /settings take effect without restarting the CLI
- Preserve exact numbers, duplicate keys, and key order when displaying JSON tool results in previews and expanded views
- Warn when repository settings override the reasoning effort for new sessions after saving a default with /model --global or /model --repo
- /context shows loaded custom instructions as a separate token count instead of including them in System Prompt
- Make /restart work when the CLI is launched with an attached directory argument such as -Csub or -C=sub
- Show a single status entry when /compact is cancelled or has nothing to compact, without treating nothing to compact as an error
- Keep /config and /settings readable beside the docked Sessions sidebar by fitting the layout to the available pane width
- Show a warning when --yolo or --allow-all flags are ignored because bypass permissions mode is disabled, including in non-interactive runs
- Shell completion works after --effort, --no-remote-export, and bare --sync-session flags; regenerate your completion script to apply
- Report missing MCP servers as not found in
copilot mcp removeand/mcp deleteinstead of suggesting a disable command that cannot find them - Show the MCP reload notice only once when /new worktree, /fork worktree, or /resume opens a session in another directory
- Correct highlighting and emoji display in directory and agent pickers for names containing a capital dotted I.
- /skills reload reports the same skill count as /skills list.
- Allow
copilot mcp enablefor most servers even when mcp-config.json is invalid - Dialogs and tables fit beside the Sessions sidebar without clipped text or columns, and /sandbox fits narrow terminals.
- Show custom agents marked user-invocable: false in /subagents so you can configure their models and turn them on or off
- Show which plugin rules are off by default in
copilot instruction list - Show names and file paths containing Markdown characters exactly as configured in /env
- Keep text selections visible without adding color when NO_COLOR is set
- Keep attachments and pasted text intact when clicking inside their labels in the prompt and typing
- A postToolUse hook that rewrites a shell command's output, for example to redact a secret, again changes what the Shell row and copilot -p print, not only what the model receives
- Apply URL rules saved in /settings to the active session without requiring a restart
- Keep /model details visible when the Sessions sidebar is docked
- Show changed files with non-UTF-8 filenames in /diff, including their patches
- Preserve blank lines when copying text from the prompt with the mouse
- Mouse scrolling and clicks in /settings and /config work correctly with the Sessions sidebar docked
- Keep typed text visible and the cursor aligned after completing folder or agent names containing control characters
- Show cancellation only once when interrupting a turn with Esc Esc while a /model switch is queued
- Removing a problem in /settings keeps the selection on the first remaining row instead of jumping to an unrelated one
- Keep tool results and assistant replies readable and aligned when they contain Unicode line or paragraph separators
- Make Enter, Up and Down respond immediately after editing a short /search query, and start new queries at the bottom match
- Remote MCP tools load and respond without timing out when server replies contain a truncated emoji
- Keep group headings visible when scrolling back to the first item in /settings lists
- /ask and /btw wait for sign-in to finish at startup and prompt signed-out users to run /login
- Scrolling or clicking the Sessions sidebar leaves Configuration search results unchanged.
- Preserve plugin enablement settings at startup when settings.json uses alternate key spellings and contains an invalid value
- Avoid a five-second delay on /exit and /cd when stopping a session-owned indexed search server
- Honor NO_COLOR for file-type badges and disable scrollbar thumb colors under NO_COLOR or TERM=dumb
- Keep shell output aligned and free of display artifacts when commands print Unicode line or paragraph separators
- Allow copilot mcp add and remove when mcp-config.json is a symlink to a file that does not exist yet
- Assistant replies with no visible content no longer display an empty bullet in the conversation.
- Keep plugins installed from remote marketplaces when a repository defines a local marketplace with the same name
- Keep emoji intact and wide session titles within the column limit in
/ahp sessions - Keep remaining MCP servers' tool token counts accurate in /mcp after disabling a server with tool search enabled
- Show refresh completion in the Installed view of /mcp, /skills, and /plugin instead of leaving the refreshing status on screen
- Canceling "Session limit reached" clears waiting messages instead of sending them and reopening the dialog for each one
- /mcp shows the correct repository or plugin origin for servers provided by custom agents
- Exiting shell mode with Ctrl+C clears the exit hint so the next press warns before quitting
- Keep the focused field and its options visible in MCP configuration forms when the terminal is resized
- Keep the Sessions sidebar help's status legend fully visible in narrower panes
- Several CLIs started at once after the user lookup expired no longer look the user up twice and wait for the second lookup before starting
- Once a session limit has blocked a prompt, every later prompt it blocks also reports the limit, instead of ending with no reply; in non-interactive sessions each blocked prompt fails with the session limit error
- Prevent /mcp add and /mcp edit from overwriting an existing MCP server when its name is already in use
copilot -pnow warns on stderr and in JSON output when it cannot start MCP servers, for example because the user'smcp-config.jsoncannot be parsed, instead of continuing without them silently- A local model added and selected from /model mid-session no longer shows Copilot plan quota and AI Credits in the footer, /usage or the exit summary
- copilot plugin marketplace list, browse and update run from a subdirectory of a repository find the repository's relative directory marketplace under the repository root instead of under the current directory
- Preserve existing invalid MCP server configurations when installing a server with the same name
- On macOS 13 and earlier, the CLI now says it requires macOS 14 or later instead of exiting with a native addon loading error
- /remote on and /remote share now say that your organization has disabled remote control, instead of sending you to /environments to enable incoming connections, which that policy also blocks
- The exit summary shows AI Credits again when a providers.json is configured but a GitHub-hosted model is selected, matching /usage and the footer
- Honor the Assisted Permissions startup default when user settings contain an administrator-only restriction that does not apply
- An MCP sign-in that is waiting in the browser now stops when the server is blocked by the account's third-party MCP policy, instead of finishing the sign-in and saving tokens for a server that can no longer be used
- Search rows for grep and glob no longer count a postToolUse hook's additionalContext as results, so a search that matched nothing no longer reads 4 files found
- The
/settingsdialog and/configno longer showstreamerModeto accounts that cannot use/streamer-mode; an account whose settings already have it on still sees the row, so it can turn it off - Indexed search keeps reconnecting after occasional connection losses in long sessions instead of switching to ripgrep for the rest of the session
- Accepting or rejecting an IDE diff works even when another MCP server changes status