Visual Studio Code 1.141

ویژوال استودیو کد 1.141

با قابلیت‌های جدید در ویژوال استودیو کد 1.141 آشنا شوید

ویژوال استودیو کد 1.141

منتشر شده در ۷ اکتبر ۲۰۲۶ - نسخه پایدار

از قبل نصب کرده‌اید؟ از گزینه Check for Updates در VS Code استفاده کنید. برای ویژگی‌های آینده، از نسخه Insiders استفاده کنید.

به‌روزرسانی 1.141.1: این به‌روزرسانی به این مسائل امنیتی می‌پردازد.

نکات برجسته نسخه

این نسخه مدیریت نشست‌های عامل (agent)، محافظت از جریان‌های کاری عامل، ویرایش متن ستونی و کار در میان نمونه‌های مختلف GitHub Enterprise را آسان‌تر می‌کند.

  • پاک‌سازی فضای ذخیره‌سازی worktree: آزادسازی فضای دیسک از worktreeهای نشست‌های عامل غیرفعال، به‌صورت دستی یا خودکار.
  • ایزوله‌سازی (Sandbox) بین‌پلتفرمی: محدود کردن دسترسی عامل به فایل‌ها و منابع شبکه در ویندوز، مک‌او‌اس و لینوکس با استفاده از ایزوله‌سازی ترمینال.
  • مرتب‌سازی نشست‌ها: مقایسه و نظارت بر چندین نشست عامل به‌صورت هم‌زمان در یک طرح‌بندی شبکه‌ای.
  • ادامه نشست‌های خارجی: از سرگیری گفتگوهای خارجی محلی Copilot و Codex در VS Code بدون از دست دادن زمینه.
  • مسدود کردن جای‌گذاری (Paste): جای‌گذاری سطرهای بلوکی در خطوط متوالی از یک مکان‌نمای واحد.
  • چندین نمونه GitHub Enterprise: ورود به حساب‌های GHE.com و GitHub Enterprise Server از همان پنجره VS Code.

حلقه عامل (Agent loop)

پشتیبان Copilot (Copilot harness)

پشتیبان Copilot قابلیت‌های جدید و جذابی را به VS Code اضافه می‌کند. این ابزار توسط Copilot SDK پشتیبانی می‌شود، بنابراین رفتار و قابلیت‌های آن با سایر محصولات Copilot، از جمله اپلیکیشن مستقل GitHub Copilot و Copilot CLI سازگار است.

برای شروع استفاده از پشتیبان Copilot، آن را از انتخابگر پشتیبان در ورودی چت انتخاب کنید. در این نسخه، ممکن است از قبل به عنوان پیش‌فرض برای شما انتخاب شده باشد. می‌توانید به کار عادی خود ادامه دهید.

این پشتیبان در یک فرآیند میزبان عامل اختصاصی بر اساس پروتکل میزبان عامل (AHP) اجرا می‌شود، بنابراین می‌توانید از چندین پنجره VS Code به یک نشست عامل متصل شوید.

نحوه کار با پشتیبان Copilot را بیاموزید، یا معماری و جریان‌های کاری را در پست وبلاگ میزبان عامل بررسی کنید. اگر بازخورد یا درخواستی دارید، لطفاً یک مسئله (issue) ثبت کنید.

آزادسازی فضای ذخیره‌سازی از worktreeهای غیرفعال

اجرای چت: Open Worktree Cleanup را باز کنید تا ببینید worktreeهای نشست‌های عامل غیرفعال چقدر از فضای دیسک را اشغال کرده‌اند و مواردی را که دیگر نیاز ندارید حذف کنید. نشست‌ها را بر اساس مدت زمان غیرفعال بودن فیلتر کنید، اندازه هر worktree را بررسی کنید و worktreeهای مورد نظر را برای پاک‌سازی انتخاب کنید.

ویرایشگر پاک‌سازی همچنین به شما امکان می‌دهد پاک‌سازی خودکار را برای نشست‌هایی با درخواست‌های ادغام‌شده (merged pull requests) پیکربندی کنید و کنترل کنید که آیا VS Code هنگام افزایش حجم ذخیره‌سازی نشست، پیشنهاد پاک‌سازی می‌دهد یا خیر.

هنگامی که گزینه chat.agentSessions.sessionStorageCleanupSuggestion.enabled فعال باشد، پنجره Agents زمانی که worktreeهای غیرفعال به اندازه کافی انباشته شوند یا فضای دیسک کافی را اشغال کنند تا پاک‌سازی توجیه‌پذیر باشد، به شما اطلاع می‌دهد.

پاک‌سازی، نشست‌های انتخاب‌شده را به‌عنوان انجام‌شده علامت‌گذاری کرده و worktreeهای آن‌ها را حذف می‌کند. می‌توانید بعداً یک نشست را بازیابی کنید تا worktree آن دوباره ایجاد شود. نشست‌های فعال، در حال اجرا، نیازمند ورودی و پین‌شده در برابر پاک‌سازی محافظت می‌شوند.

پیگیری پوسته‌های پس‌زمینه (Background shells)

هنگامی که عامل یک دستور را در پس‌زمینه اجرا می‌کند، در حالی که دستور در حال اجرا است، به کار بر روی مراحل دیگر ادامه می‌دهد. در نشست‌های پشتیبان Copilot، یک نشانگر (pill) با عنوان Background Shells در بالای ورودی چت، پوسته‌هایی را که هنوز در حال اجرا هستند، هم در پنجره Agents و هم در پنجره ویرایشگر فهرست می‌کند.

