Share via


Visual Studio Insiders release notes

We're excited to announce the availability of the Visual Studio 2026 April update. This release marks the beginning of a new era for Visual Studio with deep platform integration of AI, stronger fundamentals, and improved performance.

Download Visual Studio 2026 Insiders to enjoy these new features and improvements.

Features

Released on April 14, 2026.

IDE

System dark/light themes 📣

Automatically switch Visual Studio themes when your system moves between Light and Dark mode, keeping your IDE in sync with your environment.

You might prefer a lighter, higher-contrast theme during the day and a darker theme at night. Visual Studio now automatically switches between your selected Light and Dark themes when your system setting changes, keeping your IDE in sync with your environment.

How to use it

  1. Open Tools → Options → Environment → Visual Experience
  2. Set Color theme to Use system setting
  3. Select a System Light theme and a System Dark theme

Visual Studio applies the corresponding theme automatically when your Windows theme changes.

Visual Studio automatically switching between light and dark themes as the system theme changes

📣 See feature ticket to share your feedback and continue the conversation.

GitHub Copilot

View and manage Agent Skills

Browse, edit, and locate all your Copilot Agent Skills from the chat window.

You can now view all your Agent Skills in one place. By clicking the tools icon on the bottom right corner of your chat window, you can open a dedicated skills panel that lists every skill discovered from your workspace and user profile, making it easy to see what's available at a glance.

From the panel, you can manage skills directly without leaving Visual Studio:

  • Edit a skill - click the three-dot menu (⋯) on any skill to open and edit it directly in VS.
  • Open file location - use the same menu to jump straight to the skill file on disk.
  • Search a skill - use the search bar at the top to quickly find a specific skill by name or keyword.

Skills panel in the chat window showing available skills with management options

This builds on the Agent Skills support introduced earlier, giving you a more user-friendly way to browse and maintain your skills. Try it out and share your feedback!

Multi-file summary diff for Copilot changes

Review all Copilot changes across multiple files in a single summary view with granular accept and undo controls.

When Copilot edits multiple files, you don't need to review each one separately anymore. The new multi-file summary diff view shows all changes in one place.

Click the Open Changes Summary button in the Copilot Chat working set after Copilot finishes editing. You'll see a single tab with all changed files and their diffs together.

Screenshot showing the Open Changes Summary button in the Copilot Chat working set

You can accept or undo changes at different levels:

  • Across all files at once
  • On a per-file basis
  • Per individual diff chunk

You can also open any file separately to see its full context.

Screenshot of the multi-file summary diff view displaying multiple files with inline diffs and accept/undo controls

Use the controls in the top-left corner to:

  • Collapse all file contents to see only file headers for a quick overview
  • Navigate between diff chunks using the next and previous buttons to jump through changes quickly

This view makes it easier to understand what Copilot changed across your codebase and gives you precise control over which edits to keep.

Context window indicator

See how much context Copilot is using and optimize it with one-click summarization.

When you chat with Copilot, it tracks your conversation history, attached files, and other context to give you relevant responses. This is called the context window, and it has a limit. Once it fills up, Copilot may lose track of earlier parts of your conversation.

You can now see exactly how much of that context window you've used with the new context window indicator.

Look for the ring icon in the upper right corner of the Copilot Chat prompt box. This mini donut chart fills up as your conversation grows, showing you at a glance how much context you've consumed.

Click the indicator to see:

  • Exact percentage of context used
  • Detailed breakdown of what's contributing to the context
  • Summarize conversation button to compact your conversation and free up space

Context window indicator with percentage ring showing 45% usage and a breakdown listing conversation messages, workspace files, and other sources

When your context is running low, click Summarize to compress earlier parts of your conversation. This lets you keep chatting without losing important context or starting a new conversation.

Context window indicator after summarization, showing reduced usage and a notification that the conversation was summarized

Plan before you build with Planning mode

Create and iterate on implementation plans before making any code changes.

Sometimes you want to think through an approach before diving into code. The new Planning chat mode lets you collaborate with Copilot on an implementation plan - without making any changes to your codebase.

