Compare commits

...

9 Commits

Author SHA1 Message Date
Baptiste Augrain
22d1929f41 fix(1.104.3): update patch (#2532) 2025-10-04 16:21:56 +02:00
jermanuts
6264d064e4 i18n: add arabic translation .desktop (#2520) 2025-10-04 15:39:37 +02:00
Ryan Brue
ac024726a3 docs(telemetry): fix a small typo (#2528) 2025-09-29 22:09:07 +02:00
Baptiste Augrain
e3c3b6fdf7 build(stable): update to commit e3a5acf 2025-09-25 18:27:53 +00:00
Baptiste Augrain
fbdc680c69 build(stable): update to commit 0f0d87f 2025-09-18 18:26:28 +00:00
Baptiste Augrain
dd8511cc6b feat: set update.mode to none when updates are disabled (#2507) 2025-09-12 13:02:55 +02:00
Tiagoquix
f6b143dbd6 docs: improve telemetry page (#2504) 2025-09-12 12:27:22 +02:00
Baptiste Augrain
cde9fd233a fix: gallery (#2506) 2025-09-12 12:18:47 +02:00
Baptiste Augrain
284d83b24e fix: update api proposals [skip ci] 2025-09-12 11:16:02 +02:00
9 changed files with 128 additions and 82 deletions

View File

@@ -1,41 +1,54 @@
<!-- order: 10 -->
# Getting all the Telemetry Out
# Getiing all telemetry out
This page explains how VSCodium handles telemetry and how to ensure your privacy.
This page explains how VSCodium handles telemetry and how it enhances your privacy.
## Table of Contents
## Table of contents
- [Telemetry in VSCodium](#telemetry)
- [Replacements to Microsoft Online Services](#replacements)
- [Checking for Telemetry](#checking)
- [Additional Privacy Settings](#additional-settings)
- [VSCodium Announcements](#announcements)
- [Malicious & Deprecated Extensions](#malicious-extensions)
- [Checking for telemetry](#checking)
- [VSCodium announcements](#announcements)
- [Malicious & deprecated extensions](#malicious-extensions)
## <a id="telemetry"></a>Telemetry in VSCodium
Even though we do not pass the telemetry build flags (and go out of our way to cripple the baked-in telemetry), Microsoft will still track usage by default.
Even though we do not pass the telemetry build flags and go out of our way to cripple the baked-in telemetry, Microsoft still can track usage by default depending on your settings.
We do however set the default `telemetry.enableTelemetry` and `telemetry.enableCrashReporter` values to `false`. You can see those by viewing your VSCodium `settings.json` and searching for `telemetry`.
We disable all the following telemetry-related settings by default to enhance your privacy:
```
telemetry.telemetryLevel
telemetry.enableCrashReporter
telemetry.enableTelemetry
telemetry.editStats.enabled
workbench.enableExperiments
workbench.settings.enableNaturalLanguageSearch
workbench.commandPalette.experimental.enableNaturalLanguageSearch
```
It is also recommended that you review all the settings that "use online services" by following [these instructions](https://code.visualstudio.com/docs/getstarted/telemetry#_managing-online-services). You can use the search filter `@tag:usesOnlineServices` to show such settings and review what to change.
It is also highly recommended that you review all the settings that "use online services" by following [these instructions](https://code.visualstudio.com/docs/getstarted/telemetry#_managing-online-services). The `@tag:usesOnlineServices` filter on the settings page will show that by default:
*Note: on Linux, the app update service (extensions are not affected) is disabled completely even if the `update.mode` preference is configured.*
- Extensions auto check for updates and auto install updates
- Searches within the app are sent to an online service for "natural language processing"
- Updates to the app are fetched in the background
__Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.__ _(For example, the C# extension `ms-vscode.csharp` sends tracking data to Microsoft.)_ Be sure to check each extension's settings page to disable its telemetry if applicable.
These can all be disabled.
### Update services
The app periodically fetches connections to check for the latest version and download it to install.
__Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.__ _(For example, the C# extension `ms-vscode.csharp` sends tracking data to Microsoft.)_
If you want to prevent such behavior, modify the following preferences:
- `update.mode` -> `manual` (or `none`)
- `update.enableWindowsBackgroundUpdates` -> `false` (only applicable for Microsoft Windows)
### Feedback telemetry
By default, we keep the preference `telemetry.feedback.enabled` enabled. It's used to allow the button `Report Issue...` to be used on the app depending on the context. It does not send any data by having it enabled (other options already cover it). If you want, you can disable this behavior by toggling the preference value.
## <a id="replacements"></a>Replacements to Microsoft Online Services
When searching the `@tag:usesOnlineServices` filter, note that while the "Update: Mode" setting description still says "The updates are fetched from a Microsoft online service", VSCodium's build script [sets the `updateUrl` field](https://github.com/VSCodium/vscodium/blob/master/prepare_vscode.sh#L135) in `product.json` directly to the GitHub page, so enabling that setting won't actually result in any calls to Microsoft online service.
When searching the `@tag:usesOnlineServices` filter, note that while the "Update: Mode" setting description still says "The updates are fetched from a Microsoft online service", VSCodium's build script [sets the `updateUrl` field](https://github.com/VSCodium/vscodium/blob/8cc366bb76d6c0ddb64374f9530b42094646a660/prepare_vscode.sh#L132-L133) in `product.json` directly to the GitHub page, so enabling that setting won't actually result in any calls to the Microsoft online service.
Likewise, while the descriptions for "Extensions: Auto Check Updates" and "Extensions: Auto Update" include the same phrase, VSCodium [replaces](https://github.com/VSCodium/vscodium/blob/master/prepare_vscode.sh#L121) the Visual Studio Marketplace with Open VSX, so these settings won't call Microsoft, either.
Likewise, while the descriptions for "Extensions: Auto Check Updates" and "Extensions: Auto Update" include the same phrase, VSCodium [replaces](https://github.com/VSCodium/vscodium/blob/8cc366bb76d6c0ddb64374f9530b42094646a660/prepare_vscode.sh#L119) the Visual Studio Marketplace with Open VSX, so these settings won't call Microsoft either.
## <a id="checking"></a>Checking for Telemetry
## <a id="checking"></a>Checking for telemetry
If you want to verify that no telemetry is being sent, you can use network monitoring tools like:
@@ -45,34 +58,16 @@ If you want to verify that no telemetry is being sent, you can use network monit
Look for connections to Microsoft domains and telemetry endpoints.
## <a id="additional-settings"></a>Additional Privacy Settings
## <a id="announcements"></a>VSCodium anouncements
For maximum privacy, you can add these settings to your `settings.json`:
The welcome page in VSCodium displays announcements that are fetched via the internet from the project's GitHub repository.
```json
{
"telemetry.enableTelemetry": false,
"telemetry.enableCrashReporter": false,
"telemetry.feedback.enabled": false,
"update.enableWindowsBackgroundUpdates": false,
"update.mode": "manual",
"workbench.enableExperiments": false,
"workbench.settings.enableNaturalLanguageSearch": false
}
```
If you prefer to disable this feature, you can disable the preference `workbench.welcomePage.extraAnnouncements`.
These settings will disable various telemetry and tracking features.
## <a id="announcements"></a>VSCodium Announcements
The Welcome page in VSCodium displays announcements that are fetched from the project's GitHub repository.
If you prefer to disable this feature, you can set the `workbench.welcomePage.extraAnnouncements` setting to `false` in your `settings.json`.
## <a id="malicious-extensions"></a>Malicious & Deprecated Extensions
## <a id="malicious-extensions"></a>Malicious & deprecated extensions
The definitions for malicious and deprecated extensions are dynamically loaded from the following URL:
https://raw.githubusercontent.com/EclipseFdn/publish-extensions/refs/heads/master/extension-control/extensions.json.
https://raw.githubusercontent.com/EclipseFdn/publish-extensions/refs/heads/master/extension-control/extensions.json
If you prefer to avoid any external connections, you can set the`extensions.excludeUnsafes` setting to `false` in your `settings.json`.
If you prefer to avoid any external connections, you can disable the preference `extensions.excludeUnsafes`.
However, this is not recommended as it may reduce the safety of your environment.

View File

@@ -0,0 +1,9 @@
diff --git a/src/vs/platform/update/common/update.config.contribution.ts b/src/vs/platform/update/common/update.config.contribution.ts
index d96926b..43f5d90 100644
--- a/src/vs/platform/update/common/update.config.contribution.ts
+++ b/src/vs/platform/update/common/update.config.contribution.ts
@@ -20,3 +20,3 @@ configurationRegistry.registerConfiguration({
enum: ['none', 'manual', 'start', 'default'],
- default: 'default',
+ default: 'none',
scope: ConfigurationScope.APPLICATION,

View File

@@ -31,22 +31,11 @@ index deba4c4..1b41bde 100644
+ resolveUserProduct();
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index 5a6c171..0cb5e20 100644
index 5a6c171..275cbcf 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -31,2 +31,36 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
@@ -31,2 +31,25 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
+ const { serviceUrl, controlUrl, extensionUrlTemplate, resourceUrlTemplate } = product.extensionsGallery || {};
+
+ Object.assign(product, {
+ extensionsGallery: {
+ serviceUrl: env['VSCODE_GALLERY_SERVICE_URL'] || serviceUrl,
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
+ extensionUrlTemplate: env['VSCODE_GALLERY_EXTENSION_URL_TEMPLATE'] || extensionUrlTemplate,
+ resourceUrlTemplate: env['VSCODE_GALLERY_RESOURCE_URL_TEMPLATE'] || resourceUrlTemplate,
+ }
+ });
+
+ // Merge user-customized product.json
+ try {
+ const merge = (...objects: any[]) =>

42
patches/fix-gallery.patch Normal file
View File

@@ -0,0 +1,42 @@
diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts
index 3954823..f8026cd 100644
--- a/src/vs/base/common/product.ts
+++ b/src/vs/base/common/product.ts
@@ -112,2 +112,4 @@ export interface IProductConfiguration {
readonly accessSKUs?: string[];
+ readonly itemUrl: string;
+ readonly latestUrlTemplate?: string;
};
diff --git a/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts b/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts
index 658219e..d1bf7a9 100644
--- a/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts
+++ b/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts
@@ -19,2 +19,3 @@ type ExtensionGalleryConfig = {
readonly nlsBaseUrl: string;
+ readonly latestUrlTemplate?: string;
};
@@ -49,3 +50,3 @@ export class ExtensionGalleryManifestService extends Disposable implements IExte
{
- id: `${extensionsGallery.serviceUrl}/vscode/{publisher}/{name}/latest`,
+ id: extensionsGallery.latestUrlTemplate ?? `${extensionsGallery.serviceUrl}/vscode/{publisher}/{name}/latest`,
type: ExtensionGalleryResourceType.ExtensionLatestVersionUri
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index 5a6c171..112b31b 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -31,2 +31,15 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
+ const { serviceUrl, controlUrl, itemUrl, latestUrlTemplate, extensionUrlTemplate, resourceUrlTemplate } = product.extensionsGallery || {};
+
+ Object.assign(product, {
+ extensionsGallery: {
+ serviceUrl: env['VSCODE_GALLERY_SERVICE_URL'] || serviceUrl,
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
+ itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl,
+ latestUrlTemplate: env['VSCODE_GALLERY_LATEST_URL_TEMPLATE'] || latestUrlTemplate,
+ extensionUrlTemplate: env['VSCODE_GALLERY_EXTENSION_URL_TEMPLATE'] || extensionUrlTemplate,
+ resourceUrlTemplate: env['VSCODE_GALLERY_RESOURCE_URL_TEMPLATE'] || resourceUrlTemplate,
+ }
+ });
+
// Running out of sources

View File

@@ -59,13 +59,13 @@ index d7b29f2..1eb07aa 100644
+ '@vscodium/policy-watcher',
'@vscode/proxy-agent',
diff --git a/package-lock.json b/package-lock.json
index 52d750a..24a462c 100644
index e4466bd..fd77ff8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,3 +18,2 @@
"@vscode/iconv-lite-umd": "0.7.0",
- "@vscode/policy-watcher": "^1.3.2",
"@vscode/proxy-agent": "^0.33.0",
"@vscode/proxy-agent": "^0.34.0",
@@ -29,2 +28,3 @@
"@vscode/windows-registry": "^1.1.0",
+ "@vscodium/policy-watcher": "^1.3.2-252465",
@@ -117,14 +117,14 @@ index 52d750a..24a462c 100644
+ },
"node_modules/@webassemblyjs/ast": {
diff --git a/package.json b/package.json
index b6ca424..97077e2 100644
index 1120460..f74589f 100644
--- a/package.json
+++ b/package.json
@@ -78,3 +78,3 @@
"@vscode/iconv-lite-umd": "0.7.0",
- "@vscode/policy-watcher": "^1.3.2",
+ "@vscodium/policy-watcher": "^1.3.2-252465",
"@vscode/proxy-agent": "^0.33.0",
"@vscode/proxy-agent": "^0.34.0",
diff --git a/src/vs/base/test/node/uri.perf.data.txt b/src/vs/base/test/node/uri.perf.data.txt
index ee0a24b..881ce36 100644
--- a/src/vs/base/test/node/uri.perf.data.txt

View File

@@ -25,6 +25,10 @@ echo "BINARY_NAME=\"${BINARY_NAME}\""
echo "GH_REPO_PATH=\"${GH_REPO_PATH}\""
echo "ORG_NAME=\"${ORG_NAME}\""
if [[ "${DISABLE_UPDATE}" == "yes" ]]; then
mv ../patches/disable-update.patch.yet ../patches/disable-update.patch
fi
for file in ../patches/*.patch; do
if [[ -f "${file}" ]]; then
apply_patch "${file}"
@@ -116,7 +120,8 @@ cp product.json{,.bak}
setpath "product" "checksumFailMoreInfoUrl" "https://go.microsoft.com/fwlink/?LinkId=828886"
setpath "product" "documentationUrl" "https://go.microsoft.com/fwlink/?LinkID=533484#vscode"
setpath_json "product" "extensionsGallery" '{"serviceUrl": "https://open-vsx.org/vscode/gallery", "itemUrl": "https://open-vsx.org/vscode/item", "extensionUrlTemplate": "https://open-vsx.org/vscode/gallery/{publisher}/{name}/latest", "controlUrl": "https://raw.githubusercontent.com/EclipseFdn/publish-extensions/refs/heads/master/extension-control/extensions.json"}'
setpath_json "product" "extensionsGallery" '{"serviceUrl": "https://open-vsx.org/vscode/gallery", "itemUrl": "https://open-vsx.org/vscode/item", "latestUrlTemplate": "https://open-vsx.org/vscode/gallery/{publisher}/{name}/latest", "controlUrl": "https://raw.githubusercontent.com/EclipseFdn/publish-extensions/refs/heads/master/extension-control/extensions.json"}'
setpath "product" "introductoryVideosUrl" "https://go.microsoft.com/fwlink/?linkid=832146"
setpath "product" "keyboardShortcutsUrlLinux" "https://go.microsoft.com/fwlink/?linkid=832144"
setpath "product" "keyboardShortcutsUrlMac" "https://go.microsoft.com/fwlink/?linkid=832143"

View File

@@ -47,8 +47,18 @@
"^https:\\/\\/github\\.com\\/[^/]+\\/[^/]+\\/(actions\\/)?workflows\\/.*badge\\.svg"
],
"extensionEnabledApiProposals": {
"ms-azuretools.vscode-containers": [
"authenticationChallenges"
],
"ms-azuretools.vscode-azureresourcegroups": [
"authenticationChallenges"
],
"ms-azuretools.vscode-azure-github-copilot": [
"authenticationChallenges"
],
"ms-azuretools.vscode-dev-azurecloudshell": [
"contribEditSessions"
"contribEditSessions",
"authenticationChallenges"
],
"ms-vscode.vscode-selfhost-test-provider": [
"testObserver",
@@ -65,7 +75,6 @@
"documentFiltersExclusive",
"fileSearchProvider",
"findTextInFiles",
"notebookCellExecutionState",
"notebookLiveShare",
"terminalDimensions",
"terminalDataWriteEvent",
@@ -212,14 +221,10 @@
"treeViewMarkdownMessage"
],
"GitHub.copilot": [
"inlineCompletionsAdditions",
"interactive",
"terminalDataWriteEvent"
"inlineCompletionsAdditions"
],
"GitHub.copilot-nightly": [
"inlineCompletionsAdditions",
"interactive",
"terminalDataWriteEvent"
"inlineCompletionsAdditions"
],
"GitHub.copilot-chat": [
"interactive",
@@ -227,14 +232,14 @@
"terminalExecuteCommandEvent",
"terminalSelection",
"terminalQuickFixProvider",
"chatProvider",
"chatParticipantAdditions",
"defaultChatParticipant",
"embeddings",
"chatEditing",
"chatProvider",
"mappedEditsProvider",
"aiRelatedInformation",
"aiSettingsSearch",
"chatEditing",
"codeActionAI",
"findTextInFiles",
"findTextInFiles2",
@@ -261,13 +266,15 @@
"languageModelSystem",
"languageModelCapabilities",
"languageModelDataPart",
"languageModelThinkingPart",
"chatStatusItem",
"taskProblemMatcherStatus",
"contribLanguageModelToolSets",
"textDocumentChangeReason",
"resolvers",
"taskExecutionTerminal",
"dataChannels"
"dataChannels",
"chatSessionsProvider"
],
"GitHub.remotehub": [
"contribRemoteHelp",
@@ -284,11 +291,7 @@
"textSearchProvider",
"timeline"
],
"ms-python.gather": [
"notebookCellExecutionState"
],
"ms-python.vscode-pylance": [
"mcpConfigurationProvider",
"terminalShellEnv"
],
"ms-python.debugpy": [
@@ -335,6 +338,7 @@
"terminalDataWriteEvent",
"chatParticipantAdditions"
],
"vscjava.vscode-java-pack": [],
"ms-dotnettools.csdevkit": [
"inlineCompletionsAdditions"
],
@@ -353,6 +357,9 @@
"chatParticipantAdditions",
"languageModelSystem"
],
"ms-toolsai.datawrangler": [],
"ms-vscode.vscode-commander": [],
"ms-vscode.vscode-websearchforcopilot": [],
"ms-vscode.vscode-copilot-vision": [
"chatReferenceBinaryData",
"codeActionAI"
@@ -360,12 +367,9 @@
"ms-autodev.vscode-autodev": [
"chatParticipantAdditions"
],
"codetrek.haystack-search": [
"fileSearchProvider",
"textSearchProvider2"
],
"vscjava.vscode-java-upgrade": [
"chatParticipantAdditions"
"chatParticipantAdditions",
"chatParticipantPrivate"
],
"FoundryLocal.foundry-local-chat": [
"chatProvider"

View File

@@ -2,6 +2,7 @@
Name=@@NAME_LONG@@
Comment=Code Editing. Redefined.
GenericName=Text Editor
GenericName[ar]=محرر نصوص
Exec=@@EXEC@@ %F
Icon=@@ICON@@
Type=Application
@@ -14,6 +15,7 @@ Keywords=vscodium;codium;vscode;
[Desktop Action new-empty-window]
Name=New Empty Window
Name[ar]=نافذة فارغة جديدة
Name[de]=Neues leeres Fenster
Name[es]=Nueva ventana vacía
Name[fr]=Nouvelle fenêtre vide

View File

@@ -1,4 +1,4 @@
{
"tag": "1.104.0",
"commit": "f220831ea2d946c0dcb0f3eaa480eb435a2c1260"
"tag": "1.104.3",
"commit": "385651c938df8a906869babee516bffd0ddb9829"
}