نشانگر را انتخاب کنید تا دستور هر پوسته و مدت زمان اجرای آن را ببینید، و یک پوسته را انتخاب کنید تا با شروع اجرای دستور (در صورت در دسترس بودن خروجی)، جریان خروجی آن را تماشا کنید. وقتی دستور یک پوسته به پایان می‌رسد، از فهرست خارج می‌شود.

کنترل بیشتر برای پیام‌های راه‌اندازی‌شده توسط عامل

هنگامی که عامل‌ها کار را در بین گفتگوها واگذار می‌کنند، می‌توانند وظیفه واگذارشده را با تغییر الزامات به‌ جای انتظار برای اتمام نشست دیگر، تنظیم کنند. ابزار send_message از این اقدامات بین نشست‌ها و نشست‌های تو در تو در همان میزبان عامل پشتیبانی می‌کند:

  • هدایت یک گفتگوی فعال با یک اصلاحیه.
  • قراردادن یک دنباله در صف به عنوان یک نوبت جداگانه.
  • جایگزینی یک پیام در صف ضمن حفظ جایگاه آن در صف.
  • لغو یک پیام در صف قبل از شروع پردازش.

پیام‌های موجود در صف به ترتیب اجرا می‌شوند. پس از شروع پردازش یک پیام، دیگر نمی‌توان آن را جایگزین یا لغو کرد.

تجربه کاربری عامل (Agent UX)

مرتب‌سازی نشست‌ها در یک شبکه

مقایسه نتایج، نظارت بر کارهای طولانی‌مدت، یا کار در میان گفتگوهای مرتبط بدون جابجایی مکرر بین نشست‌ها. درست مانند پنجره ویرایشگر، شبکه نشست دو بعدی در پنجره Agents به شما امکان می‌دهد نشست‌ها را به بخش‌های افقی یا عمودی بکشید و اندازه‌ی پنجره‌ها را تغییر دهید.

هنگامی که نیاز به تمرکز دارید، یک نشست را بزرگ کنید، سپس برای ادامه کار در میان گفتگوها به شبکه بازگردید.

تراکم طرح‌بندی فشرده

Setting: window.density.layout

با استفاده از تراکم طرح‌بندی فشرده (Compact)، محتوای بیشتری را در پنجره عوامل (Agents) جای دهید. تراکم فشرده از نوار عنوان کوتاه‌تری استفاده می‌کند، فاصله‌های بین اجزای میزکار (workbench) را برمی‌دارد و فاصله بین پنل‌ها را کاهش می‌دهد.

به طور پیش‌فرض، پنجره Agents از تنظیمات سطح کاربر window.density.layout پیروی می‌کند که برای پنجره‌های ویرایشگر نیز اعمال می‌شود. برای تنظیم یک تراکم متفاوت صرفاً برای پنجره Agents، آن را باز کرده و مسیر View > Layout Density را انتخاب کنید. تراکم پنجره‌های ویرایشگر بدون تغییر باقی می‌ماند.

گزینه‌های اضافی فیلتر نشست (Session)

فهرست نشست‌های خود را روی کارهایی که برایتان اهمیت دارند متمرکز کنید. گزینه Filter Sessions را باز کنید تا فیلتر کردن به طور مستقل بر اساس موارد زیر انجام شود:

  • محیط (Environment): جایی که نشست در آن اجرا می‌شود، مانند محلی (locally)، در ابر (cloud)، یا روی یک میزبان ریموت.
  • ابزار کمکی (Harness): اینکه نشست از کدام ابزار کمکی عامل (agent harness) استفاده می‌کند.
  • ایجاد شده در (Created In): برنامه‌ای که نشست را ایجاد کرده است، مانند VS Code، رابط خط فرمان Copilot یا برنامه Copilot.

این منو همچنین کنترل‌های مرتب‌سازی، گروه‌بندی، نمایش موارد انجام‌شده (Show Done) و ایجاد شده به صورت خارجی (Created Externally) را در کنار هم جمع‌آوری می‌کند.

ردیابی فعالیت در نشست‌های تو در تو (Nested)

نشست‌های تو در تو به شما امکان می‌دهند کارهای مرتبط را در مکالمات جداگانه تقسیم کنید. در پنجره Agents، هر نشست تو در تو وضعیت خوانده‌نشده و زمان آخرین ویرایش خود را نشان می‌دهد و به شما کمک می‌کند بدون باز کردن تک‌تک آن‌ها، فعالیت‌های اخیر و مکاتباتی را که نیاز به توجه شما دارند پیدا کنید.

وضعیت برای هر مکالمه به طور مستقل ردیابی می‌شود:

  • باز کردن یک نشست تو در تو، فقط همان مکالمه را به عنوان خوانده‌شده علامت‌گذاری می‌کند. یک نشست تو در تویی که خوانده نشده، باعث نمی‌شود نشست اصلی به صورت خوانده‌نشده به نظر برسد.
  • زمان آخرین ویرایش، منعکس‌کننده فعالیت در همان مکالمه است، نه فعالیت در نشست اصلی یا یک نشست تو در توی دیگر.

وضعیت خوانده شدن و زمان‌های آخرین ویرایش هنگام بارگذاری مجدد پنجره یا راه‌اندازی مجدد VS Code حفظ می‌شوند.

برای پاک کردن وضعیت خوانده‌نشده برای یک درخت نشست کامل، روی نشست اصلی راست‌کلیک کرده و گزینه Mark as Read را انتخاب کنید. نشست‌های نامرتبط تحت تأثیر قرار نمی‌گیرند.