How it works

Plan mode selected

When you select Planning mode, Copilot follows a two-step process:

  1. Explore and clarify - Copilot uses read-only tools to understand your codebase and asks clarifying questions. For straightforward tasks, it drafts a plan immediately.
  2. Draft and refine - Copilot creates a detailed implementation plan that you can review, discuss, and refine together.

Planning mode creating an implementation plan

When you're ready, click Implement plan to hand it off to Agent mode for execution.

Agent mode implementation of plan in progress

Plans are saved as markdown

Copilot saves every plan as a markdown file in your repo at .copilot/plans/plan-{title}.md. This file is the single source of truth. You can edit it directly in your editor or refine it through chat. Copilot detects your changes and keeps the plan in sync.

When to use Planning mode
  • Big features - Break down complex work into clear steps before writing code.
  • Unfamiliar codebases - Let Copilot explore and explain before proposing changes.
  • Team collaboration - Share plans as markdown files for review before implementation

Git tooling

Multi-file summary diff 📣

View file changes in a unified diff for fast comprehension.

Multi-file summary diff displays all changed lines from several files in one unified view, so you can quickly grasp the scope of a commit or pull request without jumping between files.

Unified view showing changed lines from multiple files in a single panel

You'll see the Open changes summary button in several places:

  • Git Changes
  • Commit details in Git → View Branch History
  • Pull requests in View → Git Repository window

The pull requests list is currently only available in Visual Studio Insiders with the preview feature View pull requests for a Git repository.

Open changes summary button highlighted in the Git Changes toolbar

📣 See feature ticket to share your feedback and continue the conversation.

Add commit to Copilot Chat

Attach commit context to Copilot Chat directly from the IDE.

Reviewing a commit and want Copilot's help understanding it, spotting issues, or basing new edits off of it? Instead of hunting down the commit ID and pasting it into Chat, you can now right-click a commit and add it directly as context in Copilot Chat.

You can find this command in the following surfaces:

  • Git History (Git > View Branch History)
  • File History (Right-click a file in Solution Explorer, then Git > View History)
  • Annotate (Blame) (Right-click in the editor, then Git > Annotate (Blame))

You can also multi-select commits to attach several to chat at once.

Add commit to Copilot Chat

Copilot receives the commit as context, so you can ask things like explain this change, does this introduce any issues, or write a similar change for this other file.

Copilot Chat with commit context

Commit message instructions moved

Commit message custom instructions now use the Copilot instructions file instead of the Visual Studio setting.

If you've been using the Commit message custom instructions text input under the GitHub → Copilot → Source Control Integration setting to tailor Copilot-generated commit messages, that setting will no longer apply. Going forward, commit message instructions are managed through the Copilot custom instructions file.

This brings commit message instructions in line with how other Copilot custom instructions work across your repository, keeping everything in one place.

Set up custom instructions

Add your commit message instructions to your repository's Copilot instructions file. For full setup details, see Add repository instructions.

Copilot instructions file with commit message rules

Review code with the Git agent in Copilot Chat

Start a code review from Copilot Chat and see results in the Visual Studio review experience.

You can now review your code through the Git agent in Copilot Chat. Switch to the Git agent and ask it to review your changes.

Copilot Chat showing the Git agent with review changes option highlighted

The agent analyzes your uncommitted changes using GitHub Copilot Code Review and displays inline comments in the editor and the Git Changes view. You can then continue the conversation in chat to discuss findings, ask for explanations, or work through suggested edits.

Editor showing an inline code review comment from the Git agent

To learn more about the code review experience, see Review local changes with Copilot Chat.

C++

MSVC Build Tools v14.51

Improved C++23 support, performance, and many bug fixes.

Microsoft C++ (MSVC) Build Tools version 14.51 is now available and is installed by default with the C++ desktop and gaming workloads. To check if it's installed simply make sure one or both of these components are checked in the installer:

  1. MSVC Build Tools for x64/x86 (Latest)
  2. MSVC Build Tools for ARM64/ARM64EC (Latest)

