<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Productivity | The .NET Blog</title><link>https://thedotnetblog.com/tags/productivity/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>en</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Fri, 15 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/tags/productivity/index.xml" rel="self" type="application/rss+xml"/><item><title>VS Code 1.119: OpenTelemetry for Agent Sessions, Browser Integration, and Security</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/visual-studio-code-1-119-highlights/</link><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/visual-studio-code-1-119-highlights/</guid><description>VS Code 1.119 (May 2026) adds OpenTelemetry tracing for agent sessions, browser tab sharing for agents, trust &amp; security improvements, and a 1.119.1 security patch.</description><content:encoded>&lt;p&gt;&lt;a href="https://code.visualstudio.com/updates/v1_119"&gt;VS Code 1.119&lt;/a&gt; shipped May 6, 2026 (with a 1.119.1 security patch shortly after). The release focuses on agent observability, browser interaction, and reducing interruptions.&lt;/p&gt;
&lt;h2 id="opentelemetry-tracing-for-agent-sessions"&gt;OpenTelemetry tracing for agent sessions&lt;/h2&gt;
&lt;p&gt;This is the standout feature for anyone running agents in production or debugging agentic workflows. Enable it with two settings:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;github.copilot.chat.otel.enabled&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;github.copilot.chat.otel.otlpEndpoint&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;http://localhost:4318&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Traces follow GenAI semantic conventions. Each agent request produces an &lt;code&gt;invoke_agent&lt;/code&gt; root span with nested child spans: &lt;code&gt;chat&lt;/code&gt;, &lt;code&gt;execute_tool&lt;/code&gt;, and &lt;code&gt;execute_hook&lt;/code&gt;. Token usage is reported per request — including cache read and cache creation counts.&lt;/p&gt;
&lt;p&gt;Works with the local agent, Copilot CLI background agent, and the Claude agent. Any OTLP-compatible backend accepts the traces — the &lt;a href="https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/dashboard/standalone"&gt;Aspire Dashboard standalone&lt;/a&gt; works well for local development.&lt;/p&gt;
&lt;h2 id="agents-can-now-access-browser-tabs"&gt;Agents can now access browser tabs&lt;/h2&gt;
&lt;p&gt;Agents can request access to your integrated browser tabs — but it&amp;rsquo;s not automatic. You have to explicitly share a tab via the context picker, drag-and-drop, or suggested context. There&amp;rsquo;s a sharing button in the browser to revoke access. When an agent tries to open a new tab on the same domain as an already-open (unshared) tab, VS Code prompts you to reuse the existing tab instead.&lt;/p&gt;
&lt;h2 id="optimized-token-usage"&gt;Optimized token usage&lt;/h2&gt;
&lt;p&gt;An experimental lightweight model now handles agent todo-list management, keeping that housekeeping off the more expensive primary model. Reduces token burn on tasks that don&amp;rsquo;t need full reasoning capacity.&lt;/p&gt;
&lt;h2 id="trust--security"&gt;Trust &amp;amp; security&lt;/h2&gt;
&lt;p&gt;Fewer interruptions: VS Code 1.119 reduces prompts for network access requests and temp folder writes by agents. The 1.119.1 patch addresses specific security issues — worth updating if you haven&amp;rsquo;t.&lt;/p&gt;
&lt;h2 id="markdown-preview-quick-swap"&gt;Markdown preview quick-swap&lt;/h2&gt;
&lt;p&gt;Small but useful: you can now quickly swap the current editor to Markdown preview without navigating away.&lt;/p&gt;
&lt;h2 id="vs-code-agents-insiders-preview"&gt;VS Code Agents (Insiders preview)&lt;/h2&gt;
&lt;p&gt;The redesigned agent session UI — new repo picker (local/repos/remote), sub-session improvements, web + mobile polish, progress animations — is available in Insiders at &lt;a href="https://insiders.vscode.dev/agents"&gt;insiders.vscode.dev/agents&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Full changelog: &lt;a href="https://code.visualstudio.com/updates/v1_119"&gt;code.visualstudio.com/updates/v1_119&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Visual Studio 2026 April Update: Cloud Agent, Custom Agents, and Debugger Agent</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/visual-studio-april-update-cloud-agent-integration/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/visual-studio-april-update-cloud-agent-integration/</guid><description>Visual Studio 2026 (18.5) April update brings cloud agent integration, user-level custom agents, C++ code tools GA, and a Debugger Agent that validates fixes against live runtime behavior.</description><content:encoded>&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-april-update-cloud-agent-integration/"&gt;Visual Studio 2026 (18.5) April update&lt;/a&gt; ships cloud agent integration, user-level custom agents, C++ tools going GA, and a new Debugger Agent.&lt;/p&gt;
&lt;h2 id="cloud-agent-offload-work-to-a-remote-copilot-session"&gt;Cloud agent: offload work to a remote Copilot session&lt;/h2&gt;
&lt;p&gt;From the Chat window&amp;rsquo;s agent picker, selecting &lt;strong&gt;Cloud&lt;/strong&gt; lets you hand off a task to a remote Copilot coding agent. You describe the work, the agent creates a GitHub issue in your repo, then opens a PR when done. You get a notification with &amp;ldquo;View PR&amp;rdquo; / &amp;ldquo;Open in browser&amp;rdquo; — the whole thing runs while you keep coding, or even with the IDE closed.&lt;/p&gt;
&lt;h2 id="custom-agents-now-travel-with-you"&gt;Custom agents now travel with you&lt;/h2&gt;
&lt;p&gt;User-level custom agents stored in &lt;code&gt;%USERPROFILE%/.github/agents/&lt;/code&gt; are no longer repo-scoped — they follow you across projects. The storage path is configurable under Tools &amp;gt; Options &amp;gt; GitHub &amp;gt; Copilot &amp;gt; Chat. The &lt;code&gt;+&lt;/code&gt; button in the agent picker lets you create new agents directly. They get the same capabilities as repo-scoped agents: workspace awareness, tools, model selection, and MCP connections.&lt;/p&gt;
&lt;p&gt;Built-in agents: Agent, Ask, Copilot CLI, Debugger, Modernize, Profiler.&lt;/p&gt;
&lt;h2 id="c-code-editing-tools-go-ga"&gt;C++ Code Editing Tools go GA&lt;/h2&gt;
&lt;p&gt;Two tools — &lt;code&gt;get_symbol_call_hierarchy&lt;/code&gt; and &lt;code&gt;get_symbol_class_hierarchy&lt;/code&gt; — are now on by default. They give Copilot language-aware navigation of C++ codebases, covering inheritance hierarchies and function call chains. Enable via the Tools icon in Copilot Chat. Works best with tool-calling models.&lt;/p&gt;
&lt;h2 id="debugger-agent-fixes-validated-against-real-runtime-behavior"&gt;Debugger Agent: fixes validated against real runtime behavior&lt;/h2&gt;
&lt;p&gt;Start from a GitHub or Azure DevOps issue (or just a natural language description), switch to Debugger mode, and the agent:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Creates a minimal reproducer&lt;/li&gt;
&lt;li&gt;Generates failure hypotheses&lt;/li&gt;
&lt;li&gt;Instruments the app with tracepoints and conditional breakpoints&lt;/li&gt;
&lt;li&gt;Runs an actual debug session&lt;/li&gt;
&lt;li&gt;Analyzes live telemetry&lt;/li&gt;
&lt;li&gt;Suggests a precise fix&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You stay in the loop throughout — it&amp;rsquo;s interactive, not fully autonomous.&lt;/p&gt;
&lt;h2 id="intellisense-priority-fix"&gt;IntelliSense priority fix&lt;/h2&gt;
&lt;p&gt;VS now suppresses Copilot completions while the IntelliSense list is active. One suggestion at a time. This was a frequent friction point and it&amp;rsquo;s now on by default.&lt;/p&gt;
&lt;p&gt;Full release notes and download at &lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-april-update-cloud-agent-integration/"&gt;devblogs.microsoft.com&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>That Visual Studio Floating Windows Setting You Didn't Know About (But Should)</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/</guid><description>A hidden Visual Studio setting gives you full control over floating windows — independent taskbar entries, proper multi-monitor behavior, and perfect FancyZones integration. One dropdown changes everything.</description><content:encoded>&lt;p&gt;If you use multiple monitors with Visual Studio (and honestly, who doesn&amp;rsquo;t these days), you&amp;rsquo;ve probably experienced the annoyance: floating tool windows disappear when you minimize the main IDE, they always stay on top of everything else, and they don&amp;rsquo;t show up as separate taskbar buttons. It works for some workflows, but for multi-monitor setups it&amp;rsquo;s frustrating.&lt;/p&gt;
&lt;p&gt;Mads Kristensen from the Visual Studio team &lt;a href="https://devblogs.microsoft.com/visualstudio/take-full-control-of-your-floating-windows-in-visual-studio/"&gt;shared a little-known setting&lt;/a&gt; that completely changes how floating windows behave. One dropdown. That&amp;rsquo;s it.&lt;/p&gt;
&lt;h2 id="the-setting"&gt;The setting&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Tools &amp;gt; Options &amp;gt; Environment &amp;gt; Windows &amp;gt; Floating Windows&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The dropdown &amp;ldquo;These floating windows are owned by the main window&amp;rdquo; has three options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;None&lt;/strong&gt; — full independence. Every floating window gets its own taskbar entry and behaves like a normal Windows window.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tool Windows&lt;/strong&gt; (default) — documents float freely, tool windows stay tied to the IDE.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Documents and Tool Windows&lt;/strong&gt; — classic Visual Studio behavior, everything tied to the main window.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="why-none-is-the-move-for-multi-monitor-setups"&gt;Why &amp;ldquo;None&amp;rdquo; is the move for multi-monitor setups&lt;/h2&gt;
&lt;p&gt;Set it to &lt;strong&gt;None&lt;/strong&gt; and suddenly all your floating tool windows and documents behave like real Windows applications. They appear in the taskbar, stay visible when you minimize the main Visual Studio window, and stop forcing themselves to the front of everything.&lt;/p&gt;
&lt;p&gt;Combine this with &lt;strong&gt;PowerToys FancyZones&lt;/strong&gt; and it&amp;rsquo;s a game changer. Create custom layouts across your monitors, snap your Solution Explorer to one zone, debugger to another, and code files wherever you want. Everything stays put, everything is independently accessible, and your workspace feels organized instead of chaotic.&lt;/p&gt;
&lt;h2 id="quick-recommendations"&gt;Quick recommendations&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multi-monitor power users&lt;/strong&gt;: Set to &lt;strong&gt;None&lt;/strong&gt;, pair with FancyZones&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Occasional floaters&lt;/strong&gt;: &lt;strong&gt;Tool Windows&lt;/strong&gt; (default) is a solid middle ground&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Traditional workflow&lt;/strong&gt;: &lt;strong&gt;Documents and Tool Windows&lt;/strong&gt; keeps everything classic&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pro tip: &lt;strong&gt;Ctrl + double-click&lt;/strong&gt; on any tool window title bar to instantly float or dock it. No restart needed after changing the setting.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s one of those &amp;ldquo;I can&amp;rsquo;t believe I didn&amp;rsquo;t know about this&amp;rdquo; settings. If floating windows in Visual Studio have ever annoyed you, go change this right now.&lt;/p&gt;
&lt;p&gt;Read the &lt;a href="https://devblogs.microsoft.com/visualstudio/take-full-control-of-your-floating-windows-in-visual-studio/"&gt;full post&lt;/a&gt; for the details and screenshots.&lt;/p&gt;</content:encoded></item><item><title>Azure DevOps Finally Fixes the Markdown Editor UX Everyone Complained About</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/</guid><description>The Azure DevOps Markdown editor for work items gets a clearer preview-vs-edit mode distinction. It's a small change that fixes a genuinely annoying workflow issue.</description><content:encoded>&lt;p&gt;If you use Azure Boards, you&amp;rsquo;ve probably experienced this: you&amp;rsquo;re reading through a work item description, maybe reviewing acceptance criteria, and you accidentally double-click. Boom — you&amp;rsquo;re in edit mode. You didn&amp;rsquo;t want to edit anything. You were just reading.&lt;/p&gt;
&lt;p&gt;Dan Hellem &lt;a href="https://devblogs.microsoft.com/devops/improving-the-markdown-editor-for-work-items/"&gt;announced the fix&lt;/a&gt;, and it&amp;rsquo;s one of those changes that sounds tiny but actually removes real friction from your daily workflow.&lt;/p&gt;
&lt;h2 id="what-changed"&gt;What changed&lt;/h2&gt;
&lt;p&gt;The Markdown editor for work item text fields now opens in &lt;strong&gt;preview mode by default&lt;/strong&gt;. You can read and interact with the content — follow links, review formatting — without worrying about accidentally entering edit mode.&lt;/p&gt;
&lt;p&gt;When you actually want to edit, you click the edit icon at the top of the field. When you&amp;rsquo;re done, you exit back to preview mode explicitly. Simple, intentional, predictable.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s it. That&amp;rsquo;s the change.&lt;/p&gt;
&lt;h2 id="why-this-matters-more-than-it-sounds"&gt;Why this matters more than it sounds&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://developercommunity.visualstudio.com/t/Markdown-editor-for-work-item-multi-line/10935496"&gt;community feedback thread&lt;/a&gt; on this was long. The double-click-to-edit behavior was introduced with the Markdown editor back in July 2025, and the complaints started almost immediately. The problem wasn&amp;rsquo;t just accidental edits — it was that the whole interaction felt unpredictable. You never knew if clicking would read or edit.&lt;/p&gt;
&lt;p&gt;For teams that do sprint planning, backlog grooming, or code review with Azure Boards, this kind of micro-friction compounds. Every accidental edit mode entry is a context switch. Every &amp;ldquo;wait, did I change something?&amp;rdquo; moment is wasted attention.&lt;/p&gt;
&lt;p&gt;The new default respects the most common interaction pattern: you read work items far more often than you edit them.&lt;/p&gt;
&lt;h2 id="rollout-status"&gt;Rollout status&lt;/h2&gt;
&lt;p&gt;This is already rolling out to a subset of customers and expanding to everyone over the next two to three weeks. If you&amp;rsquo;re not seeing it yet, you will soon.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;Not every improvement needs to be a headline feature. Sometimes the best update is just removing something annoying. This is one of those — a small UX fix that makes Azure Boards feel less hostile to people who just want to read their work items in peace.&lt;/p&gt;</content:encoded></item><item><title>Bookmark Studio Brings Slot-Based Navigation and Sharing to Visual Studio Bookmarks</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/</guid><description>Mads Kristensen's new Bookmark Studio extension adds keyboard-driven slot navigation, a bookmark manager, colors, labels, and export/share capabilities to Visual Studio bookmarks.</description><content:encoded>&lt;p&gt;Bookmarks in Visual Studio have always been&amp;hellip; fine. You set one, you navigate to the next, you forget which bookmark is which. They work, but they&amp;rsquo;ve never been the kind of feature you&amp;rsquo;d call powerful.&lt;/p&gt;
&lt;p&gt;Mads Kristensen just &lt;a href="https://devblogs.microsoft.com/visualstudio/bookmark-studio-evolving-bookmarks-in-visual-studio/"&gt;released Bookmark Studio&lt;/a&gt;, an experimental extension that fills in exactly the gaps you&amp;rsquo;ve probably run into if you use bookmarks regularly.&lt;/p&gt;
&lt;h2 id="slot-based-navigation"&gt;Slot-based navigation&lt;/h2&gt;
&lt;p&gt;The core addition: bookmarks can now be assigned to slots 1–9 and jumped to directly with &lt;code&gt;Alt+Shift+1&lt;/code&gt; through &lt;code&gt;Alt+Shift+9&lt;/code&gt;. New bookmarks automatically get the next available slot, so in most cases, fast navigation works without any setup.&lt;/p&gt;
&lt;p&gt;This sounds simple, but it changes bookmarks from &amp;ldquo;I have some bookmarks somewhere&amp;rdquo; to &amp;ldquo;Slot 3 is my API controller, Slot 5 is the service layer, Slot 7 is the test.&amp;rdquo; That kind of spatial memory makes navigation nearly instant during focused work sessions.&lt;/p&gt;
&lt;h2 id="the-bookmark-manager"&gt;The Bookmark Manager&lt;/h2&gt;
&lt;p&gt;A new tool window shows all your bookmarks in one place with filtering by name, file, location, color, or slot. Double-click or keyboard-navigate to jump to any bookmark.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve ever had more than five or six bookmarks and lost track of which was which, this alone is worth installing the extension.&lt;/p&gt;
&lt;h2 id="organization-with-labels-colors-and-folders"&gt;Organization with labels, colors, and folders&lt;/h2&gt;
&lt;p&gt;Bookmarks can optionally have labels, colors, and be grouped into folders. None of it is required — your current bookmark workflow keeps working. But when you&amp;rsquo;re debugging a complex issue or exploring an unfamiliar codebase, being able to color-code and label your bookmarks adds useful context.&lt;/p&gt;
&lt;p&gt;All metadata is stored per solution, so your bookmark organization persists across sessions.&lt;/p&gt;
&lt;h2 id="export-and-share"&gt;Export and share&lt;/h2&gt;
&lt;p&gt;This is the feature I didn&amp;rsquo;t know I wanted. Bookmark Studio lets you export bookmarks as plain text, Markdown, or CSV. That means you can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Include bookmark paths in pull request descriptions&lt;/li&gt;
&lt;li&gt;Share investigation breadcrumbs with teammates&lt;/li&gt;
&lt;li&gt;Move bookmark sets between repos or branches&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bookmarks stop being a solo navigation tool and start being a way to communicate &amp;ldquo;here&amp;rsquo;s the path through this code.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="bookmarks-that-track-code-movement"&gt;Bookmarks that track code movement&lt;/h2&gt;
&lt;p&gt;Bookmark Studio tracks bookmarks relative to the text they&amp;rsquo;re anchored to, so they don&amp;rsquo;t drift to wrong lines as you edit. If you&amp;rsquo;ve ever set bookmarks during a debugging session and had them all point to the wrong lines after a refactor — this fixes that.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;Bookmark Studio doesn&amp;rsquo;t reinvent anything. It takes a feature that&amp;rsquo;s been &amp;ldquo;good enough&amp;rdquo; for years and makes it genuinely useful for focused development. Slot navigation, the Bookmark Manager, and export capabilities are the highlights.&lt;/p&gt;
&lt;p&gt;Grab it from the &lt;a href="https://marketplace.visualstudio.com/items?itemName=MadsKristensen.BookmarkStudio"&gt;Visual Studio Marketplace&lt;/a&gt; and give it a try.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.112: What .NET Developers Should Actually Care About</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/vscode-1-112-dotnet-developers/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/vscode-1-112-dotnet-developers/</guid><description>VS Code 1.112 just dropped and it's packed with agent upgrades, an integrated browser debugger, MCP sandboxing, and monorepo support. Here's what actually matters if you're building with .NET.</description><content:encoded>&lt;p&gt;VS Code 1.112 just landed, and honestly? This one hits different if you&amp;rsquo;re spending your days in .NET land. There&amp;rsquo;s a lot in the &lt;a href="https://code.visualstudio.com/updates/v1_112"&gt;official release notes&lt;/a&gt;, but let me save you some scrolling and focus on what actually matters for us.&lt;/p&gt;
&lt;h2 id="copilot-cli-just-got-way-more-useful"&gt;Copilot CLI just got way more useful&lt;/h2&gt;
&lt;p&gt;The big theme this release is &lt;strong&gt;agent autonomy&lt;/strong&gt; — giving Copilot more room to do its thing without you babysitting every step.&lt;/p&gt;
&lt;h3 id="message-steering-and-queueing"&gt;Message steering and queueing&lt;/h3&gt;
&lt;p&gt;You know that moment when Copilot CLI is halfway through a task and you realize you forgot to mention something? Before, you had to wait. Now you can just send messages while a request is still running — either to steer the current response or queue up follow-up instructions.&lt;/p&gt;
&lt;p&gt;This is huge for those longer &lt;code&gt;dotnet&lt;/code&gt; scaffolding tasks where you&amp;rsquo;re watching Copilot set up a project and think &amp;ldquo;oh wait, I also need MassTransit in there.&amp;rdquo;&lt;/p&gt;
&lt;h3 id="permission-levels"&gt;Permission levels&lt;/h3&gt;
&lt;p&gt;This is the one I&amp;rsquo;m most excited about. Copilot CLI sessions now support three permission levels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Default Permissions&lt;/strong&gt; — the usual flow where tools ask for confirmation before running&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bypass Approvals&lt;/strong&gt; — auto-approves everything and retries on errors&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autopilot&lt;/strong&gt; — goes fully autonomous: approves tools, answers its own questions, and keeps going until the task is done&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you&amp;rsquo;re doing something like scaffolding a new ASP.NET Core API with Entity Framework, migrations, and a Docker setup — Autopilot mode means you describe what you want and go grab a coffee. It&amp;rsquo;ll figure it out.&lt;/p&gt;
&lt;p&gt;You can enable Autopilot with the &lt;code&gt;chat.autopilot.enabled&lt;/code&gt; setting.&lt;/p&gt;
&lt;h3 id="preview-changes-before-delegation"&gt;Preview changes before delegation&lt;/h3&gt;
&lt;p&gt;When you delegate a task to Copilot CLI, it creates a worktree. Before, if you had uncommitted changes, you had to check Source Control to see what would be affected. Now the Chat view shows pending changes right there before you decide whether to copy, move, or ignore them.&lt;/p&gt;
&lt;p&gt;Small thing, but it saves you from that &amp;ldquo;wait, what did I have staged?&amp;rdquo; moment.&lt;/p&gt;
&lt;h2 id="debug-web-apps-without-leaving-vs-code"&gt;Debug web apps without leaving VS Code&lt;/h2&gt;
&lt;p&gt;The integrated browser now supports &lt;strong&gt;full debugging&lt;/strong&gt;. You can set breakpoints, step through code, and inspect variables — all inside VS Code. No more switching to Edge DevTools.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s a new &lt;code&gt;editor-browser&lt;/code&gt; debug type, and if you already have existing &lt;code&gt;msedge&lt;/code&gt; or &lt;code&gt;chrome&lt;/code&gt; launch configurations, migrating is as simple as changing the &lt;code&gt;type&lt;/code&gt; field in your &lt;code&gt;launch.json&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;editor-browser&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;request&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;launch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Debug Blazor App&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://localhost:5001&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For Blazor developers, this is a game changer. You&amp;rsquo;re already running &lt;code&gt;dotnet watch&lt;/code&gt; in the terminal — now your debugging stays in the same window too.&lt;/p&gt;
&lt;p&gt;The browser also got independent zoom levels (finally), proper right-click context menus, and the zoom is remembered per website.&lt;/p&gt;
&lt;h2 id="mcp-server-sandboxing"&gt;MCP server sandboxing&lt;/h2&gt;
&lt;p&gt;This one matters more than you might think. If you&amp;rsquo;re using MCP servers — maybe you&amp;rsquo;ve set up a custom one for your Azure resources or database queries — they&amp;rsquo;ve been running with the same permissions as your VS Code process. That means full access to your filesystem, network, everything.&lt;/p&gt;
&lt;p&gt;Now you can sandbox them. In your &lt;code&gt;mcp.json&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;servers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;my-azure-tools&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;node&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;./mcp-server.js&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;sandboxEnabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When a sandboxed server needs access to something it doesn&amp;rsquo;t have, VS Code prompts you to grant permission. Much better than the &amp;ldquo;hope nobody does anything weird&amp;rdquo; approach.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Sandboxing is available on macOS and Linux for now. Windows support is coming — remote scenarios like WSL do work though.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="monorepo-customizations-discovery"&gt;Monorepo customizations discovery&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re working in a monorepo (and let&amp;rsquo;s be honest, many enterprise .NET solutions end up as one), this solves a real pain point.&lt;/p&gt;
&lt;p&gt;Previously, if you opened a subfolder of your repo, VS Code wouldn&amp;rsquo;t find your &lt;code&gt;copilot-instructions.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt;, or custom skills sitting at the repository root. Now with the &lt;code&gt;chat.useCustomizationsInParentRepositories&lt;/code&gt; setting, it walks up to the &lt;code&gt;.git&lt;/code&gt; root and discovers everything.&lt;/p&gt;
&lt;p&gt;This means your team can share agent instructions, prompt files, and custom tools across all projects in a monorepo without everyone having to open the root folder.&lt;/p&gt;
&lt;h2 id="troubleshoot-for-agent-debugging"&gt;/troubleshoot for agent debugging&lt;/h2&gt;
&lt;p&gt;Ever set up custom instructions or skills and wonder why they&amp;rsquo;re not being picked up? The new &lt;code&gt;/troubleshoot&lt;/code&gt; skill reads agent debug logs and tells you what happened — which tools were used or skipped, why instructions didn&amp;rsquo;t load, and what&amp;rsquo;s causing slow responses.&lt;/p&gt;
&lt;p&gt;Enable it with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;github.copilot.chat.agentDebugLog.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;github.copilot.chat.agentDebugLog.fileLogging.enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then just type &lt;code&gt;/troubleshoot why is my custom skill not loading?&lt;/code&gt; in chat.&lt;/p&gt;
&lt;p&gt;You can also export and import these debug logs now, which is great for sharing with your team when something isn&amp;rsquo;t working as expected.&lt;/p&gt;
&lt;h2 id="image-and-binary-file-support"&gt;Image and binary file support&lt;/h2&gt;
&lt;p&gt;Agents can now read image files from disk and binary files natively. The binary files are presented in hexdump format, and image outputs (like screenshots from the integrated browser) show up in a carousel view.&lt;/p&gt;
&lt;p&gt;For .NET developers, think: paste a screenshot of a UI bug into chat and have the agent understand what&amp;rsquo;s wrong, or have it analyze the output of a Blazor component rendering.&lt;/p&gt;
&lt;h2 id="automatic-symbol-references"&gt;Automatic symbol references&lt;/h2&gt;
&lt;p&gt;Small quality-of-life improvement: when you copy a symbol name (a class, method, etc.) and paste it into chat, VS Code now automatically converts it to a &lt;code&gt;#sym:Name&lt;/code&gt; reference. This gives the agent full context about that symbol without you having to manually add it.&lt;/p&gt;
&lt;p&gt;If you want plain text instead, use &lt;code&gt;Ctrl+Shift+V&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="plugins-can-now-be-enableddisabled"&gt;Plugins can now be enabled/disabled&lt;/h2&gt;
&lt;p&gt;Previously, disabling an MCP server or plugin meant uninstalling it. Now you can toggle them on and off — both globally and per-workspace. Right-click in the Extensions view or the Customizations view and you&amp;rsquo;re done.&lt;/p&gt;
&lt;p&gt;Plugins from npm and pypi can also auto-update now, though they&amp;rsquo;ll ask for approval first since updates mean running new code on your machine.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;VS Code 1.112 is clearly pushing hard on the agent experience — more autonomy, better debugging, tighter security. For .NET developers, the integrated browser debugging and Copilot CLI improvements are the standout features.&lt;/p&gt;
&lt;p&gt;If you haven&amp;rsquo;t tried running a full Copilot CLI session in Autopilot mode for a .NET project yet, this release is a good time to start. Just remember to set your permissions and let it cook.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://code.visualstudio.com/updates/v1_112"&gt;Download VS Code 1.112&lt;/a&gt; or update from within VS Code via &lt;strong&gt;Help &amp;gt; Check for Updates&lt;/strong&gt;.&lt;/p&gt;</content:encoded></item></channel></rss>