کنترل‌های ساده‌شده نشست جدید (آزمایشی)

Settings: sessions.chat.experimental.newSessionComposerLayout , sessions.chat.unifiedWorkspacePicker.enabled (فقط پنجره Agents)

ترکیب‌کننده (composer) نشست جدید آزمایشی، اعلان (prompt) شما را در مرکز نگه می‌دارد و در عین حال بررسی انتخاب‌های نشست را آسان‌تر می‌کند. کنترل‌های فضای کاری، مخزن (repository) و ابزار کمکی اکنون در یک سینی کشویی گزینه‌های نشست (Session Options) در بالای ورودی چت ظاهر می‌شوند.

نکات شروع به کار اکنون در یک اعلان گرد در زیر ورودی چت ظاهر می‌شوند، بنابراین دیگر کنترل‌های نشست را از اعلان شما جدا نمی‌کنند.

سینی را ببندید تا بدون تغییر دادن انتخاب‌هایتان، شلوغی بصری کاهش یابد. ترکیب‌کننده انتخاب شما را به خاطر می‌سپارد، با باریک شدن پنجره برچسب‌ها را تطبیق می‌دهد و وقتی حالت بهینه‌سازی‌شده برای صفحه‌خوان فعال است، گزینه‌ها را در حالت گسترش‌یافته نگه می‌دارد. وقتی از پس‌زمینه چت سفارشی استفاده می‌کنید، سینی دارای یک سطح مات است تا کنترل‌های آن قابل خواندن بمانند.

موقعیت‌یابی بهبودیافته انتخابگر زمینه (context picker)

انتخابگر افزودن زمینه (Add Context) اکنون در کنار دکمه‌ای که آن را فراخوانی کرده باز می‌شود و با انتخاب مجدد دکمه بسته می‌شود. این امر باعث می‌شود انتخابگر از نظر بصری به ورودی چت در ویرایشگر و پنجره‌های Agents متصل بماند.

جابه جایی انتخابگر عامل در کنترل زمینه (آزمایشی)

Setting: sessions.chat.experimental.agentsPickerInAttachContextMenu (فقط پنجره Agents)

اگر ترجیح می‌دهید برای کاهش تعداد کنترل‌ها، انتخابگر عامل (Agent) در ابتدا از ورودی چت پنهان باشد، می‌توانید این تنظیم را پیکربندی کنید تا به منوی Add Context منتقل شود. پس از انتخاب یک عامل، انتخابگر به ورودی چت بازمی‌گردد.

سفارشی‌سازی پیام‌های خوش‌آمدگویی نشست جدید (آزمایشی)

Settings: sessions.chat.experimental.welcomePhrases , sessions.chat.experimental.welcomeMessages (فقط پنجره Agents)

پیام‌های خوش‌آمدگویی نشست جدید به پنجره Agents شخصیت می‌بخشند. در این نسخه، می‌توانید عبارات خود را به موارد پیش‌فرض اضافه کنید یا جایگزین عبارات پیش‌فرض نمایید. از مکان‌نما (placeholder) {name} استفاده کنید تا نام خوش‌آمدگویی خود را در هر جای عبارت قرار دهید.

برای تغییر نام خود یا باز کردن تنظیمات عبارت، گزینه Customize Welcome Message را در کنار سرتیتر انتخاب کنید. همچنین می‌توانید روی سرتیتر راست‌کلیک کرده و گزینه Hide Welcome Message را انتخاب کنید تا عبارات خوش‌آمدگویی خاموش شوند.

محیط‌های عامل (Agent)

ادامه نشست‌های محلی و خارجی Copilot بدون بارگذاری مجدد

مکالمات جدید از Copilot CLI و برنامه GitHub Copilot اکنون به محض ارسال اولین درخواست، حتی زمانی که پنجره Agents از قبل باز است، به عنوان نشست‌های خارجی به طور خودکار دریافت می‌شوند. می‌توانید مستقیماً از پنجره Agents این مکالمات را باز کرده و ادامه دهید.

از فیلترهای Created In و Created Externally برای انتخاب اینکه کدام مکالمات در فهرست نشست‌ها ظاهر شوند، استفاده کنید.

انتقال چت Codex بین برنامه‌ها

یک چت Codex شروع شده در برنامه ChatGPT یا Codex CLI را انتخاب کرده و آن را در پنجره Agents مربوط به VS Code روی همان دستگاه، در حالی که تاریخچه مکالمه شما دست‌نخورده است، ادامه دهید. می‌توانید بعداً به برنامه ChatGPT یا Codex CLI برگردید و همان چت را ادامه دهید.

برای استفاده از اشتراک GitHub Copilot خود در VS Code، یک مدل Copilot را در انتخابگر مدل انتخاب کنید. برای مثال، می‌توانید پس از رسیدن به حد مصرف ChatGPT، به کار با Copilot ادامه دهید.

با فعال بودن Codex و قابل مشاهده بودن نشست‌های Created Externally، چت‌های ایجاد شده یا به‌روزرسانی شده در ChatGPT یا Codex CLI ظرف چند ثانیه بدون بارگذاری مجدد VS Code ظاهر می‌شوند.