You can also select one of the components labelled with the v14.51 version number to pin your installation to this version. Screenshot showing Visual Studio installer components for MSVC v14.51

The version number printed by cl.exe and link.exe will be at least 14.51.36231.

The stable release of v14.51 will receive 9 months of servicing fixes, as described in New release cadence and support lifecycle for Microsoft C++ Build Tools.

See below for a complete list of what's new.

C++ Standards Conformance

The frontend team continued implementing C++23 and C++20 features and fixing conformance issues:

  • C++23 Implementations: Please see the C++23 Support in MSVC Build Tools 14.51 blog post for details.
  • Consteval Improvements: Multiple fixes to consteval function handling, constexpr new/delete in modules, initializer list backing arrays, /experimental:constevalVfuncVtable behavior now enabled by default, and better error diagnostics for failed constant expressions.
  • Coroutine Improvements: Coroutine-related globals refactoring, and deprecation of experimental coroutine headers.
  • Parser Modernization: Recursive descent parser now handles [[attributes]], with continued improvements to error recovery and removal of legacy token accessors.
  • C Language Improvements: Added _Atomic qualifier support, removed incorrect diagnostics for C99 flexible array members, and added __typeof__ support for function types.

Code Generation

The backend optimizer received significant investment across many areas:

  • Sample-based profile guided optimizations: Support for sample-based profile guided optimizations with supporting tools. More details to follow in a future blog post.
  • Static Single-Assignment (SSA) optimization improvements: Implemented dozens of new algebraic simplification patterns, including ternary operator patterns, arithmetic patterns, and min/max.
  • Common Subexpression Elimination (CSE): Improve CSE of loads of [x + C] through if/else joins, redundant stores, and has improved multibyte aliasing checks.
  • Scalar Replacement of Aggregates (SROA): More aggressive unpacking of structures.
  • Loop Optimizations: Linear Function Test Replace (LFTR) signedness fixes and counted loop optimizations when the primary induction is used after the loop.
  • Inlining: Extended limited call-site inlining, and improved propagation of parameter type information when inlining.
  • Copy Propagation: Multiple improvements to copy propagation for integer constants and sequential copies.
  • Strength Reduction: Implemented reduction of conversions as a strength-reduction optimization.
  • Predicate and Jump Threading: Improvements to predicate-based optimizations for eliminating bound checks, including better use of predicates from min patterns.
  • Stack Layout: The compiler now prefers pushing callee-saved registers onto the stack over using shadow slots, reducing function prologue/epilogue overhead.
  • PGO: Improved per-function size/speed trade-offs to mitigate unrepresentative profiles and PGO trimming improvements.
  • Restrict Pointers: Added support for restrict pointer semantics to enable additional aliasing optimizations.
  • Pattern matching optimizations: New patterns for MSUB/MADD generation, ADC/SBB for conditional add/subtraction, and CMOVE/NE variants.
  • Intel APX: Preview support of Intel APX (Advanced Performance Extensions) in the MSVC toolchain. More details to follow.

ARM64 & SVE

  • SVE (Scalable Vector Extension) Support: Major new feature bringing ARM SVE to MSVC, including frontend type support for SVE scalar and aggregated types, intrinsic lowering, callee-saved register unwinding, variadic function parameter passing, header file installation, and tryblock/funclet support. Multiple ICE and miscompilation fixes were addressed.
  • Shrink Wrapping: Fixed multiple issues including epilog-only fragment unwind info, codegen bugs with chkstk killing X15, and multi-entry shrink wrap regions.
  • Code Quality: New patterns for CSEL pow2, 0 + ORR → CSET + ORR_SHIFT, optimized NEON_DUPR, removed redundant NEON_INSR after NEON_DUPR, ARM NEON patterns for x264, instruction fusion improvements, register retyping after globregs, and function alignment tuning.
  • DIA SDK: Full SVE support in the debug interface, including RtlpGetSveContextPointers and IDiaStackWalkHelper3.

