mirror of
https://github.com/VSCodium/vscodium.git
synced 2026-04-16 13:44:30 +10:00
Compare commits
9 Commits
1.104.0611
...
1.104.3666
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
22d1929f41 | ||
|
|
6264d064e4 | ||
|
|
ac024726a3 | ||
|
|
e3c3b6fdf7 | ||
|
|
fbdc680c69 | ||
|
|
dd8511cc6b | ||
|
|
f6b143dbd6 | ||
|
|
cde9fd233a | ||
|
|
284d83b24e |
@@ -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.
|
||||
|
||||
9
patches/disable-update.patch.yet
Normal file
9
patches/disable-update.patch.yet
Normal 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,
|
||||
@@ -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
42
patches/fix-gallery.patch
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
44
product.json
44
product.json
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"tag": "1.104.0",
|
||||
"commit": "f220831ea2d946c0dcb0f3eaa480eb435a2c1260"
|
||||
"tag": "1.104.3",
|
||||
"commit": "385651c938df8a906869babee516bffd0ddb9829"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user