فقط یک برنامه می‌تواند در هر زمان پیام‌هایی را به چت ارسال کند. اگر ChatGPT یا Codex CLI هنوز چت را باز نگه داشته باشد، یک بنر با متن This chat is open in another app در VS Code توضیح می‌دهد که چرا ارسال پیام امکان‌پذیر نیست. برنامه ChatGPT را به طور کامل ببندید یا از نشست Codex CLI خارج شوید، سپس گزینه Retry را انتخاب کنید. پیش‌نویس و پیوست‌های شما سر جای خود باقی می‌ مانند و Retry دسترسی را بدون ارسال پیام شما بررسی می‌کند.

یک فایل ریموت باز را به صورت محلی ذخیره کنید، بدون اینکه نیازی باشد در پنل Files به دنبال آن بگردید. در پنجره Agents، منوی More Actions ویرایشگر را باز کرده و Download... را انتخاب کنید تا فایل در یک مقصد محلی دانلود شود.

نمونه‌های Dev Container (آزمایشی)

تنظیمات: chat.agentHost.devContainer.samples.enabled (فقط پنجره عوامل)

یک عامل را با یک محیط توسعه آماده‌به‌کار، بدون نیاز به کلون کردن مخزن یا نصب محلی ابزارهای زبان آن امتحان کنید. پنجره عوامل (Agents) اکنون نمونه‌های Dev Container را برای زبان‌های Go، .NET، Node.js، PHP، Python و Rust ارائه می‌دهد.

داکر را نصب و اجرا کنید، سپس تنظیمات را فعال کنید. یک نشست جدید در پنجره عوامل دسکتاپ باز کنید، گزینه Dev Container Sample را از انتخابگر فضای کاری انتخاب کنید و یک دستور (prompt) ارسال کنید.

این کار همچنین نیازمند فعال بودن گزینه‌های chat.agentHost.devContainer.enabled و chat.remoteAgentHostsEnabled است.

امنیت عامل

جداسازی (Sandboxing) در میزبان عامل کوپایلوت

تنظیمات: chat.agent.sandbox.enabled

جداسازی به شما کنترل بیشتری بر دسترسی‌های کوپایلوت هنگام کار روی یک وظیفه می‌دهد. این قابلیت نحوه دسترسی عملیات پشتیبانی‌شده عامل به فایل‌ها و منابع شبکه را محدود می‌کند و به کاهش تأثیر خطاهای مدل، تزریق دستور (prompt injection)، وابستگی‌های نامطمئن و سرورهای ابزاری راه‌اندازی‌شده به‌صورت محلی کمک می‌کند.

بسته به نوع عملیات و پلتفرم، این محدودیت‌ها از محافظت‌های سیستم‌عامل یا بررسی‌های درون فرآیند میزبان عامل استفاده می‌کنند. جداسازی یک لایه حفاظتی اضافه می‌کند، اما جایگزین امنیت نقطه پایانی نمی‌شود و مرز امنیتی مستقلی فراهم نمی‌کند.

جداسازی در ویندوز، مک‌او‌اس و لینوکس در دسترس است. در ویندوز، به‌روزرسانی‌های ضروری سیستم‌عامل باید نصب شده باشند. برای جزئیات بیشتر به بخش بررسی دسترسی پلتفرم مراجعه کنید.

برای پیکربندی جداسازی برای تمام نشست‌های خود، تنظیمات chat.agent.sandbox.enabled را فعال کنید. همچنین می‌توانید جداسازی را در سطح نشست با استفاده از کلید ضامن Sandboxing for terminal در منوی Permissions کنترل کنید.

شما همچنین می‌توانید مجوزهای سیستم فایل و دسترسی به شبکه را از طریق تنظیمات مربوط به آن‌ها در VS Code سفارشی‌سازی کنید.

جداسازی با نشست‌های محلی و متصل راه دور کار می‌کند. برای نشست‌های محلی، محدودیت‌ها روی دستگاه شما اعمال می‌شوند. برای نشست‌های راه دور، محدودیت‌ها روی میزبان راه دور که کوپایلوت ابزارها و دستورات را روی آن اجرا می‌کند، اعمال می‌شوند. مجوزهای سیستم فایل به مسیرهای روی دستگاهی که عامل را اجرا می‌کند اشاره دارند.

سرورهای MCP و زبان که به‌صورت محلی راه‌اندازی شده‌اند، هنگام فعال بودن جداسازی، به‌طور پیش‌فرض در محیط ایزوله اجرا می‌شوند.

تجربه گفت‌وگو

پیشرفت مداوم در گفت‌وگو

تنظیمات: chat.experimental.persistentProgress , chat.experimental.persistentProgressVerbosity

قابلیت پیشرفت مداوم در حال انتشار برای تمامی کاربران است. این قابلیت پاسخ‌های در حال انجام را قابل مشاهده نگه می‌دارد و به شما اجازه می‌دهد میزان جزئیات پیشرفت نمایشی را کنترل کنید. از chat.experimental.persistentProgress برای انتخاب میان سه نوع آیکون، شامل یک آیکون تک‌رنگ یا بدون آیکون، استفاده کنید.

با Blobby آشنا شوید

ابزار /vscode-pet یک نام دارد: Blobby. عبارت /vscode-pet را در هر گفت‌وگویی در ویرایشگر یا پنجره عوامل تایپ کنید تا با Blobby ملاقات کنید.

برای شخصی‌سازی Blobby، عبارت /blobby را تایپ کنید. با کاوش در گفت‌وگوها و کسب دستاوردها، گزینه‌های سفارشی‌سازی بیشتری در دسترس شما قرار خواهد گرفت.

درباره Blobby و حیوانات خانگی چت بیشتر بیاموزید.

MCP

مشاهده سرورهای کشف‌شده MCP در ویرایشگر سفارشی‌سازی‌ها (پیش‌نمایش)

