2026-07-16
copilot -p --autopilotno longer hangs when a background shell or agent outlives the turn; it now honors the COPILOT_TASK_WAIT_TIMEOUT_SECONDS timeout the same way plain-pdoes.- Reopening the /subagents model picker keeps each agent's reasoning effort and context tier
- Refresh memory context after 30 minutes in long-lived sessions
- Keep MCP tool lists up to date when servers change
- Avoid leaving long-running background git processes after exit
- Add a configurable maximum for Ctrl+R command history
- On startup, an invalid settings.json now shows a warning identifying the offending value instead of silently ignoring your settings
- /terminal-setup no longer skips setup on terminals without real kitty keyboard support
- Add /voice devices to choose and persist the microphone for voice mode
- Limit which built-in agents are available to tasks and subagents
- Add canvas support in the CLI for extension-driven interactions
- Enforce the sandbox filesystem policy on LSP file reads and rename edits
- Allow empty owner and author emails in marketplace metadata
- Keep all MCP Server Type options visible on short terminals
- Mark disabled skills in
copilot skill listand its JSON output - Plan mode now hard-blocks built-in tool calls that would modify the workspace, so the agent can no longer edit files or run mutating shell commands while planning (built-in mutators like opening a pull request are blocked; MCP and external tools are still allowed)
- Improve /chronicle cost-tips recommendations with richer cost profiles
- Highlight standalone hex colors inline in Markdown
- Persist GitHub MCP toolset/tool config via settings.json (githubMcpToolsets, githubMcpTools, etc.)
- Add
plugins marketplacesubcommands to list, add, and remove plugin marketplaces - Persist sidebar sessions across restarts
- Add plugins marketplace browse and update commands
- Split /worktree and /move: /worktree now creates a new worktree and leaves your uncommitted changes behind, while the new /move carries them into the new worktree
- Add local and cloud cost profiles to /chronicle cost-tips
- Switching to autopilot mid-turn now auto-answers questions asked during that same turn
- Custom agents that request a shell tool by alias now also receive the matching read, list, and stop shell tools
- Slash commands and their autocomplete now match regardless of case (e.g. /SESSION works like /session)
- Show repo-enabled plugins in /plugin list and skill pickers
- Press ? twice to dismiss quick help and start a prompt with a literal ?
- Shell completions suggest positional-argument choices
- Show the /app launch message and download link immediately on Linux
- Validate --max-autopilot-continues rejects NaN, negative, and fractional values
- Honor NO_COLOR in the CLI even when chalk cached a color level
- Apply updated session options (shell flags, streaming, custom agent defaults) immediately after /settings changes
- Announce the focused /model row for screen readers
- Announce the focused picker row to screen readers
- Show selected custom agents once in /agent and keep their source label when the file name differs from the display name
- Clear the /model pricing banner when no models match
- Keep /share file session and /share html session from using the full-session selector as an output path
- Honor --context in fresh interactive sessions
- Fixed the model picker changing a hidden model's reasoning effort or context window when the search matched no results, and hid the inert key hints shown in that empty state
- Display plugin root skills as /plugin instead of /plugin:plugin
- Keep valid hooks in a config file when one hook entry is malformed
- Denying write(path) now blocks only the specified path
- Using --add-github-mcp-tool "*" now enables all GitHub MCP tools
- Render empty untracked files without a phantom added line
- Show clean failure messages when copilot skill add fails
- Press Enter on a blank settings array item to show an error instead of saving an empty value
- Press Enter once to toggle booleans with a registered default in /settings
- Declining folder trust in /cwd keeps your live session open and returns to the previous folder
- Show a warning when a workspace MCP config is malformed or cannot be loaded
- Make bare
copilot mcpandcopilot skillprint help and exit 0, matchingcopilot plugin. Consistent withplugin, the implicithelp <subcommand>form is not supported for these groups; usecopilot mcp <subcommand> --help(orcopilot skill <subcommand> --help) instead. - Show malformed allowed_models.txt policy errors cleanly in -p mode
- Resume synced sessions by name without a false multiple matches error
- Show an error when --name is used with --session-id for an existing session
- Show --plugin-dir plugins in copilot plugin list
- Keep backgrounded sessions alive when you switch away from them
- Link bare #number GitHub refs in -p --stream off output
- Show the startup banner only on the first launch when set to once
- Allow
copilot updateand/updateto acceptstableas a channel - Surface --plugin-dir warnings in the terminal
- Surface the real load error for malformed custom agents
- Reject --continue when used with --resume
- Prompt mode now exits non-zero when a
--shareor--share-gistexport fails - Server mode reconnects OAuth MCP servers from cached tokens
- Keep stored Git credential helpers available for marketplace plugin installs
- The /model picker shows the Auto model description as markdown with a clickable Learn More link
- Keep sessions tied to their working directory across prompts, restarts, and workspace tools
- Always offer a custom answer in ask_user choice prompts
- Lower the default maximum sub-agent nesting depth from 6 to 4 to curb runaway recursive sub-agent delegation. Usage-based billing users can still adjust
subagents.maxDepth(up to 128). - Add a pinned prompts setting in /settings to control prompt pinning
- Add Repo and Repo (local) scope tabs to the /settings dashboard
- Interactive shell commands now fail with a retryable "reconfiguring" message instead of an "unknown shellManager handle" error after the shell manager is disposed, and a detached command's completion notification is no longer lost when the shell context is reconfigured while a read is in progress
- Reject custom-agent names that would create hidden files
- Reject malformed --allow-tool and --deny-tool patterns with an error message
- Show retained shell output in /tasks Shell Details for finished tasks
- Remove duplicate Error: prefixes from plugin command failures
- Shell completions stop suggesting subcommands as flag values
- Show singular message counts in /usage activity graph
- Keep /cd from switching to files or inaccessible directories
- Dismissing the quick-help overlay with ? no longer leaves a stray ? in the prompt
- --sandbox and --no-sandbox now show their "ignored" warning during interactive startup when the sandbox feature is unavailable (previously it was only visible in non-interactive mode)
- Show the full command with its arguments (not just the wrapper) in the /mcp server detail view
- Hide the inert navigate and view-log hints in the empty /lsp logs (LSP Services) panel
- Exit non-interactive prompt runs with a failure code when a prompt is blocked before responding
- Show the Auto discount in the redesigned inline model picker
- New sessions start in the default directory instead of the active session's cwd
- Fish completion only offers enum values for closed-choice flags
- Use targeted validation commands and lighter install guidance by default
- Use ctrl+x → x to close a session and ctrl+x → h to hide the split sidebar