diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index 094defe6..873e55b3 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -41,4 +41,26 @@ jobs: .\wingetcreate.exe update $packageId ` --version $packageVersion ` --urls "$installerUrlx64|x64" "$installerUrlarm64|arm64" ` - --submit + --out manifests + + # Add PowerShell dependency to installer manifest + $installerManifest = Get-ChildItem -Path manifests -Filter "*.installer.yaml" -Recurse | Select-Object -First 1 -ExpandProperty FullName + if (-not $installerManifest) { + Write-Error "No installer manifest (*.installer.yaml) was found in the 'manifests' directory." + exit 1 + } + $content = Get-Content -Path $installerManifest -Raw + $dependency = @" + Dependencies: + PackageDependencies: + - PackageIdentifier: Microsoft.PowerShell + MinimumVersion: "7.0.0" + "@ + # Remove existing top-level Dependencies block (if any), then insert ours + $content = $content -replace '(?m)^Dependencies:\r?\n([ ]+.+\r?\n)*', '' + $content = $content -replace '(?m)^Installers:', "$dependency`nInstallers:" + Set-Content -Path $installerManifest -Value $content + + # Submit the modified manifest + $manifestPath = Split-Path $installerManifest + .\wingetcreate.exe submit $manifestPath diff --git a/README.md b/README.md index d5dae010..28050a4e 100644 --- a/README.md +++ b/README.md @@ -118,10 +118,70 @@ Launch `copilot` in a folder that contains code you want to work with. By default, `copilot` utilizes Claude Sonnet 4.5. Run the `/model` slash command to choose from other available models, including Claude Sonnet 4 and GPT-5. +### Experimental Mode + +Experimental mode enables access to new features that are still in development. You can activate experimental mode by: + +- Launching with the `--experimental` flag: `copilot --experimental` +- Using the `/experimental` slash command from within the CLI + +Once activated, the setting is persisted in your config, so the `--experimental` flag is no longer needed on subsequent launches. + +#### Experimental Features + +- **Autopilot mode:** Autopilot is a new mode (press `Shift+Tab` to cycle through modes), which encourages the agent to continue working until a task is completed. + Each time you submit a prompt to GitHub Copilot CLI, your monthly quota of premium requests is reduced by one. For information about premium requests, see [About premium requests](https://docs.github.com/copilot/managing-copilot/monitoring-usage-and-entitlements/about-premium-requests). For more information about how to use the GitHub Copilot CLI, see [our official documentation](https://docs.github.com/copilot/concepts/agents/about-copilot-cli). +## 🔧 Configuring LSP Servers + +GitHub Copilot CLI supports Language Server Protocol (LSP) for enhanced code intelligence. This feature provides intelligent code features like go-to-definition, hover information, and diagnostics. + +### Installing Language Servers + +Copilot CLI does not bundle LSP servers. You need to install them separately. For example, to set up TypeScript support: + +```bash +npm install -g typescript-language-server +``` + +For other languages, install the corresponding LSP server and configure it following the same pattern shown below. + +### Configuring LSP Servers + +LSP servers are configured through a dedicated LSP configuration file. You can configure LSP servers at the user level or repository level: + +**User-level configuration** (applies to all projects): +Edit `~/.copilot/lsp-config.json` + +**Repository-level configuration** (applies to specific project): +Create `.github/lsp.json` in your repository root + +Example configuration: + +```json +{ + "lspServers": { + "typescript": { + "command": "typescript-language-server", + "args": ["--stdio"], + "fileExtensions": { + ".ts": "typescript", + ".tsx": "typescript" + } + } + } +} +``` + +### Viewing LSP Server Status + +Check configured LSP servers using the `/lsp` command in an interactive session, or view your configuration files directly. + +For more information, see the [changelog](./changelog.md). + ## 📢 Feedback and Participation We're excited to have you join us early in the Copilot CLI journey. diff --git a/changelog.md b/changelog.md index 42dc91f4..30416c51 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,304 @@ +## 0.0.416 - 2026-02-24 + +- Expand `--help` content with descriptions, examples, and sorted flags +- Block third-party MCP servers when the Copilot MCP policy does not allow them +- Streaming response size counter updates continuously during tool calls and reasoning, and resets between requests +- Status line automatically switches to a two-line layout on narrow terminals, keeping CWD, branch, and model info readable at any terminal width +- Undo operations now always require confirmation + +## 0.0.415 - 2026-02-23 + +- Skill files saved with a UTF-8 BOM (common on Windows editors) now load correctly instead of failing with a frontmatter parse error +- Custom agents support the `model` field to specify which model to use, and unknown fields now warn instead of blocking agent load +- Plan approval menu shows model-curated actions with a recommended option highlighted first, including autopilot+fleet for parallelizable work +- Env loading indicator no longer hangs indefinitely on MCP startup error or session resume +- Add show_file tool for presenting code and diffs to the user +- Add env loading indicator showing skills, MCPs, plugins, ... being loaded +- MCP tool results with giant single lines are truncated correctly +- /plugin marketplace add and /plugin install support local paths containing spaces +- `/mcp show` groups servers into User, Workspace, Plugins, and Built-in sections and makes all servers navigable +- Agent now knows which model is powering it when asked +- Ctrl+A/E cycle through visual lines in wrapped input; Home/End navigate within a visual line; Ctrl+Home/End jump to text boundaries + +## 0.0.414 - 2026-02-21 + +- Explore agent can now use GitHub MCP tools when available +- Show permission elevation dialog when accepting a plan with autopilot to prevent auto-denied tool errors + +## 0.0.413 - 2026-02-20 + +- Fix issue where Copilot API URL wasn't respected +- Display heading content from reasoning for gpt models +- Increase LSP request timeout from 30s to 90s to reduce timeout failures +- Fixed alt-screen timeline entries not updating when tool calls complete (particularly sub-agent calls) +- ctrl+insert can now be used to copy selected text in the alt-screen view +- Fix read_bash, write_bash, and stop_bash in-progress icon showing filled dot instead of empty circle +- Enable alt-screen mode by default when running with `--experimental` flag +- Improve code search speed in large repos +- Session info renders in the main view footer in alt-screen mode +- Skill files with YAML array syntax for allowed-tools now load correctly +- Support remote plugin sources (GitHub repos and git URLs) in marketplace.json plugin entries +- Automatically migrate users from claude-sonnet-4.5 to the current default model on startup +- Ctrl+A, Ctrl+E, and Ctrl+U navigate to logical line boundaries (newlines) instead of visual wrap boundaries +- Add configurable status line support to display dynamic session information via custom shell scripts + +## 0.0.412 - 2026-02-19 + +- Improve quick help accessibility: screen reader-friendly tab labels, reordered layout, and grouped `help commands` output +- Hide custom agents with `user-invocable: false` from the `/agents` picker +- Config file syntax errors now show a warning instead of silently crashing +- Sign Windows native prebuilds with Authenticode to prevent antivirus quarantine of native modules +- Allow `/reset-allowed-tools` to run during agent execution +- MCP servers with invalid tool schemas no longer lose all tools +- Alt-screen mode no longer consumes increasing memory over long sessions +- Add `/mcp reload` command to reload MCP configuration +- Skills support `disable-model-invocation` frontmatter field +- /fleet orchestrator validates subagent work +- Deprecate gpt-5 model +- Windows slash flags (e.g., `xcopy /E /I`) are no longer treated as file paths +- Show a warning in the timeline when skills fail to load at startup, with a prompt to run /skills for details +- Eliminate banner character flash on startup when banner is disabled +- Edit plan in terminal editor with ctrl+y +- Terminal editor is now supported on Windows +- Configure LSP server request timeouts in lsp.json +- Add `/update` command to view changelog and update instructions +- Add exit_plan_mode tool with plan approval dialog for reviewing and accepting plans +- Support ~/.copilot/instructions/\*.instructions.md files for user-level instructions across all repositories +- Add double-click word and triple-click line selection in alt-screen text selection +- Edit the prompt in your preferred terminal editor with ctrl+x ctrl+e +- Prevents spurious error messages from appearing in terminal on Windows +- Typing `?` in an AskUser prompt no longer triggers the quick help overlay +- Improve SQL tool timeline entries +- Reduce memory usage in alt-screen mode during long sessions +- /fleet mode dispatches more subagents in parallel for faster execution +- Instructions picker opens as a full-screen alt-screen view when alt-screen mode is enabled +- Skills picker opens as a full-screen alt-screen view when alt-screen mode is enabled +- Command files no longer require YAML frontmatter — plain markdown files work with name and description derived automatically +- Session picker opens instantly without a loading flash when multiple sessions exist +- Mouse event coordinate fragments no longer appear in input field +- Add cross-session memory: ask about past work, files, and PRs across sessions (experimental) +- Add `--bash-env` flag to source BASH_ENV in shell sessions +- Restore `ctrl+x /` as alternate shortcut to run commands while preserving input +- /clear preserves agent mode (autopilot, plan, or interactive) +- MCP error messages include the server name +- Text selection in timeline no longer spills into prompt area when dragging + +## 0.0.411 - 2026-02-17 + +- Improve error messaging and guidance when access denied by policy +- Custom agents use `disable-model-invocation` instead of `infer` (backward compatible) +- Add support for Claude Sonnet 4.6 model +- Memory storage shows subject, fact, and citations in timeline +- Tab completion respects the highlighted slash command selection +- Support MCP servers from Windows On-Device Registry +- Text selection now works in footer area in alt-screen mode +- Support `--alt-screen on` and `--alt-screen off` syntax +- Add `include_coauthor` config option to disable Co-authored-by trailer in git commits +- SDK APIs for plan mode, autopilot, fleet, and workspace files +- Autopilot mode and /fleet command now available to all users +- Alt-screen viewport auto-scrolls when dragging selection to edge +- Interactive shell commands complete on all versions of Windows +- Reduce memory usage in alt-screen mode during long sessions +- Session picker no longer flashes when using --resume in alt-screen mode +- Terminal bell rings once when agent finishes, not on every tool completion +- Custom instruction files are recognized regardless of casing +- PowerShell commands with syntax errors no longer hang +- Improve text selection responsiveness in --alt-screen mode +- Cursor shows when suspending and hides when resuming + +## 0.0.410 - 2026-02-14 + +- Fixed high memory usage caused by rapid logging +- Shell mode pastes raw text instead of paste tokens +- Reduce memory usage from encoding streaming chunks +- Fix alt-screen and timeline URL rendering to preserve long links without truncation +- Reduced memory growth in long sessions by evicting transient events after compaction +- Fixed high memory usage when loading large sessions +- Fixed high memory usage during shell commands with rapid output +- Add `/init suppress` to control init suggestions per repository +- Show IDE file selection indicator in the status bar when connected to an IDE +- Add repo-level settings to disable individual validation tools +- ACP server supports loading existing sessions +- Page Up/Page Down keyboard scrolling in alt-screen mode +- Add Ctrl+Z suspend/resume support on Unix platforms +- Support tilde (~) expansion in MCP server cwd configuration +- Support ctrl+n and ctrl+p as arrow key alternatives +- Exit CLI with ctrl+d on empty prompt +- Fix unknown option '--no-warnings' error +- Shift+Enter inserts newlines in terminals with kitty keyboard protocol +- MCP server list selection adjusts correctly after deletion +- Shell mode removed from Shift+Tab cycle, accessed only via `!` +- Improve /tasks dialog with consistent icons and typography +- Exit from alt-screen no longer replays full session history +- MCP server errors and loading issues surface in timeline +- Reduce input jitter with frame coalescing and smoother alt-screen animations +- Extend skill name validation to support underscores, dots, and spaces; make name and description optional in skill frontmatter with sensible fallbacks +- Add Copilot co-authored by trailer to git commits created + +## 0.0.409 - 2026-02-12 + +- /diff uses full screen in alt-screen mode +- Quick help overlay: press `?` to see grouped shortcuts and commands, navigate with arrow keys +- Theme preview appears above theme list in screen reader mode +- Add `list_copilot_spaces` tool to default GitHub MCP config +- Subagents return complete responses +- CLI now integrates with VS Code, use /ide for more information. +- Permission prompts with long diffs are scrollable in alt-screen mode +- Include default plugin marketplaces (copilot-plugins, awesome-copilot) for easier plugin discovery + +## 0.0.408 - 2026-02-12 + +- Add `/streamer-mode` to hide preview model names and quota details for streaming +- Makes shellId more flexible to not error when a number is passed +- Background tasks hint updates when detached shells are killed or removed +- Add mouse text selection in --alt-screen mode +- ! commands with large output no longer crash the CLI +- Fix duplicate/ghost lines appearing when resizing the terminal in alt-screen mode +- MCP servers respect the `cwd` working directory property +- Add substring matching to slash command autocomplete +- Change run command shortcut from ctrl+p to ctrl+s + +## 0.0.407 - 2026-02-11 + +- Improve authentication error messages in prompt mode +- Quota exceeded error links to Copilot settings with actionable guidance +- Theme picker shows live preview of diffs and markdown, adds colorblind and tritanopia theme variants +- Add `/on-air` mode to hide model names and quota details for streaming +- Show agent type and description in read_agent timeline entries +- `/tasks` shows Recent Activity for background agents +- Add experimental alternate screen buffer mode: --alt-screen +- Interactive programs that query terminal state work in shell +- Subagents fall back to session model when default model blocked by policy +- Expose session context in session.list SDK response +- Keyboard shortcut hints display consistently with bold styling throughout the CLI +- Add `tools.list` RPC to query available built-in tools +- Streaming responses automatically retry when interrupted by server errors +- Add option to approve tool permissions permanently for a location +- Add `/instructions` command to view and toggle custom instruction files +- Ctrl-b and ctrl-f cursor movement now available on all platforms +- Ctrl+d now favors deleting character after cursor, with queueing moved to ctrl+q (or ctrl+enter) +- Editing MCP servers shows existing configuration values +- `--resume` creates new sessions with provided UUID +- Add workspace-local MCP configuration via `.vscode/mcp.json` +- Skill changes from `/skills` commands take effect immediately +- /session usage string only shows available subcommands +- Slash commands which take prompts now work when immediately followed by a new-line +- Remove unintended characters from status bar +- Autopilot mode works with custom agents that specify explicit tools +- Updated node-pty to fix file descriptor leaks +- Windows slash flags (e.g., `dir /B`) are no longer treated as file paths +- Diff mode no longer flickers when navigating files +- /mcp disable and /mcp enable show clear error when server name doesn't exist +- MCP servers using Microsoft OAuth configure automatically without manual client ID setup +- Tab cycles modes forward, Shift+Tab backward; shell is now a mode +- Ctrl+P runs slash commands while preserving input (replaces Ctrl+X → /) +- Terminal title works on all TTY terminals, not just select few +- Help text notes auto-update is disabled in CI environments by default +- Terminal tab shows session title when idle +- ask_user tool asks one question at a time for clearer interaction + +## 0.0.406 - 2026-02-07 + +- Add support for Claude Opus 4.6 Fast (Preview) +- Markdown formatting displays in non-interactive mode output +- Display warning when user has no Copilot subscription +- Commands from plugins are now translated into skills +- Add `/changelog` command to view release notes +- plugin marketplace add accepts URLs as sources +- `--no-experimental` flag disables experimental features +- CLI interface renders without extra blank line +- `/mcp show` displays enabled/disabled status for MCP tools +- MCP tool responses now include structured content (images, resources) for richer UI display in VS Code + +## 0.0.405 - 2026-02-05 + +- Plugin and marketplace names support uppercase letters +- `/experimental` shows help screen listing experimental features +- Fix SQL tool disconnects +- Plugins can bundle LSP server configurations + +## 0.0.404 - 2026-02-05 + +- Add support for claude-opus-4.6 model +- `/allow-all` and `/yolo` execute immediately +- MCP servers shut down concurrently for improved performance +- Cancel --resume session picker to start a new session +- MCP server configurations default to all tools when tools parameter not specified +- Add `/tasks` command to view and manage background tasks +- Enable background agents for all users +- Simplify and clarify `/delegate` command messaging +- GITHUB_TOKEN environment variable now accessible in agent shell sessions + +## 0.0.403 - 2026-02-04 + +- Windows Task Manager displays correct application name +- Introduce security check preventing use of modules outside of application bundle +- ACP model info includes usage multiplier and enablement status +- Fix logic checking user organization membership +- Stop MCP servers before updating plugins +- Detached shell processes work on vanilla macOS installations +- Escape key consistently aborts permission dialogs regardless of selection +- Plugin skills work in prompt mode +- Config files preserve custom fields when CLI updates them +- Reasoning summaries enabled by default for supporting models +- Support comma-separated tools in custom agent frontmatter +- Skills with unknown frontmatter fields now load with warnings instead of being silently skipped + +## 0.0.402 - 2026-02-03 + +- ACP server supports agent and plan session modes +- MCP configuration applies to ACP mode +- Agent creation wizard styling improvements +- Custom agents with unknown fields load with warnings instead of errors +- Custom agents receive environment context when run as subagents +- Plugins can provide hooks for session lifecycle events +- Plugin update command works for direct plugins and handles Windows file locks +- Stop MCP servers when uninstalling plugins + +## 0.0.401 - 2026-02-03 + +- Support `.agents/skills` directory for auto-loading skills +- Improve handling of chat history when switching between model families +- MCP tools returning structuredContent now display correctly in CLI +- Support Claude-style .mcp.json format without mcpServers wrapper +- Inserting new line with shift+enter keybinding in VS Code integrated terminal +- Large multi-line pastes work correctly +- ACP terminal-auth passes correct arguments to login +- Arrow and special keys work reliably when held down +- Slash command ghost text appends correctly +- Add `copilot login` subcommand and support ACP terminal-auth +- Add agentStop and subagentStop hooks to control agent completion +- CLI handles unknown keypresses gracefully +- /diff displays accurate line numbers with dual column layout + +## 0.0.400 - 2026-01-30 + +- Add MCP server instructions support +- Timeline displays user responses to `ask_user` tool prompts with username +- Ordered lists display with numbers instead of dashes +- Add theme picker with `/theme` command and GitHub Dark/Light themes +- Fix support for pasting large content on Windows Terminal +- Better handle large results from grep and glob tools to avoid memory issues +- CLI now sends DELETE requests to remove MCP servers when shutting down +- Fix not being able to arrow key out of text inputs in select lists +- ACP server supports changing models during a session +- ACP server support permission flags: --yolo, --allow-all, etc. and permissions config +- Show progress indicator in terminal tab when thinking +- Remove bundled LSP servers (TypeScript, Python) +- Improve compatibility with remote MCP servers that use OAuth +- Markdown table headers display in bold +- Add autopilot mode for autonomous task completion (experimental) +- Add fuzzy search to model picker +- Freeform text input in list pickers works correctly +- Add `copilot plugin` subcommand for non-interactive plugin management +- CLI is more responsive in sessions with many messages +- Shell path detection more accurately handles spaces, quotes, and Windows switches +- Diff mode file list uses carousel navigation, showing up to 5 files at a time +- Holding backspace continues deleting text +- Better support for UNIX keyboard bindings (Ctrl+A/E/W/U/K, Alt+arrows) and multiline content in various text inputs +- Add `launch_messages` config for startup announcements +- The Code Review tool handles large changesets by ignoring build artifacts and limiting to 100 files + ## 0.0.399 - 2026-01-29 - Compaction messages show clearer command hints to view checkpoint summaries