سرورهای MCP ارائه‌شده توسط افزونه‌ها، اکستنشن‌ها و یکپارچه‌سازی‌های داخلی را در کنار سرورهای پیکربندی‌شده خود در بخش MCP Servers در ویرایشگر Agent Customizations پیدا کنید. سرورهایی که خارج از فایل mcp.json فضای کاری شما کشف شده‌اند در رابط کاربری قابل مشاهده هستند، بنابراین نیازی نیست از دستور MCP: List Servers برای یافتن آن‌ها استفاده کنید.

دستور Chat: Open Customizations را از طریق پالت دستورات (Command Palette) اجرا کنید و گزینه MCP Servers را برای بررسی یکپارچه‌سازی‌های موجود انتخاب کنید. درباره افزودن و مدیریت سرورهای MCP بیشتر بیاموزید.

تجربه ویرایشگر

تنظیمات: workbench.modernUIFrostedGlass , workbench.modernUIFrostedGlassOpacity

منوها، پالت دستورات و سایر پنجره‌های بازشو اکنون در پنجره عوامل دسکتاپ از پس‌زمینه‌های شیشه‌ای مات با محو شدگی ملایم استفاده می‌کنند. شیشه مات همچنین زمانی که رابط کاربری مدرن‌شده با workbench.experimental.modernUI فعال باشد، در پنجره‌های ویرایشگر نیز در دسترس است.

از workbench.modernUIFrostedGlassOpacity برای کنترل میزان نمایان شدن محتوای محو شده از پشت شیشه استفاده کنید. مقادیر کمتر پس‌زمینه را شفاف‌تر می‌کنند، در حالی که مقادیر بالاتر آن را یکدست‌تر و مات‌تر می‌سازند.

شیشه مات به ترجیحات کاهش شفافیت در VS Code و سیستم‌عامل شما احترام می‌گذارد و در تم‌های با کنتراست بالا یا زمانی که این افکت پشتیبانی نمی‌شود، از پس‌زمینه‌های یکدست استفاده می‌کند. اگر متوجه مشکلاتی در نمایش یا عملکرد شدید، workbench.modernUIFrostedGlass را غیرفعال کنید.

تنظیمات: workbench.experimental.modernUIEditorTabStyle

هنگامی که رابط کاربری مدرن‌شده فعال است ( workbench.experimental.modernUI )، می‌توانید بین دو سبک تب یکی را انتخاب کنید:

  • متصل (connected): تب فعال را به‌صورت بصری به محتوای آن متصل می‌کند.
  • قرصی (pill): تب‌ها را به شکل قرص‌های گرد جداگانه نمایش می‌دهد.

گسترش چسباندن بلوک (Spreading block pasting)

تنظیمات: editor.multiCursorPaste

یک بلوک کپی‌شده را روی یک نشانگر تکی بچسبانید تا سطرهای آن در خطوط مقصد متوالی توزیع شوند. این رفتار به‌طور پیش‌فرض زمانی که editor.multiCursorPaste روی حالت spread تنظیم شده باشد، فعال است. آن را روی full قرار دهید تا به‌ جای آن کل بلوک چسبانده شود.

احراز هویت

ورود به چندین نمونه‌ی گیت‌هاب اینترپرایز (GitHub Enterprise)

تنظیمات: github-enterprise.uris

بسیاری از سازمان‌ها از گیت‌هاب کوپایلوت (GitHub Copilot) از طریق حساب کاربری GHE.com استفاده می‌کنند، اما کدهای خود را روی گیت‌هاب اینترپرایز سرور (GHES) نگه می‌دارند. تنظیم github-enterprise.uri تنها یک نمونه را پشتیبانی می‌کرد، بنابراین نمی‌توانستید همزمان به هر دو وارد شوید. برای مثال، نمی‌توانستید در یک پنجره‌ی VS Code هم‌زمان با حساب GHE.com خود از کوپایلوت استفاده کنید و درخواست‌های پول (Pull Requests) را روی GHES بررسی نمایید.

تنظیم جدید github-enterprise.uris فهرستی از نمونه‌های GHE.com و GHES را می‌پذیرد:

    "github-enterprise.uris": [
  "https://octocat.ghe.com",
  "https://github.contoso.com"
]

  

ارائه‌دهنده‌ی احراز هویت گیت‌هاب اینترپرایز، حساب‌های مربوط به تمام نمونه‌های موجود در فهرست را نگه می‌دارد. هر حساب با میزبان (Host) خود برچسب‌گذاری می‌شود، مانند monalisa - octocat.ghe.com، تا بتوانید آن‌ها را در منوی Accounts از هم تشخیص دهید. هنگامی که بیش از یک نمونه پیکربندی شده باشد، هنگام ورود از شما پرسیده می‌شود که از کدام نمونه استفاده کنید. ترتیب 항목‌ها (entries) نمونه‌ی پیش‌فرض را تعیین نمی‌کند.

برای بررسی یا تغییر اینکه یک افزونه از کدام حساب استفاده می‌کند، گزینه‌ی Manage Extension Account Preferences... را در منوی Accounts انتخاب کنید، یا دستور Accounts: Manage Extension Account Preferences... را از پالت دستورات (Command Palette) اجرا کنید.

