diff --git a/changelog.md b/changelog.md index f27fe2cf..283f6fc3 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,173 @@ +## 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 + +## 1.0.30 - 2026-04-16 + +- Feedback form links to the correct GitHub repository +- /undo shows an explanatory message when rewind is unavailable (e.g., not in a git repository or no commits yet) +- Plugin skills and commands are correctly discovered when using skills.discover +- Add /statusline command (with /footer alias) to customize which items appear in the status bar (directory, branch, effort, context window, quota) +- Remove --list-env flag that logged loaded plugins, agents, skills, and MCP servers in prompt mode +- Image paste from clipboard works again after regression in bracketed paste handling +- Both Ctrl+V and Meta+V trigger image paste on all platforms + +## 1.0.29 - 2026-04-16 + +- Remote MCP server config now allows omitting the type field, defaulting to http +- Blinking cursor maintains stable width so text does not shift during blink +- Add --list-env flag to log loaded plugins, agents, skills, and MCP servers when running in prompt mode, helping verify environment configuration in CI pipelines +- Add support for Claude Opus 4.7 +- Shell commands and MCP servers now receive COPILOT_AGENT_SESSION_ID as an environment variable +- Agent correctly identifies repository owner from git remote URL rather than local username +- Terminal state correctly restored after a crash exit on Windows + +## 1.0.28 - 2026-04-16 + +- Permission prompts show correct repository path when working inside git submodules +- Background agent completion notifications are not sent redundantly when read_agent is already waiting for the result +- MCP migration hint now links to documentation with platform-specific instructions instead of embedding shell commands inline +- Azure resource IDs no longer trigger false path security warnings when running az CLI commands +- Rewind picker navigation simplified to arrow keys and Enter, removing the confusing 1-9 quick-select shortcut +- A clear error message is displayed when the configured editor cannot be launched +- Mascot plays a short blink sequence on startup instead of blinking continuously +- Connect to CLI remote control sessions from the —resume picker +- Support COPILOT_DISABLE_TERMINAL_TITLE environment variable to opt out of terminal title updates + +## 1.0.27 - 2026-04-15 + +- Show a clear message when Copilot Pro trial is paused instead of a generic policy error +- Status bar shows @files and #issues hints while typing, and /help hint when the slash command picker is open +- Clipboard copy on WSL no longer leaks an invisible BOM character into pasted text +- Add /ask command to ask a quick question without affecting conversation history +- Add `copilot plugin marketplace update` command to refresh plugin catalogs + +## 1.0.26 - 2026-04-14 + +- Escape key reliably dismisses ask_user and elicitation prompts without getting stuck +- Spurious directory access prompts no longer appear for arguments inside find -exec blocks +- Agent sessions no longer fail with unrecoverable errors when context compaction splits a tool call across a checkpoint boundary +- Single-segment slash-prefixed tokens (e.g. /help, /start) no longer treated as file paths in bash commands +- Anthropic BYOM correctly includes image data when viewing image files +- Permission prompt notification hook only fires when a prompt is actually shown to the user +- ctrl+o now expands all timeline entries, same as ctrl+e +- Remote tab correctly shows Copilot coding agent tasks and supports steering without requiring a pull request +- Rename "steering" to "remote control" in --remote flag and /remote command help text +- Avoid sending duplicate custom instruction files (e.g. copilot-instructions.md and CLAUDE.md with identical content) to reduce wasted tokens per turn +- Plugin hooks receive PLUGIN_ROOT, COPILOT_PLUGIN_ROOT, and CLAUDE_PLUGIN_ROOT env vars with the plugin's installation directory +- ACP server binds to localhost only, preventing unintended network exposure +- Installing a plugin named 'git' from a marketplace no longer fails due to incorrect URL parsing +- Enterprise login accepts hostnames without a URL scheme (e.g. 'github.example.com') +- LSP language servers correctly initialize on Windows using proper file URI paths +- Relative paths in file edit operations resolve against the session working directory +- Session scope selector in sync prompt is now more prominent and keyboard-navigable with left/right arrow keys +- Instruction files with specific applyTo patterns are consolidated into a table instead of inlining full content, reducing context window usage + ## 1.0.25 - 2026-04-13 - Install MCP servers from the registry with guided configuration directly in the CLI