diff --git a/changelog.md b/changelog.md index 037ecf67..a7e9bc26 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,830 @@ +## 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 +- 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. +- 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 +- 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 +- 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 +- 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 + +- 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 +- @-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 +- ThemePicker side-by-side layout fits within a 120-column terminal without wrapping +- Model picker shows accurate total context window size per pricing tier +- Add `builtInAgents.rubberDuck` setting to enable or disable the rubber duck agent via `copilot config` +- Extended key reporting works correctly in tmux when Kitty keyboard protocol is unavailable +- Config and settings files are written atomically to prevent data loss when multiple CLI processes run concurrently +- BYOK provider configuration now applies correctly to ACP sessions +- MCP tools that return both human-readable `content` text and a `structuredContent` payload now surface both to the agent instead of dropping either side. When the text is the literal JSON serialization (per MCP spec §5.2.6) it is deduplicated; otherwise the two are concatenated. +- Fix /context small-token legend formatting and free-space grid rounding +- Reasoning effort picker respects model capabilities — options not supported by the model are no longer shown +- File paths in /env output display with correct formatting +- Reasoning text always displays above the assistant response in the conversation timeline +- Assistant responses render without single-word orphan lines in the terminal timeline +- Diff view uses a continuous scroll layout with sticky file and hunk headers, full terminal width, and theme-aware colors +- web_fetch tool prefers markdown content when available, using HTTP content negotiation for cleaner results from documentation sites +- Cursor stays at correct position after pasting text that contains tab characters +- Code review agent now uses the same model as the current session instead of a fixed default +- When gh CLI is on PATH, GitHub MCP server now omits redundant gh-replaceable tools by default, reducing token usage +- Context window tier selection now persists durably in session events and survives SDK-only resume paths so tier-derived limits are reapplied to request, compaction, and truncation logic without app-level repair +- Remote session URL correctly uses the repository owner/name instead of literal 'copilot' +- Trusted folder confirmation message clarifies that permissions may be remembered for the session + +## 1.0.55 - 2026-05-28 + +- Free and Student plan users on token-based billing are restricted to Auto model selection, with an explanation shown in the model picker +- Report Claude thinking (reasoning) tokens in session usage summaries +- Add support for Claude Opus 4.8 +- Loading spinner no longer hangs forever when launching in an untrusted folder +- MCP server configuration form saves the latest typed value when pressing Ctrl+S +- Show per-MCP-server token usage in /mcp and break out MCP tool tokens in /context +- Custom agents and skills are now discovered recursively in subdirectories +- Add `permissions.disableBypassPermissionsMode` setting to prevent enabling allow-all/yolo mode +- Update model selection behavior for select subscription plans +- The exit_plan_mode tool is only offered to the model while the session is in plan mode +- Native binary crash (e.g. SIGSEGV) now falls through to the JavaScript fallback instead of silently exiting +- Add /autopilot to keep autopilot focused, with /goal as an alias +- Detect PowerShell 7 correctly when pwsh.exe is installed as a Microsoft Store App Execution Alias +- Sessions with zero-sized CAPI billing batches resume correctly +- Cell-based terminal renderer is now enabled for all users by default +- Show a warning when remote controlled sessions are disabled by organization policy +- Extension log files are now captured per extension and surfaced in the extensions_manage tool to help diagnose failures +- Project extensions in .github/extensions are now discovered in non-git (folder-backed) workspaces +- Allow /statusline and /theme commands to run while the agent is executing +- MCP configuration now opens in its own dedicated screen, with scrollable server and tool lists when content exceeds the visible area +- Hook progress streaming shows real-time status messages from long-running hooks in the timeline +- pluginDirectories on session.create and session.resume RPC: SDK clients can mount Open Plugins-format directories per session. +- Delete remote sessions directly from the session picker +- Schedule manager hint bar text no longer wraps over dialog borders when entries are added +- `copilot update` and `copilot version` authenticate release API requests to avoid rate limit errors in shared-NAT environments +- Diff view keyboard shortcut hints display correctly when toggling between unstaged and branch diff modes +- Clipboard paste works correctly on Wayland compositors that do not support wlr-data-control (e.g. GNOME/Mutter) +- Interactive shell tool preserves parent terminal color settings so diff tools and other programs render with full color +- Canvas tools with optional object input schemas open correctly without validation errors +- Extension subprocesses no longer fail with "Invalid command format" when forked from an older CLI version +- Settings migration preserves user data when legacy snake_case keys exist from older CLI versions +- Support owner/repo#ref syntax when adding plugins from the marketplace +- Feedback dialog and /skills help text use Copilot-consistent log paths and terminology +- Progress indicators integrate natively with tmux 3.6b pane progress state +- --plugin-dir skills now take precedence over personal-home (~/.copilot, ~/.agents) skills with the same name. Order is now project > plugin-dir > personal > custom. +- Show a helpful message when remote controlled sessions are disabled by organization policy +- Reasoning token count now shown in session token summary for all users +- Terminal bell no longer sounds on turn completion unless explicitly enabled via config +- /resume picker no longer shows blank rows for sessions closed before sending a message +- Aborting a session no longer leaves the UI stuck in a Cancelling state when Task tool agents are running +- vote_memory tool calls are throttled per response and per interaction to prevent runaway voting bursts +- Upward auto-scroll now engages when dragging mouse selection past the top of the timeline +- Clipboard correctly copies CJK and supplementary-plane Unicode characters on Windows +- Increase selection background contrast across all color themes for better visibility +- /env now shows loaded extensions with their status and source +- Extensions launch correctly when the CLI runs as a single-executable application (SEA) + +## 1.0.54 - 2026-05-24 + +Fixes and changes + +## 1.0.53 - 2026-05-24 + +- Multiline prompts display fully without content clipping or selection offset +- /skills picker now correctly honors --config-dir when saving skill preferences +- Bash shell sessions no longer hang when PS0 or PROMPT_COMMAND is set in the environment + +## 1.0.52 - 2026-05-23 + +- Non-interactive subcommands (plugin list, mcp list, help, version) no longer consume stdin +- Add vertical scrollbar with mouse drag support to the main conversation view +- Switching to Autopilot mode no longer triggers unexpected permission prompts for tool, path, or URL access +- copilot --continue from a session's saved directory now refreshes the saved branch and git context instead of leaving them stale +- Kill command safety filter no longer rejects valid commands that contain shell redirection like `kill -0 2>/dev/null`. +- Sessions now resume in their saved working directory; pass -C to override. Flags whose values are relative paths (e.g. --attachment, --log-dir) resolve from the saved cwd. +- Context window tier selection (default ~200K vs 1M tokens) is now enforced end-to-end, so picking a tier actually constrains compaction, truncation, and token display +- AI Credits usage correctly displays after sessions using the Responses API +- Rendering no longer stutters when using tmux on Cygwin or mintty +- Slash command picker keeps (experimental) and (staff) labels orange when the row is selected +- Reasoning tokens display as a parenthetical on output token count in the token usage summary +- Sessions containing events with non-URL strings in URL/URI fields resume without a 'Session file is corrupted' error +- Requests that time out due to an HTTP/2 upload stall automatically retry over HTTP/1.1 +- Sessions no longer fail to load on Windows when a process exits with a high-bit exit code (e.g., .NET unhandled exceptions) +- Timeline entry connector color matches surrounding elements when expanded +- Gray background bar no longer appears behind user messages on terminals without truecolor support +- Status line command supports plain shell commands in addition to executable script paths +- Automatically prune old process log files from ~/.copilot/logs/ at startup to prevent unbounded disk growth +- Polish /statusline picker with cleaner item descriptions and better spacing +- Picker checkboxes now use a single-cell ▣/▢ glyph for tighter, more consistent rows across pickers +- Custom agents support opt-in deferred tool loading via `deferred-tool-loading` in agent frontmatter, enabling tool-search discovery for agents with large tool lists +- Exit summary displays `AI Credits` label with correct spacing before the value +- /restart and /update preserve the current session ID after restarting +- Legacy nested `oauth.clientId` and `oauth.callbackPort` keys in MCP server configs are now migrated to the supported `oauthClientId` and `auth.redirectPort` keys instead of being silently dropped +- MCP OAuth re-authentication honors the configured redirectPort +- PowerShell division operator no longer triggers false 'Allow directory access' prompts on Windows +- /compact accepts optional focus instructions to shape the compaction summary +- General-purpose subagents use GPT-5.4 or GPT-5.5 when available +- /usage shows quota progress bars for session and weekly limits +- AI credits error messages updated with clearer language and a Manage budget link + +## 1.0.51 - 2026-05-20 + +- `--session-id=` resumes known sessions or tasks, and starts new sessions with a specific UUID +- /remote commands now respect organization remote control and view from cloud policy and show a clear error when disabled +- /remote command can now be used while the agent is working +- Customizable status line in the terminal footer displays session info such as model, context window, git branch, and more +- MCP tool loading at startup is faster for users with many HTTP-based MCP servers +- Settings file no longer accumulates unrelated config keys when settings are updated +- Add /security-review slash command to review code changes for security vulnerabilities +- Add preMcpToolCall hook for hook providers to control outgoing MCP request metadata +- Add /chronicle cost-tips subcommand for personalized token usage and cost reduction recommendations +- MCP servers using OAuth stay connected when authentication was performed in a separate session +- GFM tables and blockquotes inside list items render correctly without a floating top border +- Experimental mode indicator now appears persistently in the app header instead of as a one-time notification +- Loading indicator color matches the active mode (plan, autopilot, shell) +- Session naming works correctly for usage-based billing users +- Pressing Enter on a highlighted subcommand completion inserts the selection instead of submitting the partial command +- Use default release notes when publishing a release with no changelog entries +- Editor launched with Ctrl+G no longer steals keystrokes or requires double keypresses +- `/memory show` displays documentation links for learning about and managing Copilot Memory +- Add `terminalProgress` setting to enable or disable OSC 9;4 terminal progress indicators +- postToolUse hooks can now inject additionalContext into successful tool results +- Only show remote session startup failure when remote mode is explicitly requested via --remote or enabled in user configuration +- Shell tool calls succeed even when the model omits the `description` parameter +- Ensure input token usage includes cached, update token formatting to clarify +- Login prompt more clearly warns when token storage falls back to insecure plain text config file +- GitHub MCP web search tool is available immediately without requiring tool search +- Secret scanning now covers commit messages and PR descriptions, redacting secrets before they are published +- Input area grows responsively with terminal height instead of capping at 3 lines + +## 1.0.49 - 2026-05-18 + +- postToolUse hook additionalContext is now injected as a system message for the model instead of being silently discarded +- Mouse clicks in the prompt correctly position cursor when input contains wide characters (CJK, emoji) +- Add /chronicle search subcommand to search all session content by keyword or topic +- /user switch reuses the fetched user list and shows a loading spinner on first open +- MCP servers using static OAuth clients correctly persist registration for token refreshes +- Add support for running the CLI on Alpine Linux (musl libc) +- Add /exit print option to print the session to the terminal before exiting +- Add /rubber-duck command to get an independent critique of the agent's current work +- Add /session id subcommand to display the current session ID and copy it to the clipboard +- Add `auth.redirectPort` config option for MCP servers to pin the OAuth callback to a fixed port +- Add /memory on|off|show slash command to enable, disable, or view memory status (persistent) +- Add `copilot plugin update --all` to update all installed plugins at once +- Add `/rubber-duck` command to invoke the rubber duck agent for an independent critique (experimental) +- Input prompt collapses to a single line when empty and grows naturally as you type +- File diffs are correctly reported to ACP clients for all edit tool types +- Repo hooks in `.github/hooks/` now load in prompt mode (`-p`) when the folder is already trusted +- Fix extra line in timeline entries +- Box drawing and block characters render correctly on Windows terminals not using UTF-8 code page +- MCP server configurations with no `args` field are now accepted and treated as an empty args list +- Document attachment paths are included in context so the agent can reference pasted file paths, including Windows Copy as path inputs +- MCP stdio servers now display type as 'stdio' instead of 'local' for consistency +- Progress bar indicator now displays correctly in tmux sessions +- Experimental slash commands are now annotated with "(experimental)" in the help dialog and command picker +- Auto-update downloads the smaller platform-specific package instead of the universal one when available +- Auto-link GitHub issue and PR references (owner/repo#number) in assistant responses +- Prompt mode (-p) automatically loads workspace MCP sources when the current folder is already trusted +- Experimental: /mcp search command to search and install MCP servers from registry +- Experimental: Tool search with deferred loading for MCP and external tools +- Add "None" reasoning effort option to disable model reasoning in the reasoning effort picker +- Add COPILOT_PLUGIN_DIR_ONLY environment variable to disable automatic plugin discovery, enabling deterministic plugin sets when using --plugin-dir +- Copying text from the scroll view joins soft-wrapped lines without extra newlines or indentation +- Cursor positioning in input fields works correctly with wide characters (CJK, emoji) +- Hooks (preToolUse, postToolUse, subagentStart, subagentStop) now fire correctly for sub-agent tool calls +- Plugins loaded via --plugin-dir now correctly register their agents as available task(agent_type=...) subagents in prompt mode +- Memory storage correctly limits available scopes when no repository context is present +- --plugin-dir and --additional-mcp-config now work in --server / --headless mode +- Content-filtered model responses now display an explanation instead of a blank assistant turn +- PromptFrame UI now renders inside tmux when the outer terminal is ghostty, WezTerm, or kitty (detected via `tmux list-clients`). +- MCP OAuth token lookups are correctly scoped to the active session +- Memory permission prompts now name who can see a stored memory: user scope or the specific `owner/repo` for repository scope. Timeline entries also show the scope (`(for user)` / `(shared with repository collaborators)`). +- Reduce PowerShell syntax errors on Windows by avoiding && chaining instructions when using legacy PowerShell 5.x + +## 1.0.48 - 2026-05-14 + +- Model picker displays actual token prices instead of dot indicators for token-based billing users +- Instruction files with unquoted glob patterns in applyTo frontmatter (e.g. applyTo: \*_/_.ts) are now applied correctly +- Input text with CJK characters or emoji renders without blank gaps between lines +- /context shows correct token limits for all models instead of always showing 128k +- Auto-disable the built-in github-mcp-server in Azure DevOps-only workspaces when running in prompt/headless mode, matching interactive mode behavior +- Terminal cursor positions correctly on the input field instead of on decorative elements like the selected tab +- ACP clients receive updated config options when the active model is changed +- /ask dialog no longer prompts for follow-up replies it cannot receive +- Skill content injected to the model no longer includes YAML frontmatter metadata + +## 1.0.47 - 2026-05-13 + +- /fork accepts an optional name and forked sessions display their origin in the sessions dialog +- Copilot Max subscribers see the correct models available to their subscription tier +- Support j/k keys for up/down navigation in the /diff view +- --resume supports Copilot cloud agent sessions where the agent hasn't pushed any changes to its branch + +## 1.0.46 - 2026-05-12 + +- Display a warning when the CLI version is deprecated and premium model access may be lost +- PowerShell starts correctly when pwsh is installed as a .NET global tool shim +- Long lines in diff view wrap at terminal width instead of being truncated +- Read-only gh CLI commands (list, view, status, diff, etc.) are auto-approved without prompting for user confirmation +- Sessions no longer crash mid-turn with ERR_HTTP2_INVALID_SESSION errors + +## 1.0.45 - 2026-05-11 + +- Add /autopilot slash command to toggle between interactive and autopilot modes +- Fall back to Windows PowerShell (powershell.exe) when PowerShell 7+ (pwsh) is not available on Windows +- OpenTelemetry output aligns with GenAI semantic conventions: MCP tool calls now use standard tool_call spans, and a new gen_ai.client.operation.duration metric tracks tool execution time +- Sessions with extension permission prompts can be resumed without a "Session file is corrupted" error +- agentStop hook now fires correctly when the agent stops via task_complete +- CLI starts faster on terminals with limited OSC color query support, shaving up to ~1.5s off startup time. +- Add /fork command to fork the current session into a new independent session + +## 1.0.44 - 2026-05-08 + +- Path completion in /add-dir no longer flickers or gets intercepted by @ and # pickers +- Slash commands can now appear mid-input, and multiple skills can be invoked in a single message +- userPromptSubmitted hooks can now handle requests directly, bypassing the LLM and returning a response without making a model call +- Faster /user list and /user switch for multi-account users +- Add optional `prerelease` argument to `copilot update` and `/update` to fetch the latest prerelease build +- Shell commands via ! prefix work correctly with all shell configurations +- Shell aliases and rc file settings now work in ! commands +- Quota display correctly shows remaining usage for Free users instead of always showing 100% used +- Tool permissions granted in autopilot mode are preserved after /clear +- Effort level applies correctly when switching models via the /model picker +- Pressing Ctrl+C while a permission prompt is pending no longer causes the CLI to hang +- Project info remains visible in slash command picker when no results match +- Invalid URL entries in settings.json no longer crash CLI startup and are skipped with a warning +- Timeline shows the resolved model for rubber-duck sub-agents (e.g. Rubber-duck(claude-opus-4.7)) + +## 1.0.43 - 2026-05-06 + +- Add username toggle to /statusline picker to display the active account in the footer +- Auto mode uses server-side model routing for improved real-time model selection +- Resume prompt shows correct session name when multiple sessions are active +- Protect against RCE from malicious bare repositories nested inside a project +- MCP server child processes (e.g. started via npx or uvx) are now fully terminated when a session ends +- Show download progress when running the update command + +## 1.0.42 - 2026-05-06 + +- MCP server failure warning now suggests a directly runnable `/mcp show` command when the server name contains whitespace +- MCP server failure warnings include stderr output to help diagnose connection errors +- Add -C flag to change working directory before starting, similar to git -C +- Exit message resume command shows session ID instead of auto-generated name when session has not been renamed +- Remote session export now supports non-GitHub repositories and repo-less directories +- Resuming a session no longer shows a false "session in use" warning after choosing "Go back" +- Enter key no longer gets permanently stuck after cancelling a request +- Suppress the exit summary when the session has no user messages and no saved session to resume +- CLI updates on Windows no longer fail with ENOENT when a transient EPERM occurs during package extraction +- Add rubber-duck agent for GPT sessions, powered by Claude (available in /experimental) + +## 1.0.41 - 2026-05-05 + +- CLI starts faster by rendering the UI immediately while authentication resolves in the background +- Shell completions (bash, zsh, fish) are automatically installed on first run and updated after `copilot update` +- Tab-completing slash commands that accept arguments now adds a trailing space automatically +- Package extraction no longer crashes on Windows when antivirus or filesystem locks cause transient EPERM errors +- Remote session connection errors show your logged-in account and tailored remediation steps +- Markdown formatting renders in ask user prompt questions +- Add experimental MCP Tasks support: MCP tools with `taskSupport: "required"` run as non-blocking background agents trackable via `list_agents` and `read_agent` (available when experimental mode is enabled, e.g. via `/experimental on` or the `--experimental` flag) +- Extensions now load in prompt mode (-p). User extensions load by default; project extensions alnd management tools require GITHUB_COPILOT_PROMPT_MODE_EXTENSIONS=true. +- Assistant responses no longer contain spurious system notification XML tags +- Large output guidance correctly references the configured grep tool name +- Adding a plugin marketplace using a git SSH URL (e.g. git@github.com:owner/repo) now works correctly +- Slash command picker searches command descriptions and underlines matched characters +- Memory tool confirmation prompt now shows the scope (repository or user) when requesting permission to store a memory +- SQL todo timeline entries display more accurately for INSERT OR IGNORE/REPLACE and blocked status updates +- Streaming text and shimmer animations stay smooth on slow or busy hosts +- Add --attachment flag in non-interactive (-p/--prompt) mode to attach files (images or native documents) to the initial prompt +- @-mention completion works for ./ paths, no longer adds trailing space on directories, and shows project files before workspace roots +- Improve stability on Windows by working around a V8 crash in Node 24.x +- Session files containing Unicode line separator characters load correctly +- Reasoning effort picker hint text displays "Esc to cancel" with correct spacing +- Improve reliability of file edits by better recovering from fuzzy or misaligned edit blocks + +## 1.0.40 - 2026-05-01 + +- PR branch decoration displays correctly in the footer regardless of model name length +- /clear and /new reset the active custom agent selection +- Assistant responses stream with smoother text output +- `copilot plugin list` shows the correct version after running `copilot plugin update` +- Add support for `client_credentials` OAuth grant type for MCP servers, enabling fully headless authentication without a browser +- Subagents correctly evaluate tool search support for their own model instead of inheriting the parent session's settings +- Switching sessions with /new or /resume no longer carries over pending messages to the new session +- CLI no longer hangs at 100% CPU when sending a large file attachment +- Resume session picker no longer shows duplicate entries for the same Mission Control-backed session +- Session resume selector displays summaries on a single line, truncated to fit the column width +- Print "Exiting…" to stderr immediately on Ctrl+C during prompt mode so shutdown progress is visible +- /research uses an orchestrator/subagent model for more thorough and reliable deep research results +- Autopilot mode now limits continuation messages to 5 by default (configurable with --max-autopilot-continues) +- Automatically clean up old CLI package versions from disk during auto-update +- Remote session statusline shows the remote working directory and branch instead of local context +- /update no longer re-submits the original -i prompt after restarting +- Detect Azure DevOps repositories and auto-disable the GitHub MCP server +- Session history, file tracking, and the /chronicle command are now available to all users +- Skills are available as slash commands in ACP clients, matching the CLI experience +- Resuming a session no longer falsely reports it as in use after a previous CLI process exited unexpectedly +- --config-dir now propagates correctly to plugin subcommands; --config-dir is deprecated in favor of COPILOT_HOME +- Mouse selection works while the /ask response dialog is open, so its content can be highlighted and copied +- Improve CLI startup speed by loading custom CA certificates asynchronously +- Remote control link shows the full URL in the timeline instead of 'Open in browser' +- ACP clients (e.g. Zed) now display the agent's live plan as it works through multi-step tasks +- Add toggle for custom statusLine.command visibility in the statusline picker +- ACP clients can now list and switch custom agents via the agent config option +- MCP OAuth tokens cache correctly when multiple servers share the same URL but use different static OAuth client IDs +- MCP tool names with dots or other invalid characters are now sanitized correctly +- Ctrl+C and double-Esc remove pending queued messages one at a time instead of all at once +- Slash command suggestions rank prefix matches above fuzzy matches +- Prompt mode (-p) now gates repo hooks and workspace MCP behind opt-in env vars (GITHUB_COPILOT_PROMPT_MODE_REPO_HOOKS and GITHUB_COPILOT_PROMPT_MODE_WORKSPACE_MCP) for secure-by-default behavior + +## 1.0.39 - 2026-04-28 + +- Allow ACP clients to toggle allow-all permission mode via session configuration +- Add /compact, /context, /usage, and /env slash commands for ACP sessions +- Press ctrl+x → b to move the current running task or shell command to the background +- Transient pipe errors on child process stdio streams no longer cause crashes or trigger false crash reports +- `/remote` status output now shows actionable hints for each connection state +- Improve --resume session picker with better tab layout, status display, and progressive loading +- Slash command argument picker opens immediately at exact command boundaries without requiring a trailing space + +## 1.0.37 - 2026-04-27 + +- Location-based permission persistence is now enabled by default, so approvals carry over across sessions for the same directory +- Add `copilot completion ` subcommand to generate static shell completion scripts for subcommands, flags, and known choice values +- Press `s` in the session picker to cycle sort order: relevance, last used, created, or name +- ACP model config options now include description and metadata for clients using the configOptions API +- Model and effort change notification no longer appears when re-selecting the same model or effort level +- Clipboard write no longer leaks X11 handles on Linux +- Pending message indicator displays correctly alongside prompt frames +- Fix detached HEAD detection always returning false after switch to git branch --show-current +- Skill picker list stays fully visible when skills have errors or warnings +- /ask responses now render markdown, including tables and formatted links + +## 1.0.36 - 2026-04-24 + +- Subcommand picker shows a selection indicator (❯) next to the highlighted item +- Clearer error message with a direct link when multiple Copilot licenses are detected +- Fixed an issue where preToolUse.matcher was ignored. After upgrade, hooks with matcher run only for tool names that fully match the regex. +- `/keep-alive` is available without experimental mode to prevent system sleep while Copilot CLI is active +- /remote command shows current status and supports /remote on and /remote off to toggle remote control +- Disabled skills no longer appear in the slash command list +- Add a 'changes' statusline toggle to show added/removed line counts for the session +- Custom instruction files in .gitignored directories (e.g., .github/instructions/) now load correctly +- Require double Esc to cancel in-flight work, preventing accidental interruptions +- Saving debug logs or feedback bundles no longer overwrites existing archive files +- Custom agents, skills, and commands from ~/.claude/ are no longer loaded by the Copilot CLI +- Claude Opus 4.6 now uses medium reasoning effort by default + +## 1.0.35 - 2026-04-23 + +- Slash commands support tab-completion for arguments and subcommands +- Shell escape commands (!) now use your $SHELL when set, instead of always invoking /bin/sh +- Permission prompts appear correctly in remote sessions for the CLI TUI +- Session selector shows branch names, idle/in-use status, and has improved search with cursor support +- Model change notification shows both the previous and new model name +- /update and /version commands now honor your configured update channel +- Session sync prompt uses clearer labels and explains GitHub.com cross-device sync +- Support COPILOT_GH_HOST environment variable for GitHub hostname, taking precedence over GH_HOST +- Press Ctrl+Y (in addition to Tab) to accept the highlighted option in completion popups (@-mentions, path completions, slash commands) +- Add /session delete, delete , and delete-all subcommands, and x-to-delete in the session picker +- MCP server names with spaces and special characters are now supported +- Skill slash commands (e.g. /skill-name) passed as the initial prompt via -i are recognized correctly on startup +- Shell completion notifications are not duplicated when read_bash already returned the result +- --continue prefers resuming sessions from the current working directory instead of the most recently touched session +- Status line script now includes context window fields that match the model badge and /context output +- User settings are now stored in ~/.copilot/settings.json, separate from internal state in config.json +- Name sessions with --name and resume them by name with --resume= +- Configure Copilot agent now has shell access on Windows +- Show a helpful error message with install instructions when clipboard utilities (wl-clipboard or xclip) are missing on Linux +- LSP server entries in lsp.json support configurable spawn, initialization, and warmup timeouts +- Context window indicator in the statusline is now hidden by default +- Move MCP OAuth into the shared runtime flow and clear associated OAuth state when removing an MCP server. +- Added a GitHub-style contribution graph to /usage that adapts to terminal color mode and falls back to distinct glyphs in no-color terminals +- Self-correcting custom tool calls in agentic loop +- Cursor movement, deletion, and rendering work correctly for emoji and multi-codepoint characters in the text input +- Tool availability detection works correctly on Windows +- Session token expiry during a turn is handled automatically without requiring you to resend your message +- Initial tab and arrow key navigation in /cwd and /add-dir path picker selects the correct item +- Transient I/O errors no longer appear as red error entries in the timeline when an IDE or extension disconnects +- Custom agents and skills in ~/.claude/ are no longer incorrectly loaded as Copilot project config +- Login command restores interactive input correctly after authentication +- Improve rendering performance when displaying large amounts of text in the timeline +- Sync task calls block until completion under MULTI_TURN_AGENTS instead of auto-promoting to background after 60s; sync no longer returns a reusable agent_id, use mode: "background" for follow-ups +- Tab navigation supports Home/End keys to jump to first and last tab +- Plugins take effect immediately after install without requiring a restart +- Add continueOnAutoMode config option to automatically switch to auto model on rate limit instead of pausing +- Auto mode no longer fails with an error when switching to a model that doesn't support the configured reasoning effort +- Pattern-specific instruction files (.github/instructions/\*.instructions.md) no longer include their full body in the system prompt on every session +- Extension shutdown errors no longer appear as error-level log noise on every session exit +- LSP refactoring tools now register correctly on the first turn when LSP configs are present +- Add HTTP hook support, allowing hooks to POST JSON payloads to a configured URL instead of running a local command +- Hide subagent thinking from the timeline +- Custom agent name is now visible in the statusline footer and can be toggled via /statusline +- Pressing Escape on startup dialogs no longer causes race conditions +- grep and glob tools now accept multiple search paths + +## 1.0.34 - 2026-04-20 + +- Rate limit error message now says "session rate limit" instead of "global rate limit" + +## 1.0.33 - 2026-04-20 + +- Resuming a remote session with --resume or --continue automatically inherits the --remote flag without needing to re-specify it +- Add /bug, /continue, /release-notes, /export, and /reset as command aliases +- Slash command picker suggests similar commands when you type an unrecognized or misspelled slash command +- Add /upgrade as an alias for the /update command +- Grep no longer times out on large repositories when content exclusion policies are enabled +- Non-interactive mode waits for all background agents to finish before exiting +- Skill picker correctly truncates CJK/Japanese descriptions and long skill names without wrapping +- Slash command picker selects the highlighted command when pressing Enter +- ctrl+t to toggle reasoning display is now listed in the /help and ? overlay +- Sub-agents in auto mode now inherit the session model +- Show usage limit warnings at 50% and 95% capacity, giving earlier notice before hitting rate limits +- Use j/k for vim-style navigation and x to kill tasks in the tasks dialog + +## 1.0.32 - 2026-04-17 + +- Allow short session ID prefixes (7+ hex chars) with --resume and /resume instead of the full ID +- /feedback saves the bundle to TEMP when the working directory is not writable +- Select `auto` as your model to let Copilot automatically pick the best available model for each session +- Add --print-debug-info flag to display version, terminal capabilities, and environment variables +- Show warnings when approaching 75% and 90% of your weekly usage limit +- Attach supported document files to prompts for the agent to read and reason about +- Add --connect flag to directly connect to a remote session by ID +- copilot login --host now correctly authenticates with GitHub Enterprise Cloud (GHE) instances +- Current date and time in agent context now includes local timezone offset +- Terminal progress indicator stays visible while the agent is thinking +- Status line no longer shows stray Unicode glyphs in terminals like Neovim after /clear +- Rewind works correctly after using /cd to change directories +- Multiline input is preserved when using /plan and plan mode +- Backspace correctly exits shell mode only when the input is empty +- Mouse wheel scrolling works correctly in the /ask dialog +- Rate-limited sessions now pause queued messages and automatically retry instead of dropping them +- Tables render with correct column widths, emoji support, and stable borders during terminal resize +- Rate limit error messages now show specific context based on the type of limit reached +- Session idle timeout is now configurable via --session-idle-timeout; disabled by default +- Skills that exceed the token limit are still discoverable and invocable by name + ## 1.0.31 - 2026-04-16 - Prompt frame no longer causes rendering issues on Windows and Ubuntu terminals @@ -1425,7 +2252,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 @@ -1530,7 +2357,7 @@ To commemorate GitHub Copilot CLI reaching general availability last week, we're ## 0.0.332 - 2025-10-01 -- Switched to using per-subscription Copilot API endpoints in accordance with [GitHub's docs](https://docs.github.com/en/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-access/manage-network-access) (fixes https://github.com/github/copilot-cli/issues/76) +- Switched to using per-subscription Copilot API endpoints in accordance with [GitHub's docs](https://docs.github.com/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-access/manage-network-access) (fixes https://github.com/github/copilot-cli/issues/76) - Fixed a bug where `/user [list | show | switch]` did not include users signed in from all authentication modes (fixes https://github.com/github/copilot-cli/issues/58) - Fixed a bug where switching to another user with `/user switch` did not take effect in the GitHub MCP server - Improved the screenreader experience by disabling the scrollbar in the `@` file picker, the `--resume` session picker, and the `/` command picker