این افزونه‌ها از چند نمونه پشتیبانی می‌کنند:

  • گیت‌هاب کوپایلوت با نمونه‌های GHE.com کار می‌کند. وقتی با گزینه‌ی Continue with GHE.com وارد می‌شوید، می‌توانید نام یک نمونه (مانند octocat) یا URL کامل آن را وارد کنید. VS Code آن نمونه را بدون حذف سایر نمونه‌های شما به github-enterprise.uris اضافه می‌کند و اگر یک ورودی موجود، یک URL معتبر نباشد، پیشنهاد می‌کند آن را اصلاح کنید.
  • گیت‌هاب پول ریکوئستس (GitHub Pull Requests) پیشنهاد می‌کند هنگام باز کردن یک مخزن (Repository) از یک نمونه‌ی اینترپرایز که هنوز پیکربندی نشده است، میزبان را به github-enterprise.uris اضافه کنید. این افزونه در هر بار از یک حساب GitHub Enterprise استفاده می‌کند، بنابراین مخازن روی سایر نمونه‌های شما پس از جابجایی بین حساب‌ها در دسترس خواهند بود. استفاده‌ی هم‌زمان از چند نمونه‌ی اینترپرایز در مسئله‌ی microsoft/vscode-pull-request-github#9004 پیگیری می‌شود.
  • گیت‌هاب ریپازیتوریز (GitHub Repositories) مخازن چندین نمونه‌ی GHE.com را در کنار یکدیگر باز می‌کند. این افزونه از مخازن GHES پشتیبانی نمی‌کند.

اگر در حال حاضر از github-enterprise.uri استفاده می‌کنید، نشست شما فعال می‌ماند. اولین باری که این نسخه را اجرا می‌کنید، VS Code اطلاعات ورود ذخیره‌شده‌ی شما را منتقل می‌کند تا با تنظیمات جدید کار کند. تنظیم github-enterprise.uri منسوخ شده است. وقتی هر دو تنظیم تنظیم شده باشند، github-enterprise.uris اولویت دارد و یک فهرست خالی (([])) ورود به گیت‌هاب اینترپرایز را غیرفعال می‌کند.

سازمان (Enterprise)

مهاجرت سیاست‌های قدیمی VS Code به تنظیمات مدیریت‌شده‌ی میزبان عامل (Agent Host)

چارچوب کوپایلوت (Copilot harness)، که توسط SDK کوپایلوت پشتیبانی می‌شود و در میزبان عامل (Agent Host) وی‌اس‌کد اجرا می‌شود، به تدریج در حال تبدیل شدن به پیش‌فرض برای کاربران سازمانی است که آزمایش‌های وی‌اس‌کد را فعال کرده‌اند. برای حفظ کنترل‌های سازمانی موجود در طول این انتقال، وی‌اس‌کد در صورت امکان، سیاست‌های قدیمی پشتیبانی‌شده را در زمان اجرا به تنظیمات مدیریت‌شده‌ی یکپارچه ترجمه می‌کند. این ترجمه برای نشست‌های روی همان دستگاه اعمال می‌شود و پیکربندی سیاست شما را تغییر نمی‌دهد.

سازمان‌ها همچنان باید در صورت امکان برای مدیریت سازگار سیاست‌ها در سراسر VS Code، برنامه‌ی GitHub Copilot و CLI کوپایلوت، به تنظیمات مدیریت‌شده‌ی یکپارچه مهاجرت کنند.

استفاده از تنظیمات مدیریت‌شده برای الزامی کردن سندباکس (پیش‌نمایش)

برای الزامی کردن سندباکس در میزبان عامل کوپایلوت و جلوگیری از دور زدن آن، از این تنظیمات مدیریت‌شده‌ی یکپارچه استفاده کنید:

    {
  "sandbox": {
    "enabled": true,
    "allowBypass": false
  }
}

  

تنظیمات سندباکس قدیمی VS Code و سیاست‌های دستگاه منسوخ شده‌اند. ChatAgentSandboxEnabled اکنون به جای یک الزام اجباری در میزبان عامل، یک مقدار پیش‌فرض قابل بازنویسی (overridable) ارائه می‌دهد. رفتار محلی تغییری نکرده است.

منسوب کردن نشست‌های میزبان عامل به کاربران و دستگاه‌ها

مدیران می‌توانند با گنجاندن نام‌های کاربری سیستم‌عامل و نام میزبان در تله‌متری میزبان عامل VS Code، نشست‌های میزبان عامل را راحت‌تر به کاربران و دستگاه‌ها نسبت دهند. این نمونه را در تنظیمات مدیریت‌شده‌ی یکپارچهی خود، در کنار پیکربندی صادرکننده‌ی تله‌متری موجود خود ادغام کنید:

    {
  "telemetry": {
    "enabled": true,
    "capture": {
      "identity": true
    }
  }
}

  

برای مثال، ویژگی‌های شناسایی ثبت‌شده می‌توانند شامل موارد زیر باشند (مقادیر نمایشی):

    {
  "user.name": "octokit",
  "process.user.name": "devuser",
  "host.name": "dev-workstation"
}

  

نام کاربری سیستم‌عامل (process.user.name) و نام میزبان (host.name) ویژگی‌های منبع هستند. نام کاربری واردشده‌ی گیت‌هاب (user.name) در صورت پشتیبانی توسط زمان اجرای (runtime) بسته‌بندی‌شده‌ی کوپایلوت، روی بازه‌های زمانی اجرا (runtime spans) ظاهر می‌شود.

ثبت شناسه‌ها به صورت پیش‌فرض غیرفعال است و مقدار مدیریت‌شده جایگزین ترجیحات شخصی می‌شود. این قابلیت مستقل از ضبط محتوا است. کنترل سمت میزبان VS Code صادرات مستقیم زمان اجرا را مدیریت نمی‌کند.

