From ab1336d6ba963d53924592b0bb2822a1911d11ec Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 23 Mar 2026 20:22:13 +0000 Subject: [PATCH 1/9] Update changelog.md for version 1.0.11 --- changelog.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/changelog.md b/changelog.md index 63c6f09..fb33365 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,22 @@ +## 1.0.11 - 2026-03-23 + +- Ensure models appear in picker correctly, display model names where possible +- Show a warning when MCP servers are blocked by policy (e.g. allowlist enforcement) +- Organization policy for third-party MCP servers is now enforced for all users +- Add ~/.agents/skills/ as a personal skill discovery directory, aligning with VS Code's GHCP4A extension default +- Extension hooks from multiple extensions now merge instead of overwriting each other or hooks from hooks.json +- sessionStart hook additionalContext is now injected into the conversation +- /clear now abandons the current session entirely, while /new starts a fresh conversation (keeping the old session backgrounded) +- GitHub MCP server user configuration is respected when connecting to remote hosts +- Terminal screen redraws correctly after process suspend and resume (Ctrl+Z / fg) +- MCP OAuth authentication works with MCP servers like the Atlassian Rovo MCP Server which support Dynamic Client Registration but host authorization metadata at a non-standard URL +- /cd keeps a separate working directory per session, restored when switching sessions +- Custom instructions, MCP servers, skills, and agents are now discovered at every directory level from the working directory up to the git root, enabling full monorepo support +- Startup 'Environment loaded' message now shows the number of loaded hooks +- Background agent progress (current intent and tool calls completed) now surfaces in read_agent and task timeout responses +- statusLine.command path now supports ~ and environment variables (e.g. $HOME, ${VAR:-default}) +- /new and /clear commands accept an optional prompt to start the new session with a first message + ## 1.0.10 - 2026-03-20 - Reduced memory usage when viewing large files in their entirety From 2a03ddf5684a10d5de8bc23023efafaceeda9d43 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 26 Mar 2026 22:19:03 +0000 Subject: [PATCH 2/9] Update changelog.md for version 1.0.12 --- changelog.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/changelog.md b/changelog.md index fb33365..d526edc 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,33 @@ +## 1.0.12 - 2026-03-26 + +- MCP servers defined in .mcp.json start correctly when the working directory is the git root +- Clipboard copy works correctly on Windows when non-system clip.exe shadows the system one in PATH +- /diff view correctly renders all lines when intra-line highlighting is present +- Plugin hooks now receive CLAUDE_PROJECT_DIR and CLAUDE_PLUGIN_DATA environment variables, and support {{project_dir}} and {{plugin_data_dir}} template variables in hook configurations +- Workspace MCP servers are now correctly loaded and visible to the agent +- /clear preserves MCP servers in the new session +- Model display header shows the active reasoning effort level (e.g. "(high)") next to the model name +- /session rename auto-generates a session name from conversation history when called without a name argument +- Remove --alt-screen flag and alt_screen setting; alt screen is now always enabled +- OSC 8 hyperlinks are now clickable in VS Code terminals +- PowerShell /flag arguments (e.g., /all, /enum-devices) are no longer mistakenly treated as file paths +- Trusted folder access prompts no longer appear incorrectly on Windows OneDrive paths and case-insensitive filesystems +- Status line payload includes session_name field alongside session_id +- @ file picker no longer shows .git directory contents +- Scroll position stays in place when the terminal is resized +- /yolo path permissions persist after using /clear to start a new session +- Emoji characters are selected and highlighted correctly in terminal text selection +- Sessions with active work are no longer cleaned up by the stale session reaper +- Resume session restores the previously selected custom agent +- CLI no longer crashes with out-of-memory errors when running shell commands that produce high-volume output +- Pressing Escape multiple times during autopilot cancellation no longer leaves the session stuck +- Read .claude/settings.json and .claude/settings.local.json as additional repo config sources +- Model picker opens in full-screen view with inline reasoning effort adjustment using ← / → arrow keys +- OTEL hook executions are now recorded as span events instead of child spans, reducing trace clutter +- User prompt appears in the conversation immediately after pressing Enter +- /allow-all (/yolo) now supports on, off, and show subcommands to enable, disable, or check allow-all mode +- Ctrl+Y in plan mode opens the most recent research report when no plan exists yet + ## 1.0.11 - 2026-03-23 - Ensure models appear in picker correctly, display model names where possible From 3d2b5b575f1ee3cb8966e56dc895083a3d6e3d7b Mon Sep 17 00:00:00 2001 From: Daniel Bennett <8812489+gulducat@users.noreply.github.com> Date: Thu, 26 Mar 2026 18:26:10 -0400 Subject: [PATCH 3/9] Sort git tags when determining prerelease version Tags are sorted lexicographically by default, not by version, so for example right now `git ls-remote` for this repo shows: ``` $ git ls-remote --tags \ https://github.com/github/copilot-cli \ | tail -3 | awk -F/ '{print$NF}' v1.0.8 v1.0.8-0 v1.0.9 ``` With the sort option, it shows the correct latest prerelease tags: ``` $ git ls-remote --tags --sort "version:refname" \ https://github.com/github/copilot-cli \ | tail -3 | awk -F/ '{print$NF}' v1.0.12-0 v1.0.12-1 v1.0.12-2 ``` This option for git ls-remote was added in git version 2.18.0 in June 2018: https://github.com/git/git/blob/v2.18.0/Documentation/RelNotes/2.18.0.txt#L69-L70 --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 61caf87..76bc23c 100755 --- a/install.sh +++ b/install.sh @@ -54,7 +54,7 @@ elif [ "${VERSION}" = "prerelease" ]; then echo "Error: git is required to install prerelease versions" >&2 exit 1 fi - VERSION="$(git ls-remote --tags "$GIT_REMOTE" | tail -1 | awk -F/ '{print $NF}')" + VERSION="$(git ls-remote --tags --sort "version:refname" "$GIT_REMOTE" | tail -1 | awk -F/ '{print $NF}')" if [ -z "$VERSION" ]; then echo "Error: Could not determine prerelease version" >&2 exit 1 From 07af0bc14eac67368d05118398be5c03f2d8caaa Mon Sep 17 00:00:00 2001 From: marcelsafin <179933638+marcelsafin@users.noreply.github.com> Date: Sun, 29 Mar 2026 04:31:57 +0200 Subject: [PATCH 4/9] install: add fish shell support for PATH configuration Fish shell users currently fall into the catch-all case, which writes POSIX export syntax to ~/.profile. Fish does not source ~/.profile and does not use export PATH="...:$PATH" syntax, so the PATH addition silently does nothing. Add a fish case that targets the idiomatic conf.d directory and uses fish_add_path, matching how the script already handles zsh and bash with their respective profile files and syntax. Extract the PATH command into a variable to avoid duplicating the shell-specific logic across the interactive prompt, non-interactive hint, and get-started instructions. --- install.sh | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index 76bc23c..7904901 100755 --- a/install.sh +++ b/install.sh @@ -152,7 +152,8 @@ if ! command -v copilot >/dev/null 2>&1; then echo "Notice: $INSTALL_DIR is not in your PATH" # Detect shell profile file for PATH - case "$(basename "${SHELL:-/bin/sh}")" in + CURRENT_SHELL="$(basename "${SHELL:-/bin/sh}")" + case "$CURRENT_SHELL" in zsh) RC_FILE="${ZDOTDIR:-$HOME}/.zprofile" ;; bash) if [ -f "$HOME/.bash_profile" ]; then @@ -163,29 +164,36 @@ if ! command -v copilot >/dev/null 2>&1; then RC_FILE="$HOME/.profile" fi ;; + fish) RC_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/fish/conf.d/copilot.fish" ;; *) RC_FILE="$HOME/.profile" ;; esac + PATH_LINE="export PATH=\"$INSTALL_DIR:\$PATH\"" + if [ "$CURRENT_SHELL" = "fish" ]; then + PATH_LINE="fish_add_path \"$INSTALL_DIR\"" + fi + # Prompt user to add to shell rc file (only if interactive) if [ -t 0 ] || [ -e /dev/tty ]; then echo "" printf "Would you like to add it to %s? [y/N] " "$RC_FILE" if read -r REPLY /dev/null; then if [ "$REPLY" = "y" ] || [ "$REPLY" = "Y" ]; then - echo "export PATH=\"$INSTALL_DIR:\$PATH\"" >> "$RC_FILE" - echo "✓ Added PATH export to $RC_FILE" + mkdir -p "$(dirname "$RC_FILE")" + echo "$PATH_LINE" >> "$RC_FILE" + echo "✓ Added PATH configuration to $RC_FILE" echo " Restart your shell or run: source $RC_FILE" fi fi else echo "" echo "To add $INSTALL_DIR to your PATH permanently, add this to $RC_FILE:" - echo " export PATH=\"$INSTALL_DIR:\$PATH\"" + echo " $PATH_LINE" fi echo "" echo "Installation complete! To get started, run:" - echo " export PATH=\"$INSTALL_DIR:\$PATH\" && copilot help" + echo " $PATH_LINE && copilot help" else echo "" echo "Installation complete! Run 'copilot help' to get started." From 177b637fa39ee0b1afefa646bbe760a45eee765d Mon Sep 17 00:00:00 2001 From: marcelsafin <179933638+marcelsafin@users.noreply.github.com> Date: Sun, 29 Mar 2026 05:25:18 +0200 Subject: [PATCH 5/9] install: use EXIT trap for temp directory cleanup Replace scattered rm -rf calls with a single EXIT trap to ensure the temp directory is always cleaned up on exit. Previously, failures in curl/wget download, tar extraction, chmod, or mkdir left temp files behind because set -e would exit before reaching manual cleanup calls. The trap fires on any exit (success or failure), so it covers all paths with one line while removing five redundant cleanup calls. --- install.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/install.sh b/install.sh index 76bc23c..1916e2f 100755 --- a/install.sh +++ b/install.sh @@ -75,6 +75,7 @@ echo "Downloading from: $DOWNLOAD_URL" # Download and extract with error handling TMP_DIR="$(mktemp -d)" +trap 'rm -rf -- "$TMP_DIR"' EXIT TMP_TARBALL="$TMP_DIR/copilot-${PLATFORM}-${ARCH}.tar.gz" if command -v curl >/dev/null 2>&1; then curl -fsSL "${CURL_AUTH[@]}" "$DOWNLOAD_URL" -o "$TMP_TARBALL" @@ -82,7 +83,6 @@ elif command -v wget >/dev/null 2>&1; then wget -qO "$TMP_TARBALL" "${WGET_AUTH[@]}" "$DOWNLOAD_URL" else echo "Error: Neither curl nor wget found. Please install one of them." - rm -rf "$TMP_DIR" exit 1 fi @@ -101,7 +101,6 @@ if [ "$CHECKSUMS_AVAILABLE" = true ]; then echo "✓ Checksum validated" else echo "Error: Checksum validation failed." >&2 - rm -rf "$TMP_DIR" exit 1 fi elif command -v shasum >/dev/null 2>&1; then @@ -109,7 +108,6 @@ if [ "$CHECKSUMS_AVAILABLE" = true ]; then echo "✓ Checksum validated" else echo "Error: Checksum validation failed." >&2 - rm -rf "$TMP_DIR" exit 1 fi else @@ -120,7 +118,6 @@ fi # Check that the file is a valid tarball if ! tar -tzf "$TMP_TARBALL" >/dev/null 2>&1; then echo "Error: Downloaded file is not a valid tarball or is corrupted." >&2 - rm -rf "$TMP_DIR" exit 1 fi @@ -144,7 +141,6 @@ fi tar -xz -C "$INSTALL_DIR" -f "$TMP_TARBALL" chmod +x "$INSTALL_DIR/copilot" echo "✓ GitHub Copilot CLI installed to $INSTALL_DIR/copilot" -rm -rf "$TMP_DIR" # Check if installed binary is accessible if ! command -v copilot >/dev/null 2>&1; then From 2ecd9e14fcb3a6fef86aa4dd20cd958480dc3b79 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 30 Mar 2026 17:29:46 +0000 Subject: [PATCH 6/9] Update changelog.md for version 1.0.13 --- changelog.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/changelog.md b/changelog.md index d526edc..42375b9 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,28 @@ +## 1.0.13 - 2026-03-30 + +- Shell processes are cleaned up properly when a session ends +- Reduce CPU usage during streaming by optimizing spinner rendering and task polling +- SDK exit_plan_mode.requested event is now always emitted, regardless of whether a direct callback is configured +- MCP servers using Microsoft Entra ID authentication no longer show the consent screen on every login +- Grep and glob search results return promptly when a timeout is reached +- Keystrokes are no longer dropped when typing quickly in elicitation dialogs +- Clipboard copy on native Windows no longer includes a stray U+FEFF character at the start of pasted text +- Fixed --config-dir being ignored when resuming a session, causing paths to silently fall back to ~/.copilot +- Reduce CLI startup time by running terminal detection, auth, and git operations in parallel +- /rewind and double-Esc now open a timeline picker that can roll back to any point in conversation history, not just the previous snapshot +- MCP registry lookups are more reliable with automatic retries and request timeouts +- CLI starts faster due to V8 compile cache reducing parse and compile time on repeated invocations +- MCP servers can request LLM inference (sampling) with user approval via a new review prompt +- MCP servers blocked by allowlist policy are now hidden from /mcp show +- Reasoning effort setting now applies correctly when using Bring Your Own Model (BYOM) providers +- Ensure clear error messaging when using classic PATs +- grep tool handles large files and long lines without running out of memory +- MCP server OAuth authentication works when the CLI runs in ACP mode +- Split $BROWSER on spaces +- Pasted text is no longer corrupted when mouse support is active +- Uninstalling a marketplace plugin removes its cached data from disk +- Remove support for gemini-3-pro-preview model + ## 1.0.12 - 2026-03-26 - MCP servers defined in .mcp.json start correctly when the working directory is the git root From 65677f80017144a0803787547d3e1f647d985ca6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 31 Mar 2026 02:57:37 +0000 Subject: [PATCH 7/9] Update changelog.md for version 1.0.14 --- changelog.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/changelog.md b/changelog.md index 42375b9..2758725 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,33 @@ +## 1.0.14 - 2026-03-31 + +- Images are correctly sent to Anthropic models when using BYOM +- Model picker selection correctly overrides the --model flag for the current session +- Terminal output no longer clears or jumps on error exit +- Shift+Enter inserts a newline in terminals with Kitty keyboard protocol support +- Show underlying error details when a Git marketplace URL fails to clone +- Temp file operations no longer trigger unnecessary permission prompts on macOS +- Allow SDK session participants to respond to elicitation requests via handlePendingElicitation API +- Shell processes are cleaned up properly when a session ends +- SDK exit_plan_mode.requested event is now always emitted, regardless of whether a direct callback is configured +- MCP servers using Microsoft Entra ID authentication no longer show the consent screen on every login +- Grep and glob search results return promptly when a timeout is reached +- Keystrokes are no longer dropped when typing quickly in elicitation dialogs +- Clipboard copy on native Windows no longer includes a stray U+FEFF character at the start of pasted text +- Fixed --config-dir being ignored when resuming a session, causing paths to silently fall back to ~/.copilot +- MCP servers blocked by allowlist policy are now hidden from /mcp show +- Reasoning effort setting now applies correctly when using Bring Your Own Model (BYOM) providers +- Ensure clear error messaging when using classic PATs +- grep tool handles large files and long lines without running out of memory +- MCP server OAuth authentication works when the CLI runs in ACP mode +- Split $BROWSER on spaces +- Pasted text is no longer corrupted when mouse support is active +- Uninstalling a marketplace plugin removes its cached data from disk +- Reduce CPU usage during streaming by optimizing spinner rendering and task polling +- Reduce CLI startup time by running terminal detection, auth, and git operations in parallel +- MCP registry lookups are more reliable with automatic retries and request timeouts +- CLI starts faster due to V8 compile cache reducing parse and compile time on repeated invocations +- Remove support for gemini-3-pro-preview model + ## 1.0.13 - 2026-03-30 - Shell processes are cleaned up properly when a session ends From c6f66703a0043da9b2020668d4145b8d72d5697b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 1 Apr 2026 17:12:54 +0000 Subject: [PATCH 8/9] Update changelog.md for version 1.0.15 --- changelog.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/changelog.md b/changelog.md index 2758725..1797e49 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,24 @@ +## 1.0.15 - 2026-04-01 + +- Remove support for gpt-5.1-codex, gpt-5.1-codex-mini, and gpt-5.1-codex-max models +- Copilot mascot now blinks with subtle eye animations in interactive mode +- User switcher and `/user list` display accounts in alphabetical order +- Add mcp.config.list, mcp.config.add, mcp.config.update, and mcp.config.remove server RPCs for managing persistent MCP server configuration +- Add device code flow (RFC 8628) as a fallback for MCP OAuth in headless and CI environments +- Add `/mcp auth` command and re-authentication UI for MCP OAuth servers with account switching support +- Add postToolUseFailure hooks for tool errors and make postToolUse run only after successful tool calls +- Add /share html command to export sessions and research reports as self-contained interactive HTML files +- Autopilot no longer continues after pressing Escape or Ctrl+C to cancel +- Keystrokes typed while the CLI is loading are no longer lost +- Large tool output preview shows correct character count and up to 500 characters +- Add Home/End and Page Up/Page Down navigation to the diff viewer +- CLI exits immediately after a session ends instead of waiting up to 10 seconds +- Config settings askUser, autoUpdate, storeTokenPlaintext, logLevel, skillDirectories, and disabledSkills now use camelCase names (snake_case still accepted) +- Many settings keys now prefer camelCase names (snake_case names still work) +- Ctrl+D no longer queues a message; use Ctrl+Q or Ctrl+Enter to queue +- MCP servers that are slow to connect no longer block the agent from starting +- Pasting images from the Windows clipboard now works in WSL environments + ## 1.0.14 - 2026-03-31 - Images are correctly sent to Anthropic models when using BYOM From 42474821379585e934658d0a425bb745e597b737 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 2 Apr 2026 16:52:15 +0000 Subject: [PATCH 9/9] Update changelog.md for version 1.0.16 --- changelog.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/changelog.md b/changelog.md index 1797e49..aa93682 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,14 @@ +## 1.0.16 - 2026-04-02 + +- SQL prompt tags no longer appear when sql tool is excluded via excludedTools or availableTools +- MCP tool calls display tool name and parameter summary in the timeline +- MCP server reconnects correctly with valid authentication when the working directory changes +- Add PermissionRequest hook to allow scripts to programmatically approve or deny tool permission requests +- Remove deprecated `marketplaces` repository setting (use `extraKnownMarketplaces` instead) +- MCP servers load correctly after login, user switch, and /mcp reload +- BYOK Anthropic provider now respects the configured maxOutputTokens limit +- Remove deprecated `marketplaces` repository setting (use `extraKnownMarketplaces` instead) + ## 1.0.15 - 2026-04-01 - Remove support for gpt-5.1-codex, gpt-5.1-codex-mini, and gpt-5.1-codex-max models