From e04b43921dc1cfcb94c64f18d9091658deb911a1 Mon Sep 17 00:00:00 2001 From: coreybutler <770982+coreybutler@users.noreply.github.com> Date: Fri, 23 Oct 2026 16:05:35 -0500 Subject: [PATCH 1/2] docs: document toast collections and sparse identity uninstall Users mute Releases, Pre-releases, or News in Windows Settings. Uninstall removes the identity package. --- docs/cfg/core.md | 2 +- docs/features/notifications.md | 14 ++++++++++++++ docs/install/uninstall.md | 13 ++++++++++++- .../current/cfg/core.md | 2 +- .../current/features/notifications.md | 14 ++++++++++++++ .../current/install/uninstall.md | 13 ++++++++++++- 6 files changed, 54 insertions(+), 4 deletions(-) diff --git a/docs/cfg/core.md b/docs/cfg/core.md index d877f7d..13580a3 100644 --- a/docs/cfg/core.md +++ b/docs/cfg/core.md @@ -99,7 +99,7 @@ nvm config set shim_bun=false | Option | Default | Values | Description | |--------|---------|--------|-------------| | `log_executions` | `false` | Boolean | Whether to log every Node.js invocation (ex: `node file.js`). (shim-only) | -| `disable_announcements` | `false` | Boolean | Whether to disable project and release announcements. On Certified Builds, license expiry warnings still run when a commercial license is present. This does not suppress malware definition or malware block notifications. | +| `disable_announcements` | `false` | Boolean | Whether to disable project and release announcements. On Certified Builds, license expiry warnings still run when a commercial license is present. This does not suppress malware definition or malware block notifications. Per-type mute for Releases / Pre-releases / News is Windows Settings, not a config key — see [Desktop Notifications](../features/notifications#categories-windows-settings). | | `skip_malware_checks` | `false` | Boolean | Skip malware checks for package-manager and node shims. The definition file still updates. HKLM `SkipMalwareChecks` wins over HKCU. | | `notify_malware_definitions` | `true` | Boolean | Certified only. Show a silent notification after malware definitions change. HKLM can force it off. | diff --git a/docs/features/notifications.md b/docs/features/notifications.md index 346c57c..8ea9f38 100644 --- a/docs/features/notifications.md +++ b/docs/features/notifications.md @@ -28,6 +28,20 @@ Background cases that still notify include: News and updates can be turned off with [`disable_announcements`](../cfg/core#logging-and-announcements). License expiry notifications are **not** suppressed by that setting. +## Categories (Windows Settings) + +Release, pre-release, and news toasts are registered as Windows toast collections. Mute one type from the toast ellipsis or **Settings → System → Notifications → NVM for Windows**. Unmute from the same Settings page. `nvm config` cannot flip an OS mute. + +| Collection | What it covers | Default | +|------------|----------------|---------| +| Releases | General and hotfix product versions (`x.y.z`, `x.y.z-hotfix.N`) | On | +| Pre-releases | Alpha, beta, rc, and other hyphenated product versions | On | +| News | Project news feed | On | + +Security, firewall, license, setup, and activity toasts have **no** collection. They stay on the default notifier so Windows has no per-type mute. Master Off for NVM, Focus Assist, and GPO still apply. + +Sparse identity (an identity-only `.msix` registered per-user, no extra UAC) is what makes collections appear. If registration fails (sideload GPO, missing package), toasts still fire through the AUMID. + ## CLI notifications These use Notification Center when the NVM process is **not** in the foreground: diff --git a/docs/install/uninstall.md b/docs/install/uninstall.md index 9d4e375..d3e83a9 100644 --- a/docs/install/uninstall.md +++ b/docs/install/uninstall.md @@ -41,6 +41,7 @@ The community uninstaller removes: - The `NVM_HOME` user environment variable and related `PATH` entries - The **NVM for Windows Sync** scheduled task - Per-version Apps entries (see [Windows Apps](/features/windows-apps)) +- The per-user sparse identity package `AuthorSoftware.NVMWindows` (toast collections) Open a **new** terminal after uninstall so `PATH` and environment changes apply. @@ -55,6 +56,12 @@ Use this only when the uninstaller is missing or fails. schtasks /Delete /TN "NVM for Windows Sync" /F ``` +1. Remove the sparse identity package if it is still registered: + + ```powershell + Get-AppxPackage -Name AuthorSoftware.NVMWindows | Remove-AppxPackage + ``` + 1. Delete `%LOCALAPPDATA%\Author Software\nvm` (app files, installs, cache, shims). If you customized [`root`](../cfg/core#mode-and-install-location)/`InstallRoot`, delete that directory too (see [Basic Configuration](../cfg/core) and [registry reference](../cfg/registry)). 1. Remove leftovers from the user environment: @@ -126,7 +133,11 @@ For a single device (lab machine, break-glass, or non-MDM install): Product code is listed in your portal MSI/`.intune.json` (`msiInformation.productCode`). 1. Confirm `%ProgramFiles%\Author Software\nvm` is gone (detection path used by Intune). -1. Confirm per-user data is removed. The MSI runs a cleanup action that deletes `%LOCALAPPDATA%\Author Software\nvm` for the user context that performed uninstall. If AppData remains (for example another user profile on the same PC), delete that profile’s `%LOCALAPPDATA%\Author Software\nvm` while signed in as that user, or remove it with an elevated script that targets each profile. +1. Confirm per-user data is removed. The MSI runs a cleanup action that deletes `%LOCALAPPDATA%\Author Software\nvm` for the user context that performed uninstall. If AppData remains (for example another user profile on the same PC), delete that profile’s `%LOCALAPPDATA%\Author Software\nvm` while signed in as that user, or remove it with an elevated script that targets each profile. Switching from community also unregisters `AuthorSoftware.NVMWindows` before those files are deleted; first certified launch retries that cleanup if the MSI ran as SYSTEM. To remove a leftover identity immediately: + + ```powershell + Get-AppxPackage -Name AuthorSoftware.NVMWindows | Remove-AppxPackage + ``` 1. Optional policy cleanup (does **not** happen automatically with MSI uninstall): - Clear or unlink ADMX policies under **Author Software** → **NVM for Windows** ([Administrative templates](../cfg/ad)). diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cfg/core.md b/i18n/ru/docusaurus-plugin-content-docs/current/cfg/core.md index 53ab9d3..94af13c 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/cfg/core.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/cfg/core.md @@ -95,7 +95,7 @@ nvm config set auto_detect=.nvmrc,.node-version | Параметр | По умолчанию | Значения | Описание | |--------|---------|--------|-------------| | `log_executions` | `false` | Boolean | Журналировать каждый вызов Node.js (например, `node file.js`). (только shim) | -| `disable_announcements` | `false` | Boolean | Отключить объявления проекта и релизов. На Certified Builds предупреждения об истечении коммерческой лицензии всё равно показываются. | +| `disable_announcements` | `false` | Boolean | Отключить объявления проекта и релизов. На Certified Builds предупреждения об истечении коммерческой лицензии всё равно показываются. Mute по типу для Releases / Pre-releases / News — это параметры Windows, не ключ config. См. [Уведомления](../features/notifications#категории-параметры-windows). | ```powershell nvm config set log_executions=true diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/features/notifications.md b/i18n/ru/docusaurus-plugin-content-docs/current/features/notifications.md index f2a865b..b35a129 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/features/notifications.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/features/notifications.md @@ -28,6 +28,20 @@ NVM for Windows использует нативные уведомления н Новости и обновления можно отключить через [`disable_announcements`](../cfg/core#logging-and-announcements). Уведомления об истечении лицензии этой настройкой **не** подавляются. +## Категории (параметры Windows) + +Тосты релизов, пререлизов и новостей регистрируются как коллекции Windows. Отключить один тип можно через многоточие на тосте или **Параметры → Система → Уведомления → NVM for Windows**. Включить обратно — там же. `nvm config` не снимает системный mute. + +| Коллекция | Что покрывает | По умолчанию | +|-----------|---------------|--------------| +| Releases | Общие и hotfix-версии продукта (`x.y.z`, `x.y.z-hotfix.N`) | Вкл | +| Pre-releases | Alpha, beta, rc и другие версии с дефисом | Вкл | +| News | Лента новостей проекта | Вкл | + +Тосты security, firewall, license, setup и activity **без** коллекции. Они идут через notifier по умолчанию, поэтому Windows не даёт mute по типу. Общий Off для NVM, Focus Assist и GPO всё равно действуют. + +Разреженные identity (identity-only `.msix`, регистрация per-user без дополнительного UAC) нужны, чтобы коллекции появились. Если регистрация не удалась (GPO sideload, нет пакета), тосты всё равно идут через AUMID. + ## CLI-уведомления Они используют Notification Center, когда процесс NVM **не** на переднем плане: diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/install/uninstall.md b/i18n/ru/docusaurus-plugin-content-docs/current/install/uninstall.md index 455f64d..d7b2b7e 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/install/uninstall.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/install/uninstall.md @@ -41,6 +41,7 @@ Community-деинсталлятор удаляет: - Пользовательскую переменную окружения `NVM_HOME` и связанные записи `PATH` - Запланированную задачу **NVM for Windows Sync** - Записи Apps по версиям (см. [Приложения Windows](/features/windows-apps)) +- Per-user пакет sparse identity `AuthorSoftware.NVMWindows` (коллекции тостов) Откройте **новый** терминал после удаления, чтобы применились изменения `PATH` и окружения. @@ -55,6 +56,12 @@ Community-деинсталлятор удаляет: schtasks /Delete /TN "NVM for Windows Sync" /F ``` +1. Удалите пакет sparse identity, если он ещё зарегистрирован: + + ```powershell + Get-AppxPackage -Name AuthorSoftware.NVMWindows | Remove-AppxPackage + ``` + 1. Удалите `%LOCALAPPDATA%\Author Software\nvm` (файлы приложения, установки, кэш, shim). Если меняли [`root`](../cfg/core#mode-and-install-location)/`InstallRoot`, удалите и этот каталог (см. [Базовая конфигурация](../cfg/core) и [справочник реестра](../cfg/registry)). 1. Уберите остатки из пользовательского окружения: @@ -126,7 +133,11 @@ Remove or retire the application deployment in Configuration Manager so clients Код продукта указан в MSI/`.intune.json` портала (`msiInformation.productCode`). 1. Убедитесь, что `%ProgramFiles%\Author Software\nvm` удалён (путь detection для Intune). -1. Проверьте удаление per-user данных. MSI выполняет очистку и удаляет `%LOCALAPPDATA%\Author Software\nvm` для пользователя, выполнившего удаление. Если AppData остался (например, другой профиль на том же ПК), удалите `%LOCALAPPDATA%\Author Software\nvm` этого профиля под этим пользователем или скриптом с повышенными правами для каждого профиля. +1. Проверьте удаление per-user данных. MSI выполняет очистку и удаляет `%LOCALAPPDATA%\Author Software\nvm` для пользователя, выполнившего удаление. Если AppData остался (например, другой профиль на том же ПК), удалите `%LOCALAPPDATA%\Author Software\nvm` этого профиля под этим пользователем или скриптом с повышенными правами для каждого профиля. Переход с community также снимает регистрацию `AuthorSoftware.NVMWindows` до удаления этих файлов; первый запуск certified повторяет очистку, если MSI шёл от SYSTEM. Снять leftover identity сразу: + + ```powershell + Get-AppxPackage -Name AuthorSoftware.NVMWindows | Remove-AppxPackage + ``` 1. Опциональная очистка политик (**не** выполняется автоматически при удалении MSI): - Очистите или отвяжите политики ADMX в **Author Software** → **NVM for Windows** ([Административные шаблоны](../cfg/ad)). From f2503a545e86a1a9d197ad0d74e2d861d81f881c Mon Sep 17 00:00:00 2001 From: coreybutler <770982+coreybutler@users.noreply.github.com> Date: Fri, 23 Oct 2026 21:22:17 -0500 Subject: [PATCH 2/2] docs: certified to community also drops leftover identity Document the reverse edition switch and wildcard Appx cleanup. --- docs/install/uninstall.md | 6 +++--- .../current/install/uninstall.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/install/uninstall.md b/docs/install/uninstall.md index d3e83a9..fd7d773 100644 --- a/docs/install/uninstall.md +++ b/docs/install/uninstall.md @@ -59,7 +59,7 @@ Use this only when the uninstaller is missing or fails. 1. Remove the sparse identity package if it is still registered: ```powershell - Get-AppxPackage -Name AuthorSoftware.NVMWindows | Remove-AppxPackage + Get-AppxPackage -Name AuthorSoftware.NVMWindows* | Remove-AppxPackage ``` 1. Delete `%LOCALAPPDATA%\Author Software\nvm` (app files, installs, cache, shims). If you customized [`root`](../cfg/core#mode-and-install-location)/`InstallRoot`, delete that directory too (see [Basic Configuration](../cfg/core) and [registry reference](../cfg/registry)). @@ -133,10 +133,10 @@ For a single device (lab machine, break-glass, or non-MDM install): Product code is listed in your portal MSI/`.intune.json` (`msiInformation.productCode`). 1. Confirm `%ProgramFiles%\Author Software\nvm` is gone (detection path used by Intune). -1. Confirm per-user data is removed. The MSI runs a cleanup action that deletes `%LOCALAPPDATA%\Author Software\nvm` for the user context that performed uninstall. If AppData remains (for example another user profile on the same PC), delete that profile’s `%LOCALAPPDATA%\Author Software\nvm` while signed in as that user, or remove it with an elevated script that targets each profile. Switching from community also unregisters `AuthorSoftware.NVMWindows` before those files are deleted; first certified launch retries that cleanup if the MSI ran as SYSTEM. To remove a leftover identity immediately: +1. Confirm per-user data is removed. The MSI runs a cleanup action that deletes `%LOCALAPPDATA%\Author Software\nvm` for the user context that performed uninstall. If AppData remains (for example another user profile on the same PC), delete that profile’s `%LOCALAPPDATA%\Author Software\nvm` while signed in as that user, or remove it with an elevated script that targets each profile. Switching from community unregisters `AuthorSoftware.NVMWindows` before those files are deleted; first certified launch retries that cleanup if the MSI ran as SYSTEM. Switching back to community unregisters `AuthorSoftware.NVMWindows.Certified` after Program Files `nvm.exe` is gone; first community launch retries if MSI deprovision ran as SYSTEM. To remove a leftover identity immediately: ```powershell - Get-AppxPackage -Name AuthorSoftware.NVMWindows | Remove-AppxPackage + Get-AppxPackage -Name AuthorSoftware.NVMWindows* | Remove-AppxPackage ``` 1. Optional policy cleanup (does **not** happen automatically with MSI uninstall): diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/install/uninstall.md b/i18n/ru/docusaurus-plugin-content-docs/current/install/uninstall.md index d7b2b7e..63e7f94 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/install/uninstall.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/install/uninstall.md @@ -59,7 +59,7 @@ Community-деинсталлятор удаляет: 1. Удалите пакет sparse identity, если он ещё зарегистрирован: ```powershell - Get-AppxPackage -Name AuthorSoftware.NVMWindows | Remove-AppxPackage + Get-AppxPackage -Name AuthorSoftware.NVMWindows* | Remove-AppxPackage ``` 1. Удалите `%LOCALAPPDATA%\Author Software\nvm` (файлы приложения, установки, кэш, shim). Если меняли [`root`](../cfg/core#mode-and-install-location)/`InstallRoot`, удалите и этот каталог (см. [Базовая конфигурация](../cfg/core) и [справочник реестра](../cfg/registry)). @@ -133,10 +133,10 @@ Remove or retire the application deployment in Configuration Manager so clients Код продукта указан в MSI/`.intune.json` портала (`msiInformation.productCode`). 1. Убедитесь, что `%ProgramFiles%\Author Software\nvm` удалён (путь detection для Intune). -1. Проверьте удаление per-user данных. MSI выполняет очистку и удаляет `%LOCALAPPDATA%\Author Software\nvm` для пользователя, выполнившего удаление. Если AppData остался (например, другой профиль на том же ПК), удалите `%LOCALAPPDATA%\Author Software\nvm` этого профиля под этим пользователем или скриптом с повышенными правами для каждого профиля. Переход с community также снимает регистрацию `AuthorSoftware.NVMWindows` до удаления этих файлов; первый запуск certified повторяет очистку, если MSI шёл от SYSTEM. Снять leftover identity сразу: +1. Проверьте удаление per-user данных. MSI выполняет очистку и удаляет `%LOCALAPPDATA%\Author Software\nvm` для пользователя, выполнившего удаление. Если AppData остался (например, другой профиль на том же ПК), удалите `%LOCALAPPDATA%\Author Software\nvm` этого профиля под этим пользователем или скриптом с повышенными правами для каждого профиля. Переход с community снимает регистрацию `AuthorSoftware.NVMWindows` до удаления этих файлов; первый запуск certified повторяет очистку, если MSI шёл от SYSTEM. Обратный переход на community снимает `AuthorSoftware.NVMWindows.Certified` после удаления Program Files `nvm.exe`; первый запуск community повторяет, если deprovision MSI шёл от SYSTEM. Снять leftover identity сразу: ```powershell - Get-AppxPackage -Name AuthorSoftware.NVMWindows | Remove-AppxPackage + Get-AppxPackage -Name AuthorSoftware.NVMWindows* | Remove-AppxPackage ``` 1. Опциональная очистка политик (**не** выполняется автоматически при удалении MSI):