[ImgBot] Optimize images#1
Open
imgbot[bot] wants to merge 781 commits into
Open
Conversation
Add an optional `supportsVision` flag to `IByokLmModelInfo` so the renderer BYOK handler can report whether a model accepts image inputs, derived from the language model's `capabilities.vision` metadata. Consumers can then surface the capability instead of assuming `false`. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Rework `ByokLmBridgeRegistry` from a single "most recently active" connection to a serving-window model that tolerates multiple connected renderers. BYOK models are a property of the user's installed extensions, not of a particular window, so every window that registers the handler (the main workbench and the Agents app) exposes the same set and either can serve. The registry now: - enumerates each connection on register and on `onDidChangeModels`, caching its models so reads are synchronous; - treats a connection as "serving" once its `listModels()` resolves, and skips non-serving windows (those that connected without binding the BYOK handler, whose enumeration rejects); - prefers a serving window that actually has models so a still-starting window answering empty cannot shadow a populated peer; - fires `onDidChangeModels` when the serving model set changes. Consumers are updated to the new API: `CopilotAgent` republishes from the cached union (dropping its own enumeration/retry bookkeeping), `ByokLmProxyService` routes inference to `getServingConnection()` after validating the request, and `resolveByokSessionConfig` aggregates models via `listModels()` and degrades gracefully if the loopback proxy fails to start. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…out a handler Register `IAgentHostByokLmHandler` in the Agents app chat contribution, mirroring the main workbench. The Agents app runs a full extension host whose LM API holds the user's BYOK models, so it can serve BYOK back to the node host — necessary when it is the only window connected. Harden the renderer reverse-RPC channel registration so a window that connects without binding the handler still comes up: wrap the BYOK channel registration in a try/catch that logs a warning instead of aborting `_connect` (which would cost the window its agent host). Thread `ILogService` through `registerAgentHostClientChannels` for the warning and add regression coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…soft#323630) * sessions: keyboard shortcuts for chat actions within a session Add keyboard navigation and quick pickers for the chats inside an Agents window session: - Ctrl/Cmd+Shift+] / [ to go to the next/previous chat tab (positional) - Ctrl/Cmd+W to close the active chat tab (deletes a draft, hides a committed chat) instead of the session, when the active chat is closeable - Ctrl+Tab / Ctrl+Shift+Tab as an editor-switcher (MRU) chat switcher over open chats (no input, hold-cycle-release), gated above the session-history secondary on that chord and falling back to session navigation otherwise - Ctrl/Cmd+Shift+O (and the 'Go to Chat in Session' palette command) opens a searchable picker listing Open and Closed chats; selecting a closed chat reopens it Each chat row shows a chat icon, untitled drafts are skipped, and the tab order is exposed as a reactive IActiveSession.visibleChatTabs observable (implemented in VisibleSession) instead of a standalone helper. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * sessions: contribute chat tab close button via a menu Introduce Menus.SessionChatTab and contribute the close-chat command (sessions.chatCompositeBar.closeChat) to it, so the chat tab strip renders each non-main tab's close button from the menu (forwarding the tab's chat as the action argument) instead of a hand-rolled action bar. The same command keeps the Ctrl/Cmd+W keybinding for the active chat. The active-chat precondition is moved to the keybinding's when-clause so the per-tab menu button is not disabled based on which chat is active. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * sessions: address PR review feedback on chat navigation - Compare chat/main-chat URIs via IUriIdentityService.extUri.isEqual (and isEqual in sessionContextKeys) instead of URI.toString(), matching the rest of the sessions navigation stack (openChat) and avoiding path-casing/encoding pitfalls. - Include in-composer drafts in the Ctrl+Tab MRU switcher so its switchable set matches its SessionHasMultipleOpenChatsContext gate: a session with one committed open chat plus a draft now offers a useful two-entry switch instead of winning the chord with a single item. The searchable palette flow still skips drafts and lists closed chats. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * sessions: fix chatCompositeBar fixture missing visibleChatTabs The component fixture's mock IActiveSession did not implement the new visibleChatTabs observable, so ChatCompositeBar.setSession crashed while reading it. Provide visibleChatTabs in the mock so the fixtures render again. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…t#323615) * policy: let native MDM win over server for managed settings Flip the managed-settings precedence so native MDM takes priority over the GitHub server endpoint. selectManagedSettings now resolves native MDM first, then server, then the on-disk file, and the Policy Diagnostics report lists the channels in that same precedence order. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * policy: update accountPolicyService tests, comment, and docs for MDM precedence Flip the AccountPolicyService precedence unit tests so native MDM wins over the server channel, fix the stale getPolicyData() comment, and update the add-policy skill docs to describe native MDM > server > file. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * policy: reorder selectManagedSettings params to match precedence Address PR review: make the parameter order (nativeMdm, server, file) match the resolution precedence so same-typed call sites are self-documenting and harder to transpose. Update both call sites, the unit tests, and the skill docs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…icrosoft#323628) * Migrate `chat.sendElementsToChat.attachImages` to browser settings * Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Fix background browser screenshots on Mac * feedback
* Add Responses API cache control markers * Refactoring code * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Gate Responses API cache breakpoints by model support * Disable Responses API reasoning summaries * reverting cache commits * Remove Responses API cache breakpoint handling --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Fix potential memory leak in terminal link hover * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Leave comment about osc 8 hovers * Handle OSC 8 terminal hover cleanup --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Anthony Kim <anthonykim@microsoft.com>
Preserve workspace context as a hidden workspace variable when Agent Host session history is restored. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chat: avoid layout shift when switching sessions Publish every fresh dynamic row measurement to the delegate cache so chat can size the last response correctly before the initial ResizeObserver report. Preserve the deferred initial height-change behavior and avoid any additional DOM measurement.\n\n(Written by Copilot)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * list: publish only valid dynamic heights Cover delegate-provided dynamic heights and centralize publication so all fresh probe paths update caches while zero heights remain excluded.\n\n(Written by Copilot)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…soft#323613) * Tidy Copilot managed-settings structured table for consistency Give every STRUCTURED_MANAGED_SETTINGS row a named encode* helper (encodeObject, encodeArray, encodeExtraMarketplaces) co-located with the existing encodeStringMap, instead of mixing inline lambdas with named refs. This keeps the central deserialization/mapping table uniform and easy to extend. No behavior change. base/common/managedSettings.ts stays the shared base-layer module (consumed by both the policy layer and chat plugin code), and IStrictMarketplaceSource is retained. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Harden extraKnownMarketplacesToConfigDict against prototype pollution Marketplace names arrive from managed settings (untrusted input) and are written as object keys, so skip __proto__/constructor/prototype keys, mirroring the guard already present in the managed-settings string-map encoder. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Centralize the default-model managed-settings value callback The model managed setting was the only managed-settings-driven control whose policy value callback was hand-rolled inline in chat.shared.contribution.ts (pass-through + trim + empty->undefined), while enabledPlugins / extraMarketplaces / strictMarketplaces all use the shared managedSettingValue() helper. Add a memoized managedModelValue() helper in copilotManagedSettings.ts that holds the model-specific trim/empty normalization, and wire the policy with value: managedModelValue() so every managed-settings control is declared the same way and the model normalization lives with the rest of the managed-settings logic. No behavior change. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Rename capi-oauth secret to capi-oauth-pipeline-token The capi-oauth Key Vault secret value leaked. Rename the secret reference to capi-oauth-pipeline-token so that revoking the old capi-oauth secret cuts off access for any other harness still pointing at the old name. The new name is also more descriptive of its purpose (CAPI OAuth token used in the automation pipeline). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…sent (microsoft#323671) * Agents - select the first available changeset when default is not present * Pull request feedback
…d-progress-ahp Show progress while downloading agent SDK binaries
* AH: fix subagent rendering and tools not attaching * address comments
…l for improved performance (microsoft#323677) * refactor: streamline agent, rule, and skill discovery with Promise.all for improved performance * refactor: remove unused import for raceCancellation in sessionCustomizationDiscovery
…soft#323683) Previously only the Fix Checks button was hidden after requesting a CI fix for the current PR head commit; the banner stayed visible with the Reveal Checks action. Now the whole CI input banner is hidden until a new commit lands on the PR. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…t#323686) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…rove layout consistency Co-authored-by: Copilot <copilot@github.com>
[cherry-pick] Skip for now the sanity checks
* Agent Host changes for agents/fix-onboarding-tour-button-wrap * Fix onboarding tour button wrap and accessibility issues * Fix stray character causing compile error in chatAccessibilityProvider Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…verError completion
Verified end-to-end on an rt=1 enterprise account: rt/tid resolved from the minted CAPI Copilot token, endpoint routed to the enterprise host, request.options.tools emitted to the enhanced iKey and accepted (HTTP 200). Reverts the emit log to trace and drops the rt-debug/POST-accepted diagnostics.
Keeps a normal, non-technical info log of the restricted/enhanced telemetry opt-in state (no rt value).
…icrosoft#324103) * chat: show "Starting MCP servers…" hint for slow agent-host startup When a new agent-host turn begins and one or more MCP servers stay in the `starting` state past a short grace period (5s) without any content arriving from the host, surface a lightweight progress hint listing the servers still starting. The hint is observable-backed: it updates as servers finish and hides itself once every server has started, content starts being received, or the turn ends — whichever happens first. There is no interactive affordance (no "Skip"). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
agentHost: emit enhanced GH request.options.tools telemetry
…oft#324120) * Support local folder paths in Install Plugin from Source "Install Plugin from Source" now accepts local folder paths (file:// URIs, absolute paths, and ~-prefixed paths) in addition to GitHub shorthand and git URLs. Local folders are inspected to route them to the right setting: a marketplace (has marketplace.json) is registered under chat.plugins.marketplaces, while a standalone plugin (has a single-plugin manifest) is registered under chat.pluginLocations. Also consolidates installPluginFromSource and installPluginFromValidatedSource into a single result-returning installPluginFromSource; callers now surface source-level error messages themselves. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Address review: verify trust before persisting local marketplace Declining the trust prompt for a local folder that is a marketplace no longer persists it under chat.plugins.marketplaces; the trust check now runs before config is written, mirroring the git path. Also fixes a chat.plugins.marketplaces doc typo in AGENTS_PLUGINS.md. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…-failing-unit-test-fix Enable provider-level ZDR for OpenAI BYOK and surface Responses API stream errors as terminal failures
…o-commit-5b10bb5 Update distro commit to 5b10bb5b3d400cf801a343ebe7ed2e9835df5ab4
…microsoft#324129) Refine how VS Code-configured MCP servers reach the agent host: - resolveCustomizationRefs now excludes workspace-discovered MCP servers by default, since the agent host discovers workspace `.mcp.json` itself (via enableConfigDiscovery). The exception is `.vscode/mcp.json`, which the SDK does not discover: those servers are synced explicitly, but only when their config resolves without user interaction. Resolution uses IConfigurationResolverService.resolveAsync + ConfigurationResolverExpression and skips servers that reference interactive variables (${input:…}, ${command:…}) or fail to resolve. - Enable `enableConfigDiscovery` when creating/resuming Copilot agent-host sessions so the host discovers workspace `.mcp.json` on its own. - Move MCP_CONFIGURATION_COLLECTION_ID_PREFIX and add McpCollectionDefinition.isWorkspaceDiscovered / isVscodeMcpJson helpers to mcpTypes so the collection-classification logic lives in one place. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Bump @anthropic-ai/claude-agent-sdk to 0.3.198 Bumps the pinned Claude agent SDK from 0.3.187 to 0.3.198 following build/agent-sdk/README.md: updates the exact version in the build agent-sdk pin and its lockfile, plus the matching root devDependency types pin and root lockfile so shipped types and the build-time pin stay in lockstep. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * Implement Query.reinitialize in test fakes 0.3.198 adds reinitialize() to the SDK's Query interface. Add the matching stub to the three test doubles that implement Query (FakeQuery, RoundTripQuery, ImmediatelyDoneQuery), following each file's existing "not modeled" pattern. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…-unit-test-failure-fix Don't crash BYOK/custom models when the response hits the length limit
* Gate Responses API prompt cache breakpoints * updating prompts for gpt5
* fix mismatched spinners in chat * Address PR feedback: use DOM.EventType.ANIMATION_START and skip non-keyframe animations Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update distro commit to a78eb828 Co-authored-by: vs-code-engineering[bot] <122617954+vs-code-engineering[bot]@users.noreply.github.com>
* Remove the system-wide keybindings first-run dialog The first-run notice could appear in multiple windows at once on startup, and the single-window election meant to prevent that was racy across concurrently syncing renderers. Rather than harden the election, remove the dialog entirely: the feature is always on and users who opt a keybinding into "systemWide" know what they are doing. This deletes the whole notice path, which existed only to serve the dialog: - renderer: drop the first-run notification, the acknowledged-storage gate, and the IDialogService/IStorageService deps; sync() now just warns about ignored when-clauses and pushes to the main process. - main process: drop the elected-window bookkeeping so INativeSystemWideKeybindingResult only reports failures. - update the systemWide keybindings.json schema description and drop the now-obsolete election unit tests. Global registration and trigger routing are unchanged. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Add a specification doc for system-wide keybindings Co-locate an architecture/spec document next to the renderer contribution so future work has the full feature context (user contract, renderer<->main-process flow, the systemWide flag plumbing, design rationale, tests, and gotchas). Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
microsoft#324179) fix: update scrollbar and minimap slider colors for better visibility Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
…nd light themes (microsoft#324183) fix: update placeholder foreground colors in input fields for dark and light themes Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
The chat list rows span the full viewport width while the item container is centered with a max-width, leaving gutters on either side. The base list stylesheet sets cursor: pointer on rows, so the gutters showed a pointer cursor even though the item container uses cursor: default. Force default cursor on chat list rows so the gutters match. Fixes microsoft#324173 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
*Total -- 2,169.19kb -> 2,088.26kb (3.73%) /src/vs/workbench/contrib/editTelemetry/common/arcTracker.dio.svg -- 27.55kb -> 19.09kb (30.7%) /.github/instructions/resources/notebook/viewport-rendering.drawio.svg -- 43.94kb -> 32.45kb (26.15%) /.github/instructions/resources/interactive/interactive.model.resolution.drawio.svg -- 29.63kb -> 21.97kb (25.85%) /extensions/media-preview/media/loading.svg -- 1.12kb -> 0.83kb (25.44%) /src/vs/workbench/contrib/extensions/browser/media/loading.svg -- 1.12kb -> 0.83kb (25.44%) /extensions/media-preview/media/loading-hc.svg -- 1.14kb -> 0.85kb (25.17%) /src/vs/workbench/contrib/extensions/browser/media/loading-hc.svg -- 1.14kb -> 0.85kb (25.17%) /extensions/media-preview/media/loading-dark.svg -- 1.14kb -> 0.85kb (25.11%) /src/vs/workbench/contrib/extensions/browser/media/loading-dark.svg -- 1.14kb -> 0.85kb (25.11%) /.github/instructions/resources/interactive/interactive.editor.drawio.svg -- 29.69kb -> 22.79kb (23.24%) /.github/instructions/resources/interactive/interactive.eh.drawio.svg -- 24.89kb -> 19.82kb (20.36%) /.github/instructions/resources/notebook/hybrid-find.drawio.svg -- 58.71kb -> 51.98kb (11.47%) /.github/instructions/resources/notebook/cell-resize-above-viewport.drawio.svg -- 133.40kb -> 120.31kb (9.82%) /src/vs/workbench/contrib/welcomeOnboarding/browser/media/theme-preview-hc-dark.svg -- 1.37kb -> 1.27kb (7.62%) /extensions/git/resources/icons/light/status-renamed.svg -- 0.42kb -> 0.39kb (7.42%) /extensions/git/resources/icons/dark/status-renamed.svg -- 0.42kb -> 0.39kb (7.42%) /extensions/typescript-language-features/resources/walkthroughs/learn-more.svg -- 16.06kb -> 14.91kb (7.15%) /src/vs/workbench/contrib/welcomeOnboarding/browser/media/theme-preview-hc-light.svg -- 1.37kb -> 1.27kb (7.12%) /extensions/git/resources/icons/light/status-type-changed.svg -- 0.42kb -> 0.39kb (6.94%) /extensions/git/resources/icons/dark/status-type-changed.svg -- 0.42kb -> 0.39kb (6.94%) /src/vs/workbench/contrib/welcomeOnboarding/browser/media/theme-preview-light-2026.svg -- 1.37kb -> 1.28kb (6.77%) /extensions/git/resources/icons/light/status-modified.svg -- 0.42kb -> 0.39kb (6.73%) /extensions/git/resources/icons/light/status-copied.svg -- 0.42kb -> 0.39kb (6.73%) /extensions/git/resources/icons/light/status-ignored.svg -- 0.42kb -> 0.39kb (6.73%) /extensions/git/resources/icons/dark/status-conflict.svg -- 0.42kb -> 0.39kb (6.73%) /extensions/git/resources/icons/light/status-untracked.svg -- 0.42kb -> 0.39kb (6.73%) /extensions/git/resources/icons/dark/status-deleted.svg -- 0.42kb -> 0.39kb (6.73%) /extensions/git/resources/icons/dark/status-ignored.svg -- 0.42kb -> 0.39kb (6.73%) /extensions/git/resources/icons/dark/status-added.svg -- 0.42kb -> 0.39kb (6.73%) /extensions/git/resources/icons/dark/status-modified.svg -- 0.42kb -> 0.39kb (6.73%) /extensions/git/resources/icons/light/status-conflict.svg -- 0.42kb -> 0.39kb (6.73%) /extensions/git/resources/icons/dark/status-copied.svg -- 0.42kb -> 0.39kb (6.73%) /extensions/git/resources/icons/light/status-deleted.svg -- 0.42kb -> 0.39kb (6.73%) /extensions/git/resources/icons/light/status-added.svg -- 0.42kb -> 0.39kb (6.73%) /src/vs/workbench/contrib/welcomeOnboarding/browser/media/theme-preview-dark-2026.svg -- 1.37kb -> 1.28kb (6.34%) /src/vs/workbench/contrib/welcomeOnboarding/browser/media/theme-preview-solarized-dark.svg -- 1.37kb -> 1.28kb (6.34%) /src/vs/workbench/contrib/welcomeOnboarding/browser/media/theme-preview-solarized-light.svg -- 1.37kb -> 1.28kb (6.34%) /extensions/typescript-language-features/resources/walkthroughs/debug-and-run.svg -- 27.11kb -> 26.18kb (3.43%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/settingsSync.svg -- 15.75kb -> 15.30kb (2.88%) /extensions/typescript-language-features/resources/walkthroughs/create-a-js-file.svg -- 10.78kb -> 10.49kb (2.7%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/ai-powered-suggestions.svg -- 69.17kb -> 67.31kb (2.69%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/menuBar.svg -- 9.07kb -> 8.83kb (2.68%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/multi-file-edits.svg -- 335.42kb -> 327.45kb (2.38%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/customize-ai.svg -- 85.31kb -> 83.46kb (2.17%) /extensions/copilot/assets/debug-icon.svg -- 2.47kb -> 2.42kb (1.82%) /extensions/typescript-language-features/resources/walkthroughs/install-node-js.svg -- 35.54kb -> 34.90kb (1.79%) /src/vs/sessions/browser/media/sessions-icon.svg -- 2.07kb -> 2.04kb (1.42%) /src/vs/sessions/browser/media/vscode-icon.svg -- 5.05kb -> 4.98kb (1.37%) /extensions/theme-defaults/fileicons/images/document-dark.svg -- 0.27kb -> 0.27kb (1.08%) /extensions/theme-defaults/fileicons/images/document-light.svg -- 0.27kb -> 0.27kb (1.08%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/learn.svg -- 39.23kb -> 38.83kb (1.02%) /extensions/simple-browser/media/preview-light.svg -- 0.30kb -> 0.30kb (0.96%) /extensions/simple-browser/media/preview-dark.svg -- 0.30kb -> 0.30kb (0.96%) /extensions/markdown-language-features/media/preview-light.svg -- 0.30kb -> 0.30kb (0.96%) /extensions/markdown-language-features/media/preview-dark.svg -- 0.30kb -> 0.30kb (0.96%) /src/vs/editor/standalone/browser/iPadShowKeyboard/keyboard-light.svg -- 1.16kb -> 1.15kb (0.93%) /src/vs/editor/standalone/browser/iPadShowKeyboard/keyboard-dark.svg -- 1.16kb -> 1.15kb (0.93%) /extensions/npm/images/code.svg -- 0.42kb -> 0.42kb (0.92%) /extensions/theme-defaults/fileicons/images/folder-open-dark.svg -- 0.48kb -> 0.48kb (0.81%) /extensions/theme-defaults/fileicons/images/folder-open-light.svg -- 0.48kb -> 0.48kb (0.81%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/commandPalette.svg -- 9.42kb -> 9.35kb (0.8%) /extensions/search-result/src/media/refresh-light.svg -- 0.57kb -> 0.57kb (0.68%) /extensions/search-result/src/media/refresh-dark.svg -- 0.57kb -> 0.57kb (0.68%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/extensions-web.svg -- 155.73kb -> 154.79kb (0.61%) /src/vs/workbench/contrib/chat/browser/chatSetup/media/google.svg -- 1.02kb -> 1.02kb (0.57%) /extensions/theme-defaults/fileicons/images/root-folder-open-light.svg -- 0.91kb -> 0.90kb (0.54%) /extensions/theme-defaults/fileicons/images/root-folder-open-dark.svg -- 0.91kb -> 0.90kb (0.54%) /extensions/theme-defaults/fileicons/images/folder-light.svg -- 0.60kb -> 0.60kb (0.49%) /extensions/theme-defaults/fileicons/images/folder-dark.svg -- 0.60kb -> 0.60kb (0.49%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/languages.svg -- 73.58kb -> 73.23kb (0.47%) /extensions/theme-defaults/fileicons/images/root-folder-dark.svg -- 1.04kb -> 1.03kb (0.47%) /extensions/theme-defaults/fileicons/images/root-folder-light.svg -- 1.04kb -> 1.03kb (0.47%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/shortcuts.svg -- 42.35kb -> 42.15kb (0.47%) /src/vs/workbench/contrib/chat/browser/chatSetup/media/apple-dark.svg -- 1.00kb -> 1.00kb (0.39%) /src/vs/workbench/contrib/chat/browser/chatSetup/media/apple-light.svg -- 1.00kb -> 1.00kb (0.39%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/runTask.svg -- 16.89kb -> 16.82kb (0.39%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/openFolder.svg -- 31.73kb -> 31.61kb (0.37%) /src/vs/workbench/browser/parts/editor/media/letterpress-light.svg -- 1.09kb -> 1.09kb (0.36%) /src/vs/workbench/browser/parts/editor/media/letterpress-dark.svg -- 1.09kb -> 1.09kb (0.36%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/profiles.svg -- 12.98kb -> 12.94kb (0.35%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/workspaceTrust.svg -- 25.10kb -> 25.03kb (0.28%) /src/vs/workbench/browser/parts/editor/media/letterpress-hcDark.svg -- 1.11kb -> 1.10kb (0.27%) /src/vs/workbench/browser/parts/editor/media/letterpress-hcLight.svg -- 1.11kb -> 1.10kb (0.27%) /src/vs/sessions/browser/media/sessions-logo-light.svg -- 2.33kb -> 2.32kb (0.25%) /src/vs/sessions/contrib/chat/browser/media/letterpress-sessions-light.svg -- 2.33kb -> 2.32kb (0.25%) /src/vs/sessions/contrib/chat/browser/media/letterpress-sessions-dark.svg -- 2.33kb -> 2.32kb (0.25%) /src/vs/sessions/browser/media/sessions-logo-dark.svg -- 2.35kb -> 2.34kb (0.25%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/search.svg -- 26.92kb -> 26.86kb (0.24%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/debug.svg -- 63.05kb -> 62.92kb (0.21%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/git.svg -- 73.47kb -> 73.35kb (0.17%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/extensions.svg -- 423.80kb -> 423.37kb (0.1%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/settings.svg -- 58.54kb -> 58.49kb (0.09%) /src/vs/workbench/contrib/welcomeGettingStarted/common/media/terminal.svg -- 104.16kb -> 104.12kb (0.04%) Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Beep boop. Your images are optimized!
Your image file size has been reduced 🎉
Details
📝 docs |
repo | 🙋🏾 issues | 🏪 marketplace
~Imgbot - Part of Optimole family