From eaa1eabdd156d13b60c120e6b7acb9877253c5a6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 1 Jun 2026 18:40:12 +0000 Subject: [PATCH 01/26] Update changelog.md for version 1.0.57 --- changelog.md | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index d4f463ee..fa170369 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,37 @@ +## 1.0.57 - 2026-06-01 + +- Actionable error message shown when GitHub API rate limit is hit during `copilot update` +- Plugin slash commands (/plugin install, uninstall, update, marketplace add/remove/browse) now show immediate feedback while the operation is in progress +- Canceling a running shell command (Ctrl+C on a !command, or aborting an agent command — including in sandboxed and background-promoted shells) now terminates the whole process tree instead of leaving orphaned processes running +- Canvas providers can return file:// URLs in open results for local file previews +- Symlinked directories appear in /cwd completion suggestions +- In Azure DevOps-only repositories, the built-in GitHub MCP server now exposes only the web_search tool instead of being fully disabled +- Quota footer shows remaining requests as a rounded percentage +- /lsp show, /lsp test, and /lsp reload correctly discover project LSP config when the CLI is launched from a subdirectory +- MCP server timeout configuration is preserved after tools list changes +- /skills add and /skills remove correctly handle paths wrapped in quotes (e.g., from Windows Explorer "Copy as path") +- Running `copilot` with an unquoted multi-word prompt now shows a helpful "quote your prompt" hint instead of a raw commander error +- Default networking transport is now HTTP/1.1, improving reliability on some network paths. Opt into HTTP/2 with COPILOT_ENABLE_HTTP2=1. +- Plugins auto-installed from repository settings no longer leak into user global config +- Grep tool correctly handles tsx and jsx as file type filters +- COPILOT_HOME is honored for the server discovery registry directory +- Click a diff line with the mouse to select it in diff mode +- Ctrl+C and other modified keys work correctly inside tmux +- @-mention file search matches files regardless of query letter casing +- `copilot plugin marketplace list` now honors repo-level `extraKnownMarketplaces` settings from `.github/copilot/settings.json` +- Queued prompts in the footer are capped to a single line, preventing them from pushing session messages off screen +- MCP servers configured with npx --registry are no longer incorrectly blocked by policy +- Session no longer hangs indefinitely after an error occurs during internal event processing +- Installed plugins no longer include the .git directory from the plugin source repository +- New reasoning after tool calls appears at the bottom of the timeline instead of above earlier output +- Pasting text copied from a browser, editor, or terminal no longer leaves a stray empty line, broken box-drawing lines, or a misplaced cursor in the prompt +- preToolUse hook errors now deny the tool call instead of silently allowing execution +- Session resume works correctly after a crash that left partial data in the session log +- High-contrast diff backgrounds use darker colors to improve text readability +- Add showTipsOnStartup setting to control whether startup tips are shown +- Surface the underlying reason (e.g. GitHub API rate limit) when SDK auth-token validation fails, instead of the misleading "Session was not created with authentication info or custom provider" message. +- /diff defaults to branch diff when there are no unstaged changes + ## 1.0.56 - 2026-05-29 - Free and Student users can select models other than Auto in the model picker @@ -1878,7 +1912,7 @@ To commemorate GitHub Copilot CLI reaching general availability last week, we're - Enabled non-interactive GHE logins by respecting the `GH_HOST` environment variable for PAT and `gh` authentication modes (fixes https://github.com/github/copilot-cli/issues/296) - Improved debug log collection convenience by adding a persistent `log_level` option in `~/.copilot/config`. Possible values: `["none", "error", "warning", "info", "debug", "all", "default"]` - Added debug logging when calls to `/model` result in Copilot API errors. This should help us diagnose some policy/model access edge cases like https://github.com/github/copilot-cli/issues/268 and https://github.com/github/copilot-cli/issues/116 -- Added `gradlew` to the list of commands whose subcommands can be whitelisted (fixes https://github.com/github/copilot-cli/issues/217#issuecomment-3393844685) +- Added `gradlew` to the list of commands whose subcommands can be allowlisted (fixes https://github.com/github/copilot-cli/issues/217#issuecomment-3393844685) - Fixed a bug where sessions could enter a stuck state after a failed MCP tool call (fixes https://github.com/github/copilot-cli/issues/312) - Made the output of `--help` text more concise From fbdc9da367bfbeac14f93c7cbd66465fcec95749 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 2 Jun 2026 16:01:15 +0000 Subject: [PATCH 02/26] Update changelog.md for version 1.0.58 --- changelog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index fa170369..f7bf54d1 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,7 @@ -## 1.0.57 - 2026-06-01 +## 1.0.58 - 2026-06-02 - Actionable error message shown when GitHub API rate limit is hit during `copilot update` +- Add /rubber-duck command for adversarial feedback on code and designs - Plugin slash commands (/plugin install, uninstall, update, marketplace add/remove/browse) now show immediate feedback while the operation is in progress - Canceling a running shell command (Ctrl+C on a !command, or aborting an agent command — including in sandboxed and background-promoted shells) now terminates the whole process tree instead of leaving orphaned processes running - Canvas providers can return file:// URLs in open results for local file previews From 3e316bbd750d398b56b20f346cb6a9c4bf429441 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 2 Jun 2026 21:01:21 +0000 Subject: [PATCH 03/26] Update changelog.md for version 1.0.59 --- changelog.md | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index f7bf54d1..9500a5f0 100644 --- a/changelog.md +++ b/changelog.md @@ -1,4 +1,4 @@ -## 1.0.58 - 2026-06-02 +## 1.0.59 - 2026-06-02 - Actionable error message shown when GitHub API rate limit is hit during `copilot update` - Add /rubber-duck command for adversarial feedback on code and designs @@ -15,6 +15,33 @@ - Default networking transport is now HTTP/1.1, improving reliability on some network paths. Opt into HTTP/2 with COPILOT_ENABLE_HTTP2=1. - Plugins auto-installed from repository settings no longer leak into user global config - Grep tool correctly handles tsx and jsx as file type filters +- Add the /voice command to dictate prompts using local speech-to-text models +- COPILOT_HOME is honored for the server discovery registry directory + +## 1.0.58 - 2026-06-02 + +- Rubber Duck is now enabled by default +- Remote JSON RPC is now enabled by default +- Experimental schedule prompts with `/every` and `/after` +- Experimental new GitHub TUI theme +- Experimental new UI with easy access to issues, pull requests, and gists + +## 1.0.57 - 2026-06-01 + +- Actionable error message shown when GitHub API rate limit is hit during `copilot update` +- Plugin slash commands (/plugin install, uninstall, update, marketplace add/remove/browse) now show immediate feedback while the operation is in progress +- Canceling a running shell command (Ctrl+C on a !command, or aborting an agent command — including in sandboxed and background-promoted shells) now terminates the whole process tree instead of leaving orphaned processes running +- Canvas providers can return file:// URLs in open results for local file previews +- Symlinked directories appear in /cwd completion suggestions +- In Azure DevOps-only repositories, the built-in GitHub MCP server now exposes only the web_search tool instead of being fully disabled +- Quota footer shows remaining requests as a rounded percentage +- /lsp show, /lsp test, and /lsp reload correctly discover project LSP config when the CLI is launched from a subdirectory +- MCP server timeout configuration is preserved after tools list changes +- /skills add and /skills remove correctly handle paths wrapped in quotes (e.g., from Windows Explorer "Copy as path") +- Running `copilot` with an unquoted multi-word prompt now shows a helpful "quote your prompt" hint instead of a raw commander error +- Default networking transport is now HTTP/1.1, improving reliability on some network paths. Opt into HTTP/2 with COPILOT_ENABLE_HTTP2=1. +- Plugins auto-installed from repository settings no longer leak into user global config +- Grep tool correctly handles tsx and jsx as file type filters - COPILOT_HOME is honored for the server discovery registry directory - Click a diff line with the mouse to select it in diff mode - Ctrl+C and other modified keys work correctly inside tmux From 85b27cb8a4548baa38bea72cec246535bb78e9d4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 5 Jun 2026 16:46:21 +0000 Subject: [PATCH 04/26] Update changelog.md for version 1.0.60 --- changelog.md | 80 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 61 insertions(+), 19 deletions(-) diff --git a/changelog.md b/changelog.md index 9500a5f0..256d83d8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,22 +1,64 @@ -## 1.0.59 - 2026-06-02 - -- Actionable error message shown when GitHub API rate limit is hit during `copilot update` -- Add /rubber-duck command for adversarial feedback on code and designs -- Plugin slash commands (/plugin install, uninstall, update, marketplace add/remove/browse) now show immediate feedback while the operation is in progress -- Canceling a running shell command (Ctrl+C on a !command, or aborting an agent command — including in sandboxed and background-promoted shells) now terminates the whole process tree instead of leaving orphaned processes running -- Canvas providers can return file:// URLs in open results for local file previews -- Symlinked directories appear in /cwd completion suggestions -- In Azure DevOps-only repositories, the built-in GitHub MCP server now exposes only the web_search tool instead of being fully disabled -- Quota footer shows remaining requests as a rounded percentage -- /lsp show, /lsp test, and /lsp reload correctly discover project LSP config when the CLI is launched from a subdirectory -- MCP server timeout configuration is preserved after tools list changes -- /skills add and /skills remove correctly handle paths wrapped in quotes (e.g., from Windows Explorer "Copy as path") -- Running `copilot` with an unquoted multi-word prompt now shows a helpful "quote your prompt" hint instead of a raw commander error -- Default networking transport is now HTTP/1.1, improving reliability on some network paths. Opt into HTTP/2 with COPILOT_ENABLE_HTTP2=1. -- Plugins auto-installed from repository settings no longer leak into user global config -- Grep tool correctly handles tsx and jsx as file type filters -- Add the /voice command to dictate prompts using local speech-to-text models -- COPILOT_HOME is honored for the server discovery registry directory +## 1.0.60 - 2026-06-05 + +- Tab completes `..` parent traversal in slash-command path arguments instead of switching tabs +- Add the max reasoning effort level for Anthropic models and make all effort levels available on every plan +- Screen no longer stays blank after waking from sleep inside a terminal multiplexer +- Input fields render background color correctly inside highlighted frames +- Cursor renders in the correct position in plan approval and review feedback prompts +- Worktree directory uses a flat name when PR branch contains slashes (e.g. `cli/foo` → `.worktrees/cli-foo`) +- Queue hint correctly shows ctrl+enter instead of ctrl+q when kitty keyboard protocol is active +- Status line progressively stacks across rows at narrow terminal widths instead of truncating elements beyond recognition +- Clipboard operations on X11 no longer corrupt the terminal display +- Add `builtInAgents.rubberDuckAutoInvoke` setting to control automatic rubber duck agent invocation (disabled by default) +- On Windows, executables are no longer discovered in the working directory when invoking by bare name (e.g. `git`). Add the working directory to `PATH` to enable discovery. +- Interactive shell commands no longer hang when producing large amounts of output +- MCP tools glyph in /context legend displays at the correct size +- Skill and slash command picker rows correctly display multi-line descriptions as a single line +- IDE picker now hides entries whose editor connection has gone away, so selecting one no longer fails with a connection error, and appends a process id to entries that share the same editor and folder so git worktrees of the same repo can be told apart +- Model picker fits within small terminal windows and mouse scroll works in the picker +- Show cache write tokens alongside cache read tokens in /usage display +- Repurpose ctrl+s to stash and pop the current prompt (Claude Code parity); the slash-command picker is still available by typing / +- /context separates Custom Instructions from the system prompt and cross-references per-server MCP tool token costs with /mcp +- Add `billing` help topic with an overview of AI credit usage features +- Add vim-style navigation keys (g, G, Ctrl+D, Ctrl+U) to the /diff view +- Show the Mission Control sharing status of synced sessions in the /session info view +- Add -r as a shorthand for --resume +- LSP server config accepts `bash`, `powershell`, and `cwd` keys; command launch default cwd stays project-root unless `cwd` is set, and `cwd` expansion now supports plugin vars like `PLUGIN_ROOT` while shell launches keep hook-matching cwd/env behavior +- Rewind picker shows working-tree diff stats (+added −removed) at each checkpoint +- Create a git worktree for a pull request directly from the pull requests screen +- Remaining requests percentage no longer shows a negative value for over-limit users +- Extension permission prompts respect --yolo and pre-approved locations on startup +- Custom agent instructions are no longer duplicated each turn, reducing context window usage +- Linux sandbox no longer fails when allowedHosts or blockedHosts are configured +- Session completion signal (terminal beep, autopilot continuation) now waits for background shell commands to finish +- Cmd+Backspace deletes the line before the cursor on macOS prompt input +- web_fetch blocks loopback, private, and cloud metadata addresses and no longer silently follows redirects +- Trusted folders and other config keys are no longer dropped when experiment assignments are cached concurrently +- Rewind no longer deletes ignored files when rolling back to a previous snapshot +- ACP allow_all config option correctly applies unrestricted permissions for tools, paths, and URLs +- --available-tools, --excluded-tools, and --reasoning-effort flags apply correctly in ACP mode +- LSP workspace/configuration response returns the correct number of entries, preventing strict servers like ty from panicking +- Extensions linked via directory symlinks are now discovered and loaded correctly +- Typing "help" at the prompt opens the quick-help overlay instead of sending it as a chat message +- Wide characters (e.g. CJK) render correctly in the terminal diff view without visual corruption +- Folder trust persists across git worktrees without re-prompting +- Force-removing a marketplace no longer causes its plugins to reinstall on next launch +- MCP OAuth re-authentication no longer fails with an address-in-use error when a login is already in progress +- Repository plugin overrides no longer change globally enabled plugin settings +- MCP allowlist now matches npm scoped servers whose registry entry drops the leading @ from the package identifier +- MCP servers registered via Azure API Center are no longer incorrectly blocked by the allowlist +- Local MCP servers sharing a serialized token broker (e.g. M365) reliably start instead of intermittently failing +- Prompt for approval before running commands that set dynamic-loader or git-config env vars (e.g. LD_PRELOAD, GIT_EXTERNAL_DIFF) +- MCP tools added or removed by a server mid-turn are now available immediately in the same turn +- BYOK file attachments larger than 5 MiB now send successfully via OpenAI Responses provider +- The /init suggestion is no longer shown when running outside a git repository +- Show session link in /session info table when remote exporting or steering +- /env command now shows hook counts and source provenance for active hooks +- Add missing keyboard shortcuts to /help content (?, ctrl+q, ctrl+r, ctrl+z, ctrl+y, shift+enter) +- Auto-link bare #number issue and PR references to the current git repository +- Error message for --cloud without experimental mode explains how to enable /experimental +- /tasks detail view shows the latest prompt after sending a follow-up to a background agent +- Enforce bypass permissions policy for --allow-all-tools, --allow-all-paths, and --allow-all-urls flags ## 1.0.58 - 2026-06-02 From b91eba536b4bb0a5ba3eab27853d868d641a5625 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 9 Jun 2026 22:02:35 +0000 Subject: [PATCH 05/26] Update changelog.md for version 1.0.61 --- changelog.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/changelog.md b/changelog.md index 256d83d8..a4eecb27 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,45 @@ +## 1.0.61 - 2026-06-09 + +- Polish /agents picker and Create New Agent wizard with consistent borders, headers, and styled inputs +- Fixed a bug where resuming a session could leave the screen blank +- Add /settings interactive dialog to browse and edit all user settings in one place +- Resuming a local session with memory disabled no longer crashes the UI to a blank screen +- /after and /every commands now appear in the /experimental slash command list +- Auto-load MCP servers from .github/mcp.json workspace config file +- /env output hides internal hooks and shows full file paths for hook sources +- Prevent crashes from malformed UTF-8, oversized string buffers, and terminal disconnect errors +- Add support for Claude Fable 5 model +- Gemini models work correctly with MCP tools that use nullable schema types +- Number-key selection in pickers (e.g. /agent) works for items 10 and beyond +- GitHub issue and PR references inside existing links no longer create broken nested autolinks +- Bash tool correctly handles multi-byte UTF-8 characters (em dash, curly quotes, etc.) in command input +- Symlinked directories now appear in @-file picker suggestions +- MCP OAuth re-authentication correctly uses the saved OAuth client ID for remote servers +- Pasted images no longer leak into the main prompt after a permission dialog closes +- Press '/' in the /agent picker to filter agents by name +- Configure home tab bar visibility, order, and hidden tabs via the `tabs` setting in settings.json +- grep and glob tools correctly handle single path arguments, preventing missed search results +- Hook progress status lines marked as temporary collapse in place instead of accumulating in the conversation timeline +- /fork shows a "Creating fork..." progress notification while the fork is being created +- /mcp search works correctly with external registries +- Use natural language with /every and /after to schedule tasks using cron expressions, calendar times, or relative durations +- Light theme secondary background color is now rendered correctly +- Search bar match count stays inside the prompt frame +- GitHub theme adapts to light terminals with an authentic GitHub Primer light color palette +- Add mTLS and private-CA support for OTLP telemetry export over HTTPS +- Fixed false positives in shell command validation that could block harmless commands containing words like "kill" in string literals or embedded documents (heredocs). +- Add full screen scrollbar +- Grep searches in large monorepos use an indexed search engine for significantly faster results +- `/sessions` now navigates to the Sessions tab instead of opening an overlay +- Add http/protobuf OTLP HTTP export via standard OTel protocol env vars +- Prompt mode surfaces model-load errors on stderr instead of exiting silently +- Add /worktree command (aliased /move) to create a new git worktree and switch into it, moving any uncommitted changes along +- Plugin install enforces managed marketplace policy even when settings cannot be fetched due to network errors +- `/help` now lists `$HOME/.copilot/instructions/**/*.instructions.md` alongside the other user-level instruction locations +- Colors render correctly in WSL and tmux sessions instead of falling back to a degraded palette +- Exit shell mode by pressing Esc or Ctrl+C on an empty prompt, in addition to Backspace +- Add `beepOnSchedule` setting to disable completion beeps for scheduled `/every` and `/after` runs + ## 1.0.60 - 2026-06-05 - Tab completes `..` parent traversal in slash-command path arguments instead of switching tabs From 9776ad4cd36cd27ed87beddc9b37e16f8ad78cc5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 13 Jun 2026 19:58:19 +0000 Subject: [PATCH 06/26] Update changelog.md for version 1.0.62 --- changelog.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/changelog.md b/changelog.md index a4eecb27..fa35e8de 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,56 @@ +## 1.0.62 - 2026-06-13 + +- Ask and elicitation dialogs now scroll together with the timeline instead of taking over the screen, so a tall dialog no longer hides the agent's output — scroll up to read earlier output, then back down to the dialog +- Keep blank lines between reasoning summary sections +- Show user-typed colon terms in the search chip +- Plugins can now ship extensions, making them installable via the plugin marketplace +- Add content search, match highlighting, and n/N navigation in diff view +- Add /app slash command to open the GitHub app or a browser fallback +- Configure subagent model, reasoning effort, and context tier via user settings or the /subagents (also /agents) picker +- PowerShell redirect paths no longer trigger content-exclusion refusals +- WebSocket transport closes cleanly outside the Tokio runtime +- Shell tool errors now explain when a shell ID was stopped, completed, or reclaimed +- Voice runtime download dialog no longer reopens in a loop after an install failure +- Make the MCP server config form easier to use with a picker-based flow +- Show 'YOLO' (allow all) indicator in the footer and add allow-all state to custom statusLine.command +- Press `/` on the Issues or Pull Requests tab to search GitHub with server-side filtering +- Add session-scoped extensions and canvases +- Allow SDK clients to configure session memory through session.create and session.resume +- Automatically authenticate through corporate forward proxies using Kerberos/Negotiate (SPNEGO) +- Add file tree sidebar and inline comment editor to the /diff view +- Honor max_output_tokens for BYOK Responses providers +- MCP server names with dots and slashes map to valid Responses API namespaces +- Editor commands like `code-insiders --wait` launch correctly on Windows +- Load skills from symlinked directories outside the configured root +- Recover gracefully from oversized inline images instead of failing the turn +- An image attachment rejected because vision is disabled by policy or unsupported by the current model no longer poisons the rest of the session. The image is stripped from conversation history after the 400 so subsequent prompts succeed. +- Shells promoted to background from /tasks keep running after the turn ends +- Hide internal disabled tool messages from background helper agents +- Sandbox tool loads correctly when mxc-sdk is provided by the host environment +- Custom agents in nested .github/agents and .claude/agents directories are now discovered when the session is started from a subdirectory of the repository root +- Approving a tool permission prompt no longer causes a second prompt for the same tool call +- View tool prompts now correctly state the 20KB truncation limit instead of 50KB +- Keep workspace MCP servers from restarting in a loop +- Keep custom agents on their configured model when using BYOK providers +- Recover from temporary content policy errors without restarting the session +- Autopilot continues cleanly in relay sessions and /plan shows the short prompt +- Git commands no longer flash a console window on Windows +- Claude-format plugin `preToolUse` and `permissionRequest` hooks now fire correctly for tool matchers like `Bash`, `Read`, and `*`, and Claude-format hook payloads carry the Claude tool name (`Bash` rather than `bash`) +- Terminal colors update live when the active theme changes mid-session +- Streamed assistant text no longer intermittently duplicates in the timeline +- grep skips missing search paths and continues with valid results instead of failing +- Remote MCP OAuth servers start only once per matching config instead of restarting for each subagent +- Nested subagents respect concurrency limits without blocking terminal input +- Plugin install works when the marketplace ref is a fully-qualified tag (e.g. refs/tags/v2.1.0) +- Press W to create a worktree from the expanded issue or pull request details view +- /every and /after can now schedule slash commands (e.g. /every 1d /chronicle standup) +- Model picker opens to the tab containing the currently selected model +- Shell commands run via lightweight process spawning instead of a pseudo-terminal; interactive input via write_bash is no longer supported +- Improve color contrast in GitHub themes to meet WCAG AA accessibility standards +- Show descriptions for ACP session config options +- Speed up branch and HEAD detection in warm sessions +- Light theme secondary background color is now rendered correctly + ## 1.0.61 - 2026-06-09 - Polish /agents picker and Create New Agent wizard with consistent borders, headers, and styled inputs From b71d1170efb3abe7cb8c83aa5a30b09272c7d274 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 16 Jun 2026 00:47:09 +0000 Subject: [PATCH 07/26] Update changelog.md for version 1.0.63 --- changelog.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/changelog.md b/changelog.md index fa35e8de..8a26d733 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,26 @@ +## 1.0.63 - 2026-06-15 + +- Blocked image attachments now explain what to do — enable vision via the "Editor preview features" policy, switch to a vision-capable model, or try a different image — instead of showing a confusing error. +- Options in `--help` output sort alphabetically, including options that have two long flags +- Auth validation errors (e.g., VPN or IP allowlist failures) are now shown in the sign-in banner with guidance to check network access +- Show fork-based pull requests in /pr and the branch PR badge +- Resume remote sessions when the local and remote repository names differ only by case +- Show the spill file path when read_bash output is too large +- Include recent local sessions in /chronicle standup +- Restore /responses WebSocket connections +- Retry transient 401 auth failures in HMAC and OAuth modes +- Press w in /diff to hide whitespace-only changes +- Add deferTools option to MCP server config to keep a server's tools always available, even when tool search is enabled +- Agent mode is tracked per session, so it no longer carries over when you create, clear, or switch sessions +- Pressing Enter opens the highlighted issue details +- Plan review menus work on strict OpenAI-compatible backends +- Prevent Windows crashes when the native runtime addon loads in a corrupted host process heap +- Recover from unreadable native document attachments by falling back to file-path uploads +- Keep reverse search aligned in the input footer while you search command history +- PostToolUse hook matchers (e.g. `Edit|Write`) are now honored instead of silently dropped, so formatters and linters run only after the tools they target +- Improve reliability of OpenAI, Anthropic, and Azure OpenAI requests +- Experimental: /rewind no longer requires git and restores only the files Copilot changed (leaving your own edits intact), with a conversation-only or conversation + files choice + ## 1.0.62 - 2026-06-13 - Ask and elicitation dialogs now scroll together with the timeline instead of taking over the screen, so a tall dialog no longer hides the agent's output — scroll up to read earlier output, then back down to the dialog From e7d294d754935d5640bfed0a111882b4e1c4dd92 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 23 Jun 2026 17:21:01 +0000 Subject: [PATCH 08/26] Update changelog.md for version 1.0.64 --- changelog.md | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/changelog.md b/changelog.md index 8a26d733..a76a06d3 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,130 @@ +## 1.0.64 - 2026-06-23 + +- Path access prompt shows resolved symlink targets so you can see exactly what access is being granted +- Show the pay-as-you-go additional usage budget at launch, refresh it after a request is rejected for hitting the additional spend limit, and show a friendly message when the additional usage limit is reached +- Add websocket responses support for BYOK OpenAI-compatible providers +- Resumed sessions reproduce the original attached-file references even if those files later change on disk, avoiding prompt-cache resets +- Free-text search terms containing colons (e.g. `CLI:`) now return correct results in Issues and Pull requests search instead of being misread as invalid qualifiers by GitHub +- Support static OAuth client overrides, including client secrets, for MCP server authentication +- Preserve keystrokes typed while the CLI is still loading +- Add an option to bypass the sandbox for shell commands +- Add mouse click and double-click selection to paginated lists +- Link PR and issue references in markdown tables +- Use the GitHub theme by default and enable home tabs and prompt frame for all users +- Keep terminal output aligned after terminal resizes +- Content exclusion no longer blocks every file when the rules service is unreachable (offline or a transient network error). Access is allowed until rules can be fetched and retried in the background, matching the editor's behavior. +- Configure the rubber-duck subagent in /subagents, including a complementary model strategy that picks an opposite-family model +- /diff shows a session diff of Copilot's changes in non-git folders +- Set an HTTP(S) proxy with a user setting +- Resume sessions by name even when the name contains spaces +- Hide unsupported slash commands in remote-hosted sessions +- Add a setting to hide the conversation scrollbar +- Add inline image rendering in the CLI +- Add argument-hint frontmatter support for skills +- OpenTelemetry: chat spans after a successful compaction carry gen_ai.conversation.compacted=true, and the summary is emitted as a CompactionPart in gen_ai.input.messages +- PowerShell cmdlets (Select-String, Where-Object, ForEach-Object) no longer trigger spurious directory access prompts +- Non-interactive prompt output now stays at column 1 +- Clear queued tool images when vision is disabled +- Changing the model now waits until the new model is applied +- Treat 2>/dev/null redirects as read-only in shell safety prompts +- Normalize edited text to LF when opening prompts in an external editor +- Skip computer-use consent prompts in full allow-all sessions +- Remote export keeps running after /clear and /session info keeps the task URL +- Keep the cursor on the adjacent session after deleting one in the session selector +- Use the correct Linux libc target when resolving and auto-updating SEA packages on musl hosts +- Allow required multi-select prompts to submit an empty selection when minItems is not set +- Keep the home session timeline visible after attaching and restoring +- The /settings search field supports readline editing keys and cursor movement +- OpenTelemetry GenAI spans now emit `gen_ai.usage.cache_read.input_tokens`, `gen_ai.usage.cache_creation.input_tokens`, and `gen_ai.usage.reasoning.output_tokens` per the GenAI semantic conventions spec (previously used incorrect underscore-separated names) +- Fix mouse wheel scrolling being broken in the terminal after the CLI exits by tearing down terminal modes in reverse order (mouse tracking is now disabled before leaving the alt screen) +- Fix the /rewind file-restore confirmation dialog being clipped at the bottom when it opens above a scrolled timeline; it now shows at full height once the file list loads +- Show --remote-export and --no-remote-export in --help output +- Wrap expanded compact timeline shell entries so long commands and descriptions stay visible +- Make links in markdown tables clickable +- Show per-model token totals in /usage and speed up large history scans +- OpenTelemetry GenAI chat spans emit `gen_ai.request.reasoning.level` for the configured reasoning effort +- Autopilot mode now returns to interactive mode after the agent calls task_complete, so you aren't left in autopilot for your next prompt +- Add /branch as an alias for /fork, matching Claude Code's command naming +- Experimental: adds a `--worktree [name]` (`-w`) flag (enable with `/experimental`) that creates or reuses a git worktree under `.worktrees/` and starts the session inside it +- Add tab completion for /agent names +- Add model family aliases like opus, sonnet, haiku, gpt, and gemini in the model setting +- Add Ctrl+Backspace binding in /terminal-setup for Windows Terminal +- Add SDK support for host-provided OAuth tokens for remote MCP servers +- Experimental: in the compact timeline, click a tool-call or reasoning row to expand or collapse just that entry (like ctrl+o / ctrl+t for one row), with a subtle highlight on the row under the mouse +- Apply MCP org policy when sessions create or reload MCP servers +- Fixed completed background command output being unavailable when requested later +- Keep task companion tools available to custom agents that use the task or agent alias +- Custom agents using a tools wildcard '\*' now respect deferredToolLoading opt-in switch +- Respect tmux color detection in WSL sessions +- Respect `deferTools` on MCP servers configured in custom agent frontmatter +- Ctrl+Q enqueues a prompt while a completion picker is open +- Sessions tab row label updates immediately when a session is renamed +- --continue and --resume select the most recent session for the current repository +- Shell session starts correctly when a nix-provided bash is first in PATH +- Marketplace plugins that declare MCP servers in marketplace.json now authenticate correctly with OAuth +- Content exclusion no longer blocks shell commands on command names or phantom paths +- Lone surrogates no longer break session resume or truncate prompts +- Expand Windows home-directory paths in slash-command completion +- Keep truncated tool output previews valid UTF-8 +- CLI auto-updater downloads the correct musl Linux package on Alpine systems +- Copy the full last assistant turn, including multi-block responses +- Load workspace MCP servers in trusted server-mode sessions +- Stacked diffs use the same file order as the file tree +- Make /pr status and web confirmations link to the PR's repository +- Restore later file changes when rewinding to a turn without a snapshot +- Run queued ! shell commands locally instead of sending them to the agent +- Scheduled prompts manager dialog shrinks to fit its entries +- Keep the @-file picker populated when file search hits a symlink loop +- Display cache-write pricing for models that omit it +- Allow /update to restart sessions started with copilot -r +- Prevent pickers and dialogs from shifting or clipping as content loads +- Only render double tildes as strikethrough in markdown +- Allow /allow-all to work in relay sessions +- Restore clickable PR and issue links in compact timeline markdown +- Repo-scoped plugins no longer leak into global config across projects +- Keep /model working on resumed sessions after signing in +- PowerShell script blocks and interpolated `$()` sub-expressions no longer trigger content-exclusion refusals +- Exit message always shows the session ID in the resume command instead of the friendly name +- Wait for the remote sandbox to start before opening the cloud session +- Autopilot mode now auto-handles elicitation, ask_user, sampling, and permission prompts (including on launch with --autopilot and during continuation turns) instead of surfacing dialogs to the user +- Newly spawned sessions appear at the bottom of their group in the agents tab +- Attached images and PDFs persist across session resume even if the source file is later changed or deleted +- Allow disabling task and explore built-in subagents +- Session resume stays responsive while large histories load +- Code search and worktree listing are faster +- Use plain text labels instead of decorative emoji in CLI output +- Syntax-highlight shell commands in the timeline +- Preserve open canvas instances across reconnects and restarts +- Forward typed rejection feedback from preToolUse prompts to the model +- Show statusline picker checkboxes in green for enabled items and gray for disabled items +- Show shell timeline rows with a yellow $ prompt and Shell label +- Add a Folder column to the resume picker to show each session's working directory +- Automatically follow your system light and dark mode changes +- Use semantic mascot theme colors in the CLI banner +- Let footer dialogs scroll with the timeline in unified view +- Click filenames in /diff tree to jump to that file's first change +- Render inline code with themed chip styling in Markdown +- Show installed plugin MCP servers in `mcp` commands +- Remove terminal-reported color scheme support +- Add /diagnose command to analyze session logs +- Add /mcp registry installation for browsing and installing MCP servers +- Make `/security-review` available to all users without --experimental +- Discover MCP servers provided by installed plugins +- Add CSV output support for MCP tools +- Add /loop alias for the /every command +- Remove bogus Ctrl+Enter VS Code keybinding created by old /terminal-setup +- Images returned by tools stay visible to the model across later turns and after resuming a session +- Preserve Markdown blockquotes in /share exports +- Filter long streamed results correctly when content exclusion is enabled +- Show a friendly message when additional usage limit is reached +- Search tools handle Windows-style glob patterns correctly +- Prevent kill self-protection from flagging quoted pipes and paths ending in kill +- Azure CLI, PowerShell, and Developer CLI credentials work again for Azure auth +- Slash-command picker name column widened from 25 to 35 characters so fewer long skill names are truncated +- Wrap long lines in /diff view so content no longer truncates +- Improve /diff hotkey labels for branch, whitespace, and tree navigation +- Remove the legacy intent-reporting tool from the CLI + ## 1.0.63 - 2026-06-15 - Blocked image attachments now explain what to do — enable vision via the "Editor preview features" policy, switch to a vision-capable model, or try a different image — instead of showing a confusing error. From 214d53005407e6b92815547242e3bbd99cd43f6b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 24 Jun 2026 21:41:14 +0000 Subject: [PATCH 09/26] Update changelog.md for version 1.0.65 --- changelog.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/changelog.md b/changelog.md index a76a06d3..a7e9bc26 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,28 @@ +## 1.0.65 - 2026-06-24 + +- /cd now persists the working directory so resuming a session returns to it, and discovers custom agents in the new directory +- Commands with slash-prefixed string arguments (e.g. --body "/azp run") no longer trigger spurious filesystem permission prompts +- Fullscreen timeline stays anchored when older content is trimmed +- Resume open canvases automatically after restarting the CLI +- Add an opt-in status bar item showing CI check status (passing/running/failing) for the current branch +- Add a `copilot skill` subcommand (and a `/skill` alias for `/skills`) to list, add, and remove skills from a file, URL, or directory +- Prevent the GitHub background from flashing on startup with non-GitHub themes +- Prevent brief console windows from flashing on Windows when the agent runs hook commands or resolves command paths +- Include userPromptSubmitted hook additionalContext in the model-facing prompt +- Keep Windows paths intact when adding stdio MCP servers +- Stop MCP shutdown from waiting on in-flight server connects +- Restart the CLI without shutdown timeouts +- Remove syntax highlighting from shell commands in the timeline +- Keep custom-agent subagent model selections when using BYOK providers +- Parse /every schedules on the session's main model +- Render inline images reliably in tmux +- The ask_user freeform option wraps text and keeps the cursor aligned +- Save custom status line commands in /settings +- Show the streaming byte count separately from the cancel hint +- Handle wakeup misfires with a graceful message when no self-paced schedule is active +- Silent MCP OAuth refresh reuses the granted scope so reconnects stay signed in +- Up/down history and Ctrl+R reverse search now include past shell commands while in normal mode, so you can recall and re-run a shell command without first typing ! to enter shell mode + ## 1.0.64 - 2026-06-23 - Path access prompt shows resolved symlink targets so you can see exactly what access is being granted From c802cc3f06ffd2a57968cf8efabd3d550650ac5e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 30 Jun 2026 13:17:20 +0000 Subject: [PATCH 10/26] Update changelog.md for version 1.0.66 --- changelog.md | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/changelog.md b/changelog.md index a7e9bc26..219ea652 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,108 @@ +## 1.0.66 - 2026-06-30 + +- Use a non-blinking block cursor during interactive sessions, restoring your terminal's default cursor on exit +- Add support for Claude Opus 4.8 Fast and deprecate Claude Opus 4.6 Fast +- MCP add/edit form accepts HTTP-style `Key: value` headers +- Keep LSP servers from starting twice during startup +- Avoid blocking commands that contain Windows-style path fragments +- Let Copilot read output from and stop detached background shell commands +- Large output handling now respects custom output directories and a disable setting +- Prevent PR description generation from crashing on empty assistant responses +- Render the timeline as a compact "highlight reel" with single-line tool and reasoning rows for all users +- Add @ file and # GitHub ref completions in relay sessions +- Show the correct session age when filesystem birthtime is missing +- Prevent duplicate final assistant messages for GPT models +- Terminal title updates work in more terminals +- Show a (sandboxed) badge on compact Search timeline entries +- Git commands work in sandboxed linked worktrees +- Show the current pull request link as a status-line item +- Show quota snapshots for WebSocket Responses requests +- Show accurate Anthropic reasoning token counts +- Let grep and glob retry blocked searches after sandbox approval +- Format terminal titles with the session title and GitHub Copilot suffix +- Skip synchronized output under tmux to avoid mouse pointer flicker +- Session limits now apply across the current conversation, reset on /clear, and use the sessionLimits option key. +- Hide excluded built-in agents from agent selection +- BYOK sessions using Anthropic models no longer hit HTTP 400 errors from adaptive-thinking mismatches — neither from injecting adaptive thinking on models that don't support it, nor from sending standard thinking to models that require adaptive. Thinking-mode selection for dual-mode models is unchanged. +- Allow skills with the same name from different plugins to coexist +- Let integrations read and write CLI user settings +- View LSP server logs in /lsp logs and read_agent +- Prompt to install gh CLI when it is missing in GitHub repositories +- Add GitHub attachment variants to prompt rendering +- Extension toggles preserve the selected mode +- Return to the prompt after cancelling attached shell commands +- Keep background git status checks from disrupting concurrent git commands +- Recover corrupted session history on load +- Preserve newlines in /after and /every scheduled prompts +- Keep multi-line /worktree tasks intact when starting them +- Make /cd path completion keep Enter, Escape, and Tab behavior in sync +- Keep session-store searches and context lookups responsive +- Show desktop notifications on macOS from the CLI +- Paste WSL images when Windows env vars are unavailable +- Keep selection on the adjacent task after removing one +- read_agent since_turn: 0 now correctly returns all turns including turn 0 +- Filter non-JSON stdout lines from MCP servers during startup +- Perform tokenizer warmup in parallel on a background thread for better startup performance +- Show submit times next to user prompts in the timeline +- Improve /share to manage synced session visibility +- Expand @-style imports in AGENTS.md, CLAUDE.md, and Copilot instruction files +- Make /pr auto keep working through CI, review, and merge queue +- Clicking to expand a compact timeline entry holds it in place and reveals its content downward +- Configure subagent concurrency and depth limits in /settings (usage-based billing users) +- Add `/chronicle skills review` for reviewing proposed draft skill changes, with options to accept, reject, or defer each draft +- Add desktop notifications for attention prompts and idle sessions +- Make /share use Mission Control links for session sharing +- Snapshot creation retries transient HEAD lookup failures instead of crashing +- Keep `/chronicle reindex` responsive and show progress in the timeline +- Return to the last open GitHub issue, pull request, or gist view when switching tabs +- Resolve package argument placeholders when installing MCP registry entries +- Keep queued messages from getting stuck behind background work +- Retry managed settings fetch after transient connection-pool errors +- Stop showing broken-pipe errors when a sandboxed MCP server exits mid-request +- Properly recover MCP host-delegated connections when OAuth tokens expire or need broader scopes +- CLI git checks skip optional locks so status and branch lookups keep working in busy repositories +- Collapse multi-line sub-items into one inline line in compact timeline rows +- Inline hook settings now handle nested Claude-style hook groups correctly +- Keep the CLI responsive during secret filtering +- Search inputs match queries that have leading or trailing whitespace +- Keep idle agents available after you cancel a turn +- Show sandbox-bypass warnings and label bypassed commands +- /pr auto now starts a self-paced loop that fixes one thing per run and paces itself around CI to drive the PR to green; /pr automerge keeps going until the PR is merged. Manage or stop it from /loop or /every. +- Enable /rename in remote-hosted (cloud and relay) sessions +- Add toggle to enable or disable MCP servers in the CLI from MCP list view +- Add experimental response limits controls to CLI settings +- Let managed settings configure OpenTelemetry export +- MCP tools on OAuth-authenticated remote servers now recover automatically after a mid-session token expiry, matching the existing OIDC retry behaviour. A 401 during a tool call triggers a non-interactive reconnect, and servers needing interactive re-auth are retried at the start of the next turn. +- Add persisted dynamicRetrieval setting (and --dynamic-retrieval skills= flag) to enable or disable embeddings-based retrieval of skills +- Let custom agents set reasoning effort in their definitions +- Pass a task to /worktree (e.g. 'fix the login redirect') to name the branch for that task and run the sentence as the first prompt in the new worktree +- Added runtime telemetry for the MCP host token-injection OAuth flow, recording when an OAuth broadcast is emitted to the host and how the host responds (token or cancelled) with response latency +- Show merge status for each pull request in the Pull requests tab, and refresh the cached statuses on demand by pressing r +- Fix a soft hang where the CLI stopped responding to input if a startup prompt (folder trust, screen reader, or Copilot free signup) opened while a non-Main home tab was focused +- Guide the agent to format cross-repository issue/PR references as owner/repo#number (reserving bare #number for the current repo) so they don't mislink to the current repository +- Keep /restart working when shutdown teardown takes too long +- Copy text to the clipboard on WSL when cmd.exe is not on PATH +- COPILOT_HOME and --config-dir stop loading skills from ~/.agents/skills +- Keep per-extension disabled selections when switching extension mode in /extensions +- Copying wrapped text from the scroll view keeps spacing correct +- Voice mode turns itself off when the engine fails to start at boot +- Quit cleanly with Ctrl+D during startup before authentication completes +- Keep framed user messages from clipping trailing characters at the right edge +- Inline images stop writing to the shell after exit +- Display descriptions for slash command subcommands +- Refresh MCP server headers automatically after authentication changes +- LSP commands and tools resolve project configs and server paths more reliably +- Add --allow-all-mcp-server-instructions to optionally include instructions from all MCP servers in system prompts +- Auto-accept opt-in MCP consent prompts in --yolo sessions while still showing system permission prompts +- Use the full terminal height in full-screen views +- Use clearer icons for shell and search timeline entries +- Match the terminal text color to the GitHub theme canvas +- Show the active agent mode in the working footer text +- /worktree keeps a valid branch name exactly as typed, e.g. feature/JIRA-123, instead of flattening it to a slug like feature-jira-123 +- With no argument, /worktree names the branch from your uncommitted changes and recent conversation using your active model instead of a fixed small one +- Consolidate color palette settings under /settings theme +- Store CLI settings and session state more reliably + ## 1.0.65 - 2026-06-24 - /cd now persists the working directory so resuming a session returns to it, and discovers custom agents in the new directory From 914f26a2a77e48320c51e5ddc1fa12767e38b47b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 30 Jun 2026 22:18:24 +0000 Subject: [PATCH 11/26] Update changelog.md for version 1.0.67 --- changelog.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/changelog.md b/changelog.md index 219ea652..abe34ac4 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,15 @@ +## 1.0.67 - 2026-06-30 + +- Disabling the sandbox for the rest of the session now takes effect immediately, so shell and search commands stop re-prompting to bypass it mid-turn +- Subagent sessions keep parent tool restrictions +- Show warnings and errors when host custom agents fail to load +- Require session limits to be at least 30 AI credits +- Add Claude Sonnet 5 as a supported model +- Allow tool calls to continue when hooks time out +- Ctrl+Q now enqueues the highlighted slash-command argument completion +- MCP OAuth against Microsoft Entra servers behind a tenant vanity domain (e.g. Copilot Studio) no longer fails to refresh or re-authenticate (AADSTS9010010 / AADSTS90023) +- Prompt mode exit summary shows a resume hint to continue the session + ## 1.0.66 - 2026-06-30 - Use a non-blinking block cursor during interactive sessions, restoring your terminal's default cursor on exit From 9622b561ebbdf8d1c3e7855744ead8217d57c39d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 1 Jul 2026 21:17:42 +0000 Subject: [PATCH 12/26] Update changelog.md for version 1.0.68 --- changelog.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/changelog.md b/changelog.md index abe34ac4..08e1930e 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,36 @@ +## 1.0.68 - 2026-07-01 + +- Add support for the kimi-k2.7-code model +- The focused field in the /mcp config form is marked with a "❯ " chevron, not color alone +- Keep IDE tools available during transient IDE disconnects, returning a clear error while disconnected and recovering automatically when the IDE reconnects +- Tab completion shows slash command aliases inline (e.g. /pr automerge|agentmerge) +- Stop hooks from erroring and denying every tool when a session's working directory or git worktree has been deleted +- Keep the footer model status in sync when reasoning effort or context tier changes +- Avoid duplicate skill and command parse errors from symlinked scan roots +- Update the Sessions sidebar branch after /cd and /worktree +- Find agents and instructions under Win32 extended-length paths on Windows +- Show descriptions for slash-command input choices +- Prevent terminal corruption when copying selected timeline text on macOS +- Fold symlinked sandbox paths into a single row +- Browse, resume, and switch between sessions from the agents screen +- Code review retries transient git failures when gathering changes +- Skip malformed plugin manifests and keep loading valid plugins +- Show plan budget details in the statusline and /usage for supported plans +- Render Thai and Devanagari text correctly in clipped output +- Keep file edits and patches within the sandbox filesystem policy +- Preserve wrapped OSC 8 hyperlink IDs in terminal output +- Let device-managed settings override server-managed settings +- Keep embedded /skill tokens in skill prompt context +- Let git commands work from repo subdirectories in the sandbox +- PowerShell variable references no longer trigger content-policy refusals +- Tell the agent when the working directory changes between turns so it uses the new directory for commands and relative paths +- Default to a steady vertical-bar cursor in interactive sessions +- Disable cursor blinking at startup without changing cursor shape +- Reject sandbox path edits that conflict with symlinks in other lists +- Keep the status line visible when the slash-command picker opens +- Custom agents keep their tool filters in nested subagents +- Preserve multibyte characters (emoji, accents, non-Latin text) in the /diagnose session log excerpt + ## 1.0.67 - 2026-06-30 - Disabling the sandbox for the rest of the session now takes effect immediately, so shell and search commands stop re-prompting to bypass it mid-turn From 758c2c9cc4bd5a83a8e48837ec62dc2305935ba4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 7 Jul 2026 21:19:10 +0000 Subject: [PATCH 13/26] Update changelog.md for version 1.0.69 --- changelog.md | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/changelog.md b/changelog.md index 08e1930e..c5abf8ca 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,83 @@ +## 1.0.69 - 2026-07-07 + +- Label built-in file edits with a (sandbox policy) badge instead of (sandboxed), since they follow the sandbox policy on a best-effort basis rather than running in the OS-level sandbox +- Reload installed plugin extensions without restarting a session +- Add a /plugins dashboard to manage installed plugins +- Open quick help from an empty prompt without leaving a stray ? +- Add minimal reasoning effort for gemini-3.5-flash +- Show a scrollbar in the /model picker list +- Show disabled servers as disabled in /lsp test +- Let built-in file edits bypass the sandbox when you approve it +- web_fetch now follows the active sandbox network policy (denying outbound or local targets the policy blocks) and, when the host opts in via sandbox.allowBypass, lets you approve a one-time bypass from the fetch prompt +- Show exact local assistant usage in Chronicle and session SQL +- Confirm before resuming a remote session from a different repository +- Delay read-only remote session creation until you send the first message +- Display reasoning-effort labels in the CLI footer +- Show descriptions for sandbox userPolicy settings in /settings +- Reject explicitly empty --name= values when starting a session +- Create delegate PRs against the current branch by default, with /delegate --base to choose another PR target branch +- Make /copy fall back to wl-copy on Wayland +- Improve /sandbox add-path suggestions so they open only when you ask for them +- Improve /chronicle cost-tips with more precise evidence-backed recommendations +- Hold Alt (Option on macOS) while scrolling to move one line at a time +- Resume and switch large sessions faster +- Speed up /diff rendering and scrolling on large diffs +- Keep the full /model picker on screen when the timeline is full, re-snapping as its details banner grows so the search box and hint bar are no longer clipped below the terminal +- Hide transient console windows when the CLI starts helper processes on Windows +- Auto-approval timeline entries now include the request subject, such as the command, path, URL, or tool name +- /allow-all auto now requires experimental mode (/experimental on or --experimental) instead of the AUTO_APPROVAL env var or feature flag +- Show /rubber-duck in pre-auth help and self-documentation +- Include files inside new untracked directories in /diff local edits +- A prompt taller than the screen stays scrollable when its top scrolls off, instead of collapsing to a pinned header +- Require Copilot login before ACP authenticate returns success +- Show the full assistant response in prompt mode when --stream is off +- Disconnect a repo-scoped plugin's MCP server when the repo disables it or the session leaves the declaring repository +- Prevent `copilot init` from hanging in non-interactive mode +- Reject empty --session-id= values instead of ignoring them +- Reject empty --resume= values instead of starting a new session +- Preserve emoji in truncated timeline tool arguments +- Show plain Shift+Enter in /terminal-setup output +- Keep session resume working when token timing includes fractional milliseconds +- Complete @-mentions for files whose names start with [DIR] +- Sign in to MCP servers through the CLI OAuth callback flow +- Reveal the full /user switch picker when the timeline is full so its hint bar is no longer clipped below the terminal +- Add /mcp list to show attached MCP servers and their status, and allow /mcp list and /plugin list to run while the agent is working +- Allow opening the /mcp manager while the agent is working to enable or disable servers mid-turn; add, edit, delete, and re-auth stay paused until the turn finishes +- Add auto allow-all mode that auto-approves requests an LLM judge evaluates as acceptable +- Add a `stayInAutopilot` setting (default false) that keeps the CLI in autopilot mode after an autopilot task completes +- Pinned prompts keep their full frame aligned while scrolling +- Suppress macOS pasteboard stderr during clipboard reads and writes +- Keep colons intact in rendered markdown output +- Warn when multiple plugins define the same MCP server +- Collect debug logs without truncating large files or dropping multiline secrets +- Find PRs from worktree branches when the local branch name differs from the PR head ref +- Skip the autopilot permission prompt when bypass mode is disabled by policy +- Allow WSL UNC paths for local files in the CLI +- Apply --reasoning-effort reliably when the CLI starts +- Keep slash-command picker rows intact in tab-expanding terminals +- Keep model switches working when tool call IDs include punctuation +- Double-press Esc now interrupts the running main turn (flushing queued messages), or stops background agents when the main agent is idle +- Prevent benign Windows crash reports when the CLI exits +- Wrap clipboard writes in tmux passthrough so copy reaches the outer terminal +- OAuth-gated MCP servers now register their tools after reconnect +- Keep CLI authentication working in one-shot sessions +- Ctrl+C dismisses ask_user and elicitation prompts like Escape +- Show Authenticate for cancelled MCP OAuth requests +- Keep /help from listing rewind/undo twice +- Keep MCP servers in needs-auth after OAuth cancellation +- Hide staff-only commands from pre-auth help and self-documentation +- Surface skill loading errors and warnings in `skill list` +- Browse and filter models more easily in the CLI model picker +- Resume sessions faster by removing quadratic work when rebuilding the timeline +- Warn when static context uses most of the prompt budget and block requests when little conversation room remains +- Improve CLI responsiveness when reading and writing session databases +- Improve slash-command and theme picker option descriptions +- Remove inert sandbox host lists and the Clear policy on exit toggle +- Add file and folder completion to /sandbox path entries +- Update a backgrounded session's branch label in the Sessions split view when its working directory changes +- Skip unnecessary MCP reloads when returning to an already-loaded session +- Prevent the tgrep indexer from running out of memory on large monorepos, and fall back to ripgrep if the indexer is killed instead of repeatedly restarting it + ## 1.0.68 - 2026-07-01 - Add support for the kimi-k2.7-code model From 6a8b92eb355bee48b731ddb2d6ab5f12c3bf50fc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 10 Jul 2026 01:28:36 +0000 Subject: [PATCH 14/26] Update changelog.md for version 1.0.70 --- changelog.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/changelog.md b/changelog.md index c5abf8ca..adef233a 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,53 @@ +## 1.0.70 - 2026-07-09 + +- Add GPT-5.6 model support +- Show a single Error prefix for mcp and skill command failures +- Show the real parse error when --agent selects a malformed custom agent +- web_fetch works through mandatory HTTPS proxies +- Hide / search on the Gists tab +- Treat superseded subagent runs as cancellations instead of failures +- Add paginated session.mcp.resources read/list/listTemplates RPCs for MCP server resources +- preToolUse hooks that exit with code 2 deny tool calls +- Create draft skills when Forge finds a clear workflow pattern +- Hide the GitHub App install nudge in remote terminals +- Pin plugins to an exact commit SHA using the `sha` field in plugin source configuration +- Add --sandbox and --no-sandbox flags to turn the OS-level shell sandbox on or off for the current session only, without changing your saved sandbox setting (useful with -p) +- Add /refine to rewrite a rough, stream-of-consciousness prompt into a clear one +- Add --repo and --local flags to /settings and /model +- Add a setting to show or hide timeline timestamps +- Let a trusted repository pin the model, effort level, and context tier and extend the URL/MCP/skill deny lists via .github/copilot/settings.json +- Expose SDK APIs to manage live MCP servers in running sessions +- Show the active user's models after /user switch +- Declining an extension's permission prompt no longer disables tool approvals for the rest of the session +- Avoid redundant background agent notifications after a blocking read_agent returns its result +- Startup auth errors recommend the real `copilot login` command +- Keep merge-semantics settings editable in /settings +- Re-sync managed plugins when their cache is missing or empty +- Copy the last assistant response even after command echoes +- Persist the last-logged-in user on every login so a restarted runtime client stays authenticated +- Hide /agent picker navigation hints when there is nothing to select +- Open the plan file or research report with Ctrl+Y in any mode +- Keep terminal color scheme changes in sync over SSH and remote shells +- Prefill /chronicle search so it can accept a query +- Show a distinct scrollbar thumb glyph in the /model picker on the no-color path (--no-color, non-color terminals) so the scroll position stays visible +- Skip launching a browser in remote terminals +- Arrow keys in /search and reverse search stay in search instead of switching tabs +- Restore tool event ordering so permission prompts appear after tool start +- Show only one cancellation message when streaming is aborted +- Keep /pr tables aligned in compact timeline view +- Show clear validation errors for empty or non-ASCII skill and command names +- Keep footer selection highlights aligned when the session bar is open +- Fail fast when marketplace plugin git auth needs a terminal prompt +- Dismiss other pending read and fetch sandbox-bypass prompts after you disable the sandbox +- Fix a crash on Windows triggered by desktop toast notifications +- Improve GPT-5.6 commentary guidance for tool-driven progress updates +- Highlight the sidebar toggle hint in the input footer +- Make markdown links and bare URLs in the timeline and tool output clickable +- Reclaim the blank line under the home tab bar: the timeline (and Sessions+Current split) sits flush under the tabs when a prompt is pinned, keeping one breathing line only while nothing is pinned +- Press Tab to switch the context window in /model +- Long-running sessions refresh enterprise managed settings hourly +- Mark locally-spawned MCP servers that run inside the sandbox in `/mcp list` (e.g. `connected (sandboxed)`) + ## 1.0.69 - 2026-07-07 - Label built-in file edits with a (sandbox policy) badge instead of (sandboxed), since they follow the sandbox policy on a best-effort basis rather than running in the OS-level sandbox From fd24cea5cb11da4e630485ff2d9269318b8c2a4e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 16 Jul 2026 01:54:36 +0000 Subject: [PATCH 15/26] Update changelog.md for version 1.0.71 --- changelog.md | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/changelog.md b/changelog.md index adef233a..7c7ca0a8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,96 @@ +## 1.0.71 - 2026-07-16 + +- `copilot -p --autopilot` no 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 `-p` does. +- 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 list` and 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 marketplace` subcommands 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 mcp` and `copilot skill` print help and exit 0, matching `copilot plugin`. Consistent with `plugin`, the implicit `help ` form is not supported for these groups; use `copilot mcp --help` (or `copilot skill --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 update` and `/update` to accept `stable` as 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 `--share` or `--share-gist` export 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 + ## 1.0.70 - 2026-07-09 - Add GPT-5.6 model support From cb0467f0a59ed96dcfab71310294d5c69cce545a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 20 Jul 2026 17:51:16 +0000 Subject: [PATCH 16/26] Update changelog.md for version 1.0.72 --- changelog.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/changelog.md b/changelog.md index 7c7ca0a8..eb490bdf 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,50 @@ +## 1.0.72 - 2026-07-20 + +- An `agentStop` hook that always blocks no longer loops indefinitely: the CLI now ends the turn after 8 consecutive blocks, and `agentStop` hooks receive a `stop_hook_active` flag so they can detect a forced continuation and self-limit +- Add opt-in git and gh authentication inside the OS sandbox +- Sandbox macOS keychain access now defaults off for tighter isolation; re-enable it in /sandbox if a command needs it +- Lifecycle and subagent hook commands run in the current session directory after /cd +- Deleting an MCP server with /mcp delete stops its running background process +- Toggling /sandbox restarts only local MCP servers and leaves remote servers connected +- Command approvals no longer carry over to another repository after you switch with /cd +- The GitHub tab's Open in web action now reliably launches your browser on Windows +- Preserve pasted prompt content when changing models through Ctrl+X /model +- Corrected the added-line count shown when creating a file so files ending in a trailing newline no longer report one extra line +- /worktree and /move no longer fail to create a worktree for an auto-generated branch name when many similarly-named branches or a leftover worktree directory already exist: the numeric-suffix search is no longer capped at 5 and now skips stale unregistered worktree directories (an explicitly supplied branch name still errors on a collision) +- /worktree no longer intermittently runs the kickoff task in the main repo instead of the new worktree +- /worktree and /move now propagate folder trust to the new worktree before switching when the source is already trusted (avoiding a spurious folder-trust prompt in that case), /move addresses its git stash precisely so a concurrent stash can't misplace changes, and worktree creation skips a leftover directory instead of failing +- Show the exit resume hint for a renamed session with no messages when its workspace is only available as a cached snapshot +- Show a connected message after a slow MCP server eventually connects +- Add `update`/`uninstall` verbs to `/plugins`, let `enable`/`disable`/`remove` target plugins, MCP servers, or skills via `--plugin`/`--mcp`/`--skill` flags or a positional kind, and support installing skills with `/plugins install --skill` +- Add a /plugins help command plus skill, MCP, and marketplace management for full /plugin parity +- Session exports keep angle brackets intact in inline code and top-level fenced code blocks +- Show MCP server status correctly for names like constructor and **proto** +- Keep the session highlight on the nearest live row when closing a session, in both the Sessions split view and the standalone Sessions tab +- Pad inline hex color swatches once inside Markdown lists +- Type $ at the prompt to open an interactive shell in the current session directory (enable it with `/settings shellShortcut on`; off by default) +- Nested markdown lists render correctly in buffered output (`-p --stream off` and detail screens): sub-bullets are no longer glued onto the parent item's line or flattened, and are indented under their parent +- `copilot skill list` now strips terminal control characters from skill names and descriptions, so a crafted skill can no longer inject ANSI escape sequences into the listing output. +- Install skills from the CLI with `copilot plugins install --skill ` (add `--scope project` to a file or URL install to install into the repository) +- Show default values in /settings and let booleans cycle back to default +- Require SSO for remote control when managed settings demand it +- Mask secret values in /settings show output +- Show hex color codes written as inline code (e.g. `#FF0000`) as color swatches, and add a renderHexColors setting (on by default) to toggle hex-color swatches +- Add /model --session (-s) to change the model, reasoning effort, or context window for just the current session, leaving global settings unchanged. +- Detect VS Code, Cursor, and Windsurf through parent processes in /terminal-setup +- The Sessions sidebar is now navigable with the keyboard and mouse (arrows open and focus it and move the selection, and Enter or a click switches to a session; press n to spawn a session or x twice to close one from the keyboard); /settings can disable it or stop restoring remembered sessions +- Add --plugin, --mcp, and --skill flags for plugin mutations +- Add skill removal support to `copilot plugins remove --skill` +- Wrap ask-user and elicitation inputs in the split-pane chat view +- Modified vim keys (Ctrl+K, uppercase J/K) no longer move the selection in tool-permission prompts and other text-input select menus; only unmodified j/k, the arrow keys, and Ctrl+P/Ctrl+N navigate. +- `/terminal-setup` now refuses to modify a VS Code keybindings.json that contains a JSON syntax error (instead of rewriting it and reporting success), matching its documented invalid-JSON handling. +- Reveal full file paths when expanding compact editing rows +- Make the plan-approval menu deterministic across models +- Keep /add-dir directories visible in the agent context across turns +- Multi-turn subagents are always enabled, so you can send follow-up messages to running agents +- Enable tool search for Claude Haiku 4.5+ +- Emoji shortcodes like :tada: no longer render with a spurious trailing space in printed and PR/issue/gist output +- Deliver scheduled prompts as steering messages when the agent is busy + ## 1.0.71 - 2026-07-16 - `copilot -p --autopilot` no 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 `-p` does. From 2b809c84e87dbcc88f897cb4f3fb97c43b77af95 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 21 Jul 2026 00:11:43 +0000 Subject: [PATCH 17/26] Update changelog.md for version 1.0.73 --- changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelog.md b/changelog.md index eb490bdf..9a8619a3 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,8 @@ +## 1.0.73 - 2026-07-20 + +- Anthropic subagents continue working when additional directories are configured +- Resolve relative links in custom agent instructions from the agent file location + ## 1.0.72 - 2026-07-20 - An `agentStop` hook that always blocks no longer loops indefinitely: the CLI now ends the turn after 8 consecutive blocks, and `agentStop` hooks receive a `stop_hook_active` flag so they can detect a forced continuation and self-limit From 05cdbb3ae04a839ffc465facdc0e0f207e37dbe0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Jul 2026 22:05:57 +0000 Subject: [PATCH 18/26] Update changelog.md for version 1.0.74 --- changelog.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/changelog.md b/changelog.md index 9a8619a3..ea2a2336 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,26 @@ +## 1.0.74 - 2026-07-23 + +- Typing `?` while the /search bar is open enters it as text instead of opening quick help +- Add support for Open Plugin Spec v1 plugin manifests and mcp.json configuration +- IDE integration reconnects reliably when the CLI reloads MCP servers or changes directory +- Multi-turn subagent timelines show every prompt and response in the correct order after reopening /tasks +- Subagent timelines identify whether prompts came from the main agent or another subagent +- Show a first-run splash to opt into the default sandbox +- Adding support for gemini-3.6-flash +- The `/mcp add` and `/mcp edit` wizard now preserves `=` characters in environment variable values (such as base64 padding), so secrets and tokens are stored correctly. +- Remote session uploads stop retrying permanent Mission Control 400/404 responses +- Show Tab in /settings footer to switch scope tabs +- Downscale oversized tool-result images so CAPI Responses requests continue +- When multiplexing sessions, a session's open dialog no longer leaks into another session; eligible pickers reopen when you switch back +- The `$` interactive shell shortcut now opens a shell even while the agent is working +- Fully honor the skill disable-model-invocation flag +- Warn when a participating language server reports a different symbol than the one requested +- Steering interrupts shell output waits without stopping the running command +- Increase the Responses request size limit +- Plan mode now allows session-folder planning artifacts while still blocking clear file mutations outside the session folder. +- Add `/model plan` (or `/model --plan`) to pick a model used while in plan mode; pass a model id, `off` to clear, or no id to open the picker. Reverts to the session model when you leave plan mode. +- Resume search matches session titles even when whitespace differs + ## 1.0.73 - 2026-07-20 - Anthropic subagents continue working when additional directories are configured From 425b68cdb22db404eb9e9978f72a8f4c425bee45 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 24 Jul 2026 19:54:04 +0000 Subject: [PATCH 19/26] Update changelog.md for version 1.0.75 --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index ea2a2336..d3df51e1 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +## 1.0.75 - 2026-07-24 + +- Add support for Claude Opus 5 + ## 1.0.74 - 2026-07-23 - Typing `?` while the /search bar is open enters it as text instead of opening quick help From aee1edd29ef0f2058425bf399bcc9e5002a2b8f2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 30 Jul 2026 01:09:31 +0000 Subject: [PATCH 20/26] Update changelog.md for version 1.0.76 --- changelog.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/changelog.md b/changelog.md index d3df51e1..0650749b 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,39 @@ +## 1.0.76 - 2026-07-29 + +- Add enable/disable controls in /plugins for plugins, instructions, agents, LSP servers, and hooks +- Add support for the grok-4.5 model +- Sandbox denied paths are enforced for relative and symlinked entries on macOS and Linux (Windows cannot deny per path) +- Unsent prompt text now stays with the session it was typed for (for the rest of the CLI session) instead of following you to the session you switch to +- Resuming a session now restores its autopilot or plan mode instead of reverting to interactive, so the autopilot-only `task_complete` tool stays available and the mode matches the session you left +- URL permission prompts now keep their sandbox-bypass warning and the model's reason when a host integration rebuilds the prompt, so an elevated fetch is no longer shown as an ordinary one +- When an update is auto-downloaded, the notification suggests /restart and drops the warning color +- /diff scrolls and syntax-highlights large multi-file diffs faster +- Split-view sidebar: hover-to-focus is now off by default (opt in with `sidebar.hoverFocus`), the active session card is accented by default (opt out with `sidebar.accentActiveSession`), and the closed-state `open sidebar` hint always renders in the neutral hint color +- `web_fetch` now follows HTTP redirects instead of failing, asking permission for the redirect target when it is on a different origin and showing where the redirect came from +- Add a directable queue manager (staff) to reorder, edit, remove, repeat, and immediately send queued messages +- New Sessions sidebar for managing multiple concurrent sessions: switch between them, spawn new ones, and see their status at a glance. Turn it on with experimental mode (`/experimental on`). +- Enterprise administrators can enforce a restrictive sandbox floor: managed settings tighten (but never loosen) the user's sandbox policy, and the `/sandbox` dialog surfaces the org-configured managed values with locked fields and managed filesystem paths so admins can confirm what is enforced. +- Sessions no longer fail every turn with "Holder terminated during creation" after a subagent finishes +- Startup tips only suggest /init in repositories that don't already have Copilot instructions +- A `userPromptSubmitted` hook returning a non-string value for `modifiedPrompt`, `modifiedTransformedPrompt`, or a handled `responseContent` no longer corrupts the session; the value is ignored, a type-only warning naming the field is logged, an empty-string replacement is rejected instead of blanking the model-facing content, a hook that sets `handled` without a usable `responseContent` is now diagnosed instead of silently falling through to the model, and a `null` `additionalContext` is treated as absent instead of being injected as the literal text `null`; hook output is also bounded at 10 MiB per invocation, so an HTTP or command hook returning an unbounded response can no longer exhaust memory or leave an oversized session behind +- Show recent shell output for large commands that write to a file +- The /instructions picker now respects --no-custom-instructions. +- Render inline images in Rio terminals that support Kitty graphics +- Sandboxed searches now offer an immediate bypass prompt and avoid duplicate bypass prompts. +- Voice mode pauses playing media before recording and resumes it afterward, where supported (macOS and Windows) +- Show the number of active scheduled prompts in the footer +- Add /limits predict to suggest a session AI-credit limit from similar sessions. +- Add configurable timed refreshes for custom status-line commands +- Queued messages list no longer shows a blank row or inflated count, and Ctrl+C removes your own newest queued message +- Changing the `mouse` setting mid-session now takes effect immediately, from both `/settings mouse on|off` and the `/settings` dialog, instead of being saved but ignored until the CLI restarted +- web_fetch routes through the configured sandbox proxy when outbound is allowed, and denies egress when network.allowOutbound is false (a proxy no longer overrides the user's outbound policy); when a proxied fetch fails it warns that curl/wget share the same proxy, and suggests requestSandboxBypass only when the sandbox proxy itself is unreachable +- Improve subagent delegation for small tasks and parallel work +- Queue mid-turn /model changes and apply them after the current response finishes +- Restore the early warning when unreclaimable system and tool context nears the limit, before automatic compaction is blocked +- Session working directory no longer reverts to the original checkout shortly after `/worktree` switches into a new worktree +- MCP tools load faster from definition-scoped snapshots, with process-wide and per-server cache opt-outs. +- Autopilot stays selected after task_complete by default; set stayInAutopilot to false to return to interactive mode after each task + ## 1.0.75 - 2026-07-24 - Add support for Claude Opus 5 From 2392889bf7d2d3f3f9a7ad354c6017a21e4f9928 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 30 Jul 2026 23:36:02 +0000 Subject: [PATCH 21/26] Update changelog.md for version 1.0.77 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index 0650749b..7e5e11af 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 1.0.77 - 2026-07-30 + +- Unconditional autopilot approval now disables sandbox for the current session when bypass is allowed +- Ctrl+G opens your editor to edit ask_user freeform answers without closing the prompt +- Add a browser-based (web) OAuth login flow, now the default for `copilot login` on local interactive terminals (device code remains the default on remote/headless terminals). Use `--web-flow`/`--device-code` to force a mode, or pick one in the interactive `/login` command +- Support enforcing managed sandbox policy via macOS and Windows native MDM settings +- Allow reasoning effort to be omitted so the server can select the default + ## 1.0.76 - 2026-07-29 - Add enable/disable controls in /plugins for plugins, instructions, agents, LSP servers, and hooks From 9532bdacf5a343c3dcc444337f7b25e88fc7372c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 3 Aug 2026 23:30:26 +0000 Subject: [PATCH 22/26] Update changelog.md for version 1.0.78 --- changelog.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/changelog.md b/changelog.md index 7e5e11af..ce39e0f3 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,33 @@ +## 1.0.78 - 2026-08-03 + +- Timeline headers show how long each tool call took, right-aligned and ticking live while it runs (for calls of at least 5 seconds). On by default — disable with `/settings showToolDurations`. +- First-party plugins automatically update to the latest version at session start +- Add the experimental /new-worktree command to create a new worktree and start a new conversation in it +- Copilot login now defaults to the browser flow for local desktop subprocesses without a TTY, including IDE integrations, while remote and headless environments continue using device code +- Interactive shell shortcut now launches on Enter and shows an inline hint when "$" is armed +- Extension slash commands run their handler exactly once per invocation when several extensions are loaded +- Inline images no longer render with their first row repeated down the whole picture after the timeline scrolls +- A run whose prompt is piped over stdin now treats its `sessionEnd` hook the same way `-p` does: the hook fires once per completed agent turn with `reason` `complete` (or `error` if the turn failed), instead of once at shutdown with `user_exit`. As with `-p`, a piped run that exits before completing a turn fires no `sessionEnd` hook +- Split-view sidebar: the red close confirmation now reads `x again to close` (or `x again to exit CLI` on the last session) instead of `x close`, so a second press is clearly what closes +- Expose token usage in ACP prompt results and live usage_update notifications +- Added a forceRemoteSettingsRefresh managed setting that requires a fresh managed-settings fetch on startup +- Disabling the sandbox from a bypass prompt applies only to that session; new sessions start sandboxed again +- Managed settings now fall back to the persistent cache whenever a server-managed settings fetch fails for any reason (network error, a non-success HTTP status, or a malformed/unparseable response), and fail open — starting without the unconfirmed server restriction rather than the prior fail-closed behavior — when no usable cached policy is available +- When the sandbox blocks a shell command and bypass is allowed, CLI offers to re-run it outside the sandbox without asking the model +- /rewind no longer requires git and restores only the files Copilot changed, skipping any file whose contents no longer match what Copilot last wrote, with a conversation-only or conversation + files choice +- Add /permissions to switch between approval modes. +- ACP mode supports closing sessions with the closeSession request. +- Ctrl+Q now enqueues the highlighted mid-text skill completion instead of the partial token +- Switching sessions no longer restarts MCP servers or rebuilds hook state, so a turn running in another session is never halted with a stale-hook error +- Refresh deferred MCP tools after OAuth authentication +- New sandbox setting `allowDevToolCaches` (on by default): grants sandboxed builds access to toolchain caches, registries, and installs so builds work without extra setup. Set false to opt out. +- Honor explicit GitHub MCP toolset/tool config: keep gh-overlap tools and stop steering to the gh CLI when you opt in +- Warn on startup about unknown top-level keys in user settings.json (e.g. a misspelled setting) instead of silently ignoring them +- Shell completion for --model now suggests auto and supported model names +- Render long session transcripts progressively to keep scrolling responsive +- Resuming a long session is dramatically faster and far lighter on memory, because its history is now read once at startup (in parallel, across CPU cores) instead of being re-read in full for every check the CLI runs before it can paint. In our benchmark a 230MB, 74k-event transcript came back in well under a second instead of about ten, at roughly a quarter of the peak memory; the exact gain depends on your machine's core count and disk +- The /allow-all auto safety-judge model is no longer user-configurable; the judge model is now selected automatically. + ## 1.0.77 - 2026-07-30 - Unconditional autopilot approval now disables sandbox for the current session when bypass is allowed From ef627e1baad937d3c8da45f8a5541c6fc3c97b6a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 10 Aug 2026 16:19:17 +0000 Subject: [PATCH 23/26] Update changelog.md for version 1.0.79 --- changelog.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/changelog.md b/changelog.md index ce39e0f3..48f07df8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,50 @@ +## 1.0.79 - 2026-08-10 + +- The /sandbox configuration dialog shows where sandbox settings are stored in settings.json +- Add support for enterprise allow-auto-only policy so /allow-all auto works while full allow-all remains blocked. +- Allow enterprise-managed sandbox policy to enforce a proxy URL while credentials remain user-controlled +- A tool directory inside your workspace that is on PATH (.venv/bin, node_modules/.bin, an in-repo GOPATH) no longer turns that part of the workspace read-only in the sandbox +- The /sandbox configuration dialog groups the git, gh, and (on macOS) keychain settings under a new Auth tab, and the settings keys moved from `sandbox.gitAuth`/`sandbox.ghAuth` to `sandbox.auth.git`/`sandbox.auth.gh`. There is no migration: the old keys are ignored in settings files, and SDK requests that still send them are rejected as invalid rather than ignored +- Added a `worktreeBaseRef` setting that controls whether `/worktree`, `/worktree new`, and `--worktree` start from HEAD or the remote default branch. All three now default to HEAD; previously `--worktree` started from the remote default branch. +- Model picker groups models into Recent, Recommended, New, and other sections, and Shift+Tab switches grouping views. +- Large monorepos now use tgrep ([trigram-indexed grep for fast regex search in large codebases](https://github.com/microsoft/tgrep)) instead of ripgrep +- Agent Plugins spec plugins can now ship extensions under a com.github.copilot/extensions/ directory +- Add support for the kimi-k3 model +- Combine `--plan` with `--mode autopilot` to plan first and then implement without waiting for approval +- The `/app` command now opens the current session in the GitHub Copilot desktop app instead of landing on Home with the wrong folder (requires GitHub Copilot app 1.1.3 or later) +- On macOS, a sandbox read-only path nested inside a writable one now stays read-only instead of inheriting the write permission from the wider path +- On macOS, sandboxed commands can use UNIX-domain sockets again, so tools that talk over a local IPC pipe (tsx, vite, esbuild, jest workers) no longer fail with `listen EPERM` +- Sandboxed commands work when the working directory lives on a Windows Dev Drive +- `/theme` now only shows its deprecation notice for a valid color mode, so a mistyped mode no longer suggests an invalid command or hides the notice from your next valid `/theme`. +- Sandboxed git now authenticates to Azure DevOps, GitHub Enterprise Server, GitLab, and other non-GitHub remotes you have stored HTTPS credentials for +- Ask user multi-select prompts include an Other option for free-text answers +- Improve teleported subagent /tasks navigation with nested tree browsing, current/all and finished-task filters, and a live timeline you can steer +- A rare internal delay no longer prints a diagnostic warning on top of the interactive UI +- A failed session-history load no longer leaves the timeline permanently empty: the failure was silently discarded, so the transcript stayed blank for the rest of the session with nothing logged. It is now retried, and reported in the transcript and the log if it still fails +- Resuming a long session no longer collapses the timeline's scroll range while history renders in the background: entries that had not finished rendering were published as if they did not exist, so the scrollbar and scroll position jumped until the background render caught up +- Manage multiple concurrent sessions from the Sessions tab and sidebar +- Sandboxed wrapper builds (make and friends) get the dev tool caches their recipes need, based on the build manifests in the working directory +- Prompt pinning is off by default; set pinnedPrompts to true to enable it. +- Sandboxed commands can reach the network again on recent Windows builds, where every outbound connection was blocked even with outbound access enabled and no proxy configured +- Plugin custom agents honor deferred-tool-loading frontmatter +- Use `/worktree new` to start a new session in a new worktree +- A sandbox that cannot start an MCP server now fails in seconds instead of stalling the session, and sandbox startup failures for both MCP and language servers now say the sandbox was at fault and how to fix or opt out of it +- Login links are clickable during web and device-code sign-in +- Pin the current prompt one row higher, in the row the tab bar already reserves, so it keeps the shape of the prompt it copies while costing the timeline one row less +- Leave the pinned prompt off by default on terminals under 30 rows, where it would crowd the output; set pinnedPrompts explicitly to override at any size +- Compute /context attribution against the Auto-resolved model so token totals are accurate for Free/Student users +- Disabling an extension no longer breaks elicitation, canvases, or tool permission prompts for other extensions +- A prompt stashed with ctrl+s now stays with the session it was typed for, so switching away and back and pressing ctrl+s restores it instead of finding it gone +- On Linux, searches and most shell commands blocked by the sandbox now offer to re-run outside it +- BREAKING: the sandbox setting `allowDevToolCaches` is renamed `allowDevToolAccess`, since it grants dev-tool config and registries too, not just caches. The old key is no longer read and is ignored silently, so an existing `false` opt-out reverts to the default (on). Rename it in settings.json and in any managed/MDM policy. +- Add /sandbox policy to show effective sandbox paths, denials, and network access +- Queue prompts, shell commands, and supported slash commands in local sessions to run in order after the current task finishes +- Set "autoUpdate": true on an extraKnownMarketplaces entry in your user settings to auto-update its plugins at session start +- /sandbox tags inactive settings as (disabled) and explains why they are locked, and documents dev tool caches in copilot help sandbox +- Show "pending · ctrl+c to cancel" for in-flight steering prompts +- Make /model session-scoped by default, and use /config model to set defaults for future sessions. +- Pin the current prompt as a single line instead of a three-row framed block, so it reads as chrome and returns rows to the timeline; with the tab bar on it sits directly below the tabs and costs the timeline nothing + ## 1.0.78 - 2026-08-03 - Timeline headers show how long each tool call took, right-aligned and ticking live while it runs (for calls of at least 5 seconds). On by default — disable with `/settings showToolDurations`. From 476581ccde7d596ded05d2b77b36edb57762a2c4 Mon Sep 17 00:00:00 2001 From: Michael Recachinas Date: Tue, 11 Aug 2026 10:58:35 -0400 Subject: [PATCH 24/26] Migrate close-on-PR workflow off pull_request_target Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/close-invalid-pr-writer.yml | 51 +++++++++++++++++++ .github/workflows/close-invalid.yml | 46 +++++++++-------- 2 files changed, 76 insertions(+), 21 deletions(-) create mode 100644 .github/workflows/close-invalid-pr-writer.yml diff --git a/.github/workflows/close-invalid-pr-writer.yml b/.github/workflows/close-invalid-pr-writer.yml new file mode 100644 index 00000000..7cfc6a70 --- /dev/null +++ b/.github/workflows/close-invalid-pr-writer.yml @@ -0,0 +1,51 @@ +name: Close invalid PR writer + +on: + workflow_run: + workflows: [Close issue/PR on adding invalid label] + types: [completed] + +permissions: + issues: read + pull-requests: write + +jobs: + close-invalid-pr: + if: > + github.repository == 'github/copilot-cli' && + github.event.workflow_run.event == 'pull_request' && + github.event.workflow_run.conclusion == 'success' && + github.event.workflow_run.repository.full_name == github.repository + runs-on: ubuntu-latest + steps: + - name: Close invalid PR + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + HEAD_OWNER: ${{ github.event.workflow_run.head_repository.owner.login }} + HEAD_BRANCH: ${{ github.event.workflow_run.head_branch }} + PR_NUMBER: ${{ github.event.workflow_run.pull_requests[0].number }} + run: | + set -euo pipefail + + if [ -z "${PR_NUMBER:-}" ] || [ "$PR_NUMBER" = "null" ]; then + PR_NUMBER="$(gh api --method GET "repos/$GH_REPO/pulls" -f state=open -f head="$HEAD_OWNER:$HEAD_BRANCH" --jq 'if length == 1 then .[0].number else empty end')" + fi + + if [ -z "${PR_NUMBER:-}" ]; then + echo "Unable to identify a single open PR for workflow run; skipping." + exit 0 + fi + + pr_state="$(gh api "repos/$GH_REPO/pulls/$PR_NUMBER" --jq .state)" + if [ "$pr_state" != "open" ]; then + echo "PR #$PR_NUMBER is $pr_state; skipping." + exit 0 + fi + + if ! gh api "repos/$GH_REPO/issues/$PR_NUMBER/labels" --jq '.[].name' | grep -Fxq invalid; then + echo "PR #$PR_NUMBER does not currently have the invalid label; skipping." + exit 0 + fi + + gh api -X PATCH "repos/$GH_REPO/pulls/$PR_NUMBER" -f state=closed diff --git a/.github/workflows/close-invalid.yml b/.github/workflows/close-invalid.yml index 4078bd87..b1fa4801 100644 --- a/.github/workflows/close-invalid.yml +++ b/.github/workflows/close-invalid.yml @@ -1,36 +1,40 @@ name: Close issue/PR on adding invalid label -# **What it does**: This action closes issues that are labeled as invalid in the repo. +# **What it does**: This action closes issues and PRs that are labeled as invalid in the repo. on: issues: types: [labeled] - pull_request_target: + pull_request: types: [labeled] -permissions: - contents: read - issues: write - pull-requests: write +permissions: {} jobs: - close-on-adding-invalid-label: - if: - github.repository == 'github/copilot-cli' && github.event.label.name == - 'invalid' + close-issue-on-adding-invalid-label: + if: > + github.repository == 'github/copilot-cli' && + github.event_name == 'issues' && + github.event.label.name == 'invalid' runs-on: ubuntu-latest - + permissions: + issues: write steps: - name: Close issue - if: ${{ github.event_name == 'issues' }} env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - URL: ${{ github.event.issue.html_url }} - run: gh issue close $URL + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPOSITORY: ${{ github.repository }} + ISSUE_NUMBER: ${{ github.event.issue.number }} + run: gh api -X PATCH "repos/$GH_REPOSITORY/issues/$ISSUE_NUMBER" -f state=closed - - name: Close PR - if: ${{ github.event_name == 'pull_request_target' }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - URL: ${{ github.event.pull_request.html_url }} - run: gh pr close $URL + signal-invalid-pr-label: + if: > + github.repository == 'github/copilot-cli' && + github.event_name == 'pull_request' && + github.event.label.name == 'invalid' + runs-on: ubuntu-latest + permissions: + pull-requests: read + steps: + - name: Record invalid PR label signal + run: echo "Invalid label signal for PR #${{ github.event.pull_request.number }}" From 132979e761a234a7061126488c1d4f7e2960c076 Mon Sep 17 00:00:00 2001 From: Michael Recachinas Date: Wed, 12 Aug 2026 09:51:29 -0400 Subject: [PATCH 25/26] Harden invalid PR close dispatcher Bind privileged closure to the trusted workflow identity and exact PR head, and reconcile invalid conflicted PRs from the default branch. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 512eb347-ec89-4250-8bf1-87048974b01d --- .github/workflows/close-invalid-pr-writer.yml | 85 +++++++++++++++---- .github/workflows/close-invalid.yml | 10 ++- 2 files changed, 73 insertions(+), 22 deletions(-) diff --git a/.github/workflows/close-invalid-pr-writer.yml b/.github/workflows/close-invalid-pr-writer.yml index 7cfc6a70..1094d6f4 100644 --- a/.github/workflows/close-invalid-pr-writer.yml +++ b/.github/workflows/close-invalid-pr-writer.yml @@ -4,48 +4,97 @@ on: workflow_run: workflows: [Close issue/PR on adding invalid label] types: [completed] + # pull_request does not run for conflicted PRs, so reconcile from the trusted default branch. + schedule: + - cron: '*/5 * * * *' + workflow_dispatch: -permissions: - issues: read - pull-requests: write +permissions: {} jobs: - close-invalid-pr: + close-invalid-pr-from-workflow-run: if: > github.repository == 'github/copilot-cli' && + github.event_name == 'workflow_run' && github.event.workflow_run.event == 'pull_request' && - github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.repository.full_name == github.repository runs-on: ubuntu-latest + permissions: + actions: read + pull-requests: write + concurrency: + group: close-invalid-pr-${{ github.event.workflow_run.pull_requests[0].number || github.run_id }} + cancel-in-progress: false steps: - name: Close invalid PR env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_REPO: ${{ github.repository }} - HEAD_OWNER: ${{ github.event.workflow_run.head_repository.owner.login }} - HEAD_BRANCH: ${{ github.event.workflow_run.head_branch }} - PR_NUMBER: ${{ github.event.workflow_run.pull_requests[0].number }} + WORKFLOW_RUN_ID: ${{ github.event.workflow_run.id }} run: | set -euo pipefail - if [ -z "${PR_NUMBER:-}" ] || [ "$PR_NUMBER" = "null" ]; then - PR_NUMBER="$(gh api --method GET "repos/$GH_REPO/pulls" -f state=open -f head="$HEAD_OWNER:$HEAD_BRANCH" --jq 'if length == 1 then .[0].number else empty end')" + trusted_workflow_id="$(gh api "repos/$GH_REPO/actions/workflows/close-invalid.yml" --jq .id)" + workflow_run="$(gh api "repos/$GH_REPO/actions/runs/$WORKFLOW_RUN_ID")" + + if [ "$(jq -r .workflow_id <<<"$workflow_run")" != "$trusted_workflow_id" ] || + [ "$(jq -r .event <<<"$workflow_run")" != "pull_request" ] || + [ "$(jq -r .repository.full_name <<<"$workflow_run")" != "$GH_REPO" ]; then + echo "Workflow run is not a trusted pull_request run from $GH_REPO; skipping." + exit 0 fi - if [ -z "${PR_NUMBER:-}" ]; then - echo "Unable to identify a single open PR for workflow run; skipping." + if [ "$(jq '.pull_requests | length' <<<"$workflow_run")" -ne 1 ]; then + echo "Workflow run is not associated with exactly one PR; skipping." exit 0 fi - pr_state="$(gh api "repos/$GH_REPO/pulls/$PR_NUMBER" --jq .state)" - if [ "$pr_state" != "open" ]; then - echo "PR #$PR_NUMBER is $pr_state; skipping." + pr_number="$(jq -r .pull_requests[0].number <<<"$workflow_run")" + run_head_sha="$(jq -r .head_sha <<<"$workflow_run")" + run_head_repo="$(jq -r '.head_repository.full_name // empty' <<<"$workflow_run")" + pr="$(gh api "repos/$GH_REPO/pulls/$pr_number")" + + if [ -z "$run_head_repo" ] || + [ "$(jq -r .base.repo.full_name <<<"$pr")" != "$GH_REPO" ] || + [ "$(jq -r '.head.repo.full_name // empty' <<<"$pr")" != "$run_head_repo" ] || + [ "$(jq -r .head.sha <<<"$pr")" != "$run_head_sha" ]; then + echo "PR #$pr_number no longer matches the workflow run head; skipping." exit 0 fi - if ! gh api "repos/$GH_REPO/issues/$PR_NUMBER/labels" --jq '.[].name' | grep -Fxq invalid; then - echo "PR #$PR_NUMBER does not currently have the invalid label; skipping." + if [ "$(jq -r .state <<<"$pr")" != "open" ] || + ! jq -e 'any(.labels[]?; .name == "invalid")' >/dev/null <<<"$pr"; then + echo "PR #$pr_number is not open with the invalid label; skipping." exit 0 fi - gh api -X PATCH "repos/$GH_REPO/pulls/$PR_NUMBER" -f state=closed + gh api -X PATCH "repos/$GH_REPO/pulls/$pr_number" -f state=closed + + reconcile-invalid-prs: + if: > + github.repository == 'github/copilot-cli' && + (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') + runs-on: ubuntu-latest + permissions: + pull-requests: write + concurrency: + group: close-invalid-pr-reconciliation + cancel-in-progress: false + steps: + - name: Close open PRs with the invalid label + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + run: | + set -euo pipefail + + gh api --paginate "repos/$GH_REPO/pulls?state=open&per_page=100" \ + --jq '.[] | select(any(.labels[]?; .name == "invalid")) | .number' | + while read -r pr_number; do + pr="$(gh api "repos/$GH_REPO/pulls/$pr_number")" + + if [ "$(jq -r .state <<<"$pr")" = "open" ] && + jq -e 'any(.labels[]?; .name == "invalid")' >/dev/null <<<"$pr"; then + gh api -X PATCH "repos/$GH_REPO/pulls/$pr_number" -f state=closed + fi + done diff --git a/.github/workflows/close-invalid.yml b/.github/workflows/close-invalid.yml index b1fa4801..18288ff0 100644 --- a/.github/workflows/close-invalid.yml +++ b/.github/workflows/close-invalid.yml @@ -1,6 +1,6 @@ name: Close issue/PR on adding invalid label -# **What it does**: This action closes issues and PRs that are labeled as invalid in the repo. +# **What it does**: This action closes invalid issues and signals invalid PRs to a trusted writer. on: issues: @@ -33,8 +33,10 @@ jobs: github.event_name == 'pull_request' && github.event.label.name == 'invalid' runs-on: ubuntu-latest - permissions: - pull-requests: read + permissions: {} steps: - name: Record invalid PR label signal - run: echo "Invalid label signal for PR #${{ github.event.pull_request.number }}" + env: + PR_NUMBER: ${{ github.event.pull_request.number }} + run: | + echo "Invalid label signal for PR #$PR_NUMBER" From da6329cc64f78f2ea9643e5d4b121f3b2bcfe8a4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 14 Aug 2026 02:28:40 +0000 Subject: [PATCH 26/26] Update changelog.md for version 1.0.80 --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index 48f07df8..381986dd 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +## 1.0.80 - 2026-08-14 + +- Update model configurations + ## 1.0.79 - 2026-08-10 - The /sandbox configuration dialog shows where sandbox settings are stored in settings.json