SIMD & Vectorization

  • SLP Vectorizer: Improvements to Superword Level Parallelism (SLP) vectorization:
    • Scalar reduction vectorization
    • Generic and oversized vector instruction support
    • Permute optimizations and oversized select support
  • Vectorizer Improvements: Hoisting of vectorized inner loop pointer overlap checks to parent loops, character-count loop support, non-contiguous memory access support for 2-byte data types, and improved low trip count heuristics on ARM64.
  • AVX/SSE: AVX512 memcpy/memset, AVX2 memcmp override, AVX10.2, and vectorized bitmasking patterns for x264.

Linker & PDB

  • DIA: COM initialization thread safety, and SVE support.
  • PDB Fuzzing: Triggered PDB fuzzing from nightly builds.
  • SPGO: Sample-based profile guided optimizations available for use.

Standard Library (STL)

On GitHub, the microsoft/STL repo tracks its status with a high level of detail; see the Changelog for MSVC Build Tools 14.51. Notable library features that are newly available:

  • P0429R9 - <flat_map>
  • P1222R4 - <flat_set>
  • P2255R2 - Type Traits To Detect References Binding To Temporaries
  • P2590R2 - Explicit Lifetime Management
  • P2674R1 - is_implicit_lifetime

Other notable changes:

  • We've massively overhauled <regex> to fix long-standing correctness and performance problems that have been present since its initial implementation in VS 2008 SP1. After almost two decades, the stack overflows are finally fixed!
  • We've continued to add and improve SIMD-vectorized STL algorithms, using SSE4.2 and AVX2 for x64/x86, and (newly shipping in MSVC Build Tools 14.51) using NEON for ARM64/ARM64EC.
  • We've implemented 18 LWG issue resolutions.
  • We've removed long-deprecated non-Standard features, such as TR1, <hash_map>, <hash_set>, <experimental/filesystem>, stdext::checked_array_iterator, and stdext::unchecked_array_iterator.

All of this has been possible thanks to our amazing GitHub contributors.

AddressSanitizer (ASan)

  • ARM64 Support: Improved ASan for ARM64 support with comprehensive library packaging, interception fixes, and false-positive resolutions.
  • SanitizerCoverage: Fixed blocklist handling, codegen issues, and forward declarations to ensure sancov initializers are invoked.
  • Performance: Cached walked heaps for performance improvements during shadow memory operations.

Modules & IFC

  • IFC Version Update: The MSVC frontend generates IFC files according to the 0.44 version of the IFC specification.
  • Concurrency Fix: Fixed a use-after-free race in concurrent IFC debug record resolution.

Static Analysis

  • EspX Consolidation: Merged EspX and its extensions like CppCoreCheck into a single DLL, simplifying deployment.
  • Bug Fixes: Fixed false positives from inexact location dereference, and a number of internal compiler errors (ICE) under /analyze.

ARM64EC & ARM64X

  • Coroutine Support: Fixed missing entry thunks for coroutine outlinees and ramp functions.
  • ICF: Improved identical COMDAT folding (ICF) optimization in ARM64X binaries.
  • Volatile XMM: Fixed ARM64EC volatile XMM assignment.

Diagnostics

  • Fixed C4319 not being emitted when compiling C code.
  • Removed incorrect diagnostics for C99 flexible array members.
  • Warning C4789 improved to reduce false positives.

Debug Info

  • Enabled debug info pruning to reduce PDB sizes.

Tickets Fixed

The following customer-reported issues were fixed in this release:

Top bug fixes

Top bug fixes From the community
MCP Registry Not Using Correct URL Feedback ticket
GitHub Copilot running Powershell commands in Copilot terminal ends in pending state Feedback ticket

From our entire team, thank you for choosing Visual Studio! For the latest updates, resources, and news, check out the Visual Studio Hub and stay in touch.

Happy coding!
The Visual Studio team


Note

This update may include new Microsoft or third-party software that is licensed separately, as set out in the 3rd Party Notices or in its accompanying license.