حفظ عامل انتخابی خود در طول بررسی‌های خط‌مشی (policy checks)

هنگامی که سازمان شما به بررسی مجدد خط‌مشی با forceRemoteSettingsRefresh نیاز دارد، بخش چت به جای تغییر به Ask یا Edit، عامل انتخابی شما را در طول بررسی‌های خط‌مشی حفظ می‌کند. بازنشانی‌های پس‌زمینهٔ روتین نیز آخرین خط‌مشی پذیرفته‌شده را هنگام بارگیری فعال نگه می‌دارند. راه‌اندازی، تغییرات حساب و بازنشانی‌های ناموفق همچنان تا زمانی که بررسی‌های خط‌مشی با موفقیت انجام شوند، ارسال‌ها را مسدود می‌کنند. محدودیت‌های تازه پذیرفته‌شده همچنان اعمال می‌شوند.

مشارکت‌ها در افزونه‌ها

درخواست‌های پول گیت‌هاب (GitHub Pull Requests)

پیشرفت‌های بیشتری در افزونه‌ی GitHub Pull Requests حاصل شده است که به شما امکان کار بر روی، ایجاد و مدیریت درخواست‌های پول و مسائل (issues) را می‌دهد. ویژگی‌های جدید عبارتند از:

  • ایجاد، مشاهده و ادغام درخواست‌های پول پشته‌ای (stacked pull requests) با تنظیم githubPullRequests.experimental.stacks روی مقدار true.
  • پشتیبانی از پیکربندی و انتخاب بین چندین نمونه‌ی گیت‌هاب اینترپرایز.

برای اطلاع از تمام موارد موجود در این نسخه، گزارش تغییرات (changelog) نسخه‌ی 0.168.0 افزونه را بررسی کنید.

ویژگی‌ها و تنظیمات منسوخ‌شده

تنظیم URI گیت‌هاب اینترپرایز

تنظیم github-enterprise.uri به نفع github-enterprise.uris منسوخ شده است که چندین نمونه‌ی GHE.com و GitHub Enterprise Server را می‌پذیرد. وی‌اس‌کد همچنان وقتی github-enterprise.uris پیکربندی نشده باشد، github-enterprise.uri را می‌خواند.

تنظیمات سندباکس قدیمی VS Code و سیاست‌های دستگاه

تنظیمات سندباکس قدیمی VS Code و سیاست‌های دستگاه منسوخ شده‌اند. ChatAgentSandboxEnabled اکنون به جای یک الزام اجباری در میزبان عامل، یک مقدار پیش‌فرض قابل بازنویسی ارائه می‌دهد. رفتار محلی تغییری نکرده است.

سپاسگزاریم

مشارکت‌ها در vscode:

  • @dzamoshchin (Daniel Zamoshchin): علامت‌گذاری گروه‌های ابزار مجازی به عنوان استفاده‌شده هنگام فعال شدن (PR #338812)
  • @jimmylewis (Jimmy Lewis): extensions: حفظ بررسی‌های به‌روزرسانی روی دوره‌ی نظرسنجی (PR #339365)
  • @na2co3-ftw (na2co3): رابط کاربری مدرن: رفع محو شدن زاید اکشن تب در تب‌های متصل ویرایشگر (PR #336871)
  • @rohit489 (Rohit Agrawal - MSFT): ثبت CAPI X-GitHub-Copilot-Request-Te در رویدادهای تله‌متری GitHub (PR #339087)
  • @shoemoney (Jeremy Schoemaker): اصلاح (markdown): حفظ قطعات غیرخطی در لینک‌های پیش‌نمایش (PR #332661)
  • @SimonSiefke (Simon Siefke) رفع: نشت حافظه در بازپخش ترمینال (PR #338252) رفع: نشت حافظه در توکن‌های معنایی (PR #336024) رفع: نشت حافظه در ویرایشگر جستجو (PR #331014) ترمینال: لغو تایم‌اوت غیرضروری تله‌متری هنگام دفع (PR #333963) رفع: نشت حافظه در دفع پنجره فریم انیمیشن (PR #338263) رفع: نشت حافظه در دفع شرکت‌کننده گفتگو (PR #338230) رفع: نشت حافظه در دفع سند سفارشی (PR #338250) رفع: نشت حافظه در دفع ارائه‌دهنده ویرایش نگاشت‌شده (PR #338245) رفع: نشت حافظه در تله‌متری میزبان افزونه (PR #334096) رفع: نشت حافظه در اندازه‌گیری‌های فونت پنجره کمکی (PR #338255) رفع: نشت حافظه در دستورات آرتیفکت SCM (PR #338251) رفع: نشت حافظه در دفع پنجره نسبت پیکسل (PR #338257) رفع: نشت حافظه در دسته‌های عنصر مرورگر یکپارچه (PR #338247) رفع: نشت حافظه در نوارهای پیمایش افقی ترمینال (PR #338241) رفع: نشت حافظه در دفع نمای درختی میزبان افزونه (PR #338235) رفع: نشت حافظه در ثبت‌های کشیدن و رها کردن ترکیبی (PR #338215) رفع: نشت حافظه در نشست‌های بازرس مرورگر یکپارچه (PR #338228) رفع: نشت حافظه در chatInputPart (PR #327157) رفع: نشت حافظه در جریانات اجرای شل ترمینال (PR #338243) رفع: نشت حافظه در دستورات نوار وضعیت سلول نوت‌بوک (PR #336028) رفع: نشت حافظه در issueReporterModel (PR #335098) رفع: نشت حافظه در ویرایشگر گردونه تصویر (PR #333981) رفع: نشت حافظه در دفع سریال‌ساز نوت‌بوک (PR #338212) رفع: نشت حافظه در MainThreadShare (PR #334110) رفع: نشت حافظه در تب‌های ویرایشگر اختلاف چندگانه (PR #333186) رفع: نشت حافظه در دفع ناظر تست (PR #338213) رفع: نشت حافظه در modalEditorPart (PR #326885) رفع: نشت حافظه در دفع رشته نظرات (PR #338216) رفع: نشت حافظه در افزونه رویداد داده خط (PR #332139) رفع: نشت حافظه در منوهای منبع کرنل نوت‌بوک (PR #338218)
  • رفع: نشت حافظه در بازپخش ترمینال (PR #338252)
  • رفع: نشت حافظه در توکن‌های معنایی (PR #336024)
  • رفع: نشت حافظه در ویرایشگر جستجو (PR #331014)
  • ترمینال: لغو تایم‌اوت غیرضروری تله‌متری هنگام دفع (PR #333963)
  • رفع: نشت حافظه در دفع پنجره فریم انیمیشن (PR #338263)
  • رفع: نشت حافظه در دفع شرکت‌کننده گفتگو (PR #338230)
  • رفع: نشت حافظه در دفع سند سفارشی (PR #338250)
  • رفع: نشت حافظه در دفع ارائه‌دهنده ویرایش نگاشت‌شده (PR #338245)
  • رفع: نشت حافظه در تله‌متری میزبان افزونه (PR #334096)
  • رفع: نشت حافظه در اندازه‌گیری‌های فونت پنجره کمکی (PR #338255)
  • رفع: نشت حافظه در دستورات آرتیفکت SCM (PR #338251)
  • رفع: نشت حافظه در دفع پنجره نسبت پیکسل (PR #338257)
  • رفع: نشت حافظه در دسته‌های عنصر مرورگر یکپارچه (PR #338247)
  • رفع: نشت حافظه در نوارهای پیمایش افقی ترمینال (PR #338241)
  • رفع: نشت حافظه در دفع نمای درختی میزبان افزونه (PR #338235)
  • رفع: نشت حافظه در ثبت‌های کشیدن و رها کردن ترکیبی (PR #338215)
  • رفع: نشت حافظه در نشست‌های بازرس مرورگر یکپارچه (PR #338228)
  • رفع: نشت حافظه در chatInputPart (PR #327157)
  • رفع: نشت حافظه در جریانات اجرای شل ترمینال (PR #338243)
  • رفع: نشت حافظه در دستورات نوار وضعیت سلول نوت‌بوک (PR #336028)
  • رفع: نشت حافظه در issueReporterModel (PR #335098)
  • رفع: نشت حافظه در ویرایشگر گردونه تصویر (PR #333981)
  • رفع: نشت حافظه در دفع سریال‌ساز نوت‌بوک (PR #338212)
  • رفع: نشت حافظه در MainThreadShare (PR #334110)
  • رفع: نشت حافظه در تب‌های ویرایشگر اختلاف چندگانه (PR #333186)
  • رفع: نشت حافظه در دفع ناظر تست (PR #338213)
  • رفع: نشت حافظه در modalEditorPart (PR #326885)
  • رفع: نشت حافظه در دفع رشته نظرات (PR #338216)
  • رفع: نشت حافظه در افزونه رویداد داده خط (PR #332139)
  • رفع: نشت حافظه در منوهای منبع کرنل نوت‌بوک (PR #338218)
  • @soreavis: JSON - پشتیبانی از ${workspaceFolder} در الگوهای fileMatch فایل json.schemas (PR #326706)
  • @yuezhang030: افزودن پرامپت vscModelF (PR #338809)

Issue tracking

مشارکت‌ها در ردیابی مسائل ما:

  • @gjsjohnmurray (جان مری)
  • @RedCMD (RedCMD)
  • @IllusionMH (آندری دییف)
  • @albertosantini (آلبرتو سانتینی)

ما واقعاً از کاربرانی که به محض آماده شدن قابلیت‌های جدید ما آن‌ها را امتحان می‌کنند قدردانی می‌کنیم، بنابراین مرتباً به اینجا سر بزنید و از ویژگی‌های جدید مطلع شوید.

اگر می‌خواهید یادداشت‌های انتشار نسخه‌های قبلی VS Code را بخوانید، به بخش Updates/updates) در سایت code.visualstudio.com مراجعه کنید.

نظر مهندس بهمن آبادی: نسخه 1.141 نشان‌دهنده بلوغ جدی VS Code در مدیریت هوش مصنوعی است؛ انتقال از ابزارهای کمکی مجزا به یک اکوسیستم ایزوله، چندپلتفرمی و امن (Sandboxed) با کنترل‌های دقیق سازمانی، توسعه‌دهندگان را قادر می‌سازد تا با خیال راحت‌تر وظایف پیچیده را به عامل‌های خودکار بسپارند. در کنار این قابلیت‌ها، رفع ده‌ها مورد نشت حافظه (Memory Leak) نشان می‌دهد که تیم توسعه در کنار افزودن ویژگی‌های پر زرق‌وبرق، پایداری و عملکرد هسته ویرایشگر را برای پروژه‌های سنگین سازمانی در اولویت قرار داده است.

منبع: https://code.visualstudio.com/updates/v1_141/