diff --git a/ee/maintained-apps/inputs/homebrew/abstract.json b/ee/maintained-apps/inputs/homebrew/abstract.json index fc5be04a6fa..35dc2ebaf3c 100644 --- a/ee/maintained-apps/inputs/homebrew/abstract.json +++ b/ee/maintained-apps/inputs/homebrew/abstract.json @@ -4,5 +4,6 @@ "token": "abstract", "installer_format": "zip", "slug": "abstract/darwin", - "default_categories": ["Productivity"] + "default_categories": ["Productivity"], + "frozen": true } diff --git a/ee/maintained-apps/inputs/homebrew/freefilesync.json b/ee/maintained-apps/inputs/homebrew/freefilesync.json index 49b6f0eff8b..1a05060c5cf 100644 --- a/ee/maintained-apps/inputs/homebrew/freefilesync.json +++ b/ee/maintained-apps/inputs/homebrew/freefilesync.json @@ -6,5 +6,6 @@ "slug": "freefilesync/darwin", "default_categories": [ "Productivity" - ] + ], + "frozen": true } \ No newline at end of file diff --git a/ee/maintained-apps/inputs/winget/nordpass.json b/ee/maintained-apps/inputs/winget/nordpass.json index 8eae0902924..28f24149dff 100644 --- a/ee/maintained-apps/inputs/winget/nordpass.json +++ b/ee/maintained-apps/inputs/winget/nordpass.json @@ -8,5 +8,6 @@ "installer_arch": "x64", "installer_type": "exe", "installer_scope": "user", - "default_categories": ["Productivity"] + "default_categories": ["Productivity"], + "frozen": true } diff --git a/ee/maintained-apps/inputs/winget/scripts/evernote_install.ps1 b/ee/maintained-apps/inputs/winget/scripts/evernote_install.ps1 index f7682565e03..617c41e6037 100644 --- a/ee/maintained-apps/inputs/winget/scripts/evernote_install.ps1 +++ b/ee/maintained-apps/inputs/winget/scripts/evernote_install.ps1 @@ -8,19 +8,34 @@ try { # Evernote uses an electron-builder NSIS installer. It defaults to a per-user # install, so /allusers is required for a machine-wide install alongside the # NSIS /S silent flag. -$processOptions = @{ - FilePath = "$exeFilePath" - ArgumentList = "/allusers /S" - PassThru = $true - Wait = $true -} +# +# The NSIS self-extractor intermittently dies with 0xc0000005 (access +# violation, exit code -1073741819) before extracting anything. The same +# installer succeeds on the next run, so retry on that specific exit code +# only; every other exit code is reported as-is. +$maxAttempts = 3 +$exitCode = 1 + +for ($attempt = 1; $attempt -le $maxAttempts; $attempt++) { + $processOptions = @{ + FilePath = "$exeFilePath" + ArgumentList = "/allusers /S" + PassThru = $true + Wait = $true + } + + $process = Start-Process @processOptions + $exitCode = $process.ExitCode -# Start process and track exit code -$process = Start-Process @processOptions -$exitCode = $process.ExitCode + Write-Host "Install exit code: $exitCode (attempt $attempt of $maxAttempts)" + + if ($exitCode -ne -1073741819) { + Exit $exitCode + } + + Start-Sleep -Seconds 10 +} -# Prints the exit code -Write-Host "Install exit code: $exitCode" Exit $exitCode } catch { diff --git a/ee/maintained-apps/inputs/winget/scripts/onedrive_install.ps1 b/ee/maintained-apps/inputs/winget/scripts/onedrive_install.ps1 index 06a366d3c1b..a199978f255 100644 --- a/ee/maintained-apps/inputs/winget/scripts/onedrive_install.ps1 +++ b/ee/maintained-apps/inputs/winget/scripts/onedrive_install.ps1 @@ -10,56 +10,62 @@ try { # silentinstallhq.com). The catch: OneDriveSetup.exe spawns several child # processes and starts the resident OneDrive.exe, so a plain Start-Process -Wait # can wait indefinitely and hit the CI step timeout. Instead, start the -# installer, then poll for the per-machine install to land (registry uninstall -# key + the all-users binary) and return success as soon as it appears. +# installer and poll for the per-machine ARP (uninstall) registry entry. +# +# The ARP entry is the completion signal — not files on disk. The installer +# drops OneDrive.exe under Program Files well before it registers the +# uninstall key, and the uninstall key (DisplayName/DisplayVersion) is what +# osquery's programs table — and therefore Fleet's detection — reads. Waiting +# on the binary races detection. Modern x64 OneDrive registers in the native +# hive; older builds used WOW6432Node, so check both. Registration is done by +# child processes, so keep polling to the deadline even after the top-level +# setup process exits. $process = Start-Process -FilePath "$exeFilePath" -ArgumentList "/allusers /silent" -PassThru -# Per-machine OneDrive registers an uninstall key and drops OneDrive.exe under -# Program Files (x86) (or Program Files on x86 OS). -$uninstallKey = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\OneDriveSetup.exe" -$exePaths = @( - "$env:ProgramFiles\Microsoft OneDrive\OneDrive.exe", - "${env:ProgramFiles(x86)}\Microsoft OneDrive\OneDrive.exe" +$uninstallKeys = @( + "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OneDriveSetup.exe", + "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\OneDriveSetup.exe" ) +function Test-OneDriveRegistered { + foreach ($key in $uninstallKeys) { + if (Test-Path $key) { + $entry = Get-ItemProperty -Path $key -ErrorAction SilentlyContinue + if ($entry -and $entry.DisplayName -and $entry.DisplayVersion) { + return $true + } + } + } + return $false +} + $timeoutSeconds = 240 $deadline = (Get-Date).AddSeconds($timeoutSeconds) $installed = $false while ((Get-Date) -lt $deadline) { - $exeExists = $false - foreach ($p in $exePaths) { - if ($p -and (Test-Path $p)) { $exeExists = $true; break } - } - if ((Test-Path $uninstallKey) -or $exeExists) { + if (Test-OneDriveRegistered) { $installed = $true break } - # If the top-level setup process exited, capture its code and stop polling. - if ($process.HasExited) { break } Start-Sleep -Seconds 5 } -# Final check in case the setup process exited right before the loop bailed. -if (-not $installed) { - $exeExists = $false - foreach ($p in $exePaths) { - if ($p -and (Test-Path $p)) { $exeExists = $true; break } - } - if ((Test-Path $uninstallKey) -or $exeExists) { $installed = $true } -} - if ($installed) { - Write-Host "OneDrive per-machine install detected." + Write-Host "OneDrive per-machine install registered." + # Give the setup process a moment to exit so the installer file isn't locked. + if (-not $process.HasExited) { + Wait-Process -Id $process.Id -Timeout 60 -ErrorAction SilentlyContinue + } Exit 0 } if ($process.HasExited) { $exitCode = $process.ExitCode - Write-Host "OneDriveSetup exited with code: $exitCode" - if ($exitCode -eq 0 -or $exitCode -eq 3010 -or $exitCode -eq 1641) { Exit 0 } - Exit $exitCode + Write-Host "OneDriveSetup exited with code: $exitCode, but no per-machine registry entry was found." + if ($exitCode -ne 0 -and $exitCode -ne 3010 -and $exitCode -ne 1641) { Exit $exitCode } + Exit 1 } Write-Host "Timed out waiting for OneDrive install to complete." diff --git a/ee/maintained-apps/inputs/winget/vc-redist-x64.json b/ee/maintained-apps/inputs/winget/vc-redist-x64.json index ba7af81174e..5754bf424af 100644 --- a/ee/maintained-apps/inputs/winget/vc-redist-x64.json +++ b/ee/maintained-apps/inputs/winget/vc-redist-x64.json @@ -2,8 +2,8 @@ "name": "Microsoft Visual C++ 2015-2022 Redistributable (x64)", "slug": "vc-redist-x64/windows", "package_identifier": "Microsoft.VCRedist.2015+.x64", - "unique_identifier": "Microsoft Visual C++ 2015-2022 Redistributable (x64)", - "exists_query": "SELECT 1 FROM programs WHERE name LIKE 'Microsoft Visual C++ 2015-2022 Redistributable (x64)%' AND publisher = 'Microsoft Corporation';", + "unique_identifier": "Microsoft Visual C++ v14 Redistributable (x64)", + "exists_query": "SELECT 1 FROM programs WHERE (name LIKE 'Microsoft Visual C++ 2015-2022 Redistributable (x64)%' OR name LIKE 'Microsoft Visual C++ v14 Redistributable (x64)%') AND publisher = 'Microsoft Corporation';", "installer_arch": "x64", "installer_type": "exe", "installer_scope": "machine", diff --git a/ee/maintained-apps/inputs/winget/xnconvert.json b/ee/maintained-apps/inputs/winget/xnconvert.json index 034bbd006d6..e4347608994 100644 --- a/ee/maintained-apps/inputs/winget/xnconvert.json +++ b/ee/maintained-apps/inputs/winget/xnconvert.json @@ -8,5 +8,6 @@ "installer_scope": "machine", "default_categories": ["Productivity"], "install_script_path": "ee/maintained-apps/inputs/winget/scripts/xnconvert_install.ps1", - "uninstall_script_path": "ee/maintained-apps/inputs/winget/scripts/xnconvert_uninstall.ps1" + "uninstall_script_path": "ee/maintained-apps/inputs/winget/scripts/xnconvert_uninstall.ps1", + "frozen": true } diff --git a/ee/maintained-apps/outputs/010-editor/darwin.json b/ee/maintained-apps/outputs/010-editor/darwin.json index ba04a09558d..b3f3623b080 100644 --- a/ee/maintained-apps/outputs/010-editor/darwin.json +++ b/ee/maintained-apps/outputs/010-editor/darwin.json @@ -4,7 +4,8 @@ "version": "16.0.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.SweetScape.010Editor';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.SweetScape.010Editor' AND version_compare(bundle_short_version, '16.0.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.SweetScape.010Editor' AND version_compare(bundle_short_version, '16.0.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.SweetScape.010Editor');" }, "installer_url": "https://download.sweetscape.com/010EditorMacARM64Installer16.0.4.dmg", "install_script_ref": "b3fb6381", diff --git a/ee/maintained-apps/outputs/010-editor/windows.json b/ee/maintained-apps/outputs/010-editor/windows.json index 425b15f20e2..ebda719258c 100644 --- a/ee/maintained-apps/outputs/010-editor/windows.json +++ b/ee/maintained-apps/outputs/010-editor/windows.json @@ -4,7 +4,8 @@ "version": "16.0.4", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE '010 Editor %' AND publisher = 'SweetScape Software';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE '010 Editor %' AND publisher = 'SweetScape Software' AND version_compare(version, '16.0.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE '010 Editor %' AND publisher = 'SweetScape Software' AND version_compare(version, '16.0.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = '010 editor.exe');" }, "installer_url": "https://download.sweetscape.com/010EditorWin64Installer16.0.4.exe", "install_script_ref": "5764f801", diff --git a/ee/maintained-apps/outputs/1password/darwin.json b/ee/maintained-apps/outputs/1password/darwin.json index a7a340ded6a..7e6fa41b86f 100644 --- a/ee/maintained-apps/outputs/1password/darwin.json +++ b/ee/maintained-apps/outputs/1password/darwin.json @@ -4,7 +4,8 @@ "version": "8.12.30", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.1password.1password';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.1password.1password' AND version_compare(bundle_short_version, '8.12.30') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.1password.1password' AND version_compare(bundle_short_version, '8.12.30') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.1password.1password');" }, "installer_url": "https://downloads.1password.com/mac/1Password.pkg", "install_script_ref": "1d854c01", diff --git a/ee/maintained-apps/outputs/1password/windows.json b/ee/maintained-apps/outputs/1password/windows.json index 81a81884d33..c56c0fd6581 100644 --- a/ee/maintained-apps/outputs/1password/windows.json +++ b/ee/maintained-apps/outputs/1password/windows.json @@ -4,7 +4,8 @@ "version": "8.12.30", "queries": { "exists": "SELECT 1 FROM programs WHERE name = '1Password' AND publisher = 'Agilebits Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '1Password' AND publisher = 'Agilebits Inc.' AND version_compare(version, '8.12.30') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '1Password' AND publisher = 'Agilebits Inc.' AND version_compare(version, '8.12.30') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) LIKE '1password%');" }, "installer_url": "https://c.1password.com/dist/1P/win8/1PasswordSetup-8.12.30.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/3df-zephyr-free/windows.json b/ee/maintained-apps/outputs/3df-zephyr-free/windows.json index 75def4e8698..101df4aed11 100644 --- a/ee/maintained-apps/outputs/3df-zephyr-free/windows.json +++ b/ee/maintained-apps/outputs/3df-zephyr-free/windows.json @@ -4,7 +4,8 @@ "version": "9.007", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE '3DF Zephyr Free %' AND publisher = '3Dflow srl';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE '3DF Zephyr Free %' AND publisher = '3Dflow srl' AND version_compare(version, '9.007') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE '3DF Zephyr Free %' AND publisher = '3Dflow srl' AND version_compare(version, '9.007') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = '3df zephyr free.exe');" }, "installer_url": "https://3df-eu.fra1.digitaloceanspaces.com/9.007/3DF%20Zephyr%20Free%20v9.007%20(x64).exe", "install_script_ref": "df7f059c", diff --git a/ee/maintained-apps/outputs/4k-slideshow-maker/darwin.json b/ee/maintained-apps/outputs/4k-slideshow-maker/darwin.json index f2014393bd6..562739ba211 100644 --- a/ee/maintained-apps/outputs/4k-slideshow-maker/darwin.json +++ b/ee/maintained-apps/outputs/4k-slideshow-maker/darwin.json @@ -4,7 +4,8 @@ "version": "2.0.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kslideshowmaker';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kslideshowmaker' AND version_compare(bundle_short_version, '2.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kslideshowmaker' AND version_compare(bundle_short_version, '2.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.openmedia.4kslideshowmaker');" }, "installer_url": "https://dl.4kdownload.com/app/4kslideshowmaker_2.0.1.dmg", "install_script_ref": "4d6c6c3a", diff --git a/ee/maintained-apps/outputs/4k-stogram/darwin.json b/ee/maintained-apps/outputs/4k-stogram/darwin.json index a5d9bc6e729..7a5c07aad0f 100644 --- a/ee/maintained-apps/outputs/4k-stogram/darwin.json +++ b/ee/maintained-apps/outputs/4k-stogram/darwin.json @@ -4,7 +4,8 @@ "version": "4.9.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kstogram';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kstogram' AND version_compare(bundle_short_version, '4.9.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kstogram' AND version_compare(bundle_short_version, '4.9.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.openmedia.4kstogram');" }, "installer_url": "https://dl.4kdownload.com/app/4kstogram_4.9.0_arm64.dmg", "install_script_ref": "17ba87c2", diff --git a/ee/maintained-apps/outputs/4k-video-downloader-plus/windows.json b/ee/maintained-apps/outputs/4k-video-downloader-plus/windows.json index e09a96e2d12..a537d55d6e3 100644 --- a/ee/maintained-apps/outputs/4k-video-downloader-plus/windows.json +++ b/ee/maintained-apps/outputs/4k-video-downloader-plus/windows.json @@ -4,7 +4,8 @@ "version": "26.1.1.355", "queries": { "exists": "SELECT 1 FROM programs WHERE name = '4K Video Downloader+' AND publisher = 'InterPromo GMBH';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '4K Video Downloader+' AND publisher = 'InterPromo GMBH' AND version_compare(version, '26.1.1.355') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '4K Video Downloader+' AND publisher = 'InterPromo GMBH' AND version_compare(version, '26.1.1.355') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = '4k video downloader+.exe');" }, "installer_url": "https://dl.4kdownload.com/app/4kvideodownloaderplus_26.1.1_x64_offline.exe?source=website", "install_script_ref": "e60e87a2", diff --git a/ee/maintained-apps/outputs/4k-video-downloader/darwin.json b/ee/maintained-apps/outputs/4k-video-downloader/darwin.json index 0d817db9331..275b3f1ec1c 100644 --- a/ee/maintained-apps/outputs/4k-video-downloader/darwin.json +++ b/ee/maintained-apps/outputs/4k-video-downloader/darwin.json @@ -4,7 +4,8 @@ "version": "4.33.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.4kdownload.ApplicationDirectories';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.4kdownload.ApplicationDirectories' AND version_compare(bundle_short_version, '4.33.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.4kdownload.ApplicationDirectories' AND version_compare(bundle_short_version, '4.33.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.4kdownload.ApplicationDirectories');" }, "installer_url": "https://dl.4kdownload.com/app/4kvideodownloader_4.33.5_x64.dmg", "install_script_ref": "b39acc12", diff --git a/ee/maintained-apps/outputs/4k-video-to-mp3/darwin.json b/ee/maintained-apps/outputs/4k-video-to-mp3/darwin.json index ef753d8d449..4a687f25e20 100644 --- a/ee/maintained-apps/outputs/4k-video-to-mp3/darwin.json +++ b/ee/maintained-apps/outputs/4k-video-to-mp3/darwin.json @@ -4,7 +4,8 @@ "version": "3.0.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kvideotomp3';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kvideotomp3' AND version_compare(bundle_short_version, '3.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kvideotomp3' AND version_compare(bundle_short_version, '3.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.openmedia.4kvideotomp3');" }, "installer_url": "https://dl.4kdownload.com/app/4kvideotomp3_3.0.1.dmg", "install_script_ref": "7e311119", diff --git a/ee/maintained-apps/outputs/4k-youtube-to-mp3/darwin.json b/ee/maintained-apps/outputs/4k-youtube-to-mp3/darwin.json index e81fe763d80..c2747aef22c 100644 --- a/ee/maintained-apps/outputs/4k-youtube-to-mp3/darwin.json +++ b/ee/maintained-apps/outputs/4k-youtube-to-mp3/darwin.json @@ -4,7 +4,8 @@ "version": "26.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kyoutubetomp3';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kyoutubetomp3' AND version_compare(bundle_short_version, '26.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openmedia.4kyoutubetomp3' AND version_compare(bundle_short_version, '26.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.openmedia.4kyoutubetomp3');" }, "installer_url": "https://dl.4kdownload.com/app/4kyoutubetomp3_26.2.1_arm64.dmg", "install_script_ref": "86bee2e4", diff --git a/ee/maintained-apps/outputs/7-zip/windows.json b/ee/maintained-apps/outputs/7-zip/windows.json index c0aee738e70..5ed970288a4 100644 --- a/ee/maintained-apps/outputs/7-zip/windows.json +++ b/ee/maintained-apps/outputs/7-zip/windows.json @@ -4,7 +4,8 @@ "version": "26.02", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE '7-Zip %' AND publisher = 'Igor Pavlov';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE '7-Zip %' AND publisher = 'Igor Pavlov' AND version_compare(version, '26.02') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE '7-Zip %' AND publisher = 'Igor Pavlov' AND version_compare(version, '26.02') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('7zfm.exe','7zg.exe'));" }, "installer_url": "https://github.com/ip7z/7zip/releases/download/26.02/7z2602-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/8x8-work/darwin.json b/ee/maintained-apps/outputs/8x8-work/darwin.json index e6678ac74c8..2d20bb43d52 100644 --- a/ee/maintained-apps/outputs/8x8-work/darwin.json +++ b/ee/maintained-apps/outputs/8x8-work/darwin.json @@ -4,7 +4,8 @@ "version": "8.36.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.8x8---virtual-office';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.8x8---virtual-office' AND version_compare(bundle_short_version, '8.36.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.8x8---virtual-office' AND version_compare(bundle_short_version, '8.36.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.8x8---virtual-office');" }, "installer_url": "https://work-desktop-assets.8x8.com/prod-publish/ga/work-arm64-dmg-v8.36.2-3.dmg", "install_script_ref": "18ff65bc", diff --git a/ee/maintained-apps/outputs/8x8-work/windows.json b/ee/maintained-apps/outputs/8x8-work/windows.json index 1f345b01b3f..f1ba8234ae2 100644 --- a/ee/maintained-apps/outputs/8x8-work/windows.json +++ b/ee/maintained-apps/outputs/8x8-work/windows.json @@ -4,7 +4,8 @@ "version": "8.36.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = '8x8 Work' AND publisher = '8x8 Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '8x8 Work' AND publisher = '8x8 Inc.' AND version_compare(version, '8.36.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '8x8 Work' AND publisher = '8x8 Inc.' AND version_compare(version, '8.36.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = '8x8 work.exe');" }, "installer_url": "https://work-desktop-assets.8x8.com/prod-publish/ga/work-64-msi-v8.36.2-3.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/a-better-finder-rename/darwin.json b/ee/maintained-apps/outputs/a-better-finder-rename/darwin.json index f45c27d5ec0..0ced3adc9a7 100644 --- a/ee/maintained-apps/outputs/a-better-finder-rename/darwin.json +++ b/ee/maintained-apps/outputs/a-better-finder-rename/darwin.json @@ -4,7 +4,8 @@ "version": "12.31", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.publicspace.abfr12';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.publicspace.abfr12' AND version_compare(bundle_short_version, '12.31') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.publicspace.abfr12' AND version_compare(bundle_short_version, '12.31') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.publicspace.abfr12');" }, "installer_url": "https://www.publicspace.net/download/ABFRX12.dmg", "install_script_ref": "07711880", diff --git a/ee/maintained-apps/outputs/ableton-live-suite/darwin.json b/ee/maintained-apps/outputs/ableton-live-suite/darwin.json index 2244e305a5d..31064e73456 100644 --- a/ee/maintained-apps/outputs/ableton-live-suite/darwin.json +++ b/ee/maintained-apps/outputs/ableton-live-suite/darwin.json @@ -4,7 +4,8 @@ "version": "12.4.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ableton.live';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ableton.live' AND version_compare(bundle_short_version, '12.4.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ableton.live' AND version_compare(bundle_short_version, '12.4.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ableton.live');" }, "installer_url": "https://cdn-downloads.ableton.com/channels/12.4.3/ableton_live_suite_12.4.3_universal.dmg", "install_script_ref": "9ea4cfbf", diff --git a/ee/maintained-apps/outputs/acorn/darwin.json b/ee/maintained-apps/outputs/acorn/darwin.json index 069fa0adf45..94440de70bd 100644 --- a/ee/maintained-apps/outputs/acorn/darwin.json +++ b/ee/maintained-apps/outputs/acorn/darwin.json @@ -4,7 +4,8 @@ "version": "8.6.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.flyingmeat.Acorn8';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.flyingmeat.Acorn8' AND version_compare(bundle_short_version, '8.6.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.flyingmeat.Acorn8' AND version_compare(bundle_short_version, '8.6.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.flyingmeat.Acorn8');" }, "installer_url": "https://flyingmeat.com/download/Acorn-8.6.1.zip", "install_script_ref": "905a9e15", diff --git a/ee/maintained-apps/outputs/activedock/darwin.json b/ee/maintained-apps/outputs/activedock/darwin.json index 93987f11e55..0e16332903e 100644 --- a/ee/maintained-apps/outputs/activedock/darwin.json +++ b/ee/maintained-apps/outputs/activedock/darwin.json @@ -4,7 +4,8 @@ "version": "2.881", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sergey-gerasimenko.ActiveDock-2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sergey-gerasimenko.ActiveDock-2' AND version_compare(bundle_short_version, '2.881') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sergey-gerasimenko.ActiveDock-2' AND version_compare(bundle_short_version, '2.881') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sergey-gerasimenko.ActiveDock-2');" }, "installer_url": "https://macplus-software.com/downloads/ActiveDock.zip", "install_script_ref": "8971cbeb", diff --git a/ee/maintained-apps/outputs/activitywatch/darwin.json b/ee/maintained-apps/outputs/activitywatch/darwin.json index cee13f4d5fc..171a825168c 100644 --- a/ee/maintained-apps/outputs/activitywatch/darwin.json +++ b/ee/maintained-apps/outputs/activitywatch/darwin.json @@ -4,7 +4,8 @@ "version": "0.13.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.activitywatch.ActivityWatch';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.activitywatch.ActivityWatch' AND version_compare(bundle_short_version, '0.13.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.activitywatch.ActivityWatch' AND version_compare(bundle_short_version, '0.13.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.activitywatch.ActivityWatch');" }, "installer_url": "https://github.com/ActivityWatch/activitywatch/releases/download/v0.13.2/activitywatch-v0.13.2-macos-x86_64.dmg", "install_script_ref": "879d6b6f", diff --git a/ee/maintained-apps/outputs/activitywatch/windows.json b/ee/maintained-apps/outputs/activitywatch/windows.json index d1bf26869fe..f36e1c99e0a 100644 --- a/ee/maintained-apps/outputs/activitywatch/windows.json +++ b/ee/maintained-apps/outputs/activitywatch/windows.json @@ -4,7 +4,8 @@ "version": "0.13.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'ActivityWatch' AND publisher = 'ActivityWatch Contributors';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ActivityWatch' AND publisher = 'ActivityWatch Contributors' AND version_compare(version, '0.13.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ActivityWatch' AND publisher = 'ActivityWatch Contributors' AND version_compare(version, '0.13.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'activitywatch.exe');" }, "installer_url": "https://github.com/ActivityWatch/activitywatch/releases/download/v0.13.2/activitywatch-v0.13.2-windows-x86_64-setup.exe", "install_script_ref": "c9e9cc94", diff --git a/ee/maintained-apps/outputs/actual/darwin.json b/ee/maintained-apps/outputs/actual/darwin.json index 864398b1d8a..dd0ea02cd8f 100644 --- a/ee/maintained-apps/outputs/actual/darwin.json +++ b/ee/maintained-apps/outputs/actual/darwin.json @@ -4,7 +4,8 @@ "version": "26.8.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.actualbudget.actual';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.actualbudget.actual' AND version_compare(bundle_short_version, '26.8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.actualbudget.actual' AND version_compare(bundle_short_version, '26.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.actualbudget.actual');" }, "installer_url": "https://github.com/actualbudget/actual/releases/download/v26.8.0/Actual-mac-arm64.dmg", "install_script_ref": "a6f737ee", diff --git a/ee/maintained-apps/outputs/adguard/darwin.json b/ee/maintained-apps/outputs/adguard/darwin.json index ecd800f0455..467ef0b2354 100644 --- a/ee/maintained-apps/outputs/adguard/darwin.json +++ b/ee/maintained-apps/outputs/adguard/darwin.json @@ -4,7 +4,8 @@ "version": "2.19.0.2258", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.adguard.mac.adguard';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adguard.mac.adguard' AND version_compare(bundle_short_version, '2.19.0.2258') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adguard.mac.adguard' AND version_compare(bundle_short_version, '2.19.0.2258') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.adguard.mac.adguard');" }, "installer_url": "https://static.adguard.com/mac/release/AdGuard-2.19.0.2258.dmg", "install_script_ref": "bd04834e", diff --git a/ee/maintained-apps/outputs/adlock/darwin.json b/ee/maintained-apps/outputs/adlock/darwin.json index 62a45fabaa6..2a0b4a0625d 100644 --- a/ee/maintained-apps/outputs/adlock/darwin.json +++ b/ee/maintained-apps/outputs/adlock/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.9.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankuper.adlock.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankuper.adlock.desktop' AND version_compare(bundle_short_version, '2.1.9.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankuper.adlock.desktop' AND version_compare(bundle_short_version, '2.1.9.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hankuper.adlock.desktop');" }, "installer_url": "https://downloads.adlock.com/mac/AdLock_Installer.dmg", "install_script_ref": "fd5fc85e", diff --git a/ee/maintained-apps/outputs/adobe-acrobat-pro/darwin.json b/ee/maintained-apps/outputs/adobe-acrobat-pro/darwin.json index 73f44fbb4e4..ce8935be51b 100644 --- a/ee/maintained-apps/outputs/adobe-acrobat-pro/darwin.json +++ b/ee/maintained-apps/outputs/adobe-acrobat-pro/darwin.json @@ -4,7 +4,8 @@ "version": "26.001.21771", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.Acrobat.Pro';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.Acrobat.Pro' AND version_compare(bundle_short_version, '26.001.21771') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.Acrobat.Pro' AND version_compare(bundle_short_version, '26.001.21771') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.adobe.Acrobat.Pro');" }, "installer_url": "https://trials.adobe.com/AdobeProducts/APRO/Acrobat_HelpX/osx10/Acrobat_DC_Web_WWMUI.dmg", "install_script_ref": "afddc3a7", diff --git a/ee/maintained-apps/outputs/adobe-acrobat-pro/windows.json b/ee/maintained-apps/outputs/adobe-acrobat-pro/windows.json index 40b5160c93a..9a51a7d0dac 100644 --- a/ee/maintained-apps/outputs/adobe-acrobat-pro/windows.json +++ b/ee/maintained-apps/outputs/adobe-acrobat-pro/windows.json @@ -4,7 +4,8 @@ "version": "26.001.21771", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Adobe Acrobat DC (64-bit)' AND publisher = 'Adobe';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Adobe Acrobat DC (64-bit)' AND publisher = 'Adobe' AND version_compare(version, '26.001.21771') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Adobe Acrobat DC (64-bit)' AND publisher = 'Adobe' AND version_compare(version, '26.001.21771') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'adobe acrobat pro.exe');" }, "installer_url": "https://trials.adobe.com/AdobeProducts/APRO/Acrobat_HelpX/win32/Acrobat_DC_Web_x64_WWMUI.zip", "install_script_ref": "eff7ec32", diff --git a/ee/maintained-apps/outputs/adobe-acrobat-reader/darwin.json b/ee/maintained-apps/outputs/adobe-acrobat-reader/darwin.json index 217cb897e82..bef5bbe33fd 100644 --- a/ee/maintained-apps/outputs/adobe-acrobat-reader/darwin.json +++ b/ee/maintained-apps/outputs/adobe-acrobat-reader/darwin.json @@ -4,7 +4,8 @@ "version": "26.001.21662", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.Reader';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.Reader' AND version_compare(bundle_short_version, '26.001.21662') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.Reader' AND version_compare(bundle_short_version, '26.001.21662') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.adobe.Reader');" }, "installer_url": "https://ardownload2.adobe.com/pub/adobe/reader/mac/AcrobatDC/2600121662/AcroRdrDC_2600121662_MUI.dmg", "install_script_ref": "5f5f2226", diff --git a/ee/maintained-apps/outputs/adobe-acrobat-reader/windows.json b/ee/maintained-apps/outputs/adobe-acrobat-reader/windows.json index 25bcd41002c..319e822225a 100644 --- a/ee/maintained-apps/outputs/adobe-acrobat-reader/windows.json +++ b/ee/maintained-apps/outputs/adobe-acrobat-reader/windows.json @@ -4,7 +4,8 @@ "version": "26.001.21771", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Adobe Acrobat (64-bit)' AND publisher = 'Adobe';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Adobe Acrobat (64-bit)' AND publisher = 'Adobe' AND version_compare(version, '26.001.21771') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Adobe Acrobat (64-bit)' AND publisher = 'Adobe' AND version_compare(version, '26.001.21771') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'adobe acrobat reader.exe');" }, "installer_url": "https://ardownload3.adobe.com/pub/adobe/acrobat/win/AcrobatDC/2600121771/AcroRdrDCx642600121771_MUI.exe", "install_script_ref": "7dc0b065", diff --git a/ee/maintained-apps/outputs/adobe-creative-cloud/darwin.json b/ee/maintained-apps/outputs/adobe-creative-cloud/darwin.json index aaabb01093b..654dffe6d1e 100644 --- a/ee/maintained-apps/outputs/adobe-creative-cloud/darwin.json +++ b/ee/maintained-apps/outputs/adobe-creative-cloud/darwin.json @@ -4,7 +4,8 @@ "version": "6.10.0.252.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.acc.AdobeCreativeCloud';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.acc.AdobeCreativeCloud' AND version_compare(bundle_short_version, '6.10.0.252.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.acc.AdobeCreativeCloud' AND version_compare(bundle_short_version, '6.10.0.252.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.adobe.acc.AdobeCreativeCloud');" }, "installer_url": "https://ccmdls.adobe.com/AdobeProducts/StandaloneBuilds/ACCC/ESD/6.10.0/252.3/macarm64/ACCCx6_10_0_252_3.dmg", "install_script_ref": "2aa2127c", diff --git a/ee/maintained-apps/outputs/adobe-creative-cloud/windows.json b/ee/maintained-apps/outputs/adobe-creative-cloud/windows.json index 9fe1a5849b2..622354a6d66 100644 --- a/ee/maintained-apps/outputs/adobe-creative-cloud/windows.json +++ b/ee/maintained-apps/outputs/adobe-creative-cloud/windows.json @@ -4,7 +4,8 @@ "version": "6.10.0.252.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Adobe Creative Cloud' AND publisher = 'Adobe Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Adobe Creative Cloud' AND publisher = 'Adobe Inc.' AND version_compare(version, '6.10.0.252.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Adobe Creative Cloud' AND publisher = 'Adobe Inc.' AND version_compare(version, '6.10.0.252.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'adobe creative cloud.exe');" }, "installer_url": "https://prod-rel-ffc-ccm.oobesaas.adobe.com/adobe-ffc-external/core/v1/wam/download?sapCode=KCCC&wamFeature=nuj-live", "install_script_ref": "a4660692", diff --git a/ee/maintained-apps/outputs/adobe-digital-editions/darwin.json b/ee/maintained-apps/outputs/adobe-digital-editions/darwin.json index 92b5eb03ede..582cfb3ee5e 100644 --- a/ee/maintained-apps/outputs/adobe-digital-editions/darwin.json +++ b/ee/maintained-apps/outputs/adobe-digital-editions/darwin.json @@ -4,7 +4,8 @@ "version": "4.5.12", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.adobedigitaleditions.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.adobedigitaleditions.app' AND version_compare(bundle_short_version, '4.5.12') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.adobedigitaleditions.app' AND version_compare(bundle_short_version, '4.5.12') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.adobe.adobedigitaleditions.app');" }, "installer_url": "https://adedownload.adobe.com/pub/adobe/digitaleditions/ADE_4.5_Installer.dmg", "install_script_ref": "0348c9d5", diff --git a/ee/maintained-apps/outputs/adobe-dng-converter/darwin.json b/ee/maintained-apps/outputs/adobe-dng-converter/darwin.json index 8b608c33c2d..505aab38f46 100644 --- a/ee/maintained-apps/outputs/adobe-dng-converter/darwin.json +++ b/ee/maintained-apps/outputs/adobe-dng-converter/darwin.json @@ -4,7 +4,8 @@ "version": "18.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.DNGConverter';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.DNGConverter' AND version_compare(bundle_short_version, '18.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.DNGConverter' AND version_compare(bundle_short_version, '18.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.adobe.DNGConverter');" }, "installer_url": "https://download.adobe.com/pub/adobe/dng/mac/DNGConverter_18_5.dmg", "install_script_ref": "ac06e091", diff --git a/ee/maintained-apps/outputs/advanced-installer/windows.json b/ee/maintained-apps/outputs/advanced-installer/windows.json index 3b6070c5e52..294ea51699e 100644 --- a/ee/maintained-apps/outputs/advanced-installer/windows.json +++ b/ee/maintained-apps/outputs/advanced-installer/windows.json @@ -4,7 +4,8 @@ "version": "23.9", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Advanced Installer %' AND publisher = 'Caphyon';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Advanced Installer %' AND publisher = 'Caphyon' AND version_compare(version, '23.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Advanced Installer %' AND publisher = 'Caphyon' AND version_compare(version, '23.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'advanced installer.exe');" }, "installer_url": "https://storage.advancedupdater.cloud/downloads/23.9/advinst.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/advanced-renamer/darwin.json b/ee/maintained-apps/outputs/advanced-renamer/darwin.json index b93ba6d34b6..d79a8784db6 100644 --- a/ee/maintained-apps/outputs/advanced-renamer/darwin.json +++ b/ee/maintained-apps/outputs/advanced-renamer/darwin.json @@ -4,7 +4,8 @@ "version": "4.24", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.HulubuluSoftware.AdvancedRenamer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.HulubuluSoftware.AdvancedRenamer' AND version_compare(bundle_short_version, '4.24') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.HulubuluSoftware.AdvancedRenamer' AND version_compare(bundle_short_version, '4.24') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.HulubuluSoftware.AdvancedRenamer');" }, "installer_url": "https://www.advancedrenamer.com/down/macos/arm/AdvancedRenamer_4_24.dmg", "install_script_ref": "98d31102", diff --git a/ee/maintained-apps/outputs/affinity-designer/darwin.json b/ee/maintained-apps/outputs/affinity-designer/darwin.json index 7149c42fbb7..d266fa610d1 100644 --- a/ee/maintained-apps/outputs/affinity-designer/darwin.json +++ b/ee/maintained-apps/outputs/affinity-designer/darwin.json @@ -4,7 +4,8 @@ "version": "2.6.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinitydesigner2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinitydesigner2' AND version_compare(bundle_short_version, '2.6.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinitydesigner2' AND version_compare(bundle_short_version, '2.6.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.seriflabs.affinitydesigner2');" }, "installer_url": "https://affinity-update.s3.amazonaws.com/mac2/retail/Affinity%20Designer%202%20Affinity%20Store%203782.zip", "install_script_ref": "36d1e230", diff --git a/ee/maintained-apps/outputs/affinity-designer@1/darwin.json b/ee/maintained-apps/outputs/affinity-designer@1/darwin.json index eed486d2317..05ac1d4d0fa 100644 --- a/ee/maintained-apps/outputs/affinity-designer@1/darwin.json +++ b/ee/maintained-apps/outputs/affinity-designer@1/darwin.json @@ -4,7 +4,8 @@ "version": "1.10.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinitydesigner';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinitydesigner' AND version_compare(bundle_short_version, '1.10.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinitydesigner' AND version_compare(bundle_short_version, '1.10.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.seriflabs.affinitydesigner');" }, "installer_url": "https://affinity-update.s3.amazonaws.com/mac/retail/Affinity%20Designer-1.10.8.app.zip", "install_script_ref": "2a9da685", diff --git a/ee/maintained-apps/outputs/affinity-photo/darwin.json b/ee/maintained-apps/outputs/affinity-photo/darwin.json index faf70de37b6..efdb7054c5e 100644 --- a/ee/maintained-apps/outputs/affinity-photo/darwin.json +++ b/ee/maintained-apps/outputs/affinity-photo/darwin.json @@ -4,7 +4,8 @@ "version": "2.6.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinityphoto2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinityphoto2' AND version_compare(bundle_short_version, '2.6.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinityphoto2' AND version_compare(bundle_short_version, '2.6.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.seriflabs.affinityphoto2');" }, "installer_url": "https://affinity-update.s3.amazonaws.com/mac2/retail/Affinity%20Photo%202%20Affinity%20Store%203782.zip", "install_script_ref": "116af54f", diff --git a/ee/maintained-apps/outputs/affinity-photo@1/darwin.json b/ee/maintained-apps/outputs/affinity-photo@1/darwin.json index e2064c7ef4d..76843f7c2c2 100644 --- a/ee/maintained-apps/outputs/affinity-photo@1/darwin.json +++ b/ee/maintained-apps/outputs/affinity-photo@1/darwin.json @@ -4,7 +4,8 @@ "version": "1.10.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinityphoto';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinityphoto' AND version_compare(bundle_short_version, '1.10.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinityphoto' AND version_compare(bundle_short_version, '1.10.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.seriflabs.affinityphoto');" }, "installer_url": "https://affinity-update.s3.amazonaws.com/mac/retail/Affinity%20Photo-1.10.8.app.zip", "install_script_ref": "e97a663f", diff --git a/ee/maintained-apps/outputs/affinity-publisher/darwin.json b/ee/maintained-apps/outputs/affinity-publisher/darwin.json index c3eb6cc344f..e14c807f630 100644 --- a/ee/maintained-apps/outputs/affinity-publisher/darwin.json +++ b/ee/maintained-apps/outputs/affinity-publisher/darwin.json @@ -4,7 +4,8 @@ "version": "2.6.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinitypublisher2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinitypublisher2' AND version_compare(bundle_short_version, '2.6.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinitypublisher2' AND version_compare(bundle_short_version, '2.6.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.seriflabs.affinitypublisher2');" }, "installer_url": "https://affinity-update.s3.amazonaws.com/mac2/retail/Affinity%20Publisher%202%20Affinity%20Store%203782.zip", "install_script_ref": "db783e5c", diff --git a/ee/maintained-apps/outputs/affinity-publisher@1/darwin.json b/ee/maintained-apps/outputs/affinity-publisher@1/darwin.json index ac6b938207b..323b3de803e 100644 --- a/ee/maintained-apps/outputs/affinity-publisher@1/darwin.json +++ b/ee/maintained-apps/outputs/affinity-publisher@1/darwin.json @@ -4,7 +4,8 @@ "version": "1.10.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinitypublisher';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinitypublisher' AND version_compare(bundle_short_version, '1.10.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.seriflabs.affinitypublisher' AND version_compare(bundle_short_version, '1.10.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.seriflabs.affinitypublisher');" }, "installer_url": "https://affinity-update.s3.amazonaws.com/mac/retail/Affinity%20Publisher-1.10.8.app.zip", "install_script_ref": "5a22e6ad", diff --git a/ee/maintained-apps/outputs/affinity/darwin.json b/ee/maintained-apps/outputs/affinity/darwin.json index 600983eea07..5b18fdc41b0 100644 --- a/ee/maintained-apps/outputs/affinity/darwin.json +++ b/ee/maintained-apps/outputs/affinity/darwin.json @@ -4,7 +4,8 @@ "version": "3.2.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.canva.affinity';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.canva.affinity' AND version_compare(bundle_short_version, '3.2.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.canva.affinity' AND version_compare(bundle_short_version, '3.2.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.canva.affinity');" }, "installer_url": "https://affinity-update.s3.amazonaws.com/mac2/retail/Affinity%20Affinity%20Store%204646.zip", "install_script_ref": "fdf5531d", diff --git a/ee/maintained-apps/outputs/affinity/windows.json b/ee/maintained-apps/outputs/affinity/windows.json index 4f33faeddb9..15fb0b74cf6 100644 --- a/ee/maintained-apps/outputs/affinity/windows.json +++ b/ee/maintained-apps/outputs/affinity/windows.json @@ -4,7 +4,8 @@ "version": "3.2.3.4646", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Affinity' AND publisher = 'Canva';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Affinity' AND publisher = 'Canva' AND version_compare(version, '3.2.3.4646') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Affinity' AND publisher = 'Canva' AND version_compare(version, '3.2.3.4646') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'affinity.exe');" }, "installer_url": "https://affinity-update.serif.com/windows/3/studio/retail/Affinity-Affinity-Store-x64-4646-3a9aed7b269d9fec6fddc78dd56847089f173fe7.msix", "install_script_ref": "9e9c1496", diff --git a/ee/maintained-apps/outputs/agent-ransack/windows.json b/ee/maintained-apps/outputs/agent-ransack/windows.json index b7797b6b972..74ca36213d8 100644 --- a/ee/maintained-apps/outputs/agent-ransack/windows.json +++ b/ee/maintained-apps/outputs/agent-ransack/windows.json @@ -4,7 +4,8 @@ "version": "9.3.3562.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Agent Ransack' AND publisher = 'Mythicsoft Ltd';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Agent Ransack' AND publisher = 'Mythicsoft Ltd' AND version_compare(version, '9.3.3562.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Agent Ransack' AND publisher = 'Mythicsoft Ltd' AND version_compare(version, '9.3.3562.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'agent ransack.exe');" }, "installer_url": "https://download.mythicsoft.com/flp/3562/X4aef2vyu.bzx/agentransack_x64_msi_3562.zip", "install_script_ref": "84fc806b", diff --git a/ee/maintained-apps/outputs/air-explorer/windows.json b/ee/maintained-apps/outputs/air-explorer/windows.json index 7740c6af38b..70b9db9ae0f 100644 --- a/ee/maintained-apps/outputs/air-explorer/windows.json +++ b/ee/maintained-apps/outputs/air-explorer/windows.json @@ -4,7 +4,8 @@ "version": "5.11.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Air Explorer' AND publisher = 'http://www.airexplorer.net';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Air Explorer' AND publisher = 'http://www.airexplorer.net' AND version_compare(version, '5.11.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Air Explorer' AND publisher = 'http://www.airexplorer.net' AND version_compare(version, '5.11.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'air explorer.exe');" }, "installer_url": "https://www.airexplorer.net/downloads/AirExplorer-OnlineInstaller.exe", "install_script_ref": "2f0b2cad", diff --git a/ee/maintained-apps/outputs/airbuddy/darwin.json b/ee/maintained-apps/outputs/airbuddy/darwin.json index 9d4b0a9e3c1..450a033b5ad 100644 --- a/ee/maintained-apps/outputs/airbuddy/darwin.json +++ b/ee/maintained-apps/outputs/airbuddy/darwin.json @@ -4,7 +4,8 @@ "version": "2.8.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'codes.rambo.AirBuddy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'codes.rambo.AirBuddy' AND version_compare(bundle_short_version, '2.8.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'codes.rambo.AirBuddy' AND version_compare(bundle_short_version, '2.8.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'codes.rambo.AirBuddy');" }, "installer_url": "https://su.airbuddy.app/kCRSAmcjBc/AirBuddy_v2.8.1-660.dmg", "install_script_ref": "d2a86d92", diff --git a/ee/maintained-apps/outputs/aircall/darwin.json b/ee/maintained-apps/outputs/aircall/darwin.json index 625fd4ac13c..88b3fe3e605 100644 --- a/ee/maintained-apps/outputs/aircall/darwin.json +++ b/ee/maintained-apps/outputs/aircall/darwin.json @@ -4,7 +4,8 @@ "version": "3.1.66", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.aircall.phone';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.aircall.phone' AND version_compare(bundle_short_version, '3.1.66') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.aircall.phone' AND version_compare(bundle_short_version, '3.1.66') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.aircall.phone');" }, "installer_url": "https://download-electron.aircall.io/Aircall-3.1.66.dmg", "install_script_ref": "029a5c4f", diff --git a/ee/maintained-apps/outputs/aircall/windows.json b/ee/maintained-apps/outputs/aircall/windows.json index fa019240cf6..c9dc2c04547 100644 --- a/ee/maintained-apps/outputs/aircall/windows.json +++ b/ee/maintained-apps/outputs/aircall/windows.json @@ -4,7 +4,8 @@ "version": "3.1.66", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Aircall' AND publisher = 'Aircall';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Aircall' AND publisher = 'Aircall' AND version_compare(version, '3.1.66') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Aircall' AND publisher = 'Aircall' AND version_compare(version, '3.1.66') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'aircall.exe');" }, "installer_url": "https://download-electron.aircall.io/Aircall-3.1.66.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/airdroid/darwin.json b/ee/maintained-apps/outputs/airdroid/darwin.json index c20e58a1c96..c3516c2804a 100644 --- a/ee/maintained-apps/outputs/airdroid/darwin.json +++ b/ee/maintained-apps/outputs/airdroid/darwin.json @@ -4,7 +4,8 @@ "version": "3.7.3.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sandstudio.airdroid';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sandstudio.airdroid' AND version_compare(bundle_short_version, '3.7.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sandstudio.airdroid' AND version_compare(bundle_short_version, '3.7.3.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sandstudio.airdroid');" }, "installer_url": "https://dl.airdroid.com/AirDroid_Desktop_Client_3.7.3.1.dmg", "install_script_ref": "e797e90d", diff --git a/ee/maintained-apps/outputs/airparrot/darwin.json b/ee/maintained-apps/outputs/airparrot/darwin.json index 7175344b101..93ed674aed5 100644 --- a/ee/maintained-apps/outputs/airparrot/darwin.json +++ b/ee/maintained-apps/outputs/airparrot/darwin.json @@ -4,7 +4,8 @@ "version": "3.1.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.squirrels.AirParrot-3';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.squirrels.AirParrot-3' AND version_compare(bundle_short_version, '3.1.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.squirrels.AirParrot-3' AND version_compare(bundle_short_version, '3.1.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.squirrels.AirParrot-3');" }, "installer_url": "https://download.airsquirrels.com/AirParrot3/Mac/AirParrot-3.1.7.dmg", "install_script_ref": "a5af95d5", diff --git a/ee/maintained-apps/outputs/airparrot/windows.json b/ee/maintained-apps/outputs/airparrot/windows.json index e4527bea7f7..436cabc761e 100644 --- a/ee/maintained-apps/outputs/airparrot/windows.json +++ b/ee/maintained-apps/outputs/airparrot/windows.json @@ -4,7 +4,8 @@ "version": "3.1.8.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'AirParrot 3' AND publisher = 'Squirrels';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'AirParrot 3' AND publisher = 'Squirrels' AND version_compare(version, '3.1.8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'AirParrot 3' AND publisher = 'Squirrels' AND version_compare(version, '3.1.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'airparrot.exe');" }, "installer_url": "https://download.airsquirrels.com/AirParrot3/Windows/AirParrot-3.1.8-64.msi?hsLang=de", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/airserver/darwin.json b/ee/maintained-apps/outputs/airserver/darwin.json index e711b99a8e9..97d427bf273 100644 --- a/ee/maintained-apps/outputs/airserver/darwin.json +++ b/ee/maintained-apps/outputs/airserver/darwin.json @@ -4,7 +4,8 @@ "version": "7.3.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.pratikkumar.airserver-mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.pratikkumar.airserver-mac' AND version_compare(bundle_short_version, '7.3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.pratikkumar.airserver-mac' AND version_compare(bundle_short_version, '7.3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.pratikkumar.airserver-mac');" }, "installer_url": "https://dl.airserver.com/mac/AirServer-7.3.3.dmg", "install_script_ref": "14e82afb", diff --git a/ee/maintained-apps/outputs/airtable/darwin.json b/ee/maintained-apps/outputs/airtable/darwin.json index 12fbe9a7787..b45c23f89c1 100644 --- a/ee/maintained-apps/outputs/airtable/darwin.json +++ b/ee/maintained-apps/outputs/airtable/darwin.json @@ -4,7 +4,8 @@ "version": "1.6.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.FormaGrid.Airtable';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.FormaGrid.Airtable' AND version_compare(bundle_short_version, '1.6.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.FormaGrid.Airtable' AND version_compare(bundle_short_version, '1.6.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.FormaGrid.Airtable');" }, "installer_url": "https://static.airtable.com/download/macos/Airtable-1.6.6.dmg", "install_script_ref": "63fb1973", diff --git a/ee/maintained-apps/outputs/airtable/windows.json b/ee/maintained-apps/outputs/airtable/windows.json index 821e81a6a24..29df4538c00 100644 --- a/ee/maintained-apps/outputs/airtable/windows.json +++ b/ee/maintained-apps/outputs/airtable/windows.json @@ -4,7 +4,8 @@ "version": "1.4.5", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Airtable' AND publisher = 'Airtable';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Airtable' AND publisher = 'Airtable' AND version_compare(version, '1.4.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Airtable' AND publisher = 'Airtable' AND version_compare(version, '1.4.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'airtable.exe');" }, "installer_url": "https://static.airtable.com/download/win/AirtableSetup1.4.5.exe", "install_script_ref": "ff3de939", diff --git a/ee/maintained-apps/outputs/airtame/darwin.json b/ee/maintained-apps/outputs/airtame/darwin.json index 0ef358c8c55..4a7c22a302c 100644 --- a/ee/maintained-apps/outputs/airtame/darwin.json +++ b/ee/maintained-apps/outputs/airtame/darwin.json @@ -4,7 +4,8 @@ "version": "4.15.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.airtame.airtame-application';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.airtame.airtame-application' AND version_compare(bundle_short_version, '4.15.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.airtame.airtame-application' AND version_compare(bundle_short_version, '4.15.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.airtame.airtame-application');" }, "installer_url": "https://downloads-cdn.airtame.com/app/latest/mac/Airtame-4.15.0.dmg", "install_script_ref": "4e4b470a", diff --git a/ee/maintained-apps/outputs/airtame/windows.json b/ee/maintained-apps/outputs/airtame/windows.json index 07b191a1c7f..62875a5dc66 100644 --- a/ee/maintained-apps/outputs/airtame/windows.json +++ b/ee/maintained-apps/outputs/airtame/windows.json @@ -4,7 +4,8 @@ "version": "4.15.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Airtame %' AND publisher = 'Airtame';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Airtame %' AND publisher = 'Airtame' AND version_compare(version, '4.15.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Airtame %' AND publisher = 'Airtame' AND version_compare(version, '4.15.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'airtame.exe');" }, "installer_url": "https://airtame-app.b-cdn.net/app/latest/win/Airtame-4.15.1-setup.exe", "install_script_ref": "8a919fae", diff --git a/ee/maintained-apps/outputs/airy/darwin.json b/ee/maintained-apps/outputs/airy/darwin.json index 1f3f62dc32e..5820ebd7ce5 100644 --- a/ee/maintained-apps/outputs/airy/darwin.json +++ b/ee/maintained-apps/outputs/airy/darwin.json @@ -4,7 +4,8 @@ "version": "3.29.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.eltima.Airy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.eltima.Airy' AND version_compare(bundle_short_version, '3.29.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.eltima.Airy' AND version_compare(bundle_short_version, '3.29.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.eltima.Airy');" }, "installer_url": "https://cdn.airy-youtube-downloader.com/products/airy/mac/download/airy.dmg", "install_script_ref": "f9303b49", diff --git a/ee/maintained-apps/outputs/akiflow/darwin.json b/ee/maintained-apps/outputs/akiflow/darwin.json index e0cf99f3b54..5625604f27c 100644 --- a/ee/maintained-apps/outputs/akiflow/darwin.json +++ b/ee/maintained-apps/outputs/akiflow/darwin.json @@ -4,7 +4,8 @@ "version": "2.80.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.akiflow.akiflow';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.akiflow.akiflow' AND version_compare(bundle_short_version, '2.80.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.akiflow.akiflow' AND version_compare(bundle_short_version, '2.80.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.akiflow.akiflow');" }, "installer_url": "https://download.akiflow.com/builds/Akiflow-2.80.3-d68751d9-universal.dmg", "install_script_ref": "7d580667", diff --git a/ee/maintained-apps/outputs/alacritty/windows.json b/ee/maintained-apps/outputs/alacritty/windows.json index b44553d059b..4377b2e2a6b 100644 --- a/ee/maintained-apps/outputs/alacritty/windows.json +++ b/ee/maintained-apps/outputs/alacritty/windows.json @@ -4,7 +4,8 @@ "version": "0.17.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Alacritty' AND publisher = 'Alacritty';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Alacritty' AND publisher = 'Alacritty' AND version_compare(version, '0.17.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Alacritty' AND publisher = 'Alacritty' AND version_compare(version, '0.17.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'alacritty.exe');" }, "installer_url": "https://github.com/alacritty/alacritty/releases/download/v0.17.0/Alacritty-v0.17.0-installer.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/alcove/darwin.json b/ee/maintained-apps/outputs/alcove/darwin.json index b0b59a368b7..51801c4d59d 100644 --- a/ee/maintained-apps/outputs/alcove/darwin.json +++ b/ee/maintained-apps/outputs/alcove/darwin.json @@ -4,7 +4,8 @@ "version": "1.7.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.henrikruscon.Alcove';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.henrikruscon.Alcove' AND version_compare(bundle_short_version, '1.7.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.henrikruscon.Alcove' AND version_compare(bundle_short_version, '1.7.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.henrikruscon.Alcove');" }, "installer_url": "https://download.tryalcove.com/Alcove.dmg", "install_script_ref": "f0f034e7", diff --git a/ee/maintained-apps/outputs/aldente/darwin.json b/ee/maintained-apps/outputs/aldente/darwin.json index aff274e1223..adb0d2e83e9 100644 --- a/ee/maintained-apps/outputs/aldente/darwin.json +++ b/ee/maintained-apps/outputs/aldente/darwin.json @@ -4,7 +4,8 @@ "version": "1.38.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.apphousekitchen.aldente-pro';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apphousekitchen.aldente-pro' AND version_compare(bundle_short_version, '1.38.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apphousekitchen.aldente-pro' AND version_compare(bundle_short_version, '1.38.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.apphousekitchen.aldente-pro');" }, "installer_url": "https://apphousekitchen.com/aldente/AlDente1.38.1.dmg", "install_script_ref": "cb72fdf2", diff --git a/ee/maintained-apps/outputs/alfaview/windows.json b/ee/maintained-apps/outputs/alfaview/windows.json index 5e507d20a1c..1d967a783c2 100644 --- a/ee/maintained-apps/outputs/alfaview/windows.json +++ b/ee/maintained-apps/outputs/alfaview/windows.json @@ -4,7 +4,8 @@ "version": "9.28.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'alfaview msi version %' AND publisher = 'alfaview Video Conferencing Systems GmbH & Co. KG';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'alfaview msi version %' AND publisher = 'alfaview Video Conferencing Systems GmbH & Co. KG' AND version_compare(version, '9.28.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'alfaview msi version %' AND publisher = 'alfaview Video Conferencing Systems GmbH & Co. KG' AND version_compare(version, '9.28.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'alfaview.exe');" }, "installer_url": "https://assets.alfaview.com/stable/win/alfaview-setup-win-production-9.28.1.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/alloy/darwin.json b/ee/maintained-apps/outputs/alloy/darwin.json index 63db7c22107..b051aa3e19d 100644 --- a/ee/maintained-apps/outputs/alloy/darwin.json +++ b/ee/maintained-apps/outputs/alloy/darwin.json @@ -4,7 +4,8 @@ "version": "6.2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.alloytools.alloy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.alloytools.alloy' AND version_compare(bundle_short_version, '6.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.alloytools.alloy' AND version_compare(bundle_short_version, '6.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.alloytools.alloy');" }, "installer_url": "https://github.com/AlloyTools/org.alloytools.alloy/releases/download/v6.2.0/alloy-6.2.0-mac-aarch64.zip", "install_script_ref": "470daeb4", diff --git a/ee/maintained-apps/outputs/allway-sync/windows.json b/ee/maintained-apps/outputs/allway-sync/windows.json index adb29e3c4ed..c658677293b 100644 --- a/ee/maintained-apps/outputs/allway-sync/windows.json +++ b/ee/maintained-apps/outputs/allway-sync/windows.json @@ -4,7 +4,8 @@ "version": "22.0.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Allway Sync' AND publisher = 'Botkind Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Allway Sync' AND publisher = 'Botkind Inc.' AND version_compare(version, '22.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Allway Sync' AND publisher = 'Botkind Inc.' AND version_compare(version, '22.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'allway sync.exe');" }, "installer_url": "https://allwaysync.com/content/download/allwaysync-x64-22-0-1.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/alt-tab/darwin.json b/ee/maintained-apps/outputs/alt-tab/darwin.json index 9e270627c38..21119954927 100644 --- a/ee/maintained-apps/outputs/alt-tab/darwin.json +++ b/ee/maintained-apps/outputs/alt-tab/darwin.json @@ -4,7 +4,8 @@ "version": "11.4.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lwouis.alt-tab-macos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lwouis.alt-tab-macos' AND version_compare(bundle_short_version, '11.4.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lwouis.alt-tab-macos' AND version_compare(bundle_short_version, '11.4.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.lwouis.alt-tab-macos');" }, "installer_url": "https://github.com/lwouis/alt-tab-macos/releases/download/v11.4.4/AltTab-11.4.4.zip", "install_script_ref": "ec488fa7", diff --git a/ee/maintained-apps/outputs/altair-graphql-client/darwin.json b/ee/maintained-apps/outputs/altair-graphql-client/darwin.json index dcaeaca76f2..ddfad7a2428 100644 --- a/ee/maintained-apps/outputs/altair-graphql-client/darwin.json +++ b/ee/maintained-apps/outputs/altair-graphql-client/darwin.json @@ -4,7 +4,8 @@ "version": "8.5.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.xkoji.altair';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.xkoji.altair' AND version_compare(bundle_short_version, '8.5.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.xkoji.altair' AND version_compare(bundle_short_version, '8.5.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.xkoji.altair');" }, "installer_url": "https://github.com/imolorhe/altair/releases/download/v8.5.7/altair_8.5.7_arm64_mac.zip", "install_script_ref": "5c1a30ea", diff --git a/ee/maintained-apps/outputs/amadeus-pro/darwin.json b/ee/maintained-apps/outputs/amadeus-pro/darwin.json index 8a3c83da799..ae832250e84 100644 --- a/ee/maintained-apps/outputs/amadeus-pro/darwin.json +++ b/ee/maintained-apps/outputs/amadeus-pro/darwin.json @@ -4,7 +4,8 @@ "version": "2.8.14", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.HairerSoft.AmadeusPro';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.HairerSoft.AmadeusPro' AND version_compare(bundle_short_version, '2.8.14') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.HairerSoft.AmadeusPro' AND version_compare(bundle_short_version, '2.8.14') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.HairerSoft.AmadeusPro');" }, "installer_url": "https://s3.amazonaws.com/AmadeusPro2/AmadeusPro.zip", "install_script_ref": "fa54b46e", diff --git a/ee/maintained-apps/outputs/amadine/darwin.json b/ee/maintained-apps/outputs/amadine/darwin.json index 9468db572c1..5852c459e4a 100644 --- a/ee/maintained-apps/outputs/amadine/darwin.json +++ b/ee/maintained-apps/outputs/amadine/darwin.json @@ -4,7 +4,8 @@ "version": "1.8.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.belightsoft.Amadine';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.belightsoft.Amadine' AND version_compare(bundle_short_version, '1.8.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.belightsoft.Amadine' AND version_compare(bundle_short_version, '1.8.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.belightsoft.Amadine');" }, "installer_url": "https://belightsoft.s3.amazonaws.com/Amadine.dmg", "install_script_ref": "6a5b1e85", diff --git a/ee/maintained-apps/outputs/amazon-chime/darwin.json b/ee/maintained-apps/outputs/amazon-chime/darwin.json index 08adfc55f8c..965e999c43d 100644 --- a/ee/maintained-apps/outputs/amazon-chime/darwin.json +++ b/ee/maintained-apps/outputs/amazon-chime/darwin.json @@ -4,7 +4,8 @@ "version": "5.23.22533", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.amazon.Amazon-Chime';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.amazon.Amazon-Chime' AND version_compare(bundle_short_version, '5.23.22533') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.amazon.Amazon-Chime' AND version_compare(bundle_short_version, '5.23.22533') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.amazon.Amazon-Chime');" }, "installer_url": "https://clients.chime.aws/mac-nme/AmazonChime-5.23.22533.dmg", "install_script_ref": "2f00176d", diff --git a/ee/maintained-apps/outputs/amazon-chime/windows.json b/ee/maintained-apps/outputs/amazon-chime/windows.json index 15345cc6dad..587c27298e1 100644 --- a/ee/maintained-apps/outputs/amazon-chime/windows.json +++ b/ee/maintained-apps/outputs/amazon-chime/windows.json @@ -4,7 +4,8 @@ "version": "5.23.32138", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Amazon Chime' AND publisher = 'Amazon.com Services LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Chime' AND publisher = 'Amazon.com Services LLC' AND version_compare(version, '5.23.32138') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Chime' AND publisher = 'Amazon.com Services LLC' AND version_compare(version, '5.23.32138') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('amazon chime.exe','chime.exe'));" }, "installer_url": "https://clients.chime.aws/win-nme/Chime-5.23.32138.exe", "install_script_ref": "9b209374", diff --git a/ee/maintained-apps/outputs/amazon-corretto-11/windows.json b/ee/maintained-apps/outputs/amazon-corretto-11/windows.json index e701275c2ed..4ac1394a6cd 100644 --- a/ee/maintained-apps/outputs/amazon-corretto-11/windows.json +++ b/ee/maintained-apps/outputs/amazon-corretto-11/windows.json @@ -4,7 +4,8 @@ "version": "11.0.32.9", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '11.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '11.%' AND version_compare(version, '11.0.32.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '11.%' AND version_compare(version, '11.0.32.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'amazon corretto 11.exe');" }, "installer_url": "https://corretto.aws/downloads/resources/11.0.32.9.1/amazon-corretto-11.0.32.9.1-windows-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/amazon-corretto-17/windows.json b/ee/maintained-apps/outputs/amazon-corretto-17/windows.json index 0a50d48d590..9c23d8aa340 100644 --- a/ee/maintained-apps/outputs/amazon-corretto-17/windows.json +++ b/ee/maintained-apps/outputs/amazon-corretto-17/windows.json @@ -4,7 +4,8 @@ "version": "17.0.20.8", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '17.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '17.%' AND version_compare(version, '17.0.20.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '17.%' AND version_compare(version, '17.0.20.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'amazon corretto 17.exe');" }, "installer_url": "https://corretto.aws/downloads/resources/17.0.20.8.1/amazon-corretto-17.0.20.8.1-windows-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/amazon-corretto-21/windows.json b/ee/maintained-apps/outputs/amazon-corretto-21/windows.json index 2441ea19e75..0a5c050f06c 100644 --- a/ee/maintained-apps/outputs/amazon-corretto-21/windows.json +++ b/ee/maintained-apps/outputs/amazon-corretto-21/windows.json @@ -4,7 +4,8 @@ "version": "21.0.12.8", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '21.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '21.%' AND version_compare(version, '21.0.12.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '21.%' AND version_compare(version, '21.0.12.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'amazon corretto 21.exe');" }, "installer_url": "https://corretto.aws/downloads/resources/21.0.12.8.1/amazon-corretto-21.0.12.8.1-windows-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/amazon-corretto-24/windows.json b/ee/maintained-apps/outputs/amazon-corretto-24/windows.json index 02e8e7e1332..e5ef793a44e 100644 --- a/ee/maintained-apps/outputs/amazon-corretto-24/windows.json +++ b/ee/maintained-apps/outputs/amazon-corretto-24/windows.json @@ -4,7 +4,8 @@ "version": "24.0.2.12", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '24.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '24.%' AND version_compare(version, '24.0.2.12') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '24.%' AND version_compare(version, '24.0.2.12') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'amazon corretto 24.exe');" }, "installer_url": "https://corretto.aws/downloads/resources/24.0.2.12.1/amazon-corretto-24.0.2.12.1-windows-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/amazon-corretto-25/windows.json b/ee/maintained-apps/outputs/amazon-corretto-25/windows.json index 3adf1ba57b3..4d50431d92e 100644 --- a/ee/maintained-apps/outputs/amazon-corretto-25/windows.json +++ b/ee/maintained-apps/outputs/amazon-corretto-25/windows.json @@ -4,7 +4,8 @@ "version": "25.0.4.7", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '25.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '25.%' AND version_compare(version, '25.0.4.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '25.%' AND version_compare(version, '25.0.4.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'amazon corretto 25.exe');" }, "installer_url": "https://corretto.aws/downloads/resources/25.0.4.7.1/amazon-corretto-25.0.4.7.1-windows-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/amazon-corretto-26/windows.json b/ee/maintained-apps/outputs/amazon-corretto-26/windows.json index 5e000d6ff60..2c103a01a71 100644 --- a/ee/maintained-apps/outputs/amazon-corretto-26/windows.json +++ b/ee/maintained-apps/outputs/amazon-corretto-26/windows.json @@ -4,7 +4,8 @@ "version": "26.0.2.10", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '26.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '26.%' AND version_compare(version, '26.0.2.10') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto (x64)' AND publisher = 'Amazon' AND version LIKE '26.%' AND version_compare(version, '26.0.2.10') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'amazon corretto 26.exe');" }, "installer_url": "https://corretto.aws/downloads/resources/26.0.2.10.1/amazon-corretto-26.0.2.10.1-windows-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/amazon-corretto-8/windows.json b/ee/maintained-apps/outputs/amazon-corretto-8/windows.json index 7f622f4403f..5bc08541d17 100644 --- a/ee/maintained-apps/outputs/amazon-corretto-8/windows.json +++ b/ee/maintained-apps/outputs/amazon-corretto-8/windows.json @@ -4,7 +4,8 @@ "version": "1.8.0.502", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Amazon Corretto 8 (x64)' AND publisher = 'Amazon';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto 8 (x64)' AND publisher = 'Amazon' AND version_compare(version, '1.8.0.502') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto 8 (x64)' AND publisher = 'Amazon' AND version_compare(version, '1.8.0.502') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'amazon corretto 8.exe');" }, "installer_url": "https://corretto.aws/downloads/resources/8.502.07.1/amazon-corretto-8.502.07.1-windows-x64-jdk.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/amazon-corretto-jre-8/windows.json b/ee/maintained-apps/outputs/amazon-corretto-jre-8/windows.json index db43d8068c0..aad8562d103 100644 --- a/ee/maintained-apps/outputs/amazon-corretto-jre-8/windows.json +++ b/ee/maintained-apps/outputs/amazon-corretto-jre-8/windows.json @@ -4,7 +4,8 @@ "version": "1.8.0.502", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Amazon Corretto JRE 8 (x64)' AND publisher = 'Amazon';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto JRE 8 (x64)' AND publisher = 'Amazon' AND version_compare(version, '1.8.0.502') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Corretto JRE 8 (x64)' AND publisher = 'Amazon' AND version_compare(version, '1.8.0.502') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'amazon corretto jre 8.exe');" }, "installer_url": "https://corretto.aws/downloads/resources/8.502.07.1/amazon-corretto-8.502.07.1-windows-x64-jre.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/amazon-dcv-client/windows.json b/ee/maintained-apps/outputs/amazon-dcv-client/windows.json index 187e9e707e0..225c3b85701 100644 --- a/ee/maintained-apps/outputs/amazon-dcv-client/windows.json +++ b/ee/maintained-apps/outputs/amazon-dcv-client/windows.json @@ -4,7 +4,8 @@ "version": "25.0.9800.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Amazon DCV Client' AND publisher = 'NICE Software';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon DCV Client' AND publisher = 'NICE Software' AND version_compare(version, '25.0.9800.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon DCV Client' AND publisher = 'NICE Software' AND version_compare(version, '25.0.9800.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'amazon dcv client.exe');" }, "installer_url": "https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Clients/nice-dcv-client-Release-2025.0-9800.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/amazon-dcv-server/windows.json b/ee/maintained-apps/outputs/amazon-dcv-server/windows.json index 9e565cec853..d70e31cf767 100644 --- a/ee/maintained-apps/outputs/amazon-dcv-server/windows.json +++ b/ee/maintained-apps/outputs/amazon-dcv-server/windows.json @@ -4,7 +4,8 @@ "version": "25.0.20103.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Amazon DCV Server' AND publisher = 'NICE, an Amazon Web Services company';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon DCV Server' AND publisher = 'NICE, an Amazon Web Services company' AND version_compare(version, '25.0.20103.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon DCV Server' AND publisher = 'NICE, an Amazon Web Services company' AND version_compare(version, '25.0.20103.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'amazon dcv server.exe');" }, "installer_url": "https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Servers/nice-dcv-server-x64-Release-2025.0-20103.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/amazon-redshift-odbc-driver/windows.json b/ee/maintained-apps/outputs/amazon-redshift-odbc-driver/windows.json index 20a12073a27..ef8e03adf42 100644 --- a/ee/maintained-apps/outputs/amazon-redshift-odbc-driver/windows.json +++ b/ee/maintained-apps/outputs/amazon-redshift-odbc-driver/windows.json @@ -4,7 +4,8 @@ "version": "2.1.9.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Amazon Redshift ODBC Driver 64-bit' AND publisher = 'Amazon Web Services, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Redshift ODBC Driver 64-bit' AND publisher = 'Amazon Web Services, Inc.' AND version_compare(version, '2.1.9.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon Redshift ODBC Driver 64-bit' AND publisher = 'Amazon Web Services, Inc.' AND version_compare(version, '2.1.9.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'amazon redshift odbc driver.exe');" }, "installer_url": "https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/amazon-workspaces/darwin.json b/ee/maintained-apps/outputs/amazon-workspaces/darwin.json index b7ff8c45e23..147ad5fb51d 100644 --- a/ee/maintained-apps/outputs/amazon-workspaces/darwin.json +++ b/ee/maintained-apps/outputs/amazon-workspaces/darwin.json @@ -4,7 +4,8 @@ "version": "5.33.0.6168", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.amazon.workspaces';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.amazon.workspaces' AND version_compare(bundle_short_version, '5.33.0.6168') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.amazon.workspaces' AND version_compare(bundle_short_version, '5.33.0.6168') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.amazon.workspaces');" }, "installer_url": "https://d2td7dqidlhjx7.cloudfront.net/prod/global/osx/WorkSpaces_AllProducts_6168.zip", "install_script_ref": "d32f3040", diff --git a/ee/maintained-apps/outputs/amazon-workspaces/windows.json b/ee/maintained-apps/outputs/amazon-workspaces/windows.json index cf3640b096d..787f70f2a8d 100644 --- a/ee/maintained-apps/outputs/amazon-workspaces/windows.json +++ b/ee/maintained-apps/outputs/amazon-workspaces/windows.json @@ -4,7 +4,8 @@ "version": "5.33.0.5939", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Amazon WorkSpaces' AND publisher = 'Amazon Web Services, Inc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon WorkSpaces' AND publisher = 'Amazon Web Services, Inc' AND version_compare(version, '5.33.0.5939') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Amazon WorkSpaces' AND publisher = 'Amazon Web Services, Inc' AND version_compare(version, '5.33.0.5939') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'amazon workspaces.exe');" }, "installer_url": "https://d2td7dqidlhjx7.cloudfront.net/prod/global/windows/Amazon+WorkSpaces.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/amethyst/darwin.json b/ee/maintained-apps/outputs/amethyst/darwin.json index ef116a6ee47..53e4b4da5c8 100644 --- a/ee/maintained-apps/outputs/amethyst/darwin.json +++ b/ee/maintained-apps/outputs/amethyst/darwin.json @@ -4,7 +4,8 @@ "version": "0.24.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.amethyst.Amethyst';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.amethyst.Amethyst' AND version_compare(bundle_short_version, '0.24.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.amethyst.Amethyst' AND version_compare(bundle_short_version, '0.24.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.amethyst.Amethyst');" }, "installer_url": "https://github.com/ianyh/Amethyst/releases/download/v0.24.3/Amethyst.zip", "install_script_ref": "6c35aeb2", diff --git a/ee/maintained-apps/outputs/amie/darwin.json b/ee/maintained-apps/outputs/amie/darwin.json index 8857535fe5b..bf6165e77b1 100644 --- a/ee/maintained-apps/outputs/amie/darwin.json +++ b/ee/maintained-apps/outputs/amie/darwin.json @@ -4,7 +4,8 @@ "version": "260722.1.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'so.amie.electron-app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'so.amie.electron-app' AND version_compare(bundle_short_version, '260722.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'so.amie.electron-app' AND version_compare(bundle_short_version, '260722.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'so.amie.electron-app');" }, "installer_url": "https://github.com/amieso/electron-releases/releases/download/v260722.1.0/Amie-260722.1.0-arm64-mac.zip", "install_script_ref": "be47fa85", diff --git a/ee/maintained-apps/outputs/android-studio/darwin.json b/ee/maintained-apps/outputs/android-studio/darwin.json index 84dfe0f2e90..82bbab82890 100644 --- a/ee/maintained-apps/outputs/android-studio/darwin.json +++ b/ee/maintained-apps/outputs/android-studio/darwin.json @@ -4,7 +4,8 @@ "version": "2026.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.android.studio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.android.studio' AND version_compare(bundle_short_version, '2026.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.android.studio' AND version_compare(bundle_short_version, '2026.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.google.android.studio');" }, "installer_url": "https://edgedl.me.gvt1.com/android/studio/install/2026.1.3.7/android-studio-quail3-mac_arm.dmg", "install_script_ref": "2f5a5ada", diff --git a/ee/maintained-apps/outputs/android-studio/windows.json b/ee/maintained-apps/outputs/android-studio/windows.json index 42897abd644..1b7035802e7 100644 --- a/ee/maintained-apps/outputs/android-studio/windows.json +++ b/ee/maintained-apps/outputs/android-studio/windows.json @@ -4,7 +4,8 @@ "version": "2026.1.3.7", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Android Studio' AND publisher = 'Google LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Android Studio' AND publisher = 'Google LLC' AND version_compare(version, '2026.1.3.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Android Studio' AND publisher = 'Google LLC' AND version_compare(version, '2026.1.3.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'studio64.exe');" }, "installer_url": "https://edgedl.me.gvt1.com/android/studio/install/2026.1.3.7/android-studio-quail3-windows.exe", "install_script_ref": "36676cba", diff --git a/ee/maintained-apps/outputs/angry-ip-scanner/darwin.json b/ee/maintained-apps/outputs/angry-ip-scanner/darwin.json index 886b32b7744..70bbb8d2e61 100644 --- a/ee/maintained-apps/outputs/angry-ip-scanner/darwin.json +++ b/ee/maintained-apps/outputs/angry-ip-scanner/darwin.json @@ -4,7 +4,8 @@ "version": "3.9.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.azib.ipscan';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.azib.ipscan' AND version_compare(bundle_short_version, '3.9.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.azib.ipscan' AND version_compare(bundle_short_version, '3.9.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.azib.ipscan');" }, "installer_url": "https://github.com/angryip/ipscan/releases/download/3.9.3/ipscan-macArm64-3.9.3.zip", "install_script_ref": "862883fa", diff --git a/ee/maintained-apps/outputs/anka-virtualization/darwin.json b/ee/maintained-apps/outputs/anka-virtualization/darwin.json index e9c304d59c5..f2371a6d291 100644 --- a/ee/maintained-apps/outputs/anka-virtualization/darwin.json +++ b/ee/maintained-apps/outputs/anka-virtualization/darwin.json @@ -4,7 +4,8 @@ "version": "3.9.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.veertu.anka';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.veertu.anka' AND version_compare(bundle_short_version, '3.9.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.veertu.anka' AND version_compare(bundle_short_version, '3.9.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.veertu.anka');" }, "installer_url": "https://downloads.veertu.com/anka/Anka-3.9.2.217.pkg", "install_script_ref": "a7fd6a9e", diff --git a/ee/maintained-apps/outputs/another-redis-desktop-manager/darwin.json b/ee/maintained-apps/outputs/another-redis-desktop-manager/darwin.json index 5d3682db020..dad468af1e7 100644 --- a/ee/maintained-apps/outputs/another-redis-desktop-manager/darwin.json +++ b/ee/maintained-apps/outputs/another-redis-desktop-manager/darwin.json @@ -4,7 +4,8 @@ "version": "1.7.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'me.qii404.another-redis-desktop-manager';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'me.qii404.another-redis-desktop-manager' AND version_compare(bundle_short_version, '1.7.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'me.qii404.another-redis-desktop-manager' AND version_compare(bundle_short_version, '1.7.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'me.qii404.another-redis-desktop-manager');" }, "installer_url": "https://github.com/qishibo/AnotherRedisDesktopManager/releases/download/v1.7.2/Another-Redis-Desktop-Manager-mac-1.7.2-arm64.dmg", "install_script_ref": "8a4299bf", diff --git a/ee/maintained-apps/outputs/another-redis-desktop-manager/windows.json b/ee/maintained-apps/outputs/another-redis-desktop-manager/windows.json index f220097d0ea..75c7b2a41a4 100644 --- a/ee/maintained-apps/outputs/another-redis-desktop-manager/windows.json +++ b/ee/maintained-apps/outputs/another-redis-desktop-manager/windows.json @@ -4,7 +4,8 @@ "version": "1.7.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Another Redis Desktop Manager %' AND publisher = 'Another';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Another Redis Desktop Manager %' AND publisher = 'Another' AND version_compare(version, '1.7.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Another Redis Desktop Manager %' AND publisher = 'Another' AND version_compare(version, '1.7.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'another redis desktop manager.exe');" }, "installer_url": "https://github.com/qishibo/AnotherRedisDesktopManager/releases/download/v1.7.2/Another-Redis-Desktop-Manager-win-1.7.2-x64.exe", "install_script_ref": "a37c96e2", diff --git a/ee/maintained-apps/outputs/antigravity-ide/darwin.json b/ee/maintained-apps/outputs/antigravity-ide/darwin.json index bb15554f922..8d6ca2d466f 100644 --- a/ee/maintained-apps/outputs/antigravity-ide/darwin.json +++ b/ee/maintained-apps/outputs/antigravity-ide/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.antigravity-ide';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.antigravity-ide' AND version_compare(bundle_short_version, '2.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.antigravity-ide' AND version_compare(bundle_short_version, '2.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.google.antigravity-ide');" }, "installer_url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/2.1.1-6123990880747520/darwin-arm/Antigravity%20IDE.dmg", "install_script_ref": "4037de63", diff --git a/ee/maintained-apps/outputs/antigravity-ide/windows.json b/ee/maintained-apps/outputs/antigravity-ide/windows.json index 697b5ef63a1..11eb4b0cd18 100644 --- a/ee/maintained-apps/outputs/antigravity-ide/windows.json +++ b/ee/maintained-apps/outputs/antigravity-ide/windows.json @@ -4,7 +4,8 @@ "version": "2.1.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Antigravity IDE %' AND publisher = 'Google';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Antigravity IDE %' AND publisher = 'Google' AND version_compare(version, '2.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Antigravity IDE %' AND publisher = 'Google' AND version_compare(version, '2.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'antigravity.exe');" }, "installer_url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/2.1.1-6123990880747520/windows-x64/Antigravity%20IDE.exe", "install_script_ref": "8b15c4d0", diff --git a/ee/maintained-apps/outputs/antigravity/darwin.json b/ee/maintained-apps/outputs/antigravity/darwin.json index 1962602d1d0..ddd48639f83 100644 --- a/ee/maintained-apps/outputs/antigravity/darwin.json +++ b/ee/maintained-apps/outputs/antigravity/darwin.json @@ -4,7 +4,8 @@ "version": "2.5.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.antigravity';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.antigravity' AND version_compare(bundle_short_version, '2.5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.antigravity' AND version_compare(bundle_short_version, '2.5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.google.antigravity');" }, "installer_url": "https://storage.googleapis.com/antigravity-public/antigravity-hub/2.5.0-5471848641724416/darwin-arm/Antigravity.dmg", "install_script_ref": "b60a046d", diff --git a/ee/maintained-apps/outputs/antinote/darwin.json b/ee/maintained-apps/outputs/antinote/darwin.json index f1a96a9ed35..b2a3249bb21 100644 --- a/ee/maintained-apps/outputs/antinote/darwin.json +++ b/ee/maintained-apps/outputs/antinote/darwin.json @@ -4,7 +4,8 @@ "version": "1.1.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.chabomakers.Antinote';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.chabomakers.Antinote' AND version_compare(bundle_short_version, '1.1.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.chabomakers.Antinote' AND version_compare(bundle_short_version, '1.1.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.chabomakers.Antinote');" }, "installer_url": "https://antinote.io/updates/Antinote_1.1.7.dmg", "install_script_ref": "3be1a226", diff --git a/ee/maintained-apps/outputs/anyburn/windows.json b/ee/maintained-apps/outputs/anyburn/windows.json index 54c26909394..a665ac77e55 100644 --- a/ee/maintained-apps/outputs/anyburn/windows.json +++ b/ee/maintained-apps/outputs/anyburn/windows.json @@ -4,7 +4,8 @@ "version": "6.9.0.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'AnyBurn' AND publisher = 'Power Software Ltd';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'AnyBurn' AND publisher = 'Power Software Ltd' AND version_compare(version, '6.9.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'AnyBurn' AND publisher = 'Power Software Ltd' AND version_compare(version, '6.9.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'anyburn.exe');" }, "installer_url": "https://anyburn.com/anyburn_setup.exe", "install_script_ref": "7f116219", diff --git a/ee/maintained-apps/outputs/anydesk/darwin.json b/ee/maintained-apps/outputs/anydesk/darwin.json index e7b9d2df975..490e4f3ab3a 100644 --- a/ee/maintained-apps/outputs/anydesk/darwin.json +++ b/ee/maintained-apps/outputs/anydesk/darwin.json @@ -4,7 +4,8 @@ "version": "9.7.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.philandro.anydesk';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.philandro.anydesk' AND version_compare(bundle_short_version, '9.7.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.philandro.anydesk' AND version_compare(bundle_short_version, '9.7.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.philandro.anydesk');" }, "installer_url": "https://download.anydesk.com/anydesk.dmg", "install_script_ref": "537b964b", diff --git a/ee/maintained-apps/outputs/anydo/darwin.json b/ee/maintained-apps/outputs/anydo/darwin.json index 689520d0360..e2366737f5b 100644 --- a/ee/maintained-apps/outputs/anydo/darwin.json +++ b/ee/maintained-apps/outputs/anydo/darwin.json @@ -4,7 +4,8 @@ "version": "5.0.68", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.anydo.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.anydo.mac' AND version_compare(bundle_short_version, '5.0.68') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.anydo.mac' AND version_compare(bundle_short_version, '5.0.68') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.anydo.mac');" }, "installer_url": "https://electron-app.any.do/Anydo-5.0.68-universal.dmg", "install_script_ref": "870f50ad", diff --git a/ee/maintained-apps/outputs/anytype/darwin.json b/ee/maintained-apps/outputs/anytype/darwin.json index 1f55f15cb39..eec18248e55 100644 --- a/ee/maintained-apps/outputs/anytype/darwin.json +++ b/ee/maintained-apps/outputs/anytype/darwin.json @@ -4,7 +4,8 @@ "version": "0.56.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.anytype.anytype';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.anytype.anytype' AND version_compare(bundle_short_version, '0.56.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.anytype.anytype' AND version_compare(bundle_short_version, '0.56.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.anytype.anytype');" }, "installer_url": "https://anytype-release.fra1.cdn.digitaloceanspaces.com/Anytype-0.56.1-mac-arm64.dmg", "install_script_ref": "a0aaeeef", diff --git a/ee/maintained-apps/outputs/aomei-backupper-standard/windows.json b/ee/maintained-apps/outputs/aomei-backupper-standard/windows.json index 53467f27166..d12d2be93f2 100644 --- a/ee/maintained-apps/outputs/aomei-backupper-standard/windows.json +++ b/ee/maintained-apps/outputs/aomei-backupper-standard/windows.json @@ -4,7 +4,8 @@ "version": "8.4.0.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'AOMEI Backupper' AND publisher = 'AOMEI International Network Limited.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'AOMEI Backupper' AND publisher = 'AOMEI International Network Limited.' AND version_compare(version, '8.4.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'AOMEI Backupper' AND publisher = 'AOMEI International Network Limited.' AND version_compare(version, '8.4.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'aomei backupper standard.exe');" }, "installer_url": "https://www2.aomeisoftware.com/download/adb/AOMEIBackupperStd.exe", "install_script_ref": "03d967ed", diff --git a/ee/maintained-apps/outputs/apidog/darwin.json b/ee/maintained-apps/outputs/apidog/darwin.json index 8aef9260e5a..43bbe13d5b3 100644 --- a/ee/maintained-apps/outputs/apidog/darwin.json +++ b/ee/maintained-apps/outputs/apidog/darwin.json @@ -4,7 +4,8 @@ "version": "2.8.41", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.apidog.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apidog.app' AND version_compare(bundle_short_version, '2.8.41') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apidog.app' AND version_compare(bundle_short_version, '2.8.41') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.apidog.app');" }, "installer_url": "https://file-assets.apidog.com/download/2.8.41/legacy-Apidog-macOS-arm64-2.8.41.dmg", "install_script_ref": "b5f530c0", diff --git a/ee/maintained-apps/outputs/app-fair/darwin.json b/ee/maintained-apps/outputs/app-fair/darwin.json index 6eebe201e54..9a4d3babc78 100644 --- a/ee/maintained-apps/outputs/app-fair/darwin.json +++ b/ee/maintained-apps/outputs/app-fair/darwin.json @@ -4,7 +4,8 @@ "version": "0.8.137", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.App-Fair';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.App-Fair' AND version_compare(bundle_short_version, '0.8.137') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.App-Fair' AND version_compare(bundle_short_version, '0.8.137') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.App-Fair');" }, "installer_url": "https://github.com/App-Fair/App/releases/download/0.8.137/App-Fair-macOS.zip", "install_script_ref": "d8cd3f1a", diff --git a/ee/maintained-apps/outputs/apparency/darwin.json b/ee/maintained-apps/outputs/apparency/darwin.json index 110a21156bc..5dd9d622ffb 100644 --- a/ee/maintained-apps/outputs/apparency/darwin.json +++ b/ee/maintained-apps/outputs/apparency/darwin.json @@ -4,7 +4,8 @@ "version": "3.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.Apparency';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.Apparency' AND version_compare(bundle_short_version, '3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.Apparency' AND version_compare(bundle_short_version, '3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mothersruin.Apparency');" }, "installer_url": "https://www.mothersruin.com/software/archives/Apparency-3.3.dmg", "install_script_ref": "100c1eda", diff --git a/ee/maintained-apps/outputs/appcleaner/darwin.json b/ee/maintained-apps/outputs/appcleaner/darwin.json index 9fe501fa6df..a8d4d97e2c2 100644 --- a/ee/maintained-apps/outputs/appcleaner/darwin.json +++ b/ee/maintained-apps/outputs/appcleaner/darwin.json @@ -4,7 +4,8 @@ "version": "3.6.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.freemacsoft.AppCleaner';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.freemacsoft.AppCleaner' AND version_compare(bundle_short_version, '3.6.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.freemacsoft.AppCleaner' AND version_compare(bundle_short_version, '3.6.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.freemacsoft.AppCleaner');" }, "installer_url": "https://www.freemacsoft.net/downloads/AppCleaner_3.6.8.zip", "install_script_ref": "bac574c8", diff --git a/ee/maintained-apps/outputs/appium-inspector/darwin.json b/ee/maintained-apps/outputs/appium-inspector/darwin.json index eaa30f33b60..02348be4f6f 100644 --- a/ee/maintained-apps/outputs/appium-inspector/darwin.json +++ b/ee/maintained-apps/outputs/appium-inspector/darwin.json @@ -4,7 +4,8 @@ "version": "2026.7.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.appium.inspector';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.appium.inspector' AND version_compare(bundle_short_version, '2026.7.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.appium.inspector' AND version_compare(bundle_short_version, '2026.7.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.appium.inspector');" }, "installer_url": "https://github.com/appium/appium-inspector/releases/download/v2026.7.1/Appium-Inspector-2026.7.1-mac-arm64.zip", "install_script_ref": "8185e6a3", diff --git a/ee/maintained-apps/outputs/applite/darwin.json b/ee/maintained-apps/outputs/applite/darwin.json index db46fd85617..c71a7a7c8ab 100644 --- a/ee/maintained-apps/outputs/applite/darwin.json +++ b/ee/maintained-apps/outputs/applite/darwin.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "1.3.1", + "version": "1.4.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.aerolite.Applite';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.aerolite.Applite' AND version_compare(bundle_short_version, '1.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.aerolite.Applite' AND version_compare(bundle_short_version, '1.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'dev.aerolite.Applite');" }, - "installer_url": "https://github.com/milanvarady/Applite/releases/download/v1.3.1/Applite.dmg", + "installer_url": "https://github.com/milanvarady/Applite/releases/download/v1.4.0/Applite.dmg", "install_script_ref": "a42af61a", "uninstall_script_ref": "ef83f643", - "sha256": "7c2972f21f373c1f64518212098a76604f14b05bd56eb7e56f84c25f4c9c8da2", + "sha256": "5344b3c868a80eb9b4ce6734f35c18e13b1c4ed1559038ddec8e271257abdeab", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/apps.json b/ee/maintained-apps/outputs/apps.json index 2c1867ae482..fbc0b06217b 100644 --- a/ee/maintained-apps/outputs/apps.json +++ b/ee/maintained-apps/outputs/apps.json @@ -8951,7 +8951,7 @@ "name": "Microsoft Visual C++ 2015-2022 Redistributable (x64)", "slug": "vc-redist-x64/windows", "platform": "windows", - "unique_identifier": "Microsoft Visual C++ 2015-2022 Redistributable (x64)", + "unique_identifier": "Microsoft Visual C++ v14 Redistributable (x64)", "description": "Microsoft Visual C++ 2015-2022 Redistributable (x64) installs the runtime components of the Visual C++ libraries required to run 64-bit applications built with Visual C++ 2015, 2017, 2019, and 2022." }, { diff --git a/ee/maintained-apps/outputs/aptakube/windows.json b/ee/maintained-apps/outputs/aptakube/windows.json index 61e93605c53..83029f6006a 100644 --- a/ee/maintained-apps/outputs/aptakube/windows.json +++ b/ee/maintained-apps/outputs/aptakube/windows.json @@ -4,7 +4,8 @@ "version": "1.18.8", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Aptakube' AND publisher = 'Zandar Labs SL';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Aptakube' AND publisher = 'Zandar Labs SL' AND version_compare(version, '1.18.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Aptakube' AND publisher = 'Zandar Labs SL' AND version_compare(version, '1.18.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'aptakube.exe');" }, "installer_url": "https://releases.aptakube.com/Aptakube_1.18.8_x64_en-US.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/arc/darwin.json b/ee/maintained-apps/outputs/arc/darwin.json index b1dc1bd9a1f..58c0a8d8c2c 100644 --- a/ee/maintained-apps/outputs/arc/darwin.json +++ b/ee/maintained-apps/outputs/arc/darwin.json @@ -4,7 +4,8 @@ "version": "1.159.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'company.thebrowser.Browser';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'company.thebrowser.Browser' AND version_compare(bundle_short_version, '1.159.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'company.thebrowser.Browser' AND version_compare(bundle_short_version, '1.159.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'company.thebrowser.Browser');" }, "installer_url": "https://releases.arc.net/release/Arc-1.159.0-84639.zip", "install_script_ref": "cbf109ae", diff --git a/ee/maintained-apps/outputs/arc/windows.json b/ee/maintained-apps/outputs/arc/windows.json index e6656f34b9d..2d49954c484 100644 --- a/ee/maintained-apps/outputs/arc/windows.json +++ b/ee/maintained-apps/outputs/arc/windows.json @@ -4,7 +4,8 @@ "version": "1.117.0.340", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Arc' AND publisher = 'The Browser Company of New York';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Arc' AND publisher = 'The Browser Company of New York' AND version_compare(version, '1.117.0.340') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Arc' AND publisher = 'The Browser Company of New York' AND version_compare(version, '1.117.0.340') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'arc.exe');" }, "installer_url": "https://releases.arc.net/windows/prod/1.117.0.340/Arc.x64.msix", "install_script_ref": "d2d5c7dc", diff --git a/ee/maintained-apps/outputs/archaeology/darwin.json b/ee/maintained-apps/outputs/archaeology/darwin.json index 6fe64c75ff3..8c289932b20 100644 --- a/ee/maintained-apps/outputs/archaeology/darwin.json +++ b/ee/maintained-apps/outputs/archaeology/darwin.json @@ -4,7 +4,8 @@ "version": "1.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.Archaeology';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.Archaeology' AND version_compare(bundle_short_version, '1.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.Archaeology' AND version_compare(bundle_short_version, '1.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mothersruin.Archaeology');" }, "installer_url": "https://www.mothersruin.com/software/downloads/Archaeology.dmg", "install_script_ref": "c44cf669", diff --git a/ee/maintained-apps/outputs/arduino-ide/darwin.json b/ee/maintained-apps/outputs/arduino-ide/darwin.json index bd3a76bc95a..8e5839eaf74 100644 --- a/ee/maintained-apps/outputs/arduino-ide/darwin.json +++ b/ee/maintained-apps/outputs/arduino-ide/darwin.json @@ -4,7 +4,8 @@ "version": "2.3.10", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'cc.arduino.IDE2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'cc.arduino.IDE2' AND version_compare(bundle_short_version, '2.3.10') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'cc.arduino.IDE2' AND version_compare(bundle_short_version, '2.3.10') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'cc.arduino.IDE2');" }, "installer_url": "https://github.com/arduino/arduino-ide/releases/download/2.3.10/arduino-ide_2.3.10_macOS_ARM64.dmg", "install_script_ref": "646e22c2", diff --git a/ee/maintained-apps/outputs/arduino-ide/windows.json b/ee/maintained-apps/outputs/arduino-ide/windows.json index 7281462f644..df893140277 100644 --- a/ee/maintained-apps/outputs/arduino-ide/windows.json +++ b/ee/maintained-apps/outputs/arduino-ide/windows.json @@ -4,7 +4,8 @@ "version": "2.3.8", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Arduino IDE' AND publisher = 'Arduino SA';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Arduino IDE' AND publisher = 'Arduino SA' AND version_compare(version, '2.3.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Arduino IDE' AND publisher = 'Arduino SA' AND version_compare(version, '2.3.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'arduino ide.exe');" }, "installer_url": "https://github.com/arduino/arduino-ide/releases/download/2.3.8/arduino-ide_2.3.8_Windows_64bit.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/asana/darwin.json b/ee/maintained-apps/outputs/asana/darwin.json index 4f81bae2edb..359299782e6 100644 --- a/ee/maintained-apps/outputs/asana/darwin.json +++ b/ee/maintained-apps/outputs/asana/darwin.json @@ -4,7 +4,8 @@ "version": "2.8.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.asana';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.asana' AND version_compare(bundle_short_version, '2.8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.asana' AND version_compare(bundle_short_version, '2.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.asana');" }, "installer_url": "https://desktop-downloads.asana.com/darwin_arm64/prod/v2.8.0/Asana-darwin-arm64-2.8.0.zip", "install_script_ref": "668a034e", diff --git a/ee/maintained-apps/outputs/asana/windows.json b/ee/maintained-apps/outputs/asana/windows.json index e552c22db13..c7ea59f21a4 100644 --- a/ee/maintained-apps/outputs/asana/windows.json +++ b/ee/maintained-apps/outputs/asana/windows.json @@ -4,7 +4,8 @@ "version": "2.8.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Asana' AND publisher = 'Asana, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Asana' AND publisher = 'Asana, Inc.' AND version_compare(version, '2.8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Asana' AND publisher = 'Asana, Inc.' AND version_compare(version, '2.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'asana.exe');" }, "installer_url": "https://desktop-downloads.asana.com/win32_x64/prod/v2.8.0/AsanaSetup.exe", "install_script_ref": "7d7fdd9d", diff --git a/ee/maintained-apps/outputs/asset-catalog-tinkerer/darwin.json b/ee/maintained-apps/outputs/asset-catalog-tinkerer/darwin.json index 2a33ad23514..8ccd588a7a5 100644 --- a/ee/maintained-apps/outputs/asset-catalog-tinkerer/darwin.json +++ b/ee/maintained-apps/outputs/asset-catalog-tinkerer/darwin.json @@ -4,7 +4,8 @@ "version": "2.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'br.com.guilhermerambo.Asset-Catalog-Tinkerer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'br.com.guilhermerambo.Asset-Catalog-Tinkerer' AND version_compare(bundle_short_version, '2.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'br.com.guilhermerambo.Asset-Catalog-Tinkerer' AND version_compare(bundle_short_version, '2.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'br.com.guilhermerambo.Asset-Catalog-Tinkerer');" }, "installer_url": "https://github.com/insidegui/AssetCatalogTinkerer/releases/download/2.9/AssetCatalogTinkerer_v2.9-290.zip", "install_script_ref": "6d750f5b", diff --git a/ee/maintained-apps/outputs/atext/darwin.json b/ee/maintained-apps/outputs/atext/darwin.json index f96923cdbb2..bb4c92239e8 100644 --- a/ee/maintained-apps/outputs/atext/darwin.json +++ b/ee/maintained-apps/outputs/atext/darwin.json @@ -4,7 +4,8 @@ "version": "3.21", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.trankynam.aText';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.trankynam.aText' AND version_compare(bundle_short_version, '3.21') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.trankynam.aText' AND version_compare(bundle_short_version, '3.21') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.trankynam.aText');" }, "installer_url": "https://www.trankynam.com/atext/downloads/aText.dmg", "install_script_ref": "3dd5595f", diff --git a/ee/maintained-apps/outputs/audacity/darwin.json b/ee/maintained-apps/outputs/audacity/darwin.json index 9d1c7453296..a9da404d507 100644 --- a/ee/maintained-apps/outputs/audacity/darwin.json +++ b/ee/maintained-apps/outputs/audacity/darwin.json @@ -4,7 +4,8 @@ "version": "3.7.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.audacityteam.audacity';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.audacityteam.audacity' AND version_compare(bundle_short_version, '3.7.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.audacityteam.audacity' AND version_compare(bundle_short_version, '3.7.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.audacityteam.audacity');" }, "installer_url": "https://github.com/audacity/audacity/releases/download/Audacity-3.7.8/audacity-macOS-3.7.8-arm64.dmg", "install_script_ref": "edbefd55", diff --git a/ee/maintained-apps/outputs/audacity/windows.json b/ee/maintained-apps/outputs/audacity/windows.json index cc449c3ecee..5e7bab7b0b1 100644 --- a/ee/maintained-apps/outputs/audacity/windows.json +++ b/ee/maintained-apps/outputs/audacity/windows.json @@ -4,7 +4,8 @@ "version": "3.7.8", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Audacity %' AND publisher = 'Audacity Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Audacity %' AND publisher = 'Audacity Team' AND version_compare(version, '3.7.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Audacity %' AND publisher = 'Audacity Team' AND version_compare(version, '3.7.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'audacity.exe');" }, "installer_url": "https://github.com/audacity/audacity/releases/download/Audacity-3.7.8/audacity-win-3.7.8-64bit.exe", "install_script_ref": "33137473", diff --git a/ee/maintained-apps/outputs/audio-hijack/darwin.json b/ee/maintained-apps/outputs/audio-hijack/darwin.json index 3b41670cbb0..70401b6069c 100644 --- a/ee/maintained-apps/outputs/audio-hijack/darwin.json +++ b/ee/maintained-apps/outputs/audio-hijack/darwin.json @@ -4,7 +4,8 @@ "version": "4.5.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.audiohijack';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.audiohijack' AND version_compare(bundle_short_version, '4.5.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.audiohijack' AND version_compare(bundle_short_version, '4.5.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.rogueamoeba.audiohijack');" }, "installer_url": "https://cdn.rogueamoeba.com/audiohijack/download/AudioHijack.zip", "install_script_ref": "50abe1ce", diff --git a/ee/maintained-apps/outputs/audiveris/windows.json b/ee/maintained-apps/outputs/audiveris/windows.json index 573a2693e99..437a91935a3 100644 --- a/ee/maintained-apps/outputs/audiveris/windows.json +++ b/ee/maintained-apps/outputs/audiveris/windows.json @@ -4,7 +4,8 @@ "version": "5.11.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Audiveris' AND publisher = 'audiveris.org';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Audiveris' AND publisher = 'audiveris.org' AND version_compare(version, '5.11.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Audiveris' AND publisher = 'audiveris.org' AND version_compare(version, '5.11.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'audiveris.exe');" }, "installer_url": "https://github.com/Audiveris/audiveris/releases/download/5.11.0/Audiveris-5.11.0-windows-x86_64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/autopsy/windows.json b/ee/maintained-apps/outputs/autopsy/windows.json index 2e697ff190e..cbf2aee6c6d 100644 --- a/ee/maintained-apps/outputs/autopsy/windows.json +++ b/ee/maintained-apps/outputs/autopsy/windows.json @@ -4,7 +4,8 @@ "version": "4.22.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Autopsy' AND publisher = 'The Sleuth Kit';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Autopsy' AND publisher = 'The Sleuth Kit' AND version_compare(version, '4.22.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Autopsy' AND publisher = 'The Sleuth Kit' AND version_compare(version, '4.22.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'autopsy.exe');" }, "installer_url": "https://github.com/sleuthkit/autopsy/releases/download/autopsy-4.22.1/autopsy-4.22.1-64bit.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/aviatrix-vpn-client/darwin.json b/ee/maintained-apps/outputs/aviatrix-vpn-client/darwin.json index 01649608b24..4735d884700 100644 --- a/ee/maintained-apps/outputs/aviatrix-vpn-client/darwin.json +++ b/ee/maintained-apps/outputs/aviatrix-vpn-client/darwin.json @@ -1,14 +1,15 @@ { "versions": [ { - "version": "2.17.7", + "version": "3.0.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.pythonmac.unspecified.AviatrixVPNClient';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.pythonmac.unspecified.AviatrixVPNClient' AND version_compare(bundle_short_version, '2.17.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.pythonmac.unspecified.AviatrixVPNClient' AND version_compare(bundle_short_version, '3.0.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.pythonmac.unspecified.AviatrixVPNClient');" }, "installer_url": "https://aviatrix-download.s3.amazonaws.com/AviatrixVPNClient/AVPNC_mac.pkg", "install_script_ref": "692de513", - "uninstall_script_ref": "7ef6154e", + "uninstall_script_ref": "abc2830e", "sha256": "no_check", "default_categories": [ "Security" @@ -17,6 +18,6 @@ ], "refs": { "692de513": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath \"$INSTALLER_PATH\")\")\n# functions\n\nquit_and_track_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n eval \"export $var_name=0\"\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n eval \"export $var_name=0\"\n return\n fi\n\n # App was running, mark it for relaunch\n eval \"export $var_name=1\"\n echo \"Application '$bundle_id' was running; will relaunch after installation.\"\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nrelaunch_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local was_running\n\n # Check if the app was running before installation\n eval \"was_running=\\$$var_name\"\n if [[ \"$was_running\" != \"1\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping relaunching application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Relaunching application '$bundle_id'...\"\n\n # Launch the app in the logged-in user's GUI session. Apps launched by root\n # won't register with the user's Dock/GUI, so run 'open' as the console user.\n # Use 'launchctl asuser' to bootstrap into the console user's Mach namespace\n # and GUI session — 'sudo -u' alone doesn't do this, which can cause\n # LSOpenURLsWithRole() failures even when 'open' exits 0.\n local open_status=0\n if [[ $EUID -eq 0 ]]; then\n local console_uid\n console_uid=$(id -u \"$console_user\")\n /bin/launchctl asuser \"$console_uid\" sudo -u \"$console_user\" open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n else\n open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n fi\n\n if [[ $open_status -eq 0 ]]; then\n echo \"Application '$bundle_id' relaunched successfully.\"\n else\n echo \"Failed to relaunch application '$bundle_id'.\"\n fi\n}\n\n\n# install pkg files\nquit_and_track_application 'org.pythonmac.unspecified.AviatrixVPNClient'\nsudo installer -pkg \"$TMPDIR/AVPNC_mac.pkg\" -target / || exit $?\nrelaunch_application 'org.pythonmac.unspecified.AviatrixVPNClient'\n", - "7ef6154e": "#!/bin/bash\n\n# variables\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nexpand_pkgid_and_map() {\n local PKGID=\"$1\"\n local FUNC=\"$2\"\n if [[ \"$PKGID\" == *\"*\" ]]; then\n local prefix=\"${PKGID%\\*}\"\n echo \"Expanding wildcard for PKGID: $PKGID\"\n for receipt in $(pkgutil --pkgs | grep \"^${prefix}\"); do\n echo \"Processing $receipt\"\n \"$FUNC\" \"$receipt\"\n done\n else\n \"$FUNC\" \"$PKGID\"\n fi\n}\n\nforget_pkg() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" forget_receipt\n}\n\nforget_receipt() {\n local PKGID=\"$1\"\n sudo pkgutil --forget \"$PKGID\"\n}\n\nremove_launchctl_service() {\n local service=\"$1\"\n local booleans=(\"true\" \"false\")\n local plist_status\n local paths\n local should_sudo\n\n echo \"Removing launchctl service ${service}\"\n\n # A wildcard label can't be used with launchctl or as a plist name, so expand\n # it to the labels of currently loaded services that match the pattern.\n local services=(\"$service\")\n if [[ \"$service\" == *\"*\"* ]]; then\n local regex\n # Escape regex metacharacters, turn '*' into '.*', and anchor the pattern so\n # it matches a full label rather than a substring.\n regex=$(printf '%s' \"$service\" | sed -e 's/[][(){}.^$+?|\\\\]/\\\\&/g' -e 's/\\*/.*/g')\n regex=\"^${regex}$\"\n services=()\n local id\n # Match every loaded job by label regardless of PID; launchctl list reports\n # loaded-but-not-running jobs with a \"-\" in the PID column.\n while read -r _ _ id; do\n [[ \"$id\" =~ $regex ]] && services+=(\"$id\")\n done < <(launchctl list 2>/dev/null | tail -n +2)\n if [[ ${#services[@]} -eq 0 ]]; then\n echo \"No loaded launchctl service matches ${service}\"\n return\n fi\n fi\n\n local service_label\n for service_label in \"${services[@]}\"; do\n for should_sudo in \"${booleans[@]}\"; do\n plist_status=$(launchctl list \"${service_label}\" 2>/dev/null)\n\n if [[ $plist_status == \\{* ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo launchctl remove \"${service_label}\"\n else\n launchctl remove \"${service_label}\"\n fi\n sleep 1\n fi\n\n paths=(\n \"/Library/LaunchAgents/${service_label}.plist\"\n \"/Library/LaunchDaemons/${service_label}.plist\"\n )\n\n # if not using sudo, prepend the home directory to the paths\n if [[ $should_sudo == \"false\" ]]; then\n for i in \"${!paths[@]}\"; do\n paths[i]=\"${HOME}${paths[i]}\"\n done\n fi\n\n for path in \"${paths[@]}\"; do\n if [[ -e \"$path\" ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo rm -f -- \"$path\"\n else\n rm -f -- \"$path\"\n fi\n fi\n done\n done\n done\n}\n\nremove_pkg_files() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" remove_receipt_files\n}\n\nremove_receipt_files() {\n local PKGID=\"$1\"\n local PKGINFO VOLUME INSTALL_LOCATION FULL_INSTALL_LOCATION\n\n echo \"pkgutil --pkg-info-plist \\\"$PKGID\\\"\"\n PKGINFO=$(pkgutil --pkg-info-plist \"$PKGID\")\n VOLUME=$(echo \"$PKGINFO\" | awk '/volume<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/install-location<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n\n if [ -z \"$INSTALL_LOCATION\" ] || [ \"$INSTALL_LOCATION\" = \"/\" ]; then\n FULL_INSTALL_LOCATION=\"$VOLUME\"\n else\n FULL_INSTALL_LOCATION=\"$VOLUME/$INSTALL_LOCATION\"\n FULL_INSTALL_LOCATION=$(echo \"$FULL_INSTALL_LOCATION\" | sed 's|//|/|g')\n fi\n\n echo \"sudo pkgutil --only-files --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-files --files \"$PKGID\" | sed \"s|^|/${INSTALL_LOCATION}/|\" | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n echo \"sudo pkgutil --only-dirs --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | grep '\\\\.app$' | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-dirs --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | grep '\\.app$' | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n root_app_dir=$(\n sudo pkgutil --only-dirs --files \"$PKGID\" \\\n | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" \\\n | grep 'Applications' \\\n | awk '{ print length, $0 }' \\\n | sort -n \\\n | head -n1 \\\n | cut -d' ' -f2-\n )\n if [ -n \"$root_app_dir\" ]; then\n echo \"sudo rmdir -p \\\"$root_app_dir\\\" 2>/dev/null || :\"\n sudo rmdir -p \"$root_app_dir\" 2>/dev/null || :\n fi\n}\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nremove_launchctl_service 'aviatrix.vpn.client.rp.plist'\nremove_pkg_files 'com.Aviatrix.VPNClient'\nforget_pkg 'com.Aviatrix.VPNClient'\nsudo rm -rf '/Applications/Aviatrix VPN Client.app'\ntrash $LOGGED_IN_USER '~/Library/Aviatrix'\ntrash $LOGGED_IN_USER '~/Library/Logs/AviatrixVPNC'\ntrash $LOGGED_IN_USER '~/Library/Preferences/org.pythonmac.unspecified.AviatrixVPNClient.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/org.pythonmac.unspecified.AviatrixVPNClient.savedState'\n" + "abc2830e": "#!/bin/bash\n\n# variables\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nexpand_pkgid_and_map() {\n local PKGID=\"$1\"\n local FUNC=\"$2\"\n if [[ \"$PKGID\" == *\"*\" ]]; then\n local prefix=\"${PKGID%\\*}\"\n echo \"Expanding wildcard for PKGID: $PKGID\"\n for receipt in $(pkgutil --pkgs | grep \"^${prefix}\"); do\n echo \"Processing $receipt\"\n \"$FUNC\" \"$receipt\"\n done\n else\n \"$FUNC\" \"$PKGID\"\n fi\n}\n\nforget_pkg() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" forget_receipt\n}\n\nforget_receipt() {\n local PKGID=\"$1\"\n sudo pkgutil --forget \"$PKGID\"\n}\n\nremove_launchctl_service() {\n local service=\"$1\"\n local booleans=(\"true\" \"false\")\n local plist_status\n local paths\n local should_sudo\n\n echo \"Removing launchctl service ${service}\"\n\n # A wildcard label can't be used with launchctl or as a plist name, so expand\n # it to the labels of currently loaded services that match the pattern.\n local services=(\"$service\")\n if [[ \"$service\" == *\"*\"* ]]; then\n local regex\n # Escape regex metacharacters, turn '*' into '.*', and anchor the pattern so\n # it matches a full label rather than a substring.\n regex=$(printf '%s' \"$service\" | sed -e 's/[][(){}.^$+?|\\\\]/\\\\&/g' -e 's/\\*/.*/g')\n regex=\"^${regex}$\"\n services=()\n local id\n # Match every loaded job by label regardless of PID; launchctl list reports\n # loaded-but-not-running jobs with a \"-\" in the PID column.\n while read -r _ _ id; do\n [[ \"$id\" =~ $regex ]] && services+=(\"$id\")\n done < <(launchctl list 2>/dev/null | tail -n +2)\n if [[ ${#services[@]} -eq 0 ]]; then\n echo \"No loaded launchctl service matches ${service}\"\n return\n fi\n fi\n\n local service_label\n for service_label in \"${services[@]}\"; do\n for should_sudo in \"${booleans[@]}\"; do\n plist_status=$(launchctl list \"${service_label}\" 2>/dev/null)\n\n if [[ $plist_status == \\{* ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo launchctl remove \"${service_label}\"\n else\n launchctl remove \"${service_label}\"\n fi\n sleep 1\n fi\n\n paths=(\n \"/Library/LaunchAgents/${service_label}.plist\"\n \"/Library/LaunchDaemons/${service_label}.plist\"\n )\n\n # if not using sudo, prepend the home directory to the paths\n if [[ $should_sudo == \"false\" ]]; then\n for i in \"${!paths[@]}\"; do\n paths[i]=\"${HOME}${paths[i]}\"\n done\n fi\n\n for path in \"${paths[@]}\"; do\n if [[ -e \"$path\" ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo rm -f -- \"$path\"\n else\n rm -f -- \"$path\"\n fi\n fi\n done\n done\n done\n}\n\nremove_pkg_files() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" remove_receipt_files\n}\n\nremove_receipt_files() {\n local PKGID=\"$1\"\n local PKGINFO VOLUME INSTALL_LOCATION FULL_INSTALL_LOCATION\n\n echo \"pkgutil --pkg-info-plist \\\"$PKGID\\\"\"\n PKGINFO=$(pkgutil --pkg-info-plist \"$PKGID\")\n VOLUME=$(echo \"$PKGINFO\" | awk '/volume<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/install-location<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n\n if [ -z \"$INSTALL_LOCATION\" ] || [ \"$INSTALL_LOCATION\" = \"/\" ]; then\n FULL_INSTALL_LOCATION=\"$VOLUME\"\n else\n FULL_INSTALL_LOCATION=\"$VOLUME/$INSTALL_LOCATION\"\n FULL_INSTALL_LOCATION=$(echo \"$FULL_INSTALL_LOCATION\" | sed 's|//|/|g')\n fi\n\n echo \"sudo pkgutil --only-files --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-files --files \"$PKGID\" | sed \"s|^|/${INSTALL_LOCATION}/|\" | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n echo \"sudo pkgutil --only-dirs --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | grep '\\\\.app$' | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-dirs --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | grep '\\.app$' | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n root_app_dir=$(\n sudo pkgutil --only-dirs --files \"$PKGID\" \\\n | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" \\\n | grep 'Applications' \\\n | awk '{ print length, $0 }' \\\n | sort -n \\\n | head -n1 \\\n | cut -d' ' -f2-\n )\n if [ -n \"$root_app_dir\" ]; then\n echo \"sudo rmdir -p \\\"$root_app_dir\\\" 2>/dev/null || :\"\n sudo rmdir -p \"$root_app_dir\" 2>/dev/null || :\n fi\n}\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nremove_launchctl_service 'aviatrix.vpn.client.rp'\nremove_pkg_files 'com.Aviatrix.VPNClient'\nforget_pkg 'com.Aviatrix.VPNClient'\nsudo rm -rf '/Applications/Aviatrix VPN Client.app'\ntrash $LOGGED_IN_USER '/Library/Application Support/Aviatrix VPN Client'\ntrash $LOGGED_IN_USER '~/Library/Aviatrix'\ntrash $LOGGED_IN_USER '~/Library/Logs/AviatrixVPNC'\ntrash $LOGGED_IN_USER '~/Library/Preferences/org.pythonmac.unspecified.AviatrixVPNClient.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/org.pythonmac.unspecified.AviatrixVPNClient.savedState'\n" } } diff --git a/ee/maintained-apps/outputs/avs-image-converter/windows.json b/ee/maintained-apps/outputs/avs-image-converter/windows.json index 481ec3ef579..3e591c7ae38 100644 --- a/ee/maintained-apps/outputs/avs-image-converter/windows.json +++ b/ee/maintained-apps/outputs/avs-image-converter/windows.json @@ -4,7 +4,8 @@ "version": "26.0.2.17", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'AVS Image Converter %' AND publisher = 'Ascensio System SIA';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'AVS Image Converter %' AND publisher = 'Ascensio System SIA' AND version_compare(version, '26.0.2.17') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'AVS Image Converter %' AND publisher = 'Ascensio System SIA' AND version_compare(version, '26.0.2.17') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'avs image converter.exe');" }, "installer_url": "https://downloads.avs4you.com/distributives/AVSImageConverter.exe", "install_script_ref": "d68b0ccb", diff --git a/ee/maintained-apps/outputs/avs-media-player/windows.json b/ee/maintained-apps/outputs/avs-media-player/windows.json index e6facd69e89..0e8eae08e2f 100644 --- a/ee/maintained-apps/outputs/avs-media-player/windows.json +++ b/ee/maintained-apps/outputs/avs-media-player/windows.json @@ -4,7 +4,8 @@ "version": "26.0.2.17", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'AVS Media Player %' AND publisher = 'Ascensio System SIA';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'AVS Media Player %' AND publisher = 'Ascensio System SIA' AND version_compare(version, '26.0.2.17') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'AVS Media Player %' AND publisher = 'Ascensio System SIA' AND version_compare(version, '26.0.2.17') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'avs media player.exe');" }, "installer_url": "https://downloads.avs4you.com/distributives/AVSMediaPlayer.exe", "install_script_ref": "a41cd8d5", diff --git a/ee/maintained-apps/outputs/aws-cli/windows.json b/ee/maintained-apps/outputs/aws-cli/windows.json index 5189add8ba5..cf478a2e610 100644 --- a/ee/maintained-apps/outputs/aws-cli/windows.json +++ b/ee/maintained-apps/outputs/aws-cli/windows.json @@ -4,7 +4,8 @@ "version": "2.36.17", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'AWS Command Line Interface v2 %' AND publisher = 'Amazon Web Services';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'AWS Command Line Interface v2 %' AND publisher = 'Amazon Web Services' AND version_compare(version, '2.36.17') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'AWS Command Line Interface v2 %' AND publisher = 'Amazon Web Services' AND version_compare(version, '2.36.17') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'aws command line interface v2.exe');" }, "installer_url": "https://awscli.amazonaws.com/AWSCLIV2-2.36.17.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/aws-sam-cli/windows.json b/ee/maintained-apps/outputs/aws-sam-cli/windows.json index 6aa88e5f4df..cd5ece2b5c6 100644 --- a/ee/maintained-apps/outputs/aws-sam-cli/windows.json +++ b/ee/maintained-apps/outputs/aws-sam-cli/windows.json @@ -4,7 +4,8 @@ "version": "1.165.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'AWS SAM Command Line Interface' AND publisher = 'AWS Serverless Applications';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'AWS SAM Command Line Interface' AND publisher = 'AWS Serverless Applications' AND version_compare(version, '1.165.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'AWS SAM Command Line Interface' AND publisher = 'AWS Serverless Applications' AND version_compare(version, '1.165.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'aws sam command line interface.exe');" }, "installer_url": "https://github.com/aws/aws-sam-cli/releases/download/v1.165.0/AWS_SAM_CLI_64_PY3.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/aws-session-manager-plugin/windows.json b/ee/maintained-apps/outputs/aws-session-manager-plugin/windows.json index 9d88e5124e9..d8bed1135d5 100644 --- a/ee/maintained-apps/outputs/aws-session-manager-plugin/windows.json +++ b/ee/maintained-apps/outputs/aws-session-manager-plugin/windows.json @@ -4,7 +4,8 @@ "version": "1.2.835.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Session Manager Plugin' AND publisher = 'Amazon Web Services';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Session Manager Plugin' AND publisher = 'Amazon Web Services' AND version_compare(version, '1.2.835.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Session Manager Plugin' AND publisher = 'Amazon Web Services' AND version_compare(version, '1.2.835.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'aws session manager plugin.exe');" }, "installer_url": "https://s3.amazonaws.com/session-manager-downloads/plugin/1.2.835.0/windows/SessionManagerPluginSetup.exe", "install_script_ref": "07286e2d", diff --git a/ee/maintained-apps/outputs/aws-vpn-client/darwin.json b/ee/maintained-apps/outputs/aws-vpn-client/darwin.json index 4a89f79481f..69011381aeb 100644 --- a/ee/maintained-apps/outputs/aws-vpn-client/darwin.json +++ b/ee/maintained-apps/outputs/aws-vpn-client/darwin.json @@ -4,7 +4,8 @@ "version": "6.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.amazonaws.acvc.osx';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.amazonaws.acvc.osx' AND version_compare(bundle_short_version, '6.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.amazonaws.acvc.osx' AND version_compare(bundle_short_version, '6.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.amazonaws.acvc.osx');" }, "installer_url": "https://d20adtppz83p9s.cloudfront.net/OSX_ARM64/6.0.0/AWS_VPN_Client_ARM64.pkg", "install_script_ref": "e3fcbf2c", diff --git a/ee/maintained-apps/outputs/aws-vpn-client/windows.json b/ee/maintained-apps/outputs/aws-vpn-client/windows.json index 4694bc5af5f..b7956e8e415 100644 --- a/ee/maintained-apps/outputs/aws-vpn-client/windows.json +++ b/ee/maintained-apps/outputs/aws-vpn-client/windows.json @@ -4,7 +4,8 @@ "version": "5.4.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'AWS VPN Client' AND publisher = 'Amazon';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'AWS VPN Client' AND publisher = 'Amazon' AND version_compare(version, '5.4.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'AWS VPN Client' AND publisher = 'Amazon' AND version_compare(version, '5.4.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'aws client vpn.exe');" }, "installer_url": "https://d20adtppz83p9s.cloudfront.net/WPF/5.4.3/AWS_VPN_Client.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/axure-rp/darwin.json b/ee/maintained-apps/outputs/axure-rp/darwin.json index f77c8868255..fd1229b601a 100644 --- a/ee/maintained-apps/outputs/axure-rp/darwin.json +++ b/ee/maintained-apps/outputs/axure-rp/darwin.json @@ -4,7 +4,8 @@ "version": "11.0.0.4137", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.axure.AxureRP11';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.axure.AxureRP11' AND version_compare(bundle_short_version, '11.0.0.4137') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.axure.AxureRP11' AND version_compare(bundle_short_version, '11.0.0.4137') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.axure.AxureRP11');" }, "installer_url": "https://axure.cachefly.net/versions/11-0/AxureRP-Setup-4137.dmg", "install_script_ref": "82ed5f23", diff --git a/ee/maintained-apps/outputs/azul-zulu-25-jdk/windows.json b/ee/maintained-apps/outputs/azul-zulu-25-jdk/windows.json index 47229c55ebe..2565bbc8c1b 100644 --- a/ee/maintained-apps/outputs/azul-zulu-25-jdk/windows.json +++ b/ee/maintained-apps/outputs/azul-zulu-25-jdk/windows.json @@ -4,7 +4,8 @@ "version": "25.36.15", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Azul Zulu JDK %' AND publisher = 'Azul Systems, Inc.' AND version LIKE '25.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Azul Zulu JDK %' AND publisher = 'Azul Systems, Inc.' AND version LIKE '25.%' AND version_compare(version, '25.36.15') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Azul Zulu JDK %' AND publisher = 'Azul Systems, Inc.' AND version LIKE '25.%' AND version_compare(version, '25.36.15') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'azul zulu jdk 25.exe');" }, "installer_url": "https://cdn.azul.com/zulu/bin/zulu25.36.15-ca-jdk25.0.4-win_x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/azul-zulu-25-jre/windows.json b/ee/maintained-apps/outputs/azul-zulu-25-jre/windows.json index 63816b9a7c4..b7c167becfd 100644 --- a/ee/maintained-apps/outputs/azul-zulu-25-jre/windows.json +++ b/ee/maintained-apps/outputs/azul-zulu-25-jre/windows.json @@ -4,7 +4,8 @@ "version": "25.36.15", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Azul Zulu JRE %' AND publisher = 'Azul Systems, Inc.' AND version LIKE '25.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Azul Zulu JRE %' AND publisher = 'Azul Systems, Inc.' AND version LIKE '25.%' AND version_compare(version, '25.36.15') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Azul Zulu JRE %' AND publisher = 'Azul Systems, Inc.' AND version LIKE '25.%' AND version_compare(version, '25.36.15') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'azul zulu jre 25.exe');" }, "installer_url": "https://cdn.azul.com/zulu/bin/zulu25.36.15-ca-jre25.0.4-win_x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/azure-data-studio/windows.json b/ee/maintained-apps/outputs/azure-data-studio/windows.json index 17328ab7c2d..f44628dfe6e 100644 --- a/ee/maintained-apps/outputs/azure-data-studio/windows.json +++ b/ee/maintained-apps/outputs/azure-data-studio/windows.json @@ -4,7 +4,8 @@ "version": "1.52.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Azure Data Studio' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Azure Data Studio' AND publisher = 'Microsoft Corporation' AND version_compare(version, '1.52.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Azure Data Studio' AND publisher = 'Microsoft Corporation' AND version_compare(version, '1.52.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'azure data studio.exe');" }, "installer_url": "https://download.microsoft.com/download/6b2bfeac-9c1b-4182-9a2f-ce86ff8cc371/azuredatastudio-windows-setup-1.52.0.exe", "install_script_ref": "8c1c97a1", diff --git a/ee/maintained-apps/outputs/azure-functions-core-tools/windows.json b/ee/maintained-apps/outputs/azure-functions-core-tools/windows.json index 7d409eda405..91de09eed16 100644 --- a/ee/maintained-apps/outputs/azure-functions-core-tools/windows.json +++ b/ee/maintained-apps/outputs/azure-functions-core-tools/windows.json @@ -4,7 +4,8 @@ "version": "4.12.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Azure Functions Core Tools %' AND publisher = 'Microsoft';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Azure Functions Core Tools %' AND publisher = 'Microsoft' AND version_compare(version, '4.12.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Azure Functions Core Tools %' AND publisher = 'Microsoft' AND version_compare(version, '4.12.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'azure functions core tools.exe');" }, "installer_url": "https://github.com/Azure/azure-functions-core-tools/releases/download/4.12.1/func-cli-4.12.1-x64.msi", "install_script_ref": "49fc2740", diff --git a/ee/maintained-apps/outputs/background-music/darwin.json b/ee/maintained-apps/outputs/background-music/darwin.json index c16688600d8..0ce83da1c81 100644 --- a/ee/maintained-apps/outputs/background-music/darwin.json +++ b/ee/maintained-apps/outputs/background-music/darwin.json @@ -4,7 +4,8 @@ "version": "0.5.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.bearisdriving.BGM.App';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bearisdriving.BGM.App' AND version_compare(bundle_short_version, '0.5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bearisdriving.BGM.App' AND version_compare(bundle_short_version, '0.5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.bearisdriving.BGM.App');" }, "installer_url": "https://github.com/kyleneideck/BackgroundMusic/releases/download/v0.5.0/BackgroundMusic-0.5.0.pkg", "install_script_ref": "d3fcd17d", diff --git a/ee/maintained-apps/outputs/badgeify/darwin.json b/ee/maintained-apps/outputs/badgeify/darwin.json index 79433f3e1bb..da07749bd7e 100644 --- a/ee/maintained-apps/outputs/badgeify/darwin.json +++ b/ee/maintained-apps/outputs/badgeify/darwin.json @@ -4,7 +4,8 @@ "version": "1.14.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'studio.techflow.badgeify';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'studio.techflow.badgeify' AND version_compare(bundle_short_version, '1.14.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'studio.techflow.badgeify' AND version_compare(bundle_short_version, '1.14.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'studio.techflow.badgeify');" }, "installer_url": "https://api.badgeify.app/release/download/darwin/universal/1.14.4", "install_script_ref": "cdee59cc", diff --git a/ee/maintained-apps/outputs/balenaetcher/darwin.json b/ee/maintained-apps/outputs/balenaetcher/darwin.json index 4d7586e2973..5294dec6b68 100644 --- a/ee/maintained-apps/outputs/balenaetcher/darwin.json +++ b/ee/maintained-apps/outputs/balenaetcher/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.balena.etcher';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.balena.etcher' AND version_compare(bundle_short_version, '2.1.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.balena.etcher' AND version_compare(bundle_short_version, '2.1.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.balena.etcher');" }, "installer_url": "https://github.com/balena-io/etcher/releases/download/v2.1.6/balenaEtcher-2.1.6-arm64.dmg", "install_script_ref": "f638b14b", diff --git a/ee/maintained-apps/outputs/balenaetcher/windows.json b/ee/maintained-apps/outputs/balenaetcher/windows.json index 74273df960d..0341327cff0 100644 --- a/ee/maintained-apps/outputs/balenaetcher/windows.json +++ b/ee/maintained-apps/outputs/balenaetcher/windows.json @@ -4,7 +4,8 @@ "version": "2.1.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'balenaEtcher' AND publisher = 'Balena Ltd. ';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'balenaEtcher' AND publisher = 'Balena Ltd. ' AND version_compare(version, '2.1.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'balenaEtcher' AND publisher = 'Balena Ltd. ' AND version_compare(version, '2.1.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'balenaetcher.exe');" }, "installer_url": "https://github.com/balena-io/etcher/releases/download/v2.1.6/balenaEtcher-2.1.6.Setup.exe", "install_script_ref": "523d9090", diff --git a/ee/maintained-apps/outputs/balsamiq-wireframes/darwin.json b/ee/maintained-apps/outputs/balsamiq-wireframes/darwin.json index 999f0fe2096..25b707aa8da 100644 --- a/ee/maintained-apps/outputs/balsamiq-wireframes/darwin.json +++ b/ee/maintained-apps/outputs/balsamiq-wireframes/darwin.json @@ -4,7 +4,8 @@ "version": "4.8.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.balsamiq.wireframes';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.balsamiq.wireframes' AND version_compare(bundle_short_version, '4.8.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.balsamiq.wireframes' AND version_compare(bundle_short_version, '4.8.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.balsamiq.wireframes');" }, "installer_url": "https://builds.balsamiq.com/bwd/Balsamiq%20Wireframes%204.8.6.dmg", "install_script_ref": "3999748c", diff --git a/ee/maintained-apps/outputs/bambu-studio/darwin.json b/ee/maintained-apps/outputs/bambu-studio/darwin.json index cd4b6c337cd..e699a9648ed 100644 --- a/ee/maintained-apps/outputs/bambu-studio/darwin.json +++ b/ee/maintained-apps/outputs/bambu-studio/darwin.json @@ -4,7 +4,8 @@ "version": "02.07.01.62", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.bambulab.bambu-studio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bambulab.bambu-studio' AND version_compare(bundle_short_version, '02.07.01.62') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bambulab.bambu-studio' AND version_compare(bundle_short_version, '02.07.01.62') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.bambulab.bambu-studio');" }, "installer_url": "https://github.com/bambulab/BambuStudio/releases/download/v02.07.01.62/Bambu_Studio_mac-v02.07.01.62-20260616174358.dmg", "install_script_ref": "747183ad", diff --git a/ee/maintained-apps/outputs/bandiview/windows.json b/ee/maintained-apps/outputs/bandiview/windows.json index fb9de93ffa3..370694740b4 100644 --- a/ee/maintained-apps/outputs/bandiview/windows.json +++ b/ee/maintained-apps/outputs/bandiview/windows.json @@ -4,7 +4,8 @@ "version": "7.28", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'BandiView' AND publisher = 'Bandisoft.com';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'BandiView' AND publisher = 'Bandisoft.com' AND version_compare(version, '7.28') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'BandiView' AND publisher = 'Bandisoft.com' AND version_compare(version, '7.28') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'bandiview.exe');" }, "installer_url": "https://bandisoft.app/bandiview/BANDIVIEW-SETUP-X64.EXE", "install_script_ref": "207f864e", diff --git a/ee/maintained-apps/outputs/bartender/darwin.json b/ee/maintained-apps/outputs/bartender/darwin.json index 81b4dd1de8e..715d6918862 100644 --- a/ee/maintained-apps/outputs/bartender/darwin.json +++ b/ee/maintained-apps/outputs/bartender/darwin.json @@ -4,7 +4,8 @@ "version": "6.6.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.surteesstudios.Bartender';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.surteesstudios.Bartender' AND version_compare(bundle_short_version, '6.6.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.surteesstudios.Bartender' AND version_compare(bundle_short_version, '6.6.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.surteesstudios.Bartender');" }, "installer_url": "https://downloads.macbartender.com/B2/updates/6-6-2/Bartender%206.zip", "install_script_ref": "f8a610b4", diff --git a/ee/maintained-apps/outputs/batfi/darwin.json b/ee/maintained-apps/outputs/batfi/darwin.json index 2c3a638fd25..d1cd3faeec7 100644 --- a/ee/maintained-apps/outputs/batfi/darwin.json +++ b/ee/maintained-apps/outputs/batfi/darwin.json @@ -4,7 +4,8 @@ "version": "3.1.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'software.micropixels.BatFi';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'software.micropixels.BatFi' AND version_compare(bundle_short_version, '3.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'software.micropixels.BatFi' AND version_compare(bundle_short_version, '3.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'software.micropixels.BatFi');" }, "installer_url": "https://files.micropixels.software/batfi/BatFi-latest.zip", "install_script_ref": "4987d04e", diff --git a/ee/maintained-apps/outputs/bbedit/darwin.json b/ee/maintained-apps/outputs/bbedit/darwin.json index 0092ee51f00..d9c2b8e7faf 100644 --- a/ee/maintained-apps/outputs/bbedit/darwin.json +++ b/ee/maintained-apps/outputs/bbedit/darwin.json @@ -4,7 +4,8 @@ "version": "16.0.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.barebones.bbedit';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.barebones.bbedit' AND version_compare(bundle_short_version, '16.0.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.barebones.bbedit' AND version_compare(bundle_short_version, '16.0.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.barebones.bbedit');" }, "installer_url": "https://s3.amazonaws.com/BBSW-download/BBEdit_16.0.2.dmg", "install_script_ref": "8fd9895e", diff --git a/ee/maintained-apps/outputs/bdash/darwin.json b/ee/maintained-apps/outputs/bdash/darwin.json index 1018d83cf18..671b52b1f3d 100644 --- a/ee/maintained-apps/outputs/bdash/darwin.json +++ b/ee/maintained-apps/outputs/bdash/darwin.json @@ -4,7 +4,8 @@ "version": "1.35.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.bdash';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.bdash' AND version_compare(bundle_short_version, '1.35.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.bdash' AND version_compare(bundle_short_version, '1.35.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.bdash');" }, "installer_url": "https://github.com/bdash-app/bdash/releases/download/v1.35.1/Bdash-1.35.1-universal-mac.zip", "install_script_ref": "1aeacce5", diff --git a/ee/maintained-apps/outputs/bdash/windows.json b/ee/maintained-apps/outputs/bdash/windows.json index d10400cc495..2750210832d 100644 --- a/ee/maintained-apps/outputs/bdash/windows.json +++ b/ee/maintained-apps/outputs/bdash/windows.json @@ -4,7 +4,8 @@ "version": "1.34.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Bdash %' AND publisher = 'Kazuhito Hokamura';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Bdash %' AND publisher = 'Kazuhito Hokamura' AND version_compare(version, '1.34.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Bdash %' AND publisher = 'Kazuhito Hokamura' AND version_compare(version, '1.34.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'bdash.exe');" }, "installer_url": "https://github.com/bdash-app/bdash/releases/download/v1.34.0/Bdash-Setup-1.34.0.exe", "install_script_ref": "840aa08a", diff --git a/ee/maintained-apps/outputs/beaver-notes/darwin.json b/ee/maintained-apps/outputs/beaver-notes/darwin.json index ee32294d357..b91195e1006 100644 --- a/ee/maintained-apps/outputs/beaver-notes/darwin.json +++ b/ee/maintained-apps/outputs/beaver-notes/darwin.json @@ -4,7 +4,8 @@ "version": "4.4.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.danielerolli.beaver-notes';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.danielerolli.beaver-notes' AND version_compare(bundle_short_version, '4.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.danielerolli.beaver-notes' AND version_compare(bundle_short_version, '4.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.danielerolli.beaver-notes');" }, "installer_url": "https://github.com/Beaver-Notes/Beaver-Notes/releases/download/4.4.0/Beaver-notes-4.4.0-universal.dmg", "install_script_ref": "f1f718a8", diff --git a/ee/maintained-apps/outputs/beekeeper-studio/darwin.json b/ee/maintained-apps/outputs/beekeeper-studio/darwin.json index 2320086d9bd..68118cde9b0 100644 --- a/ee/maintained-apps/outputs/beekeeper-studio/darwin.json +++ b/ee/maintained-apps/outputs/beekeeper-studio/darwin.json @@ -4,7 +4,8 @@ "version": "5.9.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.beekeeperstudio.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.beekeeperstudio.desktop' AND version_compare(bundle_short_version, '5.9.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.beekeeperstudio.desktop' AND version_compare(bundle_short_version, '5.9.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.beekeeperstudio.desktop');" }, "installer_url": "https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v5.9.3/Beekeeper-Studio-5.9.3-arm64.dmg", "install_script_ref": "5d46a1c1", diff --git a/ee/maintained-apps/outputs/beekeeper-studio/windows.json b/ee/maintained-apps/outputs/beekeeper-studio/windows.json index 38faed4df39..beee3f21cab 100644 --- a/ee/maintained-apps/outputs/beekeeper-studio/windows.json +++ b/ee/maintained-apps/outputs/beekeeper-studio/windows.json @@ -4,7 +4,8 @@ "version": "5.9.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Beekeeper Studio' AND publisher = 'Beekeeper Studio Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Beekeeper Studio' AND publisher = 'Beekeeper Studio Team' AND version_compare(version, '5.9.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Beekeeper Studio' AND publisher = 'Beekeeper Studio Team' AND version_compare(version, '5.9.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'beekeeper studio.exe');" }, "installer_url": "https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v5.9.3/Beekeeper-Studio-Setup-5.9.3.exe", "install_script_ref": "13334753", diff --git a/ee/maintained-apps/outputs/beeper/darwin.json b/ee/maintained-apps/outputs/beeper/darwin.json index a319874f8ac..3044fd5ea93 100644 --- a/ee/maintained-apps/outputs/beeper/darwin.json +++ b/ee/maintained-apps/outputs/beeper/darwin.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "4.3.0", + "version": "4.3.20", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.automattic.beeper.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.automattic.beeper.desktop' AND version_compare(bundle_short_version, '4.3.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.automattic.beeper.desktop' AND version_compare(bundle_short_version, '4.3.20') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.automattic.beeper.desktop');" }, - "installer_url": "https://beeper-desktop.download.beeper.com/builds/Beeper-4.3.0-arm64-mac.zip", + "installer_url": "https://beeper-desktop.download.beeper.com/builds/Beeper-4.3.20-arm64-mac.zip", "install_script_ref": "403ed251", "uninstall_script_ref": "978d30f8", - "sha256": "2f580987c833d7df7dc3b75800a987d3c15653779f932dea8c571834f9f9bda3", + "sha256": "afddf6ba63bf9980a63567c9fd165dd3c5b19d091d1bbc8361b21b9c291455ef", "default_categories": [ "Communication" ] diff --git a/ee/maintained-apps/outputs/betterdisplay/darwin.json b/ee/maintained-apps/outputs/betterdisplay/darwin.json index 51b967fa93c..3080a9f3f98 100644 --- a/ee/maintained-apps/outputs/betterdisplay/darwin.json +++ b/ee/maintained-apps/outputs/betterdisplay/darwin.json @@ -4,7 +4,8 @@ "version": "4.3.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'pro.betterdisplay.BetterDisplay';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'pro.betterdisplay.BetterDisplay' AND version_compare(bundle_short_version, '4.3.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'pro.betterdisplay.BetterDisplay' AND version_compare(bundle_short_version, '4.3.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'pro.betterdisplay.BetterDisplay');" }, "installer_url": "https://github.com/waydabber/BetterDisplay/releases/download/v4.3.5/BetterDisplay-v4.3.5.dmg", "install_script_ref": "70878405", diff --git a/ee/maintained-apps/outputs/bettermouse/darwin.json b/ee/maintained-apps/outputs/bettermouse/darwin.json index ff0a60ddd66..95d35be6a35 100644 --- a/ee/maintained-apps/outputs/bettermouse/darwin.json +++ b/ee/maintained-apps/outputs/bettermouse/darwin.json @@ -4,7 +4,8 @@ "version": "1.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.naotanhaocan.BetterMouse';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.naotanhaocan.BetterMouse' AND version_compare(bundle_short_version, '1.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.naotanhaocan.BetterMouse' AND version_compare(bundle_short_version, '1.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.naotanhaocan.BetterMouse');" }, "installer_url": "https://better-mouse.com/wp-content/uploads/BetterMouse.1.6.8893.zip", "install_script_ref": "a00f30de", diff --git a/ee/maintained-apps/outputs/bettertouchtool/darwin.json b/ee/maintained-apps/outputs/bettertouchtool/darwin.json index 415f78248a7..9c3705562be 100644 --- a/ee/maintained-apps/outputs/bettertouchtool/darwin.json +++ b/ee/maintained-apps/outputs/bettertouchtool/darwin.json @@ -4,7 +4,8 @@ "version": "6.681", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hegenberg.BetterTouchTool';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hegenberg.BetterTouchTool' AND version_compare(bundle_short_version, '6.681') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hegenberg.BetterTouchTool' AND version_compare(bundle_short_version, '6.681') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hegenberg.BetterTouchTool');" }, "installer_url": "https://folivora.ai/releases/btt6.681-2026072903.zip", "install_script_ref": "17a00450", diff --git a/ee/maintained-apps/outputs/betterzip/darwin.json b/ee/maintained-apps/outputs/betterzip/darwin.json index e172cde5a2d..1e88dd8e0fd 100644 --- a/ee/maintained-apps/outputs/betterzip/darwin.json +++ b/ee/maintained-apps/outputs/betterzip/darwin.json @@ -4,7 +4,8 @@ "version": "6.0.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.macitbetter.betterzip';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.macitbetter.betterzip' AND version_compare(bundle_short_version, '6.0.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.macitbetter.betterzip' AND version_compare(bundle_short_version, '6.0.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.macitbetter.betterzip');" }, "installer_url": "https://macitbetter.com/dl/BetterZip-6.0.4.zip", "install_script_ref": "2872398b", diff --git a/ee/maintained-apps/outputs/beyond-compare/darwin.json b/ee/maintained-apps/outputs/beyond-compare/darwin.json index e21398cd42b..30ac10f751d 100644 --- a/ee/maintained-apps/outputs/beyond-compare/darwin.json +++ b/ee/maintained-apps/outputs/beyond-compare/darwin.json @@ -4,7 +4,8 @@ "version": "5.2.5.32528", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ScooterSoftware.BeyondCompare';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ScooterSoftware.BeyondCompare' AND version_compare(bundle_short_version, '5.2.5.32528') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ScooterSoftware.BeyondCompare' AND version_compare(bundle_short_version, '5.2.5.32528') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ScooterSoftware.BeyondCompare');" }, "installer_url": "https://www.scootersoftware.com/files/BCompareOSX-5.2.5.32528.zip", "install_script_ref": "239de101", diff --git a/ee/maintained-apps/outputs/beyond-compare/windows.json b/ee/maintained-apps/outputs/beyond-compare/windows.json index 5fe1cfe00d2..b3e1a0b064d 100644 --- a/ee/maintained-apps/outputs/beyond-compare/windows.json +++ b/ee/maintained-apps/outputs/beyond-compare/windows.json @@ -4,7 +4,8 @@ "version": "5.2.5.32528", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Beyond Compare %' AND publisher = 'Scooter Software';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Beyond Compare %' AND publisher = 'Scooter Software' AND version_compare(version, '5.2.5.32528') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Beyond Compare %' AND publisher = 'Scooter Software' AND version_compare(version, '5.2.5.32528') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'bcompare.exe');" }, "installer_url": "https://www.scootersoftware.com/files/BCompare-5.2.5.32528.exe", "install_script_ref": "5a25199c", diff --git a/ee/maintained-apps/outputs/bezel/darwin.json b/ee/maintained-apps/outputs/bezel/darwin.json index 699d0c14545..04403bd7e62 100644 --- a/ee/maintained-apps/outputs/bezel/darwin.json +++ b/ee/maintained-apps/outputs/bezel/darwin.json @@ -4,7 +4,8 @@ "version": "4.7.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nonstrict.Bezel-direct';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nonstrict.Bezel-direct' AND version_compare(bundle_short_version, '4.7.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nonstrict.Bezel-direct' AND version_compare(bundle_short_version, '4.7.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.nonstrict.Bezel-direct');" }, "installer_url": "https://download.nonstrict.eu/bezel/Bezel-4.7.0.zip", "install_script_ref": "d8080b2a", diff --git a/ee/maintained-apps/outputs/bibdesk/darwin.json b/ee/maintained-apps/outputs/bibdesk/darwin.json index 9db6ae6edf5..149f74a2158 100644 --- a/ee/maintained-apps/outputs/bibdesk/darwin.json +++ b/ee/maintained-apps/outputs/bibdesk/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.12", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'edu.ucsd.cs.mmccrack.bibdesk';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'edu.ucsd.cs.mmccrack.bibdesk' AND version_compare(bundle_short_version, '1.9.12') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'edu.ucsd.cs.mmccrack.bibdesk' AND version_compare(bundle_short_version, '1.9.12') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'edu.ucsd.cs.mmccrack.bibdesk');" }, "installer_url": "https://downloads.sourceforge.net/bibdesk/BibDesk/BibDesk-1.9.12/BibDesk-1.9.12.dmg", "install_script_ref": "fdca5901", diff --git a/ee/maintained-apps/outputs/binance/windows.json b/ee/maintained-apps/outputs/binance/windows.json index cc3b04fa2b0..f257374a360 100644 --- a/ee/maintained-apps/outputs/binance/windows.json +++ b/ee/maintained-apps/outputs/binance/windows.json @@ -4,7 +4,8 @@ "version": "2.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Binance %' AND publisher = 'BinanceTech';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Binance %' AND publisher = 'BinanceTech' AND version_compare(version, '2.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Binance %' AND publisher = 'BinanceTech' AND version_compare(version, '2.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'binance.exe');" }, "installer_url": "https://github.com/binance/desktop/releases/download/v2.1.0/binance-setup-2.1.0.exe", "install_script_ref": "db52b55d", diff --git a/ee/maintained-apps/outputs/biscuit/darwin.json b/ee/maintained-apps/outputs/biscuit/darwin.json index 0b8e3c468c5..948cc45f492 100644 --- a/ee/maintained-apps/outputs/biscuit/darwin.json +++ b/ee/maintained-apps/outputs/biscuit/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.eatbiscuit.biscuit';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.eatbiscuit.biscuit' AND version_compare(bundle_short_version, '2.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.eatbiscuit.biscuit' AND version_compare(bundle_short_version, '2.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.eatbiscuit.biscuit');" }, "installer_url": "https://github.com/agata/dl.biscuit/releases/download/2.1.1/Biscuit-2.1.1-arm64.dmg", "install_script_ref": "eed44f12", diff --git a/ee/maintained-apps/outputs/biscuit/windows.json b/ee/maintained-apps/outputs/biscuit/windows.json index d53cf99980c..fba8873fe72 100644 --- a/ee/maintained-apps/outputs/biscuit/windows.json +++ b/ee/maintained-apps/outputs/biscuit/windows.json @@ -4,7 +4,8 @@ "version": "2.1.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Biscuit %' AND publisher = 'Biscuit Project';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Biscuit %' AND publisher = 'Biscuit Project' AND version_compare(version, '2.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Biscuit %' AND publisher = 'Biscuit Project' AND version_compare(version, '2.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'biscuit.exe');" }, "installer_url": "https://github.com/agata/dl.biscuit/releases/download/2.1.1/Biscuit-2.1.1-setup.exe", "install_script_ref": "f8daa30f", diff --git a/ee/maintained-apps/outputs/bitbox/darwin.json b/ee/maintained-apps/outputs/bitbox/darwin.json index 71eec27a3f3..8c36ced9986 100644 --- a/ee/maintained-apps/outputs/bitbox/darwin.json +++ b/ee/maintained-apps/outputs/bitbox/darwin.json @@ -4,7 +4,8 @@ "version": "4.51.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ch.shiftcrypto.BitBoxApp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.shiftcrypto.BitBoxApp' AND version_compare(bundle_short_version, '4.51.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.shiftcrypto.BitBoxApp' AND version_compare(bundle_short_version, '4.51.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'ch.shiftcrypto.BitBoxApp');" }, "installer_url": "https://github.com/BitBoxSwiss/bitbox-wallet-app/releases/download/v4.51.3/BitBox-4.51.3-macOS.dmg", "install_script_ref": "a83ca705", diff --git a/ee/maintained-apps/outputs/bitrix24/darwin.json b/ee/maintained-apps/outputs/bitrix24/darwin.json index 552bc97ba20..ceddc061f3a 100644 --- a/ee/maintained-apps/outputs/bitrix24/darwin.json +++ b/ee/maintained-apps/outputs/bitrix24/darwin.json @@ -4,7 +4,8 @@ "version": "23.0.32.91", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.bitrixsoft.bitrix24desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bitrixsoft.bitrix24desktop' AND version_compare(bundle_short_version, '23.0.32.91') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bitrixsoft.bitrix24desktop' AND version_compare(bundle_short_version, '23.0.32.91') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.bitrixsoft.bitrix24desktop');" }, "installer_url": "https://dl.bitrix24.com/b24/bitrix24_desktop_arm.dmg", "install_script_ref": "ad807303", diff --git a/ee/maintained-apps/outputs/bitwarden/darwin.json b/ee/maintained-apps/outputs/bitwarden/darwin.json index 3124d828fee..8c6bc6ad169 100644 --- a/ee/maintained-apps/outputs/bitwarden/darwin.json +++ b/ee/maintained-apps/outputs/bitwarden/darwin.json @@ -4,7 +4,8 @@ "version": "2026.7.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.bitwarden.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bitwarden.desktop' AND version_compare(bundle_short_version, '2026.7.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bitwarden.desktop' AND version_compare(bundle_short_version, '2026.7.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.bitwarden.desktop');" }, "installer_url": "https://github.com/bitwarden/clients/releases/download/desktop-v2026.7.0/Bitwarden-2026.7.0-universal.dmg", "install_script_ref": "65c7d7ee", diff --git a/ee/maintained-apps/outputs/bitwarden/windows.json b/ee/maintained-apps/outputs/bitwarden/windows.json index 8a5428f323c..78013d7faca 100644 --- a/ee/maintained-apps/outputs/bitwarden/windows.json +++ b/ee/maintained-apps/outputs/bitwarden/windows.json @@ -4,7 +4,8 @@ "version": "2026.7.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Bitwarden' AND publisher = 'Bitwarden Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Bitwarden' AND publisher = 'Bitwarden Inc.' AND version_compare(version, '2026.7.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Bitwarden' AND publisher = 'Bitwarden Inc.' AND version_compare(version, '2026.7.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'bitwarden.exe');" }, "installer_url": "https://github.com/bitwarden/clients/releases/download/desktop-v2026.7.0/Bitwarden-Installer-2026.7.0.exe", "install_script_ref": "234a3679", diff --git a/ee/maintained-apps/outputs/bitwig-studio/darwin.json b/ee/maintained-apps/outputs/bitwig-studio/darwin.json index 99fd1b218fd..55a46402015 100644 --- a/ee/maintained-apps/outputs/bitwig-studio/darwin.json +++ b/ee/maintained-apps/outputs/bitwig-studio/darwin.json @@ -4,7 +4,8 @@ "version": "6.0.11", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.bitwig.studio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bitwig.studio' AND version_compare(bundle_short_version, '6.0.11') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bitwig.studio' AND version_compare(bundle_short_version, '6.0.11') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.bitwig.studio');" }, "installer_url": "https://www.bitwig.com/dl/Bitwig%20Studio/6.0.11/installer_mac", "install_script_ref": "25e86798", diff --git a/ee/maintained-apps/outputs/bitwig-studio/windows.json b/ee/maintained-apps/outputs/bitwig-studio/windows.json index 786f1c55875..af46cc5bfb0 100644 --- a/ee/maintained-apps/outputs/bitwig-studio/windows.json +++ b/ee/maintained-apps/outputs/bitwig-studio/windows.json @@ -4,7 +4,8 @@ "version": "6.0.11", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Bitwig Studio %' AND publisher = 'Bitwig GmbH';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Bitwig Studio %' AND publisher = 'Bitwig GmbH' AND version_compare(version, '6.0.11') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Bitwig Studio %' AND publisher = 'Bitwig GmbH' AND version_compare(version, '6.0.11') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'bitwig studio.exe');" }, "installer_url": "https://www.bitwig.com/dl/Bitwig%20Studio/6.0.11/installer_windows/", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/bleachbit/windows.json b/ee/maintained-apps/outputs/bleachbit/windows.json index 23f1f9f04dc..4121734977b 100644 --- a/ee/maintained-apps/outputs/bleachbit/windows.json +++ b/ee/maintained-apps/outputs/bleachbit/windows.json @@ -4,7 +4,8 @@ "version": "6.0.2.3702", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'BleachBit' AND publisher = 'BleachBit';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'BleachBit' AND publisher = 'BleachBit' AND version_compare(version, '6.0.2.3702') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'BleachBit' AND publisher = 'BleachBit' AND version_compare(version, '6.0.2.3702') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'bleachbit.exe');" }, "installer_url": "https://download.bleachbit.org/BleachBit-6.0.2-setup.exe", "install_script_ref": "1037beeb", diff --git a/ee/maintained-apps/outputs/blender/darwin.json b/ee/maintained-apps/outputs/blender/darwin.json index c6753f6c866..0bea11c75d3 100644 --- a/ee/maintained-apps/outputs/blender/darwin.json +++ b/ee/maintained-apps/outputs/blender/darwin.json @@ -4,7 +4,8 @@ "version": "5.2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.blenderfoundation.blender';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.blenderfoundation.blender' AND version_compare(bundle_short_version, '5.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.blenderfoundation.blender' AND version_compare(bundle_short_version, '5.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.blenderfoundation.blender');" }, "installer_url": "https://download.blender.org/release/Blender5.2/blender-5.2.0-macos-arm64.dmg", "install_script_ref": "1f7a7a92", diff --git a/ee/maintained-apps/outputs/blender/windows.json b/ee/maintained-apps/outputs/blender/windows.json index af093d8aa44..5c7452a3004 100644 --- a/ee/maintained-apps/outputs/blender/windows.json +++ b/ee/maintained-apps/outputs/blender/windows.json @@ -4,7 +4,8 @@ "version": "5.2.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Blender' AND publisher = 'Blender Foundation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Blender' AND publisher = 'Blender Foundation' AND version_compare(version, '5.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Blender' AND publisher = 'Blender Foundation' AND version_compare(version, '5.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'blender.exe');" }, "installer_url": "https://download.blender.org/release/Blender5.2/blender-5.2.0-windows-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/bleunlock/darwin.json b/ee/maintained-apps/outputs/bleunlock/darwin.json index 6d92219c30c..7a885c2a054 100644 --- a/ee/maintained-apps/outputs/bleunlock/darwin.json +++ b/ee/maintained-apps/outputs/bleunlock/darwin.json @@ -4,7 +4,8 @@ "version": "1.12.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'jp.sone.BLEUnlock';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'jp.sone.BLEUnlock' AND version_compare(bundle_short_version, '1.12.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'jp.sone.BLEUnlock' AND version_compare(bundle_short_version, '1.12.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'jp.sone.BLEUnlock');" }, "installer_url": "https://github.com/ts1/BLEUnlock/releases/download/1.12.2/BLEUnlock-1.12.2.zip", "install_script_ref": "a77c0a44", diff --git a/ee/maintained-apps/outputs/blip/darwin.json b/ee/maintained-apps/outputs/blip/darwin.json index ac8be231e9f..df377fa50ec 100644 --- a/ee/maintained-apps/outputs/blip/darwin.json +++ b/ee/maintained-apps/outputs/blip/darwin.json @@ -4,7 +4,8 @@ "version": "1.1.16", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.blip.macos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.blip.macos' AND version_compare(bundle_short_version, '1.1.16') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.blip.macos' AND version_compare(bundle_short_version, '1.1.16') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.blip.macos');" }, "installer_url": "https://f000.backblazeb2.com/file/push-mac/Blip-20260425132215.zip", "install_script_ref": "deca07af", diff --git a/ee/maintained-apps/outputs/bluej/darwin.json b/ee/maintained-apps/outputs/bluej/darwin.json index 739014b45b7..79f87fb12f0 100644 --- a/ee/maintained-apps/outputs/bluej/darwin.json +++ b/ee/maintained-apps/outputs/bluej/darwin.json @@ -4,7 +4,8 @@ "version": "6.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.bluej.BlueJ';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.bluej.BlueJ' AND version_compare(bundle_short_version, '6.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.bluej.BlueJ' AND version_compare(bundle_short_version, '6.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.bluej.BlueJ');" }, "installer_url": "https://github.com/k-pet-group/BlueJ-Greenfoot/releases/download/BLUEJ-RELEASE-6.0.0/BlueJ-mac-aarch64-6.0.0.dmg", "install_script_ref": "7f4d8d39", diff --git a/ee/maintained-apps/outputs/bluej/windows.json b/ee/maintained-apps/outputs/bluej/windows.json index 8b83f8ec5b2..a6f291be107 100644 --- a/ee/maintained-apps/outputs/bluej/windows.json +++ b/ee/maintained-apps/outputs/bluej/windows.json @@ -4,7 +4,8 @@ "version": "6.0.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'BlueJ' AND publisher = 'BlueJ Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'BlueJ' AND publisher = 'BlueJ Team' AND version_compare(version, '6.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'BlueJ' AND publisher = 'BlueJ Team' AND version_compare(version, '6.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'bluej.exe');" }, "installer_url": "https://github.com/k-pet-group/BlueJ-Greenfoot/releases/download/BLUEJ-RELEASE-6.0.0/BlueJ-windows-6.0.0.msi", "install_script_ref": "85459eac", diff --git a/ee/maintained-apps/outputs/bluewallet/darwin.json b/ee/maintained-apps/outputs/bluewallet/darwin.json index 972efb4a85c..4f465f44feb 100644 --- a/ee/maintained-apps/outputs/bluewallet/darwin.json +++ b/ee/maintained-apps/outputs/bluewallet/darwin.json @@ -4,7 +4,8 @@ "version": "7.2.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.bluewallet.bluewallet';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.bluewallet.bluewallet' AND version_compare(bundle_short_version, '7.2.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.bluewallet.bluewallet' AND version_compare(bundle_short_version, '7.2.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.bluewallet.bluewallet');" }, "installer_url": "https://github.com/BlueWallet/BlueWallet/releases/download/v7.2.6/BlueWallet.7.2.6.dmg", "install_script_ref": "c73f23fb", diff --git a/ee/maintained-apps/outputs/blurscreen/darwin.json b/ee/maintained-apps/outputs/blurscreen/darwin.json index 0a605f0f10d..4465a44b22a 100644 --- a/ee/maintained-apps/outputs/blurscreen/darwin.json +++ b/ee/maintained-apps/outputs/blurscreen/darwin.json @@ -4,7 +4,8 @@ "version": "1.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sanskar.blurscreen';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sanskar.blurscreen' AND version_compare(bundle_short_version, '1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sanskar.blurscreen' AND version_compare(bundle_short_version, '1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sanskar.blurscreen');" }, "installer_url": "https://www.blurscreen.app/assets/BlurScreen-v2.pkg", "install_script_ref": "de42085e", diff --git a/ee/maintained-apps/outputs/boltai/darwin.json b/ee/maintained-apps/outputs/boltai/darwin.json index 9a20c902ddd..31b48b93712 100644 --- a/ee/maintained-apps/outputs/boltai/darwin.json +++ b/ee/maintained-apps/outputs/boltai/darwin.json @@ -4,7 +4,8 @@ "version": "2.14.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'co.podzim.boltai-mobile';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.podzim.boltai-mobile' AND version_compare(bundle_short_version, '2.14.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.podzim.boltai-mobile' AND version_compare(bundle_short_version, '2.14.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'co.podzim.boltai-mobile');" }, "installer_url": "https://updates.boltai.com/dmg/BoltAI-2.14.4.dmg", "install_script_ref": "4b6c58a2", diff --git a/ee/maintained-apps/outputs/bome-network/darwin.json b/ee/maintained-apps/outputs/bome-network/darwin.json index 051533a9a5f..c255bc224a6 100644 --- a/ee/maintained-apps/outputs/bome-network/darwin.json +++ b/ee/maintained-apps/outputs/bome-network/darwin.json @@ -4,7 +4,8 @@ "version": "1.7.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.bome.network';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bome.network' AND version_compare(bundle_short_version, '1.7.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bome.network' AND version_compare(bundle_short_version, '1.7.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.bome.network');" }, "installer_url": "https://download.bome.com/BomeNet1.7.0_macOS.dmg", "install_script_ref": "f614c9b5", diff --git a/ee/maintained-apps/outputs/boom-3d/darwin.json b/ee/maintained-apps/outputs/boom-3d/darwin.json index f3873ed1ad1..14e8ab7b32c 100644 --- a/ee/maintained-apps/outputs/boom-3d/darwin.json +++ b/ee/maintained-apps/outputs/boom-3d/darwin.json @@ -4,7 +4,8 @@ "version": "2.3.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.globaldelight.Boom3D';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.globaldelight.Boom3D' AND version_compare(bundle_short_version, '2.3.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.globaldelight.Boom3D' AND version_compare(bundle_short_version, '2.3.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.globaldelight.Boom3D');" }, "installer_url": "https://dfvk972795zr9.cloudfront.net/Boom3Dmac/webstore/Boom3D.dmg", "install_script_ref": "ccc55251", diff --git a/ee/maintained-apps/outputs/boop/darwin.json b/ee/maintained-apps/outputs/boop/darwin.json index 4cc30417b29..d49723af05c 100644 --- a/ee/maintained-apps/outputs/boop/darwin.json +++ b/ee/maintained-apps/outputs/boop/darwin.json @@ -4,7 +4,8 @@ "version": "1.4.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.okatbest.boop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.okatbest.boop' AND version_compare(bundle_short_version, '1.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.okatbest.boop' AND version_compare(bundle_short_version, '1.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.okatbest.boop');" }, "installer_url": "https://github.com/IvanMathy/Boop/releases/download/1.4.0/Boop.zip", "install_script_ref": "fbdec4bb", diff --git a/ee/maintained-apps/outputs/boost-note/darwin.json b/ee/maintained-apps/outputs/boost-note/darwin.json index 0477aef4b86..1b54eb21ac1 100644 --- a/ee/maintained-apps/outputs/boost-note/darwin.json +++ b/ee/maintained-apps/outputs/boost-note/darwin.json @@ -4,7 +4,8 @@ "version": "0.23.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.boostio.boostnote';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.boostio.boostnote' AND version_compare(bundle_short_version, '0.23.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.boostio.boostnote' AND version_compare(bundle_short_version, '0.23.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.boostio.boostnote');" }, "installer_url": "https://github.com/BoostIO/BoostNote-App/releases/download/v0.23.1/boost-note-mac.dmg", "install_script_ref": "6359466c", diff --git a/ee/maintained-apps/outputs/box-drive/darwin.json b/ee/maintained-apps/outputs/box-drive/darwin.json index 4520c5dae08..21f6271202d 100644 --- a/ee/maintained-apps/outputs/box-drive/darwin.json +++ b/ee/maintained-apps/outputs/box-drive/darwin.json @@ -4,7 +4,8 @@ "version": "2.53.219", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.box.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.box.desktop' AND version_compare(bundle_short_version, '2.53.219') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.box.desktop' AND version_compare(bundle_short_version, '2.53.219') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.box.desktop');" }, "installer_url": "https://e3.boxcdn.net/desktop/releases/mac/BoxDrive-2.53.219.pkg", "install_script_ref": "0282e69d", diff --git a/ee/maintained-apps/outputs/box-drive/windows.json b/ee/maintained-apps/outputs/box-drive/windows.json index 4dbbd072691..6b3005e1871 100644 --- a/ee/maintained-apps/outputs/box-drive/windows.json +++ b/ee/maintained-apps/outputs/box-drive/windows.json @@ -4,7 +4,8 @@ "version": "2.52.315", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Box' AND publisher = 'Box, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Box' AND publisher = 'Box, Inc.' AND version_compare(version, '2.52.315') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Box' AND publisher = 'Box, Inc.' AND version_compare(version, '2.52.315') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'box drive.exe');" }, "installer_url": "https://e3.boxcdn.net/desktop/releases/win/BoxDrive-2.52.315.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/box-tools/darwin.json b/ee/maintained-apps/outputs/box-tools/darwin.json index 9cff398b7ac..e406eb04915 100644 --- a/ee/maintained-apps/outputs/box-tools/darwin.json +++ b/ee/maintained-apps/outputs/box-tools/darwin.json @@ -4,7 +4,8 @@ "version": "4.32", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.Box.Box-Edit';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.Box.Box-Edit' AND version_compare(bundle_short_version, '4.32') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.Box.Box-Edit' AND version_compare(bundle_short_version, '4.32') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.Box.Box-Edit');" }, "installer_url": "https://e3.boxcdn.net/box-installers/boxedit/mac/currentrelease/BoxToolsInstaller.dmg", "install_script_ref": "8edf7fac", diff --git a/ee/maintained-apps/outputs/box-tools/windows.json b/ee/maintained-apps/outputs/box-tools/windows.json index 15b46064640..d0e06f3f2a1 100644 --- a/ee/maintained-apps/outputs/box-tools/windows.json +++ b/ee/maintained-apps/outputs/box-tools/windows.json @@ -4,7 +4,8 @@ "version": "4.32.0.1324", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Box Tools' AND publisher = 'Box';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Box Tools' AND publisher = 'Box' AND version_compare(version, '4.32.0.1324') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Box Tools' AND publisher = 'Box' AND version_compare(version, '4.32.0.1324') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'box tools.exe');" }, "installer_url": "https://e3.boxcdn.net/box-installers/boxedit/win/currentrelease/BoxToolsInstaller-AdminInstall.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/brave-browser/darwin.json b/ee/maintained-apps/outputs/brave-browser/darwin.json index f718f0f2ef8..489ea9659bc 100644 --- a/ee/maintained-apps/outputs/brave-browser/darwin.json +++ b/ee/maintained-apps/outputs/brave-browser/darwin.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "151.1.93.132", + "version": "151.1.93.134", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.brave.Browser';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.brave.Browser' AND version_compare(bundle_short_version, '151.1.93.132') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.brave.Browser' AND version_compare(bundle_short_version, '151.1.93.134') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.brave.Browser');" }, - "installer_url": "https://updates-cdn.bravesoftware.com/sparkle/Brave-Browser/stable-arm64/193.132/Brave-Browser-arm64.dmg", + "installer_url": "https://updates-cdn.bravesoftware.com/sparkle/Brave-Browser/stable-arm64/193.134/Brave-Browser-arm64.dmg", "install_script_ref": "32bb30f2", "uninstall_script_ref": "9a376609", - "sha256": "0f4c7f4457b96157adf0a7e2cbbf71b1c905f71d4bab6e45d1760f7d9e7b96fa", + "sha256": "e79ca175679c7583ac2ef668ff699f657c97506b2d1756de0570d73493e756b9", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/brave-browser/windows.json b/ee/maintained-apps/outputs/brave-browser/windows.json index f45cdf8302a..abaa8e946b6 100644 --- a/ee/maintained-apps/outputs/brave-browser/windows.json +++ b/ee/maintained-apps/outputs/brave-browser/windows.json @@ -4,7 +4,8 @@ "version": "151.1.93.132", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Brave' AND publisher = 'Brave Software Inc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Brave' AND publisher = 'Brave Software Inc' AND version_compare(version, '151.1.93.132') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Brave' AND publisher = 'Brave Software Inc' AND version_compare(version, '151.1.93.132') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'brave.exe');" }, "installer_url": "https://github.com/brave/brave-browser/releases/download/v1.93.132/BraveBrowserStandaloneSilentSetup.exe", "install_script_ref": "9a0c2b15", diff --git a/ee/maintained-apps/outputs/breaktimer/darwin.json b/ee/maintained-apps/outputs/breaktimer/darwin.json index c4bbf4e92a8..39bbd9cd40a 100644 --- a/ee/maintained-apps/outputs/breaktimer/darwin.json +++ b/ee/maintained-apps/outputs/breaktimer/darwin.json @@ -4,7 +4,8 @@ "version": "2.0.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.tomjwatson.breaktimer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tomjwatson.breaktimer' AND version_compare(bundle_short_version, '2.0.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tomjwatson.breaktimer' AND version_compare(bundle_short_version, '2.0.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.tomjwatson.breaktimer');" }, "installer_url": "https://github.com/tom-james-watson/breaktimer-app/releases/download/v2.0.3/BreakTimer.dmg", "install_script_ref": "2a756740", diff --git a/ee/maintained-apps/outputs/bricklink-studio/darwin.json b/ee/maintained-apps/outputs/bricklink-studio/darwin.json index 684cbd2f83f..ac612f96951 100644 --- a/ee/maintained-apps/outputs/bricklink-studio/darwin.json +++ b/ee/maintained-apps/outputs/bricklink-studio/darwin.json @@ -4,7 +4,8 @@ "version": "2.26.7_1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.BrickLink.Studio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.BrickLink.Studio' AND version_compare(bundle_short_version, '2.26.7_1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.BrickLink.Studio' AND version_compare(bundle_short_version, '2.26.7_1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.BrickLink.Studio');" }, "installer_url": "https://studio.download.bricklink.info/Studio2.0/Archive/2.26.7_1/Studio+2.0.pkg", "install_script_ref": "59096fcd", diff --git a/ee/maintained-apps/outputs/browserstacklocal/windows.json b/ee/maintained-apps/outputs/browserstacklocal/windows.json index 0685959bd02..dcbc86812e0 100644 --- a/ee/maintained-apps/outputs/browserstacklocal/windows.json +++ b/ee/maintained-apps/outputs/browserstacklocal/windows.json @@ -4,7 +4,8 @@ "version": "3.7.8", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'BrowserStackLocal' AND publisher = 'BrowserStack';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'BrowserStackLocal' AND publisher = 'BrowserStack' AND version_compare(version, '3.7.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'BrowserStackLocal' AND publisher = 'BrowserStack' AND version_compare(version, '3.7.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'browserstacklocal.exe');" }, "installer_url": "https://www.browserstack.com/local-testing/downloads/native-app/BrowserStackLocal.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/bruno/darwin.json b/ee/maintained-apps/outputs/bruno/darwin.json index 642c7422ef7..720ae0fd48d 100644 --- a/ee/maintained-apps/outputs/bruno/darwin.json +++ b/ee/maintained-apps/outputs/bruno/darwin.json @@ -4,7 +4,8 @@ "version": "4.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.usebruno.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.usebruno.app' AND version_compare(bundle_short_version, '4.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.usebruno.app' AND version_compare(bundle_short_version, '4.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.usebruno.app');" }, "installer_url": "https://github.com/usebruno/bruno/releases/download/v4.0.0/bruno_4.0.0_arm64_mac.dmg", "install_script_ref": "c3c853d8", diff --git a/ee/maintained-apps/outputs/bruno/windows.json b/ee/maintained-apps/outputs/bruno/windows.json index b988a5380c0..49cecfc71a8 100644 --- a/ee/maintained-apps/outputs/bruno/windows.json +++ b/ee/maintained-apps/outputs/bruno/windows.json @@ -4,7 +4,8 @@ "version": "4.0.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Bruno' AND publisher = 'Anoop M D';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Bruno' AND publisher = 'Anoop M D' AND version_compare(version, '4.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Bruno' AND publisher = 'Anoop M D' AND version_compare(version, '4.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'bruno.exe');" }, "installer_url": "https://github.com/usebruno/bruno/releases/download/v4.0.0/bruno_4.0.0_x64_win.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/bulk-crap-uninstaller/windows.json b/ee/maintained-apps/outputs/bulk-crap-uninstaller/windows.json index f1aec451cae..c297de1c878 100644 --- a/ee/maintained-apps/outputs/bulk-crap-uninstaller/windows.json +++ b/ee/maintained-apps/outputs/bulk-crap-uninstaller/windows.json @@ -4,7 +4,8 @@ "version": "6.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'BCUninstaller %' AND publisher = 'Marcin Szeniak';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'BCUninstaller %' AND publisher = 'Marcin Szeniak' AND version_compare(version, '6.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'BCUninstaller %' AND publisher = 'Marcin Szeniak' AND version_compare(version, '6.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'bulk crap uninstaller.exe');" }, "installer_url": "https://github.com/BCUninstaller/Bulk-Crap-Uninstaller/releases/download/v6.2/BCUninstaller_6.2.0_setup.exe", "install_script_ref": "68191524", diff --git a/ee/maintained-apps/outputs/bunch/darwin.json b/ee/maintained-apps/outputs/bunch/darwin.json index f419cc05655..2d51281b1be 100644 --- a/ee/maintained-apps/outputs/bunch/darwin.json +++ b/ee/maintained-apps/outputs/bunch/darwin.json @@ -4,7 +4,8 @@ "version": "1.4.17", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.brettterpstra.Bunch';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.brettterpstra.Bunch' AND version_compare(bundle_short_version, '1.4.17') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.brettterpstra.Bunch' AND version_compare(bundle_short_version, '1.4.17') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.brettterpstra.Bunch');" }, "installer_url": "https://brettterpstra.com/updates/bunch/Bunch1.4.17180.dmg", "install_script_ref": "ce59ad91", diff --git a/ee/maintained-apps/outputs/burp-suite-community/windows.json b/ee/maintained-apps/outputs/burp-suite-community/windows.json index 6b8c9bb4bc8..45cb0a42258 100644 --- a/ee/maintained-apps/outputs/burp-suite-community/windows.json +++ b/ee/maintained-apps/outputs/burp-suite-community/windows.json @@ -4,7 +4,8 @@ "version": "2026.3.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Burp Suite Community Edition %' AND publisher = 'PortSwigger Web Security';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Burp Suite Community Edition %' AND publisher = 'PortSwigger Web Security' AND version_compare(version, '2026.3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Burp Suite Community Edition %' AND publisher = 'PortSwigger Web Security' AND version_compare(version, '2026.3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'burp suite community edition.exe');" }, "installer_url": "https://portswigger-cdn.net/burp/releases/download?product=community&version=2026.3.3&type=WindowsX64", "install_script_ref": "4a8d1fcb", diff --git a/ee/maintained-apps/outputs/burp-suite-professional/windows.json b/ee/maintained-apps/outputs/burp-suite-professional/windows.json index c4cecd31ae3..32c4e86dce2 100644 --- a/ee/maintained-apps/outputs/burp-suite-professional/windows.json +++ b/ee/maintained-apps/outputs/burp-suite-professional/windows.json @@ -4,7 +4,8 @@ "version": "2026.3.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Burp Suite Professional %' AND publisher = 'PortSwigger Web Security';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Burp Suite Professional %' AND publisher = 'PortSwigger Web Security' AND version_compare(version, '2026.3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Burp Suite Professional %' AND publisher = 'PortSwigger Web Security' AND version_compare(version, '2026.3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'burp suite professional.exe');" }, "installer_url": "https://portswigger-cdn.net/burp/releases/download?product=pro&version=2026.3.3&type=WindowsX64", "install_script_ref": "236fc2e7", diff --git a/ee/maintained-apps/outputs/burp-suite/darwin.json b/ee/maintained-apps/outputs/burp-suite/darwin.json index ab1342dffea..437c961e815 100644 --- a/ee/maintained-apps/outputs/burp-suite/darwin.json +++ b/ee/maintained-apps/outputs/burp-suite/darwin.json @@ -4,7 +4,8 @@ "version": "2026.7.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.install4j.9806-1938-4586-6531.70';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.install4j.9806-1938-4586-6531.70' AND version_compare(bundle_short_version, '2026.7.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.install4j.9806-1938-4586-6531.70' AND version_compare(bundle_short_version, '2026.7.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.install4j.9806-1938-4586-6531.70');" }, "installer_url": "https://portswigger-cdn.net/burp/releases/download?product=desktop&version=2026.7.3&type=MacOsArm64", "install_script_ref": "1cdedd7f", diff --git a/ee/maintained-apps/outputs/busycontacts/darwin.json b/ee/maintained-apps/outputs/busycontacts/darwin.json index 92190ca3000..d7aaf518447 100644 --- a/ee/maintained-apps/outputs/busycontacts/darwin.json +++ b/ee/maintained-apps/outputs/busycontacts/darwin.json @@ -4,7 +4,8 @@ "version": "2026.3.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.busymac.busycontacts';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.busymac.busycontacts' AND version_compare(bundle_short_version, '2026.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.busymac.busycontacts' AND version_compare(bundle_short_version, '2026.3.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.busymac.busycontacts');" }, "installer_url": "https://www.busymac.com/download/bct-2026.3.1.zip", "install_script_ref": "b1c9951e", diff --git a/ee/maintained-apps/outputs/buttercup/darwin.json b/ee/maintained-apps/outputs/buttercup/darwin.json index 13e4f294f70..625b58d5e0b 100644 --- a/ee/maintained-apps/outputs/buttercup/darwin.json +++ b/ee/maintained-apps/outputs/buttercup/darwin.json @@ -4,7 +4,8 @@ "version": "2.28.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'pw.buttercup.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'pw.buttercup.desktop' AND version_compare(bundle_short_version, '2.28.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'pw.buttercup.desktop' AND version_compare(bundle_short_version, '2.28.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'pw.buttercup.desktop');" }, "installer_url": "https://github.com/buttercup/buttercup-desktop/releases/download/v2.28.1/Buttercup-mac-x64-2.28.1.dmg", "install_script_ref": "cdf258e4", diff --git a/ee/maintained-apps/outputs/buzz/darwin.json b/ee/maintained-apps/outputs/buzz/darwin.json index 5ca2d5efa0b..a5f3339f6ce 100644 --- a/ee/maintained-apps/outputs/buzz/darwin.json +++ b/ee/maintained-apps/outputs/buzz/darwin.json @@ -4,7 +4,8 @@ "version": "1.4.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.chidiwilliams.buzz';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.chidiwilliams.buzz' AND version_compare(bundle_short_version, '1.4.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.chidiwilliams.buzz' AND version_compare(bundle_short_version, '1.4.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.chidiwilliams.buzz');" }, "installer_url": "https://github.com/chidiwilliams/buzz/releases/download/v1.4.4/Buzz-1.4.4-mac-ARM64.dmg", "install_script_ref": "91030d70", diff --git a/ee/maintained-apps/outputs/cacher/darwin.json b/ee/maintained-apps/outputs/cacher/darwin.json index a1cddd366c3..a23f343fb8f 100644 --- a/ee/maintained-apps/outputs/cacher/darwin.json +++ b/ee/maintained-apps/outputs/cacher/darwin.json @@ -4,7 +4,8 @@ "version": "2.47.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.PenguinLabs.Cacher';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.PenguinLabs.Cacher' AND version_compare(bundle_short_version, '2.47.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.PenguinLabs.Cacher' AND version_compare(bundle_short_version, '2.47.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.PenguinLabs.Cacher');" }, "installer_url": "https://cacher-download.nyc3.digitaloceanspaces.com/Cacher-2.47.9-universal-mac.zip", "install_script_ref": "497bc860", diff --git a/ee/maintained-apps/outputs/caffeine/darwin.json b/ee/maintained-apps/outputs/caffeine/darwin.json index 01f4d1731c8..12b78fec8d5 100644 --- a/ee/maintained-apps/outputs/caffeine/darwin.json +++ b/ee/maintained-apps/outputs/caffeine/darwin.json @@ -4,7 +4,8 @@ "version": "1.1.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.intelliscapesolutions.caffeine';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.intelliscapesolutions.caffeine' AND version_compare(bundle_short_version, '1.1.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.intelliscapesolutions.caffeine' AND version_compare(bundle_short_version, '1.1.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.intelliscapesolutions.caffeine');" }, "installer_url": "https://github.com/IntelliScape/caffeine/releases/download/1.1.4/Caffeine.dmg", "install_script_ref": "fcb9c909", diff --git a/ee/maintained-apps/outputs/calibre/darwin.json b/ee/maintained-apps/outputs/calibre/darwin.json index 07593b4e93a..2e269fed194 100644 --- a/ee/maintained-apps/outputs/calibre/darwin.json +++ b/ee/maintained-apps/outputs/calibre/darwin.json @@ -4,7 +4,8 @@ "version": "9.13.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.kovidgoyal.calibre';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.kovidgoyal.calibre' AND version_compare(bundle_short_version, '9.13.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.kovidgoyal.calibre' AND version_compare(bundle_short_version, '9.13.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.kovidgoyal.calibre');" }, "installer_url": "https://download.calibre-ebook.com/9.13.0/calibre-9.13.0.dmg", "install_script_ref": "099b9491", diff --git a/ee/maintained-apps/outputs/calibre/windows.json b/ee/maintained-apps/outputs/calibre/windows.json index 1ea7f02717d..9bc84b13902 100644 --- a/ee/maintained-apps/outputs/calibre/windows.json +++ b/ee/maintained-apps/outputs/calibre/windows.json @@ -4,7 +4,8 @@ "version": "9.13.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'calibre %' AND publisher = 'Kovid Goyal';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'calibre %' AND publisher = 'Kovid Goyal' AND version_compare(version, '9.13.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'calibre %' AND publisher = 'Kovid Goyal' AND version_compare(version, '9.13.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'calibre.exe');" }, "installer_url": "https://download.calibre-ebook.com/9.13.0/calibre-64bit-9.13.0.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/calibrite-profiler/darwin.json b/ee/maintained-apps/outputs/calibrite-profiler/darwin.json index 3222ae20bb2..5011af3b031 100644 --- a/ee/maintained-apps/outputs/calibrite-profiler/darwin.json +++ b/ee/maintained-apps/outputs/calibrite-profiler/darwin.json @@ -4,7 +4,8 @@ "version": "3.1.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.calibrite.profiler';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.calibrite.profiler' AND version_compare(bundle_short_version, '3.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.calibrite.profiler' AND version_compare(bundle_short_version, '3.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.calibrite.profiler');" }, "installer_url": "https://github.com/LUMESCA/calibrite-profiler-releases/releases/download/v3.1.0/calibrite-PROFILER-3.1.0.dmg", "install_script_ref": "c040fef0", diff --git a/ee/maintained-apps/outputs/camo-studio/darwin.json b/ee/maintained-apps/outputs/camo-studio/darwin.json index 80c7041ea0c..f0cb2870187 100644 --- a/ee/maintained-apps/outputs/camo-studio/darwin.json +++ b/ee/maintained-apps/outputs/camo-studio/darwin.json @@ -4,7 +4,8 @@ "version": "2.8.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.reincubate.macos.cam';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.reincubate.macos.cam' AND version_compare(bundle_short_version, '2.8.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.reincubate.macos.cam' AND version_compare(bundle_short_version, '2.8.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.reincubate.macos.cam');" }, "installer_url": "https://releases.reincubate.com/camo/camo-macos-2.8.2.24402.zip", "install_script_ref": "f5ecf49a", diff --git a/ee/maintained-apps/outputs/camtasia/darwin.json b/ee/maintained-apps/outputs/camtasia/darwin.json index 9bc8ed16890..2620bc0276d 100644 --- a/ee/maintained-apps/outputs/camtasia/darwin.json +++ b/ee/maintained-apps/outputs/camtasia/darwin.json @@ -4,7 +4,8 @@ "version": "2026.1.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.techsmith.camtasia';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.techsmith.camtasia' AND version_compare(bundle_short_version, '2026.1.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.techsmith.camtasia' AND version_compare(bundle_short_version, '2026.1.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.techsmith.camtasia');" }, "installer_url": "https://download.techsmith.com/camtasiamac/releases/2026.1.4/Camtasia.dmg", "install_script_ref": "d911ee1b", diff --git a/ee/maintained-apps/outputs/camtasia/windows.json b/ee/maintained-apps/outputs/camtasia/windows.json index a076cf89f3b..892df0b32db 100644 --- a/ee/maintained-apps/outputs/camtasia/windows.json +++ b/ee/maintained-apps/outputs/camtasia/windows.json @@ -4,7 +4,8 @@ "version": "26.1.4.18353", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Camtasia' AND publisher = 'TechSmith Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Camtasia' AND publisher = 'TechSmith Corporation' AND version_compare(version, '26.1.4.18353') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Camtasia' AND publisher = 'TechSmith Corporation' AND version_compare(version, '26.1.4.18353') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'camtasia.exe');" }, "installer_url": "https://download.techsmith.com/camtasiastudio/releases/2614/camtasia.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/camunda-modeler/darwin.json b/ee/maintained-apps/outputs/camunda-modeler/darwin.json index 76c27a662f7..30bddcd39b4 100644 --- a/ee/maintained-apps/outputs/camunda-modeler/darwin.json +++ b/ee/maintained-apps/outputs/camunda-modeler/darwin.json @@ -4,7 +4,8 @@ "version": "5.49.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.camunda.CamundaModeler';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.camunda.CamundaModeler' AND version_compare(bundle_short_version, '5.49.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.camunda.CamundaModeler' AND version_compare(bundle_short_version, '5.49.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.camunda.CamundaModeler');" }, "installer_url": "https://downloads.camunda.cloud/release/camunda-modeler/5.49.0/camunda-modeler-5.49.0-mac-arm64.zip", "install_script_ref": "0b5b9959", diff --git a/ee/maintained-apps/outputs/canva/darwin.json b/ee/maintained-apps/outputs/canva/darwin.json index d2dd30fff4b..3b68e5aca6e 100644 --- a/ee/maintained-apps/outputs/canva/darwin.json +++ b/ee/maintained-apps/outputs/canva/darwin.json @@ -4,7 +4,8 @@ "version": "1.123.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.canva.CanvaDesktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.canva.CanvaDesktop' AND version_compare(bundle_short_version, '1.123.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.canva.CanvaDesktop' AND version_compare(bundle_short_version, '1.123.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.canva.CanvaDesktop');" }, "installer_url": "https://desktop-release.canva.com/Canva-1.123.1-universal.dmg", "install_script_ref": "c3a04904", diff --git a/ee/maintained-apps/outputs/canva/windows.json b/ee/maintained-apps/outputs/canva/windows.json index 86b9d380f7c..b6a0801520b 100644 --- a/ee/maintained-apps/outputs/canva/windows.json +++ b/ee/maintained-apps/outputs/canva/windows.json @@ -4,7 +4,8 @@ "version": "1.123.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Canva' AND publisher = 'Canva Pty Ltd';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Canva' AND publisher = 'Canva Pty Ltd' AND version_compare(version, '1.123.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Canva' AND publisher = 'Canva Pty Ltd' AND version_compare(version, '1.123.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'canva.exe');" }, "installer_url": "https://desktop-release.canva.com/Canva%20Setup%201.123.1.exe", "install_script_ref": "af334744", diff --git a/ee/maintained-apps/outputs/capcut/darwin.json b/ee/maintained-apps/outputs/capcut/darwin.json index 8ab851f81b3..6582894732a 100644 --- a/ee/maintained-apps/outputs/capcut/darwin.json +++ b/ee/maintained-apps/outputs/capcut/darwin.json @@ -4,7 +4,8 @@ "version": "9.2.0.4444", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lemon.lvoverseas';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lemon.lvoverseas' AND version_compare(bundle_short_version, '9.2.0.4444') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lemon.lvoverseas' AND version_compare(bundle_short_version, '9.2.0.4444') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.lemon.lvoverseas');" }, "installer_url": "https://sf16-web-tos-buz.capcutstatic.com/obj/capcut-web-buz-sg/packages/CapCut_9_2_0_4444_capcutpc_0_creatortool.dmg", "install_script_ref": "6c43d082", diff --git a/ee/maintained-apps/outputs/captain/darwin.json b/ee/maintained-apps/outputs/captain/darwin.json index 4addf23de86..3fec392c28e 100644 --- a/ee/maintained-apps/outputs/captain/darwin.json +++ b/ee/maintained-apps/outputs/captain/darwin.json @@ -4,7 +4,8 @@ "version": "10.5.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.captain';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.captain' AND version_compare(bundle_short_version, '10.5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.captain' AND version_compare(bundle_short_version, '10.5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.captain');" }, "installer_url": "https://github.com/RickWong/Captain/releases/download/v10.5.0/Captain-10.5.0-arm64.dmg", "install_script_ref": "f56af2d9", diff --git a/ee/maintained-apps/outputs/capto/darwin.json b/ee/maintained-apps/outputs/capto/darwin.json index f129e33206d..eb22b0712c9 100644 --- a/ee/maintained-apps/outputs/capto/darwin.json +++ b/ee/maintained-apps/outputs/capto/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.globaldelight.Capto';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.globaldelight.Capto' AND version_compare(bundle_short_version, '2.1.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.globaldelight.Capto' AND version_compare(bundle_short_version, '2.1.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.globaldelight.Capto');" }, "installer_url": "https://d3l6g06uqih57x.cloudfront.net/Captomac/webstore/Capto.dmg", "install_script_ref": "79932e03", diff --git a/ee/maintained-apps/outputs/carbon-copy-cloner/darwin.json b/ee/maintained-apps/outputs/carbon-copy-cloner/darwin.json index 492e68a3277..571799cb76e 100644 --- a/ee/maintained-apps/outputs/carbon-copy-cloner/darwin.json +++ b/ee/maintained-apps/outputs/carbon-copy-cloner/darwin.json @@ -4,7 +4,8 @@ "version": "7.1.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.bombich.ccc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bombich.ccc' AND version_compare(bundle_short_version, '7.1.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bombich.ccc' AND version_compare(bundle_short_version, '7.1.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.bombich.ccc');" }, "installer_url": "https://bombich.scdn1.secure.raxcdn.com/software/files/ccc-7.1.6.8368.zip", "install_script_ref": "dbe8941c", diff --git a/ee/maintained-apps/outputs/cardhop/darwin.json b/ee/maintained-apps/outputs/cardhop/darwin.json index 790a2078e15..e13f784b340 100644 --- a/ee/maintained-apps/outputs/cardhop/darwin.json +++ b/ee/maintained-apps/outputs/cardhop/darwin.json @@ -4,7 +4,8 @@ "version": "2.4.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.flexibits.cardhop.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.flexibits.cardhop.mac' AND version_compare(bundle_short_version, '2.4.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.flexibits.cardhop.mac' AND version_compare(bundle_short_version, '2.4.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.flexibits.cardhop.mac');" }, "installer_url": "https://cdn.flexibits.com/Cardhop_2.4.8.zip", "install_script_ref": "d39decf1", diff --git a/ee/maintained-apps/outputs/cavalry/darwin.json b/ee/maintained-apps/outputs/cavalry/darwin.json index f376202f1a6..bfe6312c9c8 100644 --- a/ee/maintained-apps/outputs/cavalry/darwin.json +++ b/ee/maintained-apps/outputs/cavalry/darwin.json @@ -4,7 +4,8 @@ "version": "2.7.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.scenegroup.cavalry';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.scenegroup.cavalry' AND version_compare(bundle_short_version, '2.7.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.scenegroup.cavalry' AND version_compare(bundle_short_version, '2.7.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.scenegroup.cavalry');" }, "installer_url": "https://cavalry.studio/downloads/latest/Cavalry.dmg", "install_script_ref": "4df28e0c", diff --git a/ee/maintained-apps/outputs/cellprofiler/darwin.json b/ee/maintained-apps/outputs/cellprofiler/darwin.json index 57b05af3080..db132e520ac 100644 --- a/ee/maintained-apps/outputs/cellprofiler/darwin.json +++ b/ee/maintained-apps/outputs/cellprofiler/darwin.json @@ -4,7 +4,8 @@ "version": "4.2.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.cellprofiler.CellProfiler';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.cellprofiler.CellProfiler' AND version_compare(bundle_short_version, '4.2.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.cellprofiler.CellProfiler' AND version_compare(bundle_short_version, '4.2.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.cellprofiler.CellProfiler');" }, "installer_url": "https://github.com/CellProfiler/CellProfiler/releases/download/v4.2.8/CellProfiler-macOS-4.2.8.zip", "install_script_ref": "fcbe7d09", diff --git a/ee/maintained-apps/outputs/certify-the-web/windows.json b/ee/maintained-apps/outputs/certify-the-web/windows.json index df7ce0b4584..80324dbecff 100644 --- a/ee/maintained-apps/outputs/certify-the-web/windows.json +++ b/ee/maintained-apps/outputs/certify-the-web/windows.json @@ -4,7 +4,8 @@ "version": "7.1.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Certify Certificate Manager %' AND publisher = 'Webprofusion Pty Ltd';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Certify Certificate Manager %' AND publisher = 'Webprofusion Pty Ltd' AND version_compare(version, '7.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Certify Certificate Manager %' AND publisher = 'Webprofusion Pty Ltd' AND version_compare(version, '7.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'certify the web.exe');" }, "installer_url": "https://downloads.certifytheweb.com/release/7.1.1.0/certify-ccm-windows-x64-7.1.1.0.exe", "install_script_ref": "1e19d090", diff --git a/ee/maintained-apps/outputs/chalk/darwin.json b/ee/maintained-apps/outputs/chalk/darwin.json index 82b56627df8..eb2027aadd5 100644 --- a/ee/maintained-apps/outputs/chalk/darwin.json +++ b/ee/maintained-apps/outputs/chalk/darwin.json @@ -4,7 +4,8 @@ "version": "1.7.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'fr.chachatelier.pierre.Chalk';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'fr.chachatelier.pierre.Chalk' AND version_compare(bundle_short_version, '1.7.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'fr.chachatelier.pierre.Chalk' AND version_compare(bundle_short_version, '1.7.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'fr.chachatelier.pierre.Chalk');" }, "installer_url": "https://pierre.chachatelier.fr/chalk/downloads/Chalk-1_7_5.dmg", "install_script_ref": "6cef1855", diff --git a/ee/maintained-apps/outputs/charles/darwin.json b/ee/maintained-apps/outputs/charles/darwin.json index 0682f1998a4..d1ee394db7b 100644 --- a/ee/maintained-apps/outputs/charles/darwin.json +++ b/ee/maintained-apps/outputs/charles/darwin.json @@ -4,7 +4,8 @@ "version": "5.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.xk72.Charles';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.xk72.Charles' AND version_compare(bundle_short_version, '5.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.xk72.Charles' AND version_compare(bundle_short_version, '5.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.xk72.Charles');" }, "installer_url": "https://www.charlesproxy.com/assets/release/5.2.1/charles-proxy-5.2.1.dmg", "install_script_ref": "46e04af6", diff --git a/ee/maintained-apps/outputs/charmstone/darwin.json b/ee/maintained-apps/outputs/charmstone/darwin.json index 38b73f70c18..ae1c2293ce6 100644 --- a/ee/maintained-apps/outputs/charmstone/darwin.json +++ b/ee/maintained-apps/outputs/charmstone/darwin.json @@ -4,7 +4,8 @@ "version": "1.44", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.CharmstonePro';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.CharmstonePro' AND version_compare(bundle_short_version, '1.44') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.CharmstonePro' AND version_compare(bundle_short_version, '1.44') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.knollsoft.CharmstonePro');" }, "installer_url": "https://charmstone.app/downloads/Charmstone1.44.dmg", "install_script_ref": "c5030ea6", diff --git a/ee/maintained-apps/outputs/chatbox/windows.json b/ee/maintained-apps/outputs/chatbox/windows.json index cf20a1956cf..cbd8bfa32ac 100644 --- a/ee/maintained-apps/outputs/chatbox/windows.json +++ b/ee/maintained-apps/outputs/chatbox/windows.json @@ -4,7 +4,8 @@ "version": "1.22.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Chatbox %' AND name NOT LIKE 'Chatbox Community%' AND publisher = 'Benn Huang';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Chatbox %' AND name NOT LIKE 'Chatbox Community%' AND publisher = 'Benn Huang' AND version_compare(version, '1.22.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Chatbox %' AND name NOT LIKE 'Chatbox Community%' AND publisher = 'Benn Huang' AND version_compare(version, '1.22.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'chatbox.exe');" }, "installer_url": "https://download.chatboxai.app/releases/Chatbox-1.22.2-Setup.exe", "install_script_ref": "dd2de847", diff --git a/ee/maintained-apps/outputs/chatgpt-atlas/darwin.json b/ee/maintained-apps/outputs/chatgpt-atlas/darwin.json index 3ad5b0aada3..d52f31f58bc 100644 --- a/ee/maintained-apps/outputs/chatgpt-atlas/darwin.json +++ b/ee/maintained-apps/outputs/chatgpt-atlas/darwin.json @@ -4,7 +4,8 @@ "version": "1.2026.189.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.atlas';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.atlas' AND version_compare(bundle_short_version, '1.2026.189.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.atlas' AND version_compare(bundle_short_version, '1.2026.189.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.openai.atlas');" }, "installer_url": "https://persistent.oaistatic.com/atlas/public/ChatGPT_Atlas_Desktop_public_1.2026.189.1_20260724200710000.dmg", "install_script_ref": "06c0f194", diff --git a/ee/maintained-apps/outputs/chatgpt/darwin.json b/ee/maintained-apps/outputs/chatgpt/darwin.json index 52fc9090fc8..9536fa54219 100644 --- a/ee/maintained-apps/outputs/chatgpt/darwin.json +++ b/ee/maintained-apps/outputs/chatgpt/darwin.json @@ -4,7 +4,8 @@ "version": "26.803.41515", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.chat';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.chat' AND version_compare(bundle_short_version, '26.803.41515') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.chat' AND version_compare(bundle_short_version, '26.803.41515') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.openai.chat');" }, "installer_url": "https://persistent.oaistatic.com/codex-app-prod/ChatGPT-darwin-arm64-26.803.41515.zip", "install_script_ref": "cbce2d7d", diff --git a/ee/maintained-apps/outputs/chatwise/darwin.json b/ee/maintained-apps/outputs/chatwise/darwin.json index de9c3bce2ef..a707db10e2f 100644 --- a/ee/maintained-apps/outputs/chatwise/darwin.json +++ b/ee/maintained-apps/outputs/chatwise/darwin.json @@ -4,7 +4,8 @@ "version": "26.7.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.chatwise';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.chatwise' AND version_compare(bundle_short_version, '26.7.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.chatwise' AND version_compare(bundle_short_version, '26.7.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.chatwise');" }, "installer_url": "https://releases.chatwise.app/26.7.8/ChatWise-26.7.8-arm64.dmg", "install_script_ref": "292ab15f", diff --git a/ee/maintained-apps/outputs/cheetah3d/darwin.json b/ee/maintained-apps/outputs/cheetah3d/darwin.json index d81a66bc9f9..fa9d779bda9 100644 --- a/ee/maintained-apps/outputs/cheetah3d/darwin.json +++ b/ee/maintained-apps/outputs/cheetah3d/darwin.json @@ -4,7 +4,8 @@ "version": "8.1.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'de.wengenmayer.Cheetah3D';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'de.wengenmayer.Cheetah3D' AND version_compare(bundle_short_version, '8.1.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'de.wengenmayer.Cheetah3D' AND version_compare(bundle_short_version, '8.1.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'de.wengenmayer.Cheetah3D');" }, "installer_url": "https://www.cheetah3d.com/download/Cheetah3D.dmg", "install_script_ref": "af66cef7", diff --git a/ee/maintained-apps/outputs/chef-workstation/windows.json b/ee/maintained-apps/outputs/chef-workstation/windows.json index c98868a627c..16fcc546028 100644 --- a/ee/maintained-apps/outputs/chef-workstation/windows.json +++ b/ee/maintained-apps/outputs/chef-workstation/windows.json @@ -4,7 +4,8 @@ "version": "25.14.2.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Chef Workstation v%' AND publisher LIKE '%Chef Software%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Chef Workstation v%' AND publisher LIKE '%Chef Software%' AND version_compare(version, '25.14.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Chef Workstation v%' AND publisher LIKE '%Chef Software%' AND version_compare(version, '25.14.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'chef workstation.exe');" }, "installer_url": "https://packages.chef.io/files/stable/chef-workstation/25.14.2/windows/10/chef-workstation-25.14.2-1-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/cherry-keys/windows.json b/ee/maintained-apps/outputs/cherry-keys/windows.json index 3a64ab46e15..32457534955 100644 --- a/ee/maintained-apps/outputs/cherry-keys/windows.json +++ b/ee/maintained-apps/outputs/cherry-keys/windows.json @@ -4,7 +4,8 @@ "version": "1.0.7", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'CHERRY KEYS (x64) V%' AND publisher = 'Cherry GmbH';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'CHERRY KEYS (x64) V%' AND publisher = 'Cherry GmbH' AND version_compare(version, '1.0.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'CHERRY KEYS (x64) V%' AND publisher = 'Cherry GmbH' AND version_compare(version, '1.0.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'cherry keys.exe');" }, "installer_url": "https://www.cherry.de/fileadmin/media/Corporate/Software/CherryKeys_x64_1_0_7__1_.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/cherry-studio/darwin.json b/ee/maintained-apps/outputs/cherry-studio/darwin.json index 81f9d41e28a..ad329eb211c 100644 --- a/ee/maintained-apps/outputs/cherry-studio/darwin.json +++ b/ee/maintained-apps/outputs/cherry-studio/darwin.json @@ -4,7 +4,8 @@ "version": "2.0.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.kangfenmao.CherryStudio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.kangfenmao.CherryStudio' AND version_compare(bundle_short_version, '2.0.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.kangfenmao.CherryStudio' AND version_compare(bundle_short_version, '2.0.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.kangfenmao.CherryStudio');" }, "installer_url": "https://github.com/CherryHQ/cherry-studio/releases/download/v2.0.2/Cherry-Studio-2.0.2-arm64.dmg", "install_script_ref": "31529318", diff --git a/ee/maintained-apps/outputs/chime/darwin.json b/ee/maintained-apps/outputs/chime/darwin.json index a8783515e60..7e48da13deb 100644 --- a/ee/maintained-apps/outputs/chime/darwin.json +++ b/ee/maintained-apps/outputs/chime/darwin.json @@ -4,7 +4,8 @@ "version": "2.2.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.chimehq.Edit';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.chimehq.Edit' AND version_compare(bundle_short_version, '2.2.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.chimehq.Edit' AND version_compare(bundle_short_version, '2.2.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.chimehq.Edit');" }, "installer_url": "https://updates.chimehq.com/com.chimehq.Edit/157/Chime.app.zip", "install_script_ref": "d5e99811", diff --git a/ee/maintained-apps/outputs/choosy/darwin.json b/ee/maintained-apps/outputs/choosy/darwin.json index a18360cb529..818116cb1af 100644 --- a/ee/maintained-apps/outputs/choosy/darwin.json +++ b/ee/maintained-apps/outputs/choosy/darwin.json @@ -4,7 +4,8 @@ "version": "2.5.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.choosyosx.Choosy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.choosyosx.Choosy' AND version_compare(bundle_short_version, '2.5.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.choosyosx.Choosy' AND version_compare(bundle_short_version, '2.5.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.choosyosx.Choosy');" }, "installer_url": "https://downloads.choosy.app/choosy_2.5.2.zip", "install_script_ref": "c9041670", diff --git a/ee/maintained-apps/outputs/chrome-remote-desktop-host/darwin.json b/ee/maintained-apps/outputs/chrome-remote-desktop-host/darwin.json index bac5e220a1e..1c95bb20cdb 100644 --- a/ee/maintained-apps/outputs/chrome-remote-desktop-host/darwin.json +++ b/ee/maintained-apps/outputs/chrome-remote-desktop-host/darwin.json @@ -4,7 +4,8 @@ "version": "151.0.7922.13", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.chromeremotedesktop.me2me-host-uninstaller';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.chromeremotedesktop.me2me-host-uninstaller' AND version_compare(bundle_short_version, '151.0.7922.13') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.chromeremotedesktop.me2me-host-uninstaller' AND version_compare(bundle_short_version, '151.0.7922.13') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.google.chromeremotedesktop.me2me-host-uninstaller');" }, "installer_url": "https://dl.google.com/chrome-remote-desktop/chromeremotedesktop.dmg", "install_script_ref": "ad88097b", diff --git a/ee/maintained-apps/outputs/chrome-remote-desktop/windows.json b/ee/maintained-apps/outputs/chrome-remote-desktop/windows.json index f2acbba1aa0..01fb6680ff1 100644 --- a/ee/maintained-apps/outputs/chrome-remote-desktop/windows.json +++ b/ee/maintained-apps/outputs/chrome-remote-desktop/windows.json @@ -4,7 +4,8 @@ "version": "151.0.7922.13", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Chrome Remote Desktop Host' AND publisher = 'Google LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Chrome Remote Desktop Host' AND publisher = 'Google LLC' AND version_compare(version, '151.0.7922.13') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Chrome Remote Desktop Host' AND publisher = 'Google LLC' AND version_compare(version, '151.0.7922.13') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'chrome remote desktop.exe');" }, "installer_url": "https://dl.google.com/release2/misc/d2fzthshhdpbekrl7yigl6s7qe_151.0.7922.13/remoting-host.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/cinc/windows.json b/ee/maintained-apps/outputs/cinc/windows.json index 9880effebf1..e014cabe371 100644 --- a/ee/maintained-apps/outputs/cinc/windows.json +++ b/ee/maintained-apps/outputs/cinc/windows.json @@ -4,7 +4,8 @@ "version": "23.5.1040", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Cinc Workstation v%' AND publisher = 'Cinc Project ';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Cinc Workstation v%' AND publisher = 'Cinc Project ' AND version_compare(version, '23.5.1040') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Cinc Workstation v%' AND publisher = 'Cinc Project ' AND version_compare(version, '23.5.1040') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'cinc workstation.exe');" }, "installer_url": "https://downloads.cinc.sh/files/stable/cinc-workstation/23.5.1040/windows/2012r2/cinc-workstation-23.5.1040-1-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/cisco-jabber/darwin.json b/ee/maintained-apps/outputs/cisco-jabber/darwin.json index b39ee11aff9..0333e9f5830 100644 --- a/ee/maintained-apps/outputs/cisco-jabber/darwin.json +++ b/ee/maintained-apps/outputs/cisco-jabber/darwin.json @@ -4,7 +4,8 @@ "version": "15.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.cisco.jabber';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cisco.jabber' AND version_compare(bundle_short_version, '15.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cisco.jabber' AND version_compare(bundle_short_version, '15.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.cisco.jabber');" }, "installer_url": "https://binaries.webex.com/jabberclientmac/20260122074039/Install_Cisco-Jabber-Mac.pkg", "install_script_ref": "edbec29c", diff --git a/ee/maintained-apps/outputs/cisco-jabber/windows.json b/ee/maintained-apps/outputs/cisco-jabber/windows.json index d681a2ee616..72cbddd27b3 100644 --- a/ee/maintained-apps/outputs/cisco-jabber/windows.json +++ b/ee/maintained-apps/outputs/cisco-jabber/windows.json @@ -4,7 +4,8 @@ "version": "15.3.0.61167", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Cisco Jabber' AND publisher = 'Cisco Systems, Inc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cisco Jabber' AND publisher = 'Cisco Systems, Inc' AND version_compare(version, '15.3.0.61167') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cisco Jabber' AND publisher = 'Cisco Systems, Inc' AND version_compare(version, '15.3.0.61167') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'cisco jabber.exe');" }, "installer_url": "https://binaries.webex.com/jabberclientwindows/20260721091017/CiscoJabberSetup.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/cisco-webex-recorder-and-player/windows.json b/ee/maintained-apps/outputs/cisco-webex-recorder-and-player/windows.json index 3a8d20ade64..d36e14e1c4b 100644 --- a/ee/maintained-apps/outputs/cisco-webex-recorder-and-player/windows.json +++ b/ee/maintained-apps/outputs/cisco-webex-recorder-and-player/windows.json @@ -4,7 +4,8 @@ "version": "45.6.4.8", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Webex Recorder and Player' AND publisher = 'Cisco Webex LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Webex Recorder and Player' AND publisher = 'Cisco Webex LLC' AND version_compare(version, '45.6.4.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Webex Recorder and Player' AND publisher = 'Cisco Webex LLC' AND version_compare(version, '45.6.4.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'cisco webex recorder and player.exe');" }, "installer_url": "https://welcome.webex.com/client/T33L/atrecply.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/citrix-workspace/darwin.json b/ee/maintained-apps/outputs/citrix-workspace/darwin.json index 8ce503ede06..016778ca85c 100644 --- a/ee/maintained-apps/outputs/citrix-workspace/darwin.json +++ b/ee/maintained-apps/outputs/citrix-workspace/darwin.json @@ -1,22 +1,23 @@ { "versions": [ { - "version": "26.03.11", + "version": "26.07.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.citrix.receiver.nomas';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.citrix.receiver.nomas' AND version_compare(bundle_short_version, '26.03.11') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.citrix.receiver.nomas' AND version_compare(bundle_short_version, '26.07.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.citrix.receiver.nomas');" }, - "installer_url": "https://downloadplugins.citrix.com/ReceiverUpdates/Prod/Receiver/Mac/CitrixWorkspaceAppUniversal26.03.11.41.pkg", - "install_script_ref": "f06e00fd", - "uninstall_script_ref": "edbf2a34", - "sha256": "cfdf300d8e5ebd90d7cdb7d4bbbc3c4cabfd1c9afe29dd89274736c65eaaf699", + "installer_url": "https://downloadplugins.citrix.com/ReceiverUpdates/Prod/Receiver/Mac/CitrixWorkspaceAppUniversal26.07.0.71.pkg", + "install_script_ref": "a78b38b6", + "uninstall_script_ref": "c847120e", + "sha256": "bc4d23adb9e0362d358159552069d2012c3513e6774266446141d88fc94ffe74", "default_categories": [ "Productivity" ] } ], "refs": { - "edbf2a34": "#!/bin/bash\n\n# variables\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nexpand_pkgid_and_map() {\n local PKGID=\"$1\"\n local FUNC=\"$2\"\n if [[ \"$PKGID\" == *\"*\" ]]; then\n local prefix=\"${PKGID%\\*}\"\n echo \"Expanding wildcard for PKGID: $PKGID\"\n for receipt in $(pkgutil --pkgs | grep \"^${prefix}\"); do\n echo \"Processing $receipt\"\n \"$FUNC\" \"$receipt\"\n done\n else\n \"$FUNC\" \"$PKGID\"\n fi\n}\n\nforget_pkg() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" forget_receipt\n}\n\nforget_receipt() {\n local PKGID=\"$1\"\n sudo pkgutil --forget \"$PKGID\"\n}\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nremove_launchctl_service() {\n local service=\"$1\"\n local booleans=(\"true\" \"false\")\n local plist_status\n local paths\n local should_sudo\n\n echo \"Removing launchctl service ${service}\"\n\n # A wildcard label can't be used with launchctl or as a plist name, so expand\n # it to the labels of currently loaded services that match the pattern.\n local services=(\"$service\")\n if [[ \"$service\" == *\"*\"* ]]; then\n local regex\n # Escape regex metacharacters, turn '*' into '.*', and anchor the pattern so\n # it matches a full label rather than a substring.\n regex=$(printf '%s' \"$service\" | sed -e 's/[][(){}.^$+?|\\\\]/\\\\&/g' -e 's/\\*/.*/g')\n regex=\"^${regex}$\"\n services=()\n local id\n # Match every loaded job by label regardless of PID; launchctl list reports\n # loaded-but-not-running jobs with a \"-\" in the PID column.\n while read -r _ _ id; do\n [[ \"$id\" =~ $regex ]] && services+=(\"$id\")\n done < <(launchctl list 2>/dev/null | tail -n +2)\n if [[ ${#services[@]} -eq 0 ]]; then\n echo \"No loaded launchctl service matches ${service}\"\n return\n fi\n fi\n\n local service_label\n for service_label in \"${services[@]}\"; do\n for should_sudo in \"${booleans[@]}\"; do\n plist_status=$(launchctl list \"${service_label}\" 2>/dev/null)\n\n if [[ $plist_status == \\{* ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo launchctl remove \"${service_label}\"\n else\n launchctl remove \"${service_label}\"\n fi\n sleep 1\n fi\n\n paths=(\n \"/Library/LaunchAgents/${service_label}.plist\"\n \"/Library/LaunchDaemons/${service_label}.plist\"\n )\n\n # if not using sudo, prepend the home directory to the paths\n if [[ $should_sudo == \"false\" ]]; then\n for i in \"${!paths[@]}\"; do\n paths[i]=\"${HOME}${paths[i]}\"\n done\n fi\n\n for path in \"${paths[@]}\"; do\n if [[ -e \"$path\" ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo rm -f -- \"$path\"\n else\n rm -f -- \"$path\"\n fi\n fi\n done\n done\n done\n}\n\nremove_pkg_files() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" remove_receipt_files\n}\n\nremove_receipt_files() {\n local PKGID=\"$1\"\n local PKGINFO VOLUME INSTALL_LOCATION FULL_INSTALL_LOCATION\n\n echo \"pkgutil --pkg-info-plist \\\"$PKGID\\\"\"\n PKGINFO=$(pkgutil --pkg-info-plist \"$PKGID\")\n VOLUME=$(echo \"$PKGINFO\" | awk '/volume<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/install-location<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n\n if [ -z \"$INSTALL_LOCATION\" ] || [ \"$INSTALL_LOCATION\" = \"/\" ]; then\n FULL_INSTALL_LOCATION=\"$VOLUME\"\n else\n FULL_INSTALL_LOCATION=\"$VOLUME/$INSTALL_LOCATION\"\n FULL_INSTALL_LOCATION=$(echo \"$FULL_INSTALL_LOCATION\" | sed 's|//|/|g')\n fi\n\n echo \"sudo pkgutil --only-files --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-files --files \"$PKGID\" | sed \"s|^|/${INSTALL_LOCATION}/|\" | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n echo \"sudo pkgutil --only-dirs --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | grep '\\\\.app$' | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-dirs --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | grep '\\.app$' | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n root_app_dir=$(\n sudo pkgutil --only-dirs --files \"$PKGID\" \\\n | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" \\\n | grep 'Applications' \\\n | awk '{ print length, $0 }' \\\n | sort -n \\\n | head -n1 \\\n | cut -d' ' -f2-\n )\n if [ -n \"$root_app_dir\" ]; then\n echo \"sudo rmdir -p \\\"$root_app_dir\\\" 2>/dev/null || :\"\n sudo rmdir -p \"$root_app_dir\" 2>/dev/null || :\n fi\n}\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nremove_launchctl_service 'com.citrix.AuthManager_Mac'\nremove_launchctl_service 'com.citrix.ctxusbd'\nremove_launchctl_service 'com.citrix.CtxWorkspaceHelperDaemon'\nremove_launchctl_service 'com.citrix.ctxworkspaceupdater'\nremove_launchctl_service 'com.citrix.devicetrust.launchagent'\nremove_launchctl_service 'com.citrix.ReceiverHelper'\nremove_launchctl_service 'com.citrix.ReceiverUninstallHelper'\nremove_launchctl_service 'com.citrix.ReceiverUpdaterHelper'\nremove_launchctl_service 'com.citrix.safariadapter'\nremove_launchctl_service 'com.citrix.ServiceRecords'\nremove_launchctl_service 'com.citrix.UninstallMonitor'\nquit_application 'Citrix.ServiceRecords'\nquit_application 'com.citrix.CitrixReceiverLauncher'\nquit_application 'com.citrix.receiver.nomas'\nquit_application 'com.citrix.ReceiverHelper'\nremove_pkg_files 'com.citrix.common'\nforget_pkg 'com.citrix.common'\nremove_pkg_files 'com.citrix.devicetrust.client'\nforget_pkg 'com.citrix.devicetrust.client'\nremove_pkg_files 'com.citrix.devicetrust.client.ica'\nforget_pkg 'com.citrix.devicetrust.client.ica'\nremove_pkg_files 'com.citrix.enterprisebrowserinstaller'\nforget_pkg 'com.citrix.enterprisebrowserinstaller'\nremove_pkg_files 'com.citrix.ICAClient'\nforget_pkg 'com.citrix.ICAClient'\nremove_pkg_files 'com.citrix.ICAClientcwa'\nforget_pkg 'com.citrix.ICAClientcwa'\nremove_pkg_files 'com.citrix.ICAClienthdx'\nforget_pkg 'com.citrix.ICAClienthdx'\nremove_pkg_files 'com.citrix.receiver.bcr'\nforget_pkg 'com.citrix.receiver.bcr'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Citrix Receiver'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Citrix Workspace'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Citrix'\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.citrix.CitrixReceiverLauncher'\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.citrix.HdxRtcEngine'\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.citrix.receiver*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.citrix.ReceiverUpdater'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.citrix.receiver*'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/com.citrix.CitrixReceiverLauncher'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/com.citrix.receiver*'\ntrash $LOGGED_IN_USER '~/Library/Logs/Citrix Workspace'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.citrix.AuthManager.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.citrix.CitrixReceiverLauncher.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.citrix.HdxRtcEngine.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.citrix.receiver*.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.citrix.Receiver*.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.citrix.receiver.nomas.savedState'\ntrash $LOGGED_IN_USER '~/Library/WebKit/com.citrix.receiver.nomas'\n", - "f06e00fd": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath \"$INSTALLER_PATH\")\")\n# functions\n\nquit_and_track_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n eval \"export $var_name=0\"\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n eval \"export $var_name=0\"\n return\n fi\n\n # App was running, mark it for relaunch\n eval \"export $var_name=1\"\n echo \"Application '$bundle_id' was running; will relaunch after installation.\"\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nrelaunch_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local was_running\n\n # Check if the app was running before installation\n eval \"was_running=\\$$var_name\"\n if [[ \"$was_running\" != \"1\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping relaunching application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Relaunching application '$bundle_id'...\"\n\n # Launch the app in the logged-in user's GUI session. Apps launched by root\n # won't register with the user's Dock/GUI, so run 'open' as the console user.\n # Use 'launchctl asuser' to bootstrap into the console user's Mach namespace\n # and GUI session — 'sudo -u' alone doesn't do this, which can cause\n # LSOpenURLsWithRole() failures even when 'open' exits 0.\n local open_status=0\n if [[ $EUID -eq 0 ]]; then\n local console_uid\n console_uid=$(id -u \"$console_user\")\n /bin/launchctl asuser \"$console_uid\" sudo -u \"$console_user\" open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n else\n open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n fi\n\n if [[ $open_status -eq 0 ]]; then\n echo \"Application '$bundle_id' relaunched successfully.\"\n else\n echo \"Failed to relaunch application '$bundle_id'.\"\n fi\n}\n\n\n# install pkg files\nquit_and_track_application 'com.citrix.receiver.nomas'\nsudo installer -pkg \"$TMPDIR/CitrixWorkspaceAppUniversal26.03.11.41.pkg\" -target / || exit $?\nrelaunch_application 'com.citrix.receiver.nomas'\n" + "a78b38b6": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath \"$INSTALLER_PATH\")\")\n# functions\n\nquit_and_track_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n eval \"export $var_name=0\"\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n eval \"export $var_name=0\"\n return\n fi\n\n # App was running, mark it for relaunch\n eval \"export $var_name=1\"\n echo \"Application '$bundle_id' was running; will relaunch after installation.\"\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nrelaunch_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local was_running\n\n # Check if the app was running before installation\n eval \"was_running=\\$$var_name\"\n if [[ \"$was_running\" != \"1\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping relaunching application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Relaunching application '$bundle_id'...\"\n\n # Launch the app in the logged-in user's GUI session. Apps launched by root\n # won't register with the user's Dock/GUI, so run 'open' as the console user.\n # Use 'launchctl asuser' to bootstrap into the console user's Mach namespace\n # and GUI session — 'sudo -u' alone doesn't do this, which can cause\n # LSOpenURLsWithRole() failures even when 'open' exits 0.\n local open_status=0\n if [[ $EUID -eq 0 ]]; then\n local console_uid\n console_uid=$(id -u \"$console_user\")\n /bin/launchctl asuser \"$console_uid\" sudo -u \"$console_user\" open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n else\n open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n fi\n\n if [[ $open_status -eq 0 ]]; then\n echo \"Application '$bundle_id' relaunched successfully.\"\n else\n echo \"Failed to relaunch application '$bundle_id'.\"\n fi\n}\n\n\n# install pkg files\nquit_and_track_application 'com.citrix.receiver.nomas'\nsudo installer -pkg \"$TMPDIR/CitrixWorkspaceAppUniversal26.07.0.71.pkg\" -target / || exit $?\nrelaunch_application 'com.citrix.receiver.nomas'\n", + "c847120e": "#!/bin/bash\n\n# variables\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nexpand_pkgid_and_map() {\n local PKGID=\"$1\"\n local FUNC=\"$2\"\n if [[ \"$PKGID\" == *\"*\" ]]; then\n local prefix=\"${PKGID%\\*}\"\n echo \"Expanding wildcard for PKGID: $PKGID\"\n for receipt in $(pkgutil --pkgs | grep \"^${prefix}\"); do\n echo \"Processing $receipt\"\n \"$FUNC\" \"$receipt\"\n done\n else\n \"$FUNC\" \"$PKGID\"\n fi\n}\n\nforget_pkg() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" forget_receipt\n}\n\nforget_receipt() {\n local PKGID=\"$1\"\n sudo pkgutil --forget \"$PKGID\"\n}\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nremove_launchctl_service() {\n local service=\"$1\"\n local booleans=(\"true\" \"false\")\n local plist_status\n local paths\n local should_sudo\n\n echo \"Removing launchctl service ${service}\"\n\n # A wildcard label can't be used with launchctl or as a plist name, so expand\n # it to the labels of currently loaded services that match the pattern.\n local services=(\"$service\")\n if [[ \"$service\" == *\"*\"* ]]; then\n local regex\n # Escape regex metacharacters, turn '*' into '.*', and anchor the pattern so\n # it matches a full label rather than a substring.\n regex=$(printf '%s' \"$service\" | sed -e 's/[][(){}.^$+?|\\\\]/\\\\&/g' -e 's/\\*/.*/g')\n regex=\"^${regex}$\"\n services=()\n local id\n # Match every loaded job by label regardless of PID; launchctl list reports\n # loaded-but-not-running jobs with a \"-\" in the PID column.\n while read -r _ _ id; do\n [[ \"$id\" =~ $regex ]] && services+=(\"$id\")\n done < <(launchctl list 2>/dev/null | tail -n +2)\n if [[ ${#services[@]} -eq 0 ]]; then\n echo \"No loaded launchctl service matches ${service}\"\n return\n fi\n fi\n\n local service_label\n for service_label in \"${services[@]}\"; do\n for should_sudo in \"${booleans[@]}\"; do\n plist_status=$(launchctl list \"${service_label}\" 2>/dev/null)\n\n if [[ $plist_status == \\{* ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo launchctl remove \"${service_label}\"\n else\n launchctl remove \"${service_label}\"\n fi\n sleep 1\n fi\n\n paths=(\n \"/Library/LaunchAgents/${service_label}.plist\"\n \"/Library/LaunchDaemons/${service_label}.plist\"\n )\n\n # if not using sudo, prepend the home directory to the paths\n if [[ $should_sudo == \"false\" ]]; then\n for i in \"${!paths[@]}\"; do\n paths[i]=\"${HOME}${paths[i]}\"\n done\n fi\n\n for path in \"${paths[@]}\"; do\n if [[ -e \"$path\" ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo rm -f -- \"$path\"\n else\n rm -f -- \"$path\"\n fi\n fi\n done\n done\n done\n}\n\nremove_pkg_files() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" remove_receipt_files\n}\n\nremove_receipt_files() {\n local PKGID=\"$1\"\n local PKGINFO VOLUME INSTALL_LOCATION FULL_INSTALL_LOCATION\n\n echo \"pkgutil --pkg-info-plist \\\"$PKGID\\\"\"\n PKGINFO=$(pkgutil --pkg-info-plist \"$PKGID\")\n VOLUME=$(echo \"$PKGINFO\" | awk '/volume<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/install-location<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n\n if [ -z \"$INSTALL_LOCATION\" ] || [ \"$INSTALL_LOCATION\" = \"/\" ]; then\n FULL_INSTALL_LOCATION=\"$VOLUME\"\n else\n FULL_INSTALL_LOCATION=\"$VOLUME/$INSTALL_LOCATION\"\n FULL_INSTALL_LOCATION=$(echo \"$FULL_INSTALL_LOCATION\" | sed 's|//|/|g')\n fi\n\n echo \"sudo pkgutil --only-files --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-files --files \"$PKGID\" | sed \"s|^|/${INSTALL_LOCATION}/|\" | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n echo \"sudo pkgutil --only-dirs --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | grep '\\\\.app$' | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-dirs --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | grep '\\.app$' | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n root_app_dir=$(\n sudo pkgutil --only-dirs --files \"$PKGID\" \\\n | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" \\\n | grep 'Applications' \\\n | awk '{ print length, $0 }' \\\n | sort -n \\\n | head -n1 \\\n | cut -d' ' -f2-\n )\n if [ -n \"$root_app_dir\" ]; then\n echo \"sudo rmdir -p \\\"$root_app_dir\\\" 2>/dev/null || :\"\n sudo rmdir -p \"$root_app_dir\" 2>/dev/null || :\n fi\n}\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nremove_launchctl_service 'com.citrix.AuthManager_Mac'\nremove_launchctl_service 'com.citrix.ctxusbd'\nremove_launchctl_service 'com.citrix.CtxWorkspaceHelperDaemon'\nremove_launchctl_service 'com.citrix.ctxworkspaceupdater'\nremove_launchctl_service 'com.citrix.devicetrust.launchagent'\nremove_launchctl_service 'com.citrix.PluginBroker'\nremove_launchctl_service 'com.citrix.ReceiverHelper'\nremove_launchctl_service 'com.citrix.ReceiverUninstallHelper'\nremove_launchctl_service 'com.citrix.ReceiverUpdaterHelper'\nremove_launchctl_service 'com.citrix.safariadapter'\nremove_launchctl_service 'com.citrix.ServiceRecords'\nremove_launchctl_service 'com.citrix.UninstallMonitor'\nquit_application 'Citrix.ServiceRecords'\nquit_application 'com.citrix.CitrixReceiverLauncher'\nquit_application 'com.citrix.receiver.nomas'\nquit_application 'com.citrix.ReceiverHelper'\nremove_pkg_files 'com.citrix.common'\nforget_pkg 'com.citrix.common'\nremove_pkg_files 'com.citrix.devicetrust.client'\nforget_pkg 'com.citrix.devicetrust.client'\nremove_pkg_files 'com.citrix.devicetrust.client.ica'\nforget_pkg 'com.citrix.devicetrust.client.ica'\nremove_pkg_files 'com.citrix.enterprisebrowserinstaller'\nforget_pkg 'com.citrix.enterprisebrowserinstaller'\nremove_pkg_files 'com.citrix.ICAClient'\nforget_pkg 'com.citrix.ICAClient'\nremove_pkg_files 'com.citrix.ICAClientcwa'\nforget_pkg 'com.citrix.ICAClientcwa'\nremove_pkg_files 'com.citrix.ICAClienthdx'\nforget_pkg 'com.citrix.ICAClienthdx'\nremove_pkg_files 'com.citrix.receiver.bcr'\nforget_pkg 'com.citrix.receiver.bcr'\nsudo rm -rf '/Applications/Citrix Workspace.app'\nsudo rm -rf '/Library/Citrix Workspace'\ntrash $LOGGED_IN_USER '/Library/Logs/Citrix Workspace'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Citrix Receiver'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Citrix Workspace'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Citrix'\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.citrix.CitrixReceiverLauncher'\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.citrix.HdxRtcEngine'\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.citrix.receiver*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.citrix.ReceiverUpdater'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.citrix.receiver*'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/com.citrix.CitrixReceiverLauncher'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/com.citrix.receiver*'\ntrash $LOGGED_IN_USER '~/Library/Logs/Citrix Workspace'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.citrix.AuthManager.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.citrix.CitrixReceiverLauncher.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.citrix.HdxRtcEngine.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.citrix.receiver*.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.citrix.Receiver*.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.citrix.receiver.nomas.savedState'\ntrash $LOGGED_IN_USER '~/Library/WebKit/com.citrix.receiver.nomas'\n" } } diff --git a/ee/maintained-apps/outputs/claude-devtools/darwin.json b/ee/maintained-apps/outputs/claude-devtools/darwin.json index 0850de5b397..69605dac53e 100644 --- a/ee/maintained-apps/outputs/claude-devtools/darwin.json +++ b/ee/maintained-apps/outputs/claude-devtools/darwin.json @@ -4,7 +4,8 @@ "version": "0.5.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.claudecode.context';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.claudecode.context' AND version_compare(bundle_short_version, '0.5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.claudecode.context' AND version_compare(bundle_short_version, '0.5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.claudecode.context');" }, "installer_url": "https://github.com/matt1398/claude-devtools/releases/download/v0.5.0/claude-devtools-0.5.0-arm64.dmg", "install_script_ref": "17c5d96b", diff --git a/ee/maintained-apps/outputs/claude/darwin.json b/ee/maintained-apps/outputs/claude/darwin.json index a3ea726c471..4d38ff1cce9 100644 --- a/ee/maintained-apps/outputs/claude/darwin.json +++ b/ee/maintained-apps/outputs/claude/darwin.json @@ -4,7 +4,8 @@ "version": "1.26832.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.anthropic.claudefordesktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.anthropic.claudefordesktop' AND version_compare(bundle_short_version, '1.26832.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.anthropic.claudefordesktop' AND version_compare(bundle_short_version, '1.26832.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.anthropic.claudefordesktop');" }, "installer_url": "https://downloads.claude.ai/releases/darwin/universal/1.26832.0/Claude-056ee2be623b207f6a4d24dfb1b2fb5a82db0ecf.zip", "install_script_ref": "6e4c028b", diff --git a/ee/maintained-apps/outputs/claude/windows.json b/ee/maintained-apps/outputs/claude/windows.json index acb8a86218e..353c0dd7941 100644 --- a/ee/maintained-apps/outputs/claude/windows.json +++ b/ee/maintained-apps/outputs/claude/windows.json @@ -4,7 +4,8 @@ "version": "1.25927.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Claude' AND publisher = 'Anthropic, PBC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Claude' AND publisher = 'Anthropic, PBC' AND version_compare(version, '1.25927.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Claude' AND publisher = 'Anthropic, PBC' AND version_compare(version, '1.25927.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'claude.exe');" }, "installer_url": "https://downloads.claude.ai/releases/win32/x64/1.25927.0/Claude-003700efafbc2ccb4b1177a5e637b14da381799e.msix", "install_script_ref": "16c020cc", diff --git a/ee/maintained-apps/outputs/cleanclip/darwin.json b/ee/maintained-apps/outputs/cleanclip/darwin.json index 813f259bb72..4fac2ce5980 100644 --- a/ee/maintained-apps/outputs/cleanclip/darwin.json +++ b/ee/maintained-apps/outputs/cleanclip/darwin.json @@ -4,7 +4,8 @@ "version": "2.4.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.antiless.cleanclip.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.antiless.cleanclip.mac' AND version_compare(bundle_short_version, '2.4.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.antiless.cleanclip.mac' AND version_compare(bundle_short_version, '2.4.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.antiless.cleanclip.mac');" }, "installer_url": "https://cleanclip.cc/releases/download/v2.4.7/CleanClip.dmg", "install_script_ref": "1ce89d8e", diff --git a/ee/maintained-apps/outputs/cleanmymac/darwin.json b/ee/maintained-apps/outputs/cleanmymac/darwin.json index df0ab35a303..8018b9818c8 100644 --- a/ee/maintained-apps/outputs/cleanmymac/darwin.json +++ b/ee/maintained-apps/outputs/cleanmymac/darwin.json @@ -4,7 +4,8 @@ "version": "5.5.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.macpaw.CleanMyMac5';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.macpaw.CleanMyMac5' AND version_compare(bundle_short_version, '5.5.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.macpaw.CleanMyMac5' AND version_compare(bundle_short_version, '5.5.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.macpaw.CleanMyMac5');" }, "installer_url": "https://updates.cleanmymac.com/com.macpaw.cleanmymac5/releases/CleanMyMac5_50507.0.2607220856.zip", "install_script_ref": "1f8e229d", diff --git a/ee/maintained-apps/outputs/cleanshot/darwin.json b/ee/maintained-apps/outputs/cleanshot/darwin.json index 4bdddc2bd85..4747d99c062 100644 --- a/ee/maintained-apps/outputs/cleanshot/darwin.json +++ b/ee/maintained-apps/outputs/cleanshot/darwin.json @@ -4,7 +4,8 @@ "version": "4.8.10", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.getcleanshot.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.getcleanshot.app' AND version_compare(bundle_short_version, '4.8.10') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.getcleanshot.app' AND version_compare(bundle_short_version, '4.8.10') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.getcleanshot.app');" }, "installer_url": "https://updates.getcleanshot.com/v3/CleanShot-X-4.8.10.dmg", "install_script_ref": "3ed068fa", diff --git a/ee/maintained-apps/outputs/clickshare/darwin.json b/ee/maintained-apps/outputs/clickshare/darwin.json index d52527f32e1..5fb6ddea915 100644 --- a/ee/maintained-apps/outputs/clickshare/darwin.json +++ b/ee/maintained-apps/outputs/clickshare/darwin.json @@ -4,7 +4,8 @@ "version": "4.50.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.barco.clickshare.updater';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.barco.clickshare.updater' AND version_compare(bundle_short_version, '4.50.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.barco.clickshare.updater' AND version_compare(bundle_short_version, '4.50.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.barco.clickshare.updater');" }, "installer_url": "https://assets.cloud.barco.com/clickshare/release/ClickShare-4.50.0-b15_mac.zip", "install_script_ref": "2723b00c", diff --git a/ee/maintained-apps/outputs/clickup/darwin.json b/ee/maintained-apps/outputs/clickup/darwin.json index 172e71673fe..d90fcf48cb9 100644 --- a/ee/maintained-apps/outputs/clickup/darwin.json +++ b/ee/maintained-apps/outputs/clickup/darwin.json @@ -4,7 +4,8 @@ "version": "3.5.262", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.clickup.desktop-app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.clickup.desktop-app' AND version_compare(bundle_short_version, '3.5.262') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.clickup.desktop-app' AND version_compare(bundle_short_version, '3.5.262') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.clickup.desktop-app');" }, "installer_url": "https://download.todesktop.com/221003ra4tebclw/ClickUp%203.5.262%20-%20Build%20260717dcrpwg7m0-arm64.dmg", "install_script_ref": "4b26d157", diff --git a/ee/maintained-apps/outputs/clickup/windows.json b/ee/maintained-apps/outputs/clickup/windows.json index 65d194b4f70..9ede58cd352 100644 --- a/ee/maintained-apps/outputs/clickup/windows.json +++ b/ee/maintained-apps/outputs/clickup/windows.json @@ -4,7 +4,8 @@ "version": "3.5.262", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'ClickUp' AND publisher = 'ClickUp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ClickUp' AND publisher = 'ClickUp' AND version_compare(version, '3.5.262') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ClickUp' AND publisher = 'ClickUp' AND version_compare(version, '3.5.262') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'clickup.exe');" }, "installer_url": "https://download.todesktop.com/221003ra4tebclw/ClickUp-3.5.262-build-260717dcrpwg7m0-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/clion/darwin.json b/ee/maintained-apps/outputs/clion/darwin.json index 2a968c5b5a2..e56246de958 100644 --- a/ee/maintained-apps/outputs/clion/darwin.json +++ b/ee/maintained-apps/outputs/clion/darwin.json @@ -4,7 +4,8 @@ "version": "2026.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.CLion';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.CLion' AND version_compare(bundle_short_version, '2026.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.CLion' AND version_compare(bundle_short_version, '2026.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jetbrains.CLion');" }, "installer_url": "https://download.jetbrains.com/cpp/CLion-2026.2.1-aarch64.dmg", "install_script_ref": "402571cd", diff --git a/ee/maintained-apps/outputs/clion/windows.json b/ee/maintained-apps/outputs/clion/windows.json index 189cb8df481..eba4660ad9f 100644 --- a/ee/maintained-apps/outputs/clion/windows.json +++ b/ee/maintained-apps/outputs/clion/windows.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "2026.2.0.1", + "version": "2026.2.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'CLion %' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'CLion %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.8665.321') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'CLion %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.9437.136') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('clion.exe','clion64.exe'));" }, - "installer_url": "https://download.jetbrains.com/cpp/CLion-2026.2.0.1.exe", + "installer_url": "https://download.jetbrains.com/cpp/CLion-2026.2.1.exe", "install_script_ref": "f1faeca2", "uninstall_script_ref": "7da7c7ff", - "sha256": "1eb5d666a1f3985cd66a8136e4eb3c3b685ea49e5977977a4ec7c226f240d8ba", + "sha256": "90f42c8361e5130dea7345a5cd46c358ee44c988ada21625689a407fcd0b3975", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/clipboardfusion/windows.json b/ee/maintained-apps/outputs/clipboardfusion/windows.json index 27f1c54c274..e491928efd1 100644 --- a/ee/maintained-apps/outputs/clipboardfusion/windows.json +++ b/ee/maintained-apps/outputs/clipboardfusion/windows.json @@ -4,7 +4,8 @@ "version": "6.3.0.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'ClipboardFusion%' AND publisher = 'Binary Fortress Software';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'ClipboardFusion%' AND publisher = 'Binary Fortress Software' AND version_compare(version, '6.3.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'ClipboardFusion%' AND publisher = 'Binary Fortress Software' AND version_compare(version, '6.3.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'clipboardfusion.exe');" }, "installer_url": "https://binaryfortressdownloads.com/Download/BFSFiles/104/ClipboardFusionSetup-6.3c.exe", "install_script_ref": "c5eecbb4", diff --git a/ee/maintained-apps/outputs/clipbook/darwin.json b/ee/maintained-apps/outputs/clipbook/darwin.json index 1437feec71d..bb6da0badbd 100644 --- a/ee/maintained-apps/outputs/clipbook/darwin.json +++ b/ee/maintained-apps/outputs/clipbook/darwin.json @@ -4,7 +4,8 @@ "version": "1.36.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ikryanov.clipbook';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ikryanov.clipbook' AND version_compare(bundle_short_version, '1.36.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ikryanov.clipbook' AND version_compare(bundle_short_version, '1.36.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ikryanov.clipbook');" }, "installer_url": "https://f005.backblazeb2.com/file/clipbook/ClipBook-1.36.0-arm64.dmg", "install_script_ref": "d0558c9f", diff --git a/ee/maintained-apps/outputs/clipgrab/darwin.json b/ee/maintained-apps/outputs/clipgrab/darwin.json index 20b9a0fbf43..4c221851d29 100644 --- a/ee/maintained-apps/outputs/clipgrab/darwin.json +++ b/ee/maintained-apps/outputs/clipgrab/darwin.json @@ -4,7 +4,8 @@ "version": "3.9.16", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'de.clipgrab.ClipGrab';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'de.clipgrab.ClipGrab' AND version_compare(bundle_short_version, '3.9.16') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'de.clipgrab.ClipGrab' AND version_compare(bundle_short_version, '3.9.16') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'de.clipgrab.ClipGrab');" }, "installer_url": "https://download.clipgrab.org/ClipGrab-3.9.16.dmg", "install_script_ref": "6b25e137", diff --git a/ee/maintained-apps/outputs/clipy/darwin.json b/ee/maintained-apps/outputs/clipy/darwin.json index 815de59d7d9..8a0ca044123 100644 --- a/ee/maintained-apps/outputs/clipy/darwin.json +++ b/ee/maintained-apps/outputs/clipy/darwin.json @@ -4,7 +4,8 @@ "version": "1.3.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.clipy-app.Clipy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.clipy-app.Clipy' AND version_compare(bundle_short_version, '1.3.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.clipy-app.Clipy' AND version_compare(bundle_short_version, '1.3.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.clipy-app.Clipy');" }, "installer_url": "https://github.com/Clipy/Clipy/releases/download/1.3.0/Clipy_1.3.0.dmg", "install_script_ref": "4444dc21", diff --git a/ee/maintained-apps/outputs/clockassist/windows.json b/ee/maintained-apps/outputs/clockassist/windows.json index 662e79cc6fb..f937765f0aa 100644 --- a/ee/maintained-apps/outputs/clockassist/windows.json +++ b/ee/maintained-apps/outputs/clockassist/windows.json @@ -4,7 +4,8 @@ "version": "1.1.9666.14975", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'ClockAssist' AND publisher = 'ClockAssist';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ClockAssist' AND publisher = 'ClockAssist' AND version_compare(version, '1.1.9666.14975') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ClockAssist' AND publisher = 'ClockAssist' AND version_compare(version, '1.1.9666.14975') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'clockassist.exe');" }, "installer_url": "https://clockassist-downloads.s3.eu-central-1.amazonaws.com/partners/clockassist/installer/Setup.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/clocker/darwin.json b/ee/maintained-apps/outputs/clocker/darwin.json index 89235de845e..fbfe2913919 100644 --- a/ee/maintained-apps/outputs/clocker/darwin.json +++ b/ee/maintained-apps/outputs/clocker/darwin.json @@ -4,7 +4,8 @@ "version": "26.13", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.abhishek.Clocker';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.abhishek.Clocker' AND version_compare(bundle_short_version, '26.13') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.abhishek.Clocker' AND version_compare(bundle_short_version, '26.13') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.abhishek.Clocker');" }, "installer_url": "https://github.com/n0shake/Clocker/releases/download/v26.13/Clocker.zip", "install_script_ref": "84600ba5", diff --git a/ee/maintained-apps/outputs/clockify/darwin.json b/ee/maintained-apps/outputs/clockify/darwin.json index 6b0e410b4b1..5d5287b99e4 100644 --- a/ee/maintained-apps/outputs/clockify/darwin.json +++ b/ee/maintained-apps/outputs/clockify/darwin.json @@ -4,7 +4,8 @@ "version": "2.12.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'coing.ClockifyDesktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'coing.ClockifyDesktop' AND version_compare(bundle_short_version, '2.12.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'coing.ClockifyDesktop' AND version_compare(bundle_short_version, '2.12.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'coing.ClockifyDesktop');" }, "installer_url": "https://clockify.me/downloads/ClockifyDesktop.zip", "install_script_ref": "a2dfc022", diff --git a/ee/maintained-apps/outputs/clockify/windows.json b/ee/maintained-apps/outputs/clockify/windows.json index a076cfb78ae..c8866c6df09 100644 --- a/ee/maintained-apps/outputs/clockify/windows.json +++ b/ee/maintained-apps/outputs/clockify/windows.json @@ -4,7 +4,8 @@ "version": "2.2.4", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Clockify' AND publisher = 'CAKE.com Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Clockify' AND publisher = 'CAKE.com Inc.' AND version_compare(version, '2.2.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Clockify' AND publisher = 'CAKE.com Inc.' AND version_compare(version, '2.2.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'clockify desktop.exe');" }, "installer_url": "https://clockify.me/downloads/clockify-setup.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/clop/darwin.json b/ee/maintained-apps/outputs/clop/darwin.json index d3cada46bbd..7da28e90c84 100644 --- a/ee/maintained-apps/outputs/clop/darwin.json +++ b/ee/maintained-apps/outputs/clop/darwin.json @@ -4,7 +4,8 @@ "version": "3.3.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lowtechguys.Clop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lowtechguys.Clop' AND version_compare(bundle_short_version, '3.3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lowtechguys.Clop' AND version_compare(bundle_short_version, '3.3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.lowtechguys.Clop');" }, "installer_url": "https://files.lowtechguys.com/releases/Clop-3.3.3.dmg", "install_script_ref": "ba744c65", diff --git a/ee/maintained-apps/outputs/cloudflare-warp/darwin.json b/ee/maintained-apps/outputs/cloudflare-warp/darwin.json index 6e4e45ca5b4..6ec0ad2fc74 100644 --- a/ee/maintained-apps/outputs/cloudflare-warp/darwin.json +++ b/ee/maintained-apps/outputs/cloudflare-warp/darwin.json @@ -4,7 +4,8 @@ "version": "2026.6.880.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.cloudflare.1dot1dot1dot1.macos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cloudflare.1dot1dot1dot1.macos' AND version_compare(bundle_short_version, '2026.6.880.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cloudflare.1dot1dot1dot1.macos' AND version_compare(bundle_short_version, '2026.6.880.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.cloudflare.1dot1dot1dot1.macos');" }, "installer_url": "https://downloads.cloudflareclient.com/v1/download/macos/version/2026.6.880.0", "install_script_ref": "72d02e8e", diff --git a/ee/maintained-apps/outputs/cloudflare-warp/windows.json b/ee/maintained-apps/outputs/cloudflare-warp/windows.json index 1954774589e..3ba44e463b1 100644 --- a/ee/maintained-apps/outputs/cloudflare-warp/windows.json +++ b/ee/maintained-apps/outputs/cloudflare-warp/windows.json @@ -4,7 +4,8 @@ "version": "26.6.880.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Cloudflare One Client' AND publisher = 'Cloudflare, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cloudflare One Client' AND publisher = 'Cloudflare, Inc.' AND version_compare(version, '26.6.880.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cloudflare One Client' AND publisher = 'Cloudflare, Inc.' AND version_compare(version, '26.6.880.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'cloudflare one.exe');" }, "installer_url": "https://downloads.cloudflareclient.com/v1/download/windows/version/2026.6.880.0", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/cloudmounter/darwin.json b/ee/maintained-apps/outputs/cloudmounter/darwin.json index fcbc2022b7e..25d5c6fe676 100644 --- a/ee/maintained-apps/outputs/cloudmounter/darwin.json +++ b/ee/maintained-apps/outputs/cloudmounter/darwin.json @@ -4,7 +4,8 @@ "version": "4.18", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.eltima.cloudmounter';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.eltima.cloudmounter' AND version_compare(bundle_short_version, '4.18') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.eltima.cloudmounter' AND version_compare(bundle_short_version, '4.18') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.eltima.cloudmounter');" }, "installer_url": "https://cdn.electronic.us/products/cloudmounter/mac/download/cloudmounter.dmg", "install_script_ref": "13706449", diff --git a/ee/maintained-apps/outputs/cmake-app/darwin.json b/ee/maintained-apps/outputs/cmake-app/darwin.json index b302ce609f2..e80910f65bb 100644 --- a/ee/maintained-apps/outputs/cmake-app/darwin.json +++ b/ee/maintained-apps/outputs/cmake-app/darwin.json @@ -4,7 +4,8 @@ "version": "4.4.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.cmake.cmake';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.cmake.cmake' AND version_compare(bundle_short_version, '4.4.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.cmake.cmake' AND version_compare(bundle_short_version, '4.4.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.cmake.cmake');" }, "installer_url": "https://cmake.org/files/v4.4/cmake-4.4.2-macos-universal.dmg", "install_script_ref": "bf131a87", diff --git a/ee/maintained-apps/outputs/cmake-app/windows.json b/ee/maintained-apps/outputs/cmake-app/windows.json index cef497b9725..e07b27b882b 100644 --- a/ee/maintained-apps/outputs/cmake-app/windows.json +++ b/ee/maintained-apps/outputs/cmake-app/windows.json @@ -4,7 +4,8 @@ "version": "4.4.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'CMake' AND publisher = 'Kitware';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'CMake' AND publisher = 'Kitware' AND version_compare(version, '4.4.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'CMake' AND publisher = 'Kitware' AND version_compare(version, '4.4.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'cmake.exe');" }, "installer_url": "https://github.com/Kitware/CMake/releases/download/v4.4.2/cmake-4.4.2-windows-x86_64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/cmux/darwin.json b/ee/maintained-apps/outputs/cmux/darwin.json index a9cc5e3f457..74365d1b90c 100644 --- a/ee/maintained-apps/outputs/cmux/darwin.json +++ b/ee/maintained-apps/outputs/cmux/darwin.json @@ -4,7 +4,8 @@ "version": "0.64.22", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.cmuxterm.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cmuxterm.app' AND version_compare(bundle_short_version, '0.64.22') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cmuxterm.app' AND version_compare(bundle_short_version, '0.64.22') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.cmuxterm.app');" }, "installer_url": "https://github.com/manaflow-ai/cmux/releases/download/v0.64.22/cmux-macos.dmg", "install_script_ref": "622f9d4c", diff --git a/ee/maintained-apps/outputs/coconutbattery/darwin.json b/ee/maintained-apps/outputs/coconutbattery/darwin.json index cea0347d9b5..7659fe3f4df 100644 --- a/ee/maintained-apps/outputs/coconutbattery/darwin.json +++ b/ee/maintained-apps/outputs/coconutbattery/darwin.json @@ -4,7 +4,8 @@ "version": "4.3.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.coconut-flavour.coconutBattery-Menu';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.coconut-flavour.coconutBattery-Menu' AND version_compare(bundle_short_version, '4.3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.coconut-flavour.coconutBattery-Menu' AND version_compare(bundle_short_version, '4.3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.coconut-flavour.coconutBattery-Menu');" }, "installer_url": "https://www.coconut-flavour.com/downloads/coconutBattery_433_218.zip", "install_script_ref": "f4ca6863", diff --git a/ee/maintained-apps/outputs/codeedit/darwin.json b/ee/maintained-apps/outputs/codeedit/darwin.json index 186ce2a5112..be7fd3c0020 100644 --- a/ee/maintained-apps/outputs/codeedit/darwin.json +++ b/ee/maintained-apps/outputs/codeedit/darwin.json @@ -4,7 +4,8 @@ "version": "0.3.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.codeedit.CodeEdit';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.codeedit.CodeEdit' AND version_compare(bundle_short_version, '0.3.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.codeedit.CodeEdit' AND version_compare(bundle_short_version, '0.3.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.codeedit.CodeEdit');" }, "installer_url": "https://github.com/CodeEditApp/CodeEdit/releases/download/v0.3.6/CodeEdit.dmg", "install_script_ref": "18ba7382", diff --git a/ee/maintained-apps/outputs/codemeter-runtime-kit/windows.json b/ee/maintained-apps/outputs/codemeter-runtime-kit/windows.json index 2e4b4147d00..0498b4dc86b 100644 --- a/ee/maintained-apps/outputs/codemeter-runtime-kit/windows.json +++ b/ee/maintained-apps/outputs/codemeter-runtime-kit/windows.json @@ -4,7 +4,8 @@ "version": "9.10.8166.500", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'CodeMeter Runtime Kit %' AND publisher = 'WIBU-SYSTEMS AG';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'CodeMeter Runtime Kit %' AND publisher = 'WIBU-SYSTEMS AG' AND version_compare(version, '9.10.8166.500') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'CodeMeter Runtime Kit %' AND publisher = 'WIBU-SYSTEMS AG' AND version_compare(version, '9.10.8166.500') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'codemeter runtime kit.exe');" }, "installer_url": "https://www.wibu.com/support/user/user-software/file/download/17996.html?tx_wibudownloads_downloadlist[directDownload]=directDownload&cHash=8dba7ab094dec6267346f04fce2a2bcd", "install_script_ref": "38648522", diff --git a/ee/maintained-apps/outputs/coderunner/darwin.json b/ee/maintained-apps/outputs/coderunner/darwin.json index 7c113dd0618..d4ca9e38f45 100644 --- a/ee/maintained-apps/outputs/coderunner/darwin.json +++ b/ee/maintained-apps/outputs/coderunner/darwin.json @@ -4,7 +4,8 @@ "version": "4.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.krill.CodeRunner';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.krill.CodeRunner' AND version_compare(bundle_short_version, '4.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.krill.CodeRunner' AND version_compare(bundle_short_version, '4.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.krill.CodeRunner');" }, "installer_url": "https://coderunnerapp.com/download/update/CodeRunner-4.5.zip", "install_script_ref": "9708d7e3", diff --git a/ee/maintained-apps/outputs/codex-app/darwin.json b/ee/maintained-apps/outputs/codex-app/darwin.json index d38c5565f37..7a09c029350 100644 --- a/ee/maintained-apps/outputs/codex-app/darwin.json +++ b/ee/maintained-apps/outputs/codex-app/darwin.json @@ -4,7 +4,8 @@ "version": "26.623.141536", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.codex';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.codex' AND version_compare(bundle_short_version, '26.623.141536') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.codex' AND version_compare(bundle_short_version, '26.623.141536') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.openai.codex');" }, "installer_url": "https://persistent.oaistatic.com/codex-app-prod/Codex-darwin-arm64-26.623.141536.zip", "install_script_ref": "8fdf3a72", diff --git a/ee/maintained-apps/outputs/codexbar/darwin.json b/ee/maintained-apps/outputs/codexbar/darwin.json index c32c2b1ce72..90494f83b4b 100644 --- a/ee/maintained-apps/outputs/codexbar/darwin.json +++ b/ee/maintained-apps/outputs/codexbar/darwin.json @@ -4,7 +4,8 @@ "version": "0.48.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.steipete.codexbar';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.steipete.codexbar' AND version_compare(bundle_short_version, '0.48.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.steipete.codexbar' AND version_compare(bundle_short_version, '0.48.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.steipete.codexbar');" }, "installer_url": "https://github.com/steipete/CodexBar/releases/download/v0.48.0/CodexBar-macos-universal-0.48.0.zip", "install_script_ref": "6993c93e", diff --git a/ee/maintained-apps/outputs/cog-app/darwin.json b/ee/maintained-apps/outputs/cog-app/darwin.json index 10e55fbf1a8..985f29d4ca9 100644 --- a/ee/maintained-apps/outputs/cog-app/darwin.json +++ b/ee/maintained-apps/outputs/cog-app/darwin.json @@ -4,7 +4,8 @@ "version": "3617", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.cogx.cog';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.cogx.cog' AND version_compare(bundle_short_version, '3617') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.cogx.cog' AND version_compare(bundle_short_version, '3617') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.cogx.cog');" }, "installer_url": "https://cogcdn.cog.losno.co/Cog-65bd626a8.zip", "install_script_ref": "ab9757fd", diff --git a/ee/maintained-apps/outputs/colorsnapper/darwin.json b/ee/maintained-apps/outputs/colorsnapper/darwin.json index 44695451d95..05222fc8dc4 100644 --- a/ee/maintained-apps/outputs/colorsnapper/darwin.json +++ b/ee/maintained-apps/outputs/colorsnapper/darwin.json @@ -4,7 +4,8 @@ "version": "1.7.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.koolesache.ColorSnapper2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.koolesache.ColorSnapper2' AND version_compare(bundle_short_version, '1.7.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.koolesache.ColorSnapper2' AND version_compare(bundle_short_version, '1.7.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.koolesache.ColorSnapper2');" }, "installer_url": "https://cs2-binaries.s3.amazonaws.com/ColorSnapper2-1_7_1.zip", "install_script_ref": "c684fe06", diff --git a/ee/maintained-apps/outputs/colour-contrast-analyser/darwin.json b/ee/maintained-apps/outputs/colour-contrast-analyser/darwin.json index 8fb19807b13..e4e0906d11c 100644 --- a/ee/maintained-apps/outputs/colour-contrast-analyser/darwin.json +++ b/ee/maintained-apps/outputs/colour-contrast-analyser/darwin.json @@ -4,7 +4,8 @@ "version": "3.5.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.cca';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.cca' AND version_compare(bundle_short_version, '3.5.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.cca' AND version_compare(bundle_short_version, '3.5.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.cca');" }, "installer_url": "https://github.com/ThePacielloGroup/CCAe/releases/download/v3.5.5/CCA-3.5.5.dmg", "install_script_ref": "1e8f2d84", diff --git a/ee/maintained-apps/outputs/colour-contrast-analyser/windows.json b/ee/maintained-apps/outputs/colour-contrast-analyser/windows.json index 6862e7f2433..b24eb8f57dd 100644 --- a/ee/maintained-apps/outputs/colour-contrast-analyser/windows.json +++ b/ee/maintained-apps/outputs/colour-contrast-analyser/windows.json @@ -4,7 +4,8 @@ "version": "3.5.5", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Colour Contrast Analyser' AND publisher = 'Cédric Trévisan';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Colour Contrast Analyser' AND publisher = 'Cédric Trévisan' AND version_compare(version, '3.5.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Colour Contrast Analyser' AND publisher = 'Cédric Trévisan' AND version_compare(version, '3.5.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'colour contrast analyser.exe');" }, "installer_url": "https://github.com/ThePacielloGroup/CCAe/releases/download/v3.5.5/CCA-Setup-3.5.5.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/comet/windows.json b/ee/maintained-apps/outputs/comet/windows.json index c4c0926ccf7..0dbb36a0110 100644 --- a/ee/maintained-apps/outputs/comet/windows.json +++ b/ee/maintained-apps/outputs/comet/windows.json @@ -4,7 +4,8 @@ "version": "150.0.7871.230", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Comet' AND publisher = 'PERPLEXITY AI, INC.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Comet' AND publisher = 'PERPLEXITY AI, INC.' AND version_compare(version, '150.0.7871.230') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Comet' AND publisher = 'PERPLEXITY AI, INC.' AND version_compare(version, '150.0.7871.230') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'comet.exe');" }, "installer_url": "https://www.perplexity.ai/rest/browser/download?platform=win_x64&channel=stable", "install_script_ref": "9f163ee3", diff --git a/ee/maintained-apps/outputs/command-tab-plus/darwin.json b/ee/maintained-apps/outputs/command-tab-plus/darwin.json index 19ab8cd20d4..cac00a0c975 100644 --- a/ee/maintained-apps/outputs/command-tab-plus/darwin.json +++ b/ee/maintained-apps/outputs/command-tab-plus/darwin.json @@ -4,7 +4,8 @@ "version": "2.9.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sergey-gerasimenko.Command-Tab-Plus-2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sergey-gerasimenko.Command-Tab-Plus-2' AND version_compare(bundle_short_version, '2.9.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sergey-gerasimenko.Command-Tab-Plus-2' AND version_compare(bundle_short_version, '2.9.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sergey-gerasimenko.Command-Tab-Plus-2');" }, "installer_url": "https://macplus-software.com/downloads/Command-Tab%20Plus%202.zip", "install_script_ref": "73a2b9b5", diff --git a/ee/maintained-apps/outputs/commander-one/darwin.json b/ee/maintained-apps/outputs/commander-one/darwin.json index 2f8d0419109..467aa796ee7 100644 --- a/ee/maintained-apps/outputs/commander-one/darwin.json +++ b/ee/maintained-apps/outputs/commander-one/darwin.json @@ -4,7 +4,8 @@ "version": "3.17.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.eltima.cmd1';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.eltima.cmd1' AND version_compare(bundle_short_version, '3.17.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.eltima.cmd1' AND version_compare(bundle_short_version, '3.17.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.eltima.cmd1');" }, "installer_url": "https://cdn.electronic.us/products/commander/mac/download/commander.dmg", "install_script_ref": "03a9c095", diff --git a/ee/maintained-apps/outputs/commander/darwin.json b/ee/maintained-apps/outputs/commander/darwin.json index 321e48837e1..1d187e52c16 100644 --- a/ee/maintained-apps/outputs/commander/darwin.json +++ b/ee/maintained-apps/outputs/commander/darwin.json @@ -4,7 +4,8 @@ "version": "0.7.998", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.krzyzanowskim.Commander';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.krzyzanowskim.Commander' AND version_compare(bundle_short_version, '0.7.998') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.krzyzanowskim.Commander' AND version_compare(bundle_short_version, '0.7.998') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.krzyzanowskim.Commander');" }, "installer_url": "https://download.thecommander.app/release/Commander-0.7.998.zip", "install_script_ref": "a8d2b53c", diff --git a/ee/maintained-apps/outputs/companion/darwin.json b/ee/maintained-apps/outputs/companion/darwin.json index 700ecf5e084..e39369709ba 100644 --- a/ee/maintained-apps/outputs/companion/darwin.json +++ b/ee/maintained-apps/outputs/companion/darwin.json @@ -4,7 +4,8 @@ "version": "5.0.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'companion.bitfocus.no';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'companion.bitfocus.no' AND version_compare(bundle_short_version, '5.0.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'companion.bitfocus.no' AND version_compare(bundle_short_version, '5.0.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'companion.bitfocus.no');" }, "installer_url": "https://cf-pub.bitfocus.io/companion/companion/companion-mac-arm64-5.0.3-9703-stable-2daa0d7670.dmg", "install_script_ref": "f4b5e238", diff --git a/ee/maintained-apps/outputs/connect-fonts/darwin.json b/ee/maintained-apps/outputs/connect-fonts/darwin.json index 89a65dcb38f..52deb9ec78d 100644 --- a/ee/maintained-apps/outputs/connect-fonts/darwin.json +++ b/ee/maintained-apps/outputs/connect-fonts/darwin.json @@ -4,7 +4,8 @@ "version": "28.1.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.extensis.SuitcaseFusion';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.extensis.SuitcaseFusion' AND version_compare(bundle_short_version, '28.1.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.extensis.SuitcaseFusion' AND version_compare(bundle_short_version, '28.1.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.extensis.SuitcaseFusion');" }, "installer_url": "https://bin.extensis.com/ConnectFonts-M-28-1-6.dmg", "install_script_ref": "79f2982d", diff --git a/ee/maintained-apps/outputs/copilot-money/darwin.json b/ee/maintained-apps/outputs/copilot-money/darwin.json index e62fb8701f8..b782af3103d 100644 --- a/ee/maintained-apps/outputs/copilot-money/darwin.json +++ b/ee/maintained-apps/outputs/copilot-money/darwin.json @@ -4,7 +4,8 @@ "version": "6.4.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.copilot.production';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.copilot.production' AND version_compare(bundle_short_version, '6.4.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.copilot.production' AND version_compare(bundle_short_version, '6.4.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.copilot.production');" }, "installer_url": "https://storage.googleapis.com/copilot-mac-releases/images/Copilot-6.4.3-330-ce1410d6.dmg", "install_script_ref": "02b7fbf3", diff --git a/ee/maintained-apps/outputs/cork/darwin.json b/ee/maintained-apps/outputs/cork/darwin.json index 4927a31ad30..3ee78305635 100644 --- a/ee/maintained-apps/outputs/cork/darwin.json +++ b/ee/maintained-apps/outputs/cork/darwin.json @@ -4,7 +4,8 @@ "version": "1.7.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.davidbures.cork';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.davidbures.cork' AND version_compare(bundle_short_version, '1.7.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.davidbures.cork' AND version_compare(bundle_short_version, '1.7.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.davidbures.cork');" }, "installer_url": "https://corkmac.app/RLS/1.7.6/Cork.zip", "install_script_ref": "fc75a6be", diff --git a/ee/maintained-apps/outputs/coteditor/darwin.json b/ee/maintained-apps/outputs/coteditor/darwin.json index c52b347956d..397d4df3bc8 100644 --- a/ee/maintained-apps/outputs/coteditor/darwin.json +++ b/ee/maintained-apps/outputs/coteditor/darwin.json @@ -4,7 +4,8 @@ "version": "7.0.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.coteditor.CotEditor';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.coteditor.CotEditor' AND version_compare(bundle_short_version, '7.0.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.coteditor.CotEditor' AND version_compare(bundle_short_version, '7.0.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.coteditor.CotEditor');" }, "installer_url": "https://github.com/coteditor/CotEditor/releases/download/7.0.8/CotEditor_7.0.8.dmg", "install_script_ref": "d7df556c", diff --git a/ee/maintained-apps/outputs/cpu-z/windows.json b/ee/maintained-apps/outputs/cpu-z/windows.json index 230f1a604b1..d6e8af9328f 100644 --- a/ee/maintained-apps/outputs/cpu-z/windows.json +++ b/ee/maintained-apps/outputs/cpu-z/windows.json @@ -4,7 +4,8 @@ "version": "2.20", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'CPUID CPU-Z %' AND publisher = 'CPUID, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'CPUID CPU-Z %' AND publisher = 'CPUID, Inc.' AND version_compare(version, '2.20') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'CPUID CPU-Z %' AND publisher = 'CPUID, Inc.' AND version_compare(version, '2.20') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'cpu-z.exe');" }, "installer_url": "https://download.cpuid.com/cpu-z/cpu-z_2.20-en.exe", "install_script_ref": "ec59e4d0", diff --git a/ee/maintained-apps/outputs/crashplan/darwin.json b/ee/maintained-apps/outputs/crashplan/darwin.json index 022eebb70a4..ba4329e5b33 100644 --- a/ee/maintained-apps/outputs/crashplan/darwin.json +++ b/ee/maintained-apps/outputs/crashplan/darwin.json @@ -4,7 +4,8 @@ "version": "12.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.crashplan.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.crashplan.desktop' AND version_compare(bundle_short_version, '12.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.crashplan.desktop' AND version_compare(bundle_short_version, '12.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.crashplan.desktop');" }, "installer_url": "https://download.crashplan.com/installs/agent/cloud/12.0.0/735/install/CrashPlan_12.0.0_735_Mac.dmg", "install_script_ref": "a76a6ada", diff --git a/ee/maintained-apps/outputs/crashplan/windows.json b/ee/maintained-apps/outputs/crashplan/windows.json index 8205611b71e..d087f65e1b0 100644 --- a/ee/maintained-apps/outputs/crashplan/windows.json +++ b/ee/maintained-apps/outputs/crashplan/windows.json @@ -4,7 +4,8 @@ "version": "12.0.0.735", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'CrashPlan' AND publisher = 'CrashPlan Group LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'CrashPlan' AND publisher = 'CrashPlan Group LLC' AND version_compare(version, '12.0.0.735') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'CrashPlan' AND publisher = 'CrashPlan Group LLC' AND version_compare(version, '12.0.0.735') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'crashplan.exe');" }, "installer_url": "https://download.crashplan.com/installs/agent/cloud/12.0.0/735/install/CrashPlan_12.0.0_735_Win64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/creative-force-kelvin/windows.json b/ee/maintained-apps/outputs/creative-force-kelvin/windows.json index cb78c82b0e9..1a5b04a71e7 100644 --- a/ee/maintained-apps/outputs/creative-force-kelvin/windows.json +++ b/ee/maintained-apps/outputs/creative-force-kelvin/windows.json @@ -4,7 +4,8 @@ "version": "6.7.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Kelvin' AND publisher = 'Creative Force';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Kelvin' AND publisher = 'Creative Force' AND version_compare(version, '6.7.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Kelvin' AND publisher = 'Creative Force' AND version_compare(version, '6.7.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'creative force kelvin.exe');" }, "installer_url": "https://download.creativeforce.io/released-files.042024/prod/kelvin/win/Kelvin-6.7.0-win.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/creative-force-triad/windows.json b/ee/maintained-apps/outputs/creative-force-triad/windows.json index 4be7ce314c2..2e3ff211c8c 100644 --- a/ee/maintained-apps/outputs/creative-force-triad/windows.json +++ b/ee/maintained-apps/outputs/creative-force-triad/windows.json @@ -4,7 +4,8 @@ "version": "4.4.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Creative Force Triad %' AND publisher = 'Creative Force';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Creative Force Triad %' AND publisher = 'Creative Force' AND version_compare(version, '4.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Creative Force Triad %' AND publisher = 'Creative Force' AND version_compare(version, '4.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'creative force triad.exe');" }, "installer_url": "https://download.creativeforce.io/released-files.042024/prod/triad/win/Triad-4.4.0-win.exe", "install_script_ref": "8568dd32", diff --git a/ee/maintained-apps/outputs/crestron-airmedia-peripherals/windows.json b/ee/maintained-apps/outputs/crestron-airmedia-peripherals/windows.json index ec2695c163b..6ca79fd52a0 100644 --- a/ee/maintained-apps/outputs/crestron-airmedia-peripherals/windows.json +++ b/ee/maintained-apps/outputs/crestron-airmedia-peripherals/windows.json @@ -4,7 +4,8 @@ "version": "1.11.1.164", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Crestron AirMedia Peripherals' AND publisher = 'Crestron Electronics, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Crestron AirMedia Peripherals' AND publisher = 'Crestron Electronics, Inc.' AND version_compare(version, '1.11.1.164') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Crestron AirMedia Peripherals' AND publisher = 'Crestron Electronics, Inc.' AND version_compare(version, '1.11.1.164') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'crestron airmedia peripherals.exe');" }, "installer_url": "https://www.crestron.com/software_files_public/am-100/airmediaperipherals64_1.11.1.164.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/crestron-airmedia/windows.json b/ee/maintained-apps/outputs/crestron-airmedia/windows.json index 2474a799b22..95cb763c41b 100644 --- a/ee/maintained-apps/outputs/crestron-airmedia/windows.json +++ b/ee/maintained-apps/outputs/crestron-airmedia/windows.json @@ -4,7 +4,8 @@ "version": "5.11.1.164", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Crestron AirMedia Machine-Wide Installer' AND publisher = 'Crestron Electronics, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Crestron AirMedia Machine-Wide Installer' AND publisher = 'Crestron Electronics, Inc.' AND version_compare(version, '5.11.1.164') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Crestron AirMedia Machine-Wide Installer' AND publisher = 'Crestron Electronics, Inc.' AND version_compare(version, '5.11.1.164') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'crestron airmedia.exe');" }, "installer_url": "https://www.crestron.com/software_files_public/am-100/airmedia_windows_5.11.1.164.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/cribl-edge/windows.json b/ee/maintained-apps/outputs/cribl-edge/windows.json index 187549c511a..7b208aa7abe 100644 --- a/ee/maintained-apps/outputs/cribl-edge/windows.json +++ b/ee/maintained-apps/outputs/cribl-edge/windows.json @@ -4,7 +4,8 @@ "version": "4.19.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Cribl Edge' AND publisher = 'Cribl, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cribl Edge' AND publisher = 'Cribl, Inc.' AND version_compare(version, '4.19.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cribl Edge' AND publisher = 'Cribl, Inc.' AND version_compare(version, '4.19.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'cribl edge.exe');" }, "installer_url": "https://cdn.cribl.io/dl/4.19.0/cribl-4.19.0-0fbd6d34-win32-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/crisisgo/windows.json b/ee/maintained-apps/outputs/crisisgo/windows.json index d9b822cb6fd..2173c90e6dd 100644 --- a/ee/maintained-apps/outputs/crisisgo/windows.json +++ b/ee/maintained-apps/outputs/crisisgo/windows.json @@ -4,7 +4,8 @@ "version": "6.34.2.12397", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'CrisisGo' AND publisher = 'CrisisGo, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'CrisisGo' AND publisher = 'CrisisGo, Inc.' AND version_compare(version, '6.34.2.12397') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'CrisisGo' AND publisher = 'CrisisGo, Inc.' AND version_compare(version, '6.34.2.12397') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'crisisgo.exe');" }, "installer_url": "https://crisisgoapp.s3.amazonaws.com/Windows/CrisisGo_6.34.2.msi", "install_script_ref": "01aaef68", diff --git a/ee/maintained-apps/outputs/crossover/darwin.json b/ee/maintained-apps/outputs/crossover/darwin.json index 46b7737c415..59e3c821e09 100644 --- a/ee/maintained-apps/outputs/crossover/darwin.json +++ b/ee/maintained-apps/outputs/crossover/darwin.json @@ -4,7 +4,8 @@ "version": "26.3.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.codeweavers.CrossOver';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.codeweavers.CrossOver' AND version_compare(bundle_short_version, '26.3.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.codeweavers.CrossOver' AND version_compare(bundle_short_version, '26.3.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.codeweavers.CrossOver');" }, "installer_url": "https://media.codeweavers.com/pub/crossover/cxmac/demo/crossover-26.3.0.zip", "install_script_ref": "5a28ed0c", diff --git a/ee/maintained-apps/outputs/cryptomator/darwin.json b/ee/maintained-apps/outputs/cryptomator/darwin.json index 03aabaf4c84..c3665f7d7f6 100644 --- a/ee/maintained-apps/outputs/cryptomator/darwin.json +++ b/ee/maintained-apps/outputs/cryptomator/darwin.json @@ -4,7 +4,8 @@ "version": "1.19.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.cryptomator';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.cryptomator' AND version_compare(bundle_short_version, '1.19.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.cryptomator' AND version_compare(bundle_short_version, '1.19.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.cryptomator');" }, "installer_url": "https://github.com/cryptomator/cryptomator/releases/download/1.19.3/Cryptomator-1.19.3-arm64.dmg", "install_script_ref": "54b3ef0f", diff --git a/ee/maintained-apps/outputs/cryptomator/windows.json b/ee/maintained-apps/outputs/cryptomator/windows.json index 0613756c7c9..80b8678583b 100644 --- a/ee/maintained-apps/outputs/cryptomator/windows.json +++ b/ee/maintained-apps/outputs/cryptomator/windows.json @@ -4,7 +4,8 @@ "version": "1.19.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Cryptomator' AND publisher = 'Skymatic GmbH';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cryptomator' AND publisher = 'Skymatic GmbH' AND version_compare(version, '1.19.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cryptomator' AND publisher = 'Skymatic GmbH' AND version_compare(version, '1.19.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'cryptomator.exe');" }, "installer_url": "https://github.com/cryptomator/cryptomator/releases/download/1.19.3/Cryptomator-1.19.3-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/crystaldiskmark/windows.json b/ee/maintained-apps/outputs/crystaldiskmark/windows.json index 3dcf08c3080..eba4b901946 100644 --- a/ee/maintained-apps/outputs/crystaldiskmark/windows.json +++ b/ee/maintained-apps/outputs/crystaldiskmark/windows.json @@ -4,7 +4,8 @@ "version": "9.0.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'CrystalDiskMark %' AND publisher = 'Crystal Dew World';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'CrystalDiskMark %' AND publisher = 'Crystal Dew World' AND version_compare(version, '9.0.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'CrystalDiskMark %' AND publisher = 'Crystal Dew World' AND version_compare(version, '9.0.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'crystaldiskmark.exe');" }, "installer_url": "https://sourceforge.net/projects/crystaldiskmark/files/9.0.3/CrystalDiskMark9_0_3.exe/download", "install_script_ref": "e39ecf9f", diff --git a/ee/maintained-apps/outputs/crystalfetch/darwin.json b/ee/maintained-apps/outputs/crystalfetch/darwin.json index 71b544b1146..138f398c948 100644 --- a/ee/maintained-apps/outputs/crystalfetch/darwin.json +++ b/ee/maintained-apps/outputs/crystalfetch/darwin.json @@ -4,7 +4,8 @@ "version": "2.2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'llc.turing.CrystalFetch';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'llc.turing.CrystalFetch' AND version_compare(bundle_short_version, '2.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'llc.turing.CrystalFetch' AND version_compare(bundle_short_version, '2.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'llc.turing.CrystalFetch');" }, "installer_url": "https://github.com/TuringSoftware/CrystalFetch/releases/download/v2.2.0/CrystalFetch.dmg", "install_script_ref": "2528c76a", diff --git a/ee/maintained-apps/outputs/cube-browser/windows.json b/ee/maintained-apps/outputs/cube-browser/windows.json index d50787bae4d..1022ba1ebd3 100644 --- a/ee/maintained-apps/outputs/cube-browser/windows.json +++ b/ee/maintained-apps/outputs/cube-browser/windows.json @@ -4,7 +4,8 @@ "version": "2.6.62", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Cube Browser (64 bit)' AND publisher = 'Rystad Energy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cube Browser (64 bit)' AND publisher = 'Rystad Energy' AND version_compare(version, '2.6.62') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cube Browser (64 bit)' AND publisher = 'Rystad Energy' AND version_compare(version, '2.6.62') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'cube browser.exe');" }, "installer_url": "https://www.datocms-assets.com/75979/1782812533-cubebrowsersetup_x64_2_6_62.exe", "install_script_ref": "899a8b79", diff --git a/ee/maintained-apps/outputs/cursor/darwin.json b/ee/maintained-apps/outputs/cursor/darwin.json index 25d230e54fe..5ef22b506f3 100644 --- a/ee/maintained-apps/outputs/cursor/darwin.json +++ b/ee/maintained-apps/outputs/cursor/darwin.json @@ -4,7 +4,8 @@ "version": "3.15.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.todesktop.230313mzl4w4u92';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.todesktop.230313mzl4w4u92' AND version_compare(bundle_short_version, '3.15.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.todesktop.230313mzl4w4u92' AND version_compare(bundle_short_version, '3.15.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.todesktop.230313mzl4w4u92');" }, "installer_url": "https://downloads.cursor.com/production/a1f686545fd0ce8917bbd2449f733551a9bce420/darwin/arm64/Cursor-darwin-arm64.zip", "install_script_ref": "1ae48b55", diff --git a/ee/maintained-apps/outputs/cursor/windows.json b/ee/maintained-apps/outputs/cursor/windows.json index f3bafad2633..cbacacc16b3 100644 --- a/ee/maintained-apps/outputs/cursor/windows.json +++ b/ee/maintained-apps/outputs/cursor/windows.json @@ -4,7 +4,8 @@ "version": "3.14.27", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Cursor' AND publisher = 'Anysphere';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cursor' AND publisher = 'Anysphere' AND version_compare(version, '3.14.27') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cursor' AND publisher = 'Anysphere' AND version_compare(version, '3.14.27') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'cursor.exe');" }, "installer_url": "https://downloads.cursor.com/production/047548b00c1a079373d74d00183f32510a4a41e1/win32/x64/system-setup/CursorSetup-x64-3.14.27.exe", "install_script_ref": "03589b5e", diff --git a/ee/maintained-apps/outputs/cursorsense/darwin.json b/ee/maintained-apps/outputs/cursorsense/darwin.json index af4bc83db91..3731e5637ea 100644 --- a/ee/maintained-apps/outputs/cursorsense/darwin.json +++ b/ee/maintained-apps/outputs/cursorsense/darwin.json @@ -4,7 +4,8 @@ "version": "2.4.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'jp.plentycom.CursorSense.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'jp.plentycom.CursorSense.app' AND version_compare(bundle_short_version, '2.4.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'jp.plentycom.CursorSense.app' AND version_compare(bundle_short_version, '2.4.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'jp.plentycom.CursorSense.app');" }, "installer_url": "https://plentycom.jp/ctrl/files_cs/CursorSense2.4.3.dmg", "install_script_ref": "a2399515", diff --git a/ee/maintained-apps/outputs/cursr/darwin.json b/ee/maintained-apps/outputs/cursr/darwin.json index f6ce7469a54..7087737dc16 100644 --- a/ee/maintained-apps/outputs/cursr/darwin.json +++ b/ee/maintained-apps/outputs/cursr/darwin.json @@ -4,7 +4,8 @@ "version": "1.7.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.bitgapp.cursr';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bitgapp.cursr' AND version_compare(bundle_short_version, '1.7.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bitgapp.cursr' AND version_compare(bundle_short_version, '1.7.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.bitgapp.cursr');" }, "installer_url": "https://github.com/bitgapp/Cursr/releases/download/v1.7.3/Cursr-mac-arm64.dmg", "install_script_ref": "fdee1fdd", diff --git a/ee/maintained-apps/outputs/customshortcuts/darwin.json b/ee/maintained-apps/outputs/customshortcuts/darwin.json index c7580090355..c79fbf318a1 100644 --- a/ee/maintained-apps/outputs/customshortcuts/darwin.json +++ b/ee/maintained-apps/outputs/customshortcuts/darwin.json @@ -4,7 +4,8 @@ "version": "1.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.houdah.CustomShortcuts';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.houdah.CustomShortcuts' AND version_compare(bundle_short_version, '1.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.houdah.CustomShortcuts' AND version_compare(bundle_short_version, '1.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.houdah.CustomShortcuts');" }, "installer_url": "https://dl.houdah.com/customShortcuts/updates/cast_assets/CustomShortcuts1.3.zip", "install_script_ref": "c3b15a20", diff --git a/ee/maintained-apps/outputs/cyberduck-cli/windows.json b/ee/maintained-apps/outputs/cyberduck-cli/windows.json index 32d1d5c8188..bba0058b8d9 100644 --- a/ee/maintained-apps/outputs/cyberduck-cli/windows.json +++ b/ee/maintained-apps/outputs/cyberduck-cli/windows.json @@ -4,7 +4,8 @@ "version": "9.2.0.43571", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Cyberduck CLI' AND publisher = 'iterate GmbH';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cyberduck CLI' AND publisher = 'iterate GmbH' AND version_compare(version, '9.2.0.43571') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cyberduck CLI' AND publisher = 'iterate GmbH' AND version_compare(version, '9.2.0.43571') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'cyberduck cli.exe');" }, "installer_url": "https://dist.duck.sh/duck-9.2.0.43571.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/cyberduck/darwin.json b/ee/maintained-apps/outputs/cyberduck/darwin.json index 7869573009b..042148ba295 100644 --- a/ee/maintained-apps/outputs/cyberduck/darwin.json +++ b/ee/maintained-apps/outputs/cyberduck/darwin.json @@ -4,7 +4,8 @@ "version": "9.5.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ch.sudo.cyberduck';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.sudo.cyberduck' AND version_compare(bundle_short_version, '9.5.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.sudo.cyberduck' AND version_compare(bundle_short_version, '9.5.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'ch.sudo.cyberduck');" }, "installer_url": "https://update.cyberduck.io/Cyberduck-9.5.3.45464.zip", "install_script_ref": "809901d0", diff --git a/ee/maintained-apps/outputs/cyberduck/windows.json b/ee/maintained-apps/outputs/cyberduck/windows.json index 14b5626d7d9..8b33f487e01 100644 --- a/ee/maintained-apps/outputs/cyberduck/windows.json +++ b/ee/maintained-apps/outputs/cyberduck/windows.json @@ -4,7 +4,8 @@ "version": "9.5.3.45464", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Cyberduck' AND publisher = 'iterate GmbH';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cyberduck' AND publisher = 'iterate GmbH' AND version_compare(version, '9.5.3.45464') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cyberduck' AND publisher = 'iterate GmbH' AND version_compare(version, '9.5.3.45464') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'cyberduck.exe');" }, "installer_url": "https://update.cyberduck.io//Cyberduck-Installer-9.5.3.45464.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/cycling74-max/darwin.json b/ee/maintained-apps/outputs/cycling74-max/darwin.json index e6e3c8afb39..178fb71b938 100644 --- a/ee/maintained-apps/outputs/cycling74-max/darwin.json +++ b/ee/maintained-apps/outputs/cycling74-max/darwin.json @@ -4,7 +4,8 @@ "version": "9.1.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.cycling74.Max';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cycling74.Max' AND version_compare(bundle_short_version, '9.1.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cycling74.Max' AND version_compare(bundle_short_version, '9.1.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.cycling74.Max');" }, "installer_url": "https://downloads.cdn.cycling74.com/max9/Max915_260728.dmg", "install_script_ref": "3c5d2cd6", diff --git a/ee/maintained-apps/outputs/daisydisk/darwin.json b/ee/maintained-apps/outputs/daisydisk/darwin.json index 361eb2bc0d6..4daad11f8eb 100644 --- a/ee/maintained-apps/outputs/daisydisk/darwin.json +++ b/ee/maintained-apps/outputs/daisydisk/darwin.json @@ -4,7 +4,8 @@ "version": "4.34.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.daisydiskapp.DaisyDiskStandAlone';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.daisydiskapp.DaisyDiskStandAlone' AND version_compare(bundle_short_version, '4.34.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.daisydiskapp.DaisyDiskStandAlone' AND version_compare(bundle_short_version, '4.34.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.daisydiskapp.DaisyDiskStandAlone');" }, "installer_url": "https://daisydiskapp.com/download/DaisyDisk.zip", "install_script_ref": "77509490", diff --git a/ee/maintained-apps/outputs/dangerzone/darwin.json b/ee/maintained-apps/outputs/dangerzone/darwin.json index 0719a9b0587..7410203a108 100644 --- a/ee/maintained-apps/outputs/dangerzone/darwin.json +++ b/ee/maintained-apps/outputs/dangerzone/darwin.json @@ -4,7 +4,8 @@ "version": "0.11.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'press.freedom.dangerzone';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'press.freedom.dangerzone' AND version_compare(bundle_short_version, '0.11.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'press.freedom.dangerzone' AND version_compare(bundle_short_version, '0.11.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'press.freedom.dangerzone');" }, "installer_url": "https://github.com/freedomofpress/dangerzone/releases/download/v0.11.0/Dangerzone-0.11.0-arm64.dmg", "install_script_ref": "219d49b9", diff --git a/ee/maintained-apps/outputs/dante-controller/darwin.json b/ee/maintained-apps/outputs/dante-controller/darwin.json index fd08b780f4a..0ddf1617d84 100644 --- a/ee/maintained-apps/outputs/dante-controller/darwin.json +++ b/ee/maintained-apps/outputs/dante-controller/darwin.json @@ -4,7 +4,8 @@ "version": "4.18.1.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.audinate.dante.DanteController';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.audinate.dante.DanteController' AND version_compare(bundle_short_version, '4.18.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.audinate.dante.DanteController' AND version_compare(bundle_short_version, '4.18.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.audinate.dante.DanteController');" }, "installer_url": "https://audinate-software-updates.sgp1.cdn.digitaloceanspaces.com/DanteController/4/4.18/apple_silicon/DanteController-4.18.1.1-macos-arm64.dmg", "install_script_ref": "9ba4f188", diff --git a/ee/maintained-apps/outputs/darkmodebuddy/darwin.json b/ee/maintained-apps/outputs/darkmodebuddy/darwin.json index 9f995529867..5ba02a06574 100644 --- a/ee/maintained-apps/outputs/darkmodebuddy/darwin.json +++ b/ee/maintained-apps/outputs/darkmodebuddy/darwin.json @@ -4,7 +4,8 @@ "version": "1.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'codes.rambo.DarkModeBuddy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'codes.rambo.DarkModeBuddy' AND version_compare(bundle_short_version, '1.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'codes.rambo.DarkModeBuddy' AND version_compare(bundle_short_version, '1.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'codes.rambo.DarkModeBuddy');" }, "installer_url": "https://su.darkmodebuddy.app/DarkModeBuddy_v1.2-13.dmg", "install_script_ref": "906a57c7", diff --git a/ee/maintained-apps/outputs/darktable/darwin.json b/ee/maintained-apps/outputs/darktable/darwin.json index 8c86199f3d6..87e460f2695 100644 --- a/ee/maintained-apps/outputs/darktable/darwin.json +++ b/ee/maintained-apps/outputs/darktable/darwin.json @@ -4,7 +4,8 @@ "version": "5.6.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.darktable';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.darktable' AND version_compare(bundle_short_version, '5.6.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.darktable' AND version_compare(bundle_short_version, '5.6.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.darktable');" }, "installer_url": "https://github.com/darktable-org/darktable/releases/download/release-5.6.0/darktable-5.6.0-arm64.dmg", "install_script_ref": "d72d5f78", diff --git a/ee/maintained-apps/outputs/darktable/windows.json b/ee/maintained-apps/outputs/darktable/windows.json index 6f619faebcc..6ff7a24080c 100644 --- a/ee/maintained-apps/outputs/darktable/windows.json +++ b/ee/maintained-apps/outputs/darktable/windows.json @@ -4,7 +4,8 @@ "version": "5.6.0", "queries": { "exists": "SELECT 1 FROM programs WHERE (name = 'darktable' OR name LIKE 'darktable %') AND publisher LIKE '%darktable%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE ((name = 'darktable' OR name LIKE 'darktable %') AND publisher LIKE '%darktable%') AND version_compare(version, '5.6.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE ((name = 'darktable' OR name LIKE 'darktable %') AND publisher LIKE '%darktable%') AND version_compare(version, '5.6.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'darktable.exe');" }, "installer_url": "https://github.com/darktable-org/darktable/releases/download/release-5.6.0/darktable-5.6.0-win64.exe", "install_script_ref": "14588e29", diff --git a/ee/maintained-apps/outputs/dash/darwin.json b/ee/maintained-apps/outputs/dash/darwin.json index a1f711659b6..d65bf85c6ea 100644 --- a/ee/maintained-apps/outputs/dash/darwin.json +++ b/ee/maintained-apps/outputs/dash/darwin.json @@ -4,7 +4,8 @@ "version": "8.1.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.kapeli.dashdoc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.kapeli.dashdoc' AND version_compare(bundle_short_version, '8.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.kapeli.dashdoc' AND version_compare(bundle_short_version, '8.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.kapeli.dashdoc');" }, "installer_url": "https://kapeli.com/downloads/v8/Dash.zip", "install_script_ref": "e7ac0082", diff --git a/ee/maintained-apps/outputs/dataflare/darwin.json b/ee/maintained-apps/outputs/dataflare/darwin.json index 07a3d468146..87d3c72b9c2 100644 --- a/ee/maintained-apps/outputs/dataflare/darwin.json +++ b/ee/maintained-apps/outputs/dataflare/darwin.json @@ -4,7 +4,8 @@ "version": "3.1.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.dataflare.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.dataflare.desktop' AND version_compare(bundle_short_version, '3.1.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.dataflare.desktop' AND version_compare(bundle_short_version, '3.1.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.dataflare.desktop');" }, "installer_url": "https://assets.dataflare.app/release/darwin/aarch64/Dataflare-3.1.9.dmg", "install_script_ref": "d96ff327", diff --git a/ee/maintained-apps/outputs/dataflare/windows.json b/ee/maintained-apps/outputs/dataflare/windows.json index c0f59fb1155..2ab928db52d 100644 --- a/ee/maintained-apps/outputs/dataflare/windows.json +++ b/ee/maintained-apps/outputs/dataflare/windows.json @@ -4,7 +4,8 @@ "version": "3.1.9", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Dataflare' AND publisher = 'Dataflare';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Dataflare' AND publisher = 'Dataflare' AND version_compare(version, '3.1.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Dataflare' AND publisher = 'Dataflare' AND version_compare(version, '3.1.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'dataflare.exe');" }, "installer_url": "https://assets.dataflare.app/release/windows/x86_64/Dataflare-Setup-3.1.9.exe", "install_script_ref": "a5276316", diff --git a/ee/maintained-apps/outputs/datagrip/darwin.json b/ee/maintained-apps/outputs/datagrip/darwin.json index f194d91a804..b2d058971d3 100644 --- a/ee/maintained-apps/outputs/datagrip/darwin.json +++ b/ee/maintained-apps/outputs/datagrip/darwin.json @@ -4,7 +4,8 @@ "version": "2026.2.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.datagrip';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.datagrip' AND version_compare(bundle_short_version, '2026.2.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.datagrip' AND version_compare(bundle_short_version, '2026.2.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jetbrains.datagrip');" }, "installer_url": "https://download.jetbrains.com/datagrip/datagrip-2026.2.3-aarch64.dmg", "install_script_ref": "5f954355", diff --git a/ee/maintained-apps/outputs/datagrip/windows.json b/ee/maintained-apps/outputs/datagrip/windows.json index 61ba07ced32..2725c9da979 100644 --- a/ee/maintained-apps/outputs/datagrip/windows.json +++ b/ee/maintained-apps/outputs/datagrip/windows.json @@ -4,7 +4,8 @@ "version": "2026.2.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'DataGrip %' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DataGrip %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.9437.70') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DataGrip %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.9437.70') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('datagrip.exe','datagrip64.exe'));" }, "installer_url": "https://download.jetbrains.com/datagrip/datagrip-2026.2.2.exe", "install_script_ref": "0897461e", diff --git a/ee/maintained-apps/outputs/dataspell/darwin.json b/ee/maintained-apps/outputs/dataspell/darwin.json index 543c8abd793..8bc4a178767 100644 --- a/ee/maintained-apps/outputs/dataspell/darwin.json +++ b/ee/maintained-apps/outputs/dataspell/darwin.json @@ -4,7 +4,8 @@ "version": "2026.1.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.dataspell';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.dataspell' AND version_compare(bundle_short_version, '2026.1.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.dataspell' AND version_compare(bundle_short_version, '2026.1.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jetbrains.dataspell');" }, "installer_url": "https://download.jetbrains.com/python/dataspell-2026.1.3-aarch64.dmg", "install_script_ref": "25672b28", diff --git a/ee/maintained-apps/outputs/dataspell/windows.json b/ee/maintained-apps/outputs/dataspell/windows.json index 11057502e65..d942caf0a25 100644 --- a/ee/maintained-apps/outputs/dataspell/windows.json +++ b/ee/maintained-apps/outputs/dataspell/windows.json @@ -4,7 +4,8 @@ "version": "2026.1.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'DataSpell %' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DataSpell %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '261.26222.84') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DataSpell %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '261.26222.84') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('dataspell.exe','dataspell64.exe'));" }, "installer_url": "https://download.jetbrains.com/python/dataspell-2026.1.3.exe", "install_script_ref": "ba6bf684", diff --git a/ee/maintained-apps/outputs/dax-studio/windows.json b/ee/maintained-apps/outputs/dax-studio/windows.json index 25c16dbf9dd..3a514d7b14f 100644 --- a/ee/maintained-apps/outputs/dax-studio/windows.json +++ b/ee/maintained-apps/outputs/dax-studio/windows.json @@ -4,7 +4,8 @@ "version": "3.5.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'DAX Studio %' AND publisher = 'DAX Studio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DAX Studio %' AND publisher = 'DAX Studio' AND version_compare(version, '3.5.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DAX Studio %' AND publisher = 'DAX Studio' AND version_compare(version, '3.5.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'daxstudio.exe');" }, "installer_url": "https://github.com/DaxStudio/DaxStudio/releases/download/v3.5.2/DaxStudio_3_5_2_setup.exe", "install_script_ref": "efa942ae", diff --git a/ee/maintained-apps/outputs/dayflow/darwin.json b/ee/maintained-apps/outputs/dayflow/darwin.json index b53a1edee56..7cd6bcb20e1 100644 --- a/ee/maintained-apps/outputs/dayflow/darwin.json +++ b/ee/maintained-apps/outputs/dayflow/darwin.json @@ -4,7 +4,8 @@ "version": "2.0.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'teleportlabs.com.Dayflow';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'teleportlabs.com.Dayflow' AND version_compare(bundle_short_version, '2.0.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'teleportlabs.com.Dayflow' AND version_compare(bundle_short_version, '2.0.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'teleportlabs.com.Dayflow');" }, "installer_url": "https://github.com/JerryZLiu/Dayflow/releases/download/v2.0.3/Dayflow.dmg", "install_script_ref": "9ec4db9b", diff --git a/ee/maintained-apps/outputs/db-browser-for-sqlite/darwin.json b/ee/maintained-apps/outputs/db-browser-for-sqlite/darwin.json index ac60ce39636..01b3edea125 100644 --- a/ee/maintained-apps/outputs/db-browser-for-sqlite/darwin.json +++ b/ee/maintained-apps/outputs/db-browser-for-sqlite/darwin.json @@ -4,7 +4,8 @@ "version": "3.13.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sqlitebrowser.sqlitebrowser';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sqlitebrowser.sqlitebrowser' AND version_compare(bundle_short_version, '3.13.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sqlitebrowser.sqlitebrowser' AND version_compare(bundle_short_version, '3.13.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sqlitebrowser.sqlitebrowser');" }, "installer_url": "https://github.com/sqlitebrowser/sqlitebrowser/releases/download/v3.13.1/DB.Browser.for.SQLite-v3.13.1.dmg", "install_script_ref": "b934c7dd", diff --git a/ee/maintained-apps/outputs/db-browser-for-sqlite/windows.json b/ee/maintained-apps/outputs/db-browser-for-sqlite/windows.json index 2defb86f708..f373b0bbc3a 100644 --- a/ee/maintained-apps/outputs/db-browser-for-sqlite/windows.json +++ b/ee/maintained-apps/outputs/db-browser-for-sqlite/windows.json @@ -4,7 +4,8 @@ "version": "3.13.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'DB Browser for SQLite %' AND publisher = 'DB Browser for SQLite Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DB Browser for SQLite %' AND publisher = 'DB Browser for SQLite Team' AND version_compare(version, '3.13.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DB Browser for SQLite %' AND publisher = 'DB Browser for SQLite Team' AND version_compare(version, '3.13.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'db browser for sqlite.exe');" }, "installer_url": "https://github.com/sqlitebrowser/sqlitebrowser/releases/download/v3.13.1/DB.Browser.for.SQLite-v3.13.1-win64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/dbeaver-community/darwin.json b/ee/maintained-apps/outputs/dbeaver-community/darwin.json index f14cb8de22a..5b64f81f612 100644 --- a/ee/maintained-apps/outputs/dbeaver-community/darwin.json +++ b/ee/maintained-apps/outputs/dbeaver-community/darwin.json @@ -4,7 +4,8 @@ "version": "26.1.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.jkiss.dbeaver.core.product';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.jkiss.dbeaver.core.product' AND version_compare(bundle_short_version, '26.1.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.jkiss.dbeaver.core.product' AND version_compare(bundle_short_version, '26.1.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.jkiss.dbeaver.core.product');" }, "installer_url": "https://dbeaver.io/files/26.1.4/dbeaver-ce-26.1.4-macos-aarch64.dmg", "install_script_ref": "277d4c1a", diff --git a/ee/maintained-apps/outputs/dbeaver-community/windows.json b/ee/maintained-apps/outputs/dbeaver-community/windows.json index a24f0b59bfb..79f408ea2a1 100644 --- a/ee/maintained-apps/outputs/dbeaver-community/windows.json +++ b/ee/maintained-apps/outputs/dbeaver-community/windows.json @@ -4,7 +4,8 @@ "version": "26.1.4", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'DBeaver %' AND publisher = 'DBeaver Corp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DBeaver %' AND publisher = 'DBeaver Corp' AND version_compare(version, '26.1.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DBeaver %' AND publisher = 'DBeaver Corp' AND version_compare(version, '26.1.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'dbeaver.exe');" }, "installer_url": "https://github.com/dbeaver/dbeaver/releases/download/26.1.4/dbeaver-ce-26.1.4-windows-x86_64.exe", "install_script_ref": "44838cfb", diff --git a/ee/maintained-apps/outputs/dbeaver-enterprise/windows.json b/ee/maintained-apps/outputs/dbeaver-enterprise/windows.json index 5af6a68808b..d3f6292eb5f 100644 --- a/ee/maintained-apps/outputs/dbeaver-enterprise/windows.json +++ b/ee/maintained-apps/outputs/dbeaver-enterprise/windows.json @@ -4,7 +4,8 @@ "version": "26.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'DBeaverEE %' AND publisher = 'DBeaver Corp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DBeaverEE %' AND publisher = 'DBeaver Corp' AND version_compare(version, '26.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DBeaverEE %' AND publisher = 'DBeaver Corp' AND version_compare(version, '26.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'dbeaver.exe');" }, "installer_url": "https://downloads.dbeaver.net/enterprise/26.1.0/dbeaver-ee-26.1.0-windows-x86_64.exe", "install_script_ref": "d217c97c", diff --git a/ee/maintained-apps/outputs/dbeaverlite/windows.json b/ee/maintained-apps/outputs/dbeaverlite/windows.json index 80471185e8c..f49d466f331 100644 --- a/ee/maintained-apps/outputs/dbeaverlite/windows.json +++ b/ee/maintained-apps/outputs/dbeaverlite/windows.json @@ -4,7 +4,8 @@ "version": "26.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'DBeaverLite %' AND publisher = 'DBeaver Corp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DBeaverLite %' AND publisher = 'DBeaver Corp' AND version_compare(version, '26.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DBeaverLite %' AND publisher = 'DBeaver Corp' AND version_compare(version, '26.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'dbeaver.exe');" }, "installer_url": "https://downloads.dbeaver.net/lite/26.1.0/dbeaver-le-26.1.0-windows-x86_64.exe", "install_script_ref": "f305c446", diff --git a/ee/maintained-apps/outputs/dbeaverultimate/windows.json b/ee/maintained-apps/outputs/dbeaverultimate/windows.json index ba5bad8ee70..fd5ef1611c4 100644 --- a/ee/maintained-apps/outputs/dbeaverultimate/windows.json +++ b/ee/maintained-apps/outputs/dbeaverultimate/windows.json @@ -4,7 +4,8 @@ "version": "26.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'DBeaverUltimate %' AND publisher = 'DBeaver Corp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DBeaverUltimate %' AND publisher = 'DBeaver Corp' AND version_compare(version, '26.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'DBeaverUltimate %' AND publisher = 'DBeaver Corp' AND version_compare(version, '26.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'dbeaver.exe');" }, "installer_url": "https://downloads.dbeaver.net/ultimate/26.1.0/dbeaver-ue-26.1.0-windows-x86_64.exe", "install_script_ref": "d46ba9a9", diff --git a/ee/maintained-apps/outputs/dbgate/darwin.json b/ee/maintained-apps/outputs/dbgate/darwin.json index 462de0a96ff..ca0ff5cb92a 100644 --- a/ee/maintained-apps/outputs/dbgate/darwin.json +++ b/ee/maintained-apps/outputs/dbgate/darwin.json @@ -4,7 +4,8 @@ "version": "7.2.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.dbgate';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.dbgate' AND version_compare(bundle_short_version, '7.2.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.dbgate' AND version_compare(bundle_short_version, '7.2.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.dbgate');" }, "installer_url": "https://github.com/dbgate/dbgate/releases/download/v7.2.4/dbgate-7.2.4-mac_universal.dmg", "install_script_ref": "6185e1ae", diff --git a/ee/maintained-apps/outputs/dbvisualizer/darwin.json b/ee/maintained-apps/outputs/dbvisualizer/darwin.json index fae21f60830..2178f89d05f 100644 --- a/ee/maintained-apps/outputs/dbvisualizer/darwin.json +++ b/ee/maintained-apps/outputs/dbvisualizer/darwin.json @@ -4,7 +4,8 @@ "version": "26.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.dbvis.DbVisualizer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dbvis.DbVisualizer' AND version_compare(bundle_short_version, '26.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dbvis.DbVisualizer' AND version_compare(bundle_short_version, '26.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.dbvis.DbVisualizer');" }, "installer_url": "https://www.dbvis.com/product_download/dbvis-26.2.1/media/dbvis_macos-aarch64_26_2_1.dmg", "install_script_ref": "924c989c", diff --git a/ee/maintained-apps/outputs/dbvisualizer/windows.json b/ee/maintained-apps/outputs/dbvisualizer/windows.json index ccab987bb3f..8beb5b5bb71 100644 --- a/ee/maintained-apps/outputs/dbvisualizer/windows.json +++ b/ee/maintained-apps/outputs/dbvisualizer/windows.json @@ -4,7 +4,8 @@ "version": "26.2.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'DbVisualizer' AND publisher = 'DbVis Software AB';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'DbVisualizer' AND publisher = 'DbVis Software AB' AND version_compare(version, '26.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'DbVisualizer' AND publisher = 'DbVis Software AB' AND version_compare(version, '26.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'dbvisualizer.exe');" }, "installer_url": "https://www.dbvis.com/product_download/dbvis-26.2.1/media/dbvis_windows-x64_26_2_1_jre.exe", "install_script_ref": "a8ba6613", diff --git a/ee/maintained-apps/outputs/dcv-viewer/darwin.json b/ee/maintained-apps/outputs/dcv-viewer/darwin.json index 5ea097a1c04..67b554b80a8 100644 --- a/ee/maintained-apps/outputs/dcv-viewer/darwin.json +++ b/ee/maintained-apps/outputs/dcv-viewer/darwin.json @@ -4,7 +4,8 @@ "version": "2025.0.8846", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nicesoftware.dcvviewer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nicesoftware.dcvviewer' AND version_compare(bundle_short_version, '2025.0.8846') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nicesoftware.dcvviewer' AND version_compare(bundle_short_version, '2025.0.8846') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.nicesoftware.dcvviewer');" }, "installer_url": "https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Clients/nice-dcv-viewer-2025.0.8846.arm64.dmg", "install_script_ref": "cba5ce8e", diff --git a/ee/maintained-apps/outputs/debookee/darwin.json b/ee/maintained-apps/outputs/debookee/darwin.json index 65e1649272d..4966e33d181 100644 --- a/ee/maintained-apps/outputs/debookee/darwin.json +++ b/ee/maintained-apps/outputs/debookee/darwin.json @@ -4,7 +4,8 @@ "version": "8.2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.iwaxx.Debookee';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.iwaxx.Debookee' AND version_compare(bundle_short_version, '8.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.iwaxx.Debookee' AND version_compare(bundle_short_version, '8.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.iwaxx.Debookee');" }, "installer_url": "https://www.iwaxx.com/debookee/debookee.zip", "install_script_ref": "40fca054", diff --git a/ee/maintained-apps/outputs/deckset/darwin.json b/ee/maintained-apps/outputs/deckset/darwin.json index e9364463895..6ffebd7dccf 100644 --- a/ee/maintained-apps/outputs/deckset/darwin.json +++ b/ee/maintained-apps/outputs/deckset/darwin.json @@ -4,7 +4,8 @@ "version": "2.0.51", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.unsignedinteger.Deckset-Paddle';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.unsignedinteger.Deckset-Paddle' AND version_compare(bundle_short_version, '2.0.51') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.unsignedinteger.Deckset-Paddle' AND version_compare(bundle_short_version, '2.0.51') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.unsignedinteger.Deckset-Paddle');" }, "installer_url": "https://dl.decksetapp.com/Deckset+2.0.51+(2807).dmg", "install_script_ref": "d6687ea7", diff --git a/ee/maintained-apps/outputs/deepl/darwin.json b/ee/maintained-apps/outputs/deepl/darwin.json index 1f0e36205a0..d700890c97a 100644 --- a/ee/maintained-apps/outputs/deepl/darwin.json +++ b/ee/maintained-apps/outputs/deepl/darwin.json @@ -4,7 +4,8 @@ "version": "26.6.14916780", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.linguee.DeepLCopyTranslator';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.linguee.DeepLCopyTranslator' AND version_compare(bundle_short_version, '26.6.14916780') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.linguee.DeepLCopyTranslator' AND version_compare(bundle_short_version, '26.6.14916780') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.linguee.DeepLCopyTranslator');" }, "installer_url": "https://www.deepl.com/macos/download/26.6/14916780/DeepL.dmg", "install_script_ref": "5452bda1", diff --git a/ee/maintained-apps/outputs/deezer/darwin.json b/ee/maintained-apps/outputs/deezer/darwin.json index ad3353a36fe..82639adfd87 100644 --- a/ee/maintained-apps/outputs/deezer/darwin.json +++ b/ee/maintained-apps/outputs/deezer/darwin.json @@ -4,7 +4,8 @@ "version": "7.1.300", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.deezer.deezer-desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.deezer.deezer-desktop' AND version_compare(bundle_short_version, '7.1.300') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.deezer.deezer-desktop' AND version_compare(bundle_short_version, '7.1.300') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.deezer.deezer-desktop');" }, "installer_url": "https://www.deezer.com/desktop/download/artifact-darwin-x64-7.1.300", "install_script_ref": "40d69a44", diff --git a/ee/maintained-apps/outputs/default-folder-x/darwin.json b/ee/maintained-apps/outputs/default-folder-x/darwin.json index 1175a62f822..ef598b83e3c 100644 --- a/ee/maintained-apps/outputs/default-folder-x/darwin.json +++ b/ee/maintained-apps/outputs/default-folder-x/darwin.json @@ -4,7 +4,8 @@ "version": "6.2.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.stclairsoft.DefaultFolderX6';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.stclairsoft.DefaultFolderX6' AND version_compare(bundle_short_version, '6.2.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.stclairsoft.DefaultFolderX6' AND version_compare(bundle_short_version, '6.2.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.stclairsoft.DefaultFolderX6');" }, "installer_url": "https://www.stclairsoft.com/download/DefaultFolderX-6.2.8.dmg", "install_script_ref": "fbe562a3", diff --git a/ee/maintained-apps/outputs/delinea-connection-manager/windows.json b/ee/maintained-apps/outputs/delinea-connection-manager/windows.json index 4b3e20296f3..3639f5ae3f8 100644 --- a/ee/maintained-apps/outputs/delinea-connection-manager/windows.json +++ b/ee/maintained-apps/outputs/delinea-connection-manager/windows.json @@ -4,7 +4,8 @@ "version": "2.9.0.33", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Delinea Connection Manager' AND publisher = 'Delinea Inc..';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Delinea Connection Manager' AND publisher = 'Delinea Inc..' AND version_compare(version, '2.9.0.33') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Delinea Connection Manager' AND publisher = 'Delinea Inc..' AND version_compare(version, '2.9.0.33') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'delinea connection manager.exe');" }, "installer_url": "https://downloads.cm.thycotic.com/Delinea.ConnectionManager.WindowsInstaller.msi", "install_script_ref": "00512c4c", diff --git a/ee/maintained-apps/outputs/dell-command-update/windows.json b/ee/maintained-apps/outputs/dell-command-update/windows.json index 114436fcf62..24633e9e313 100644 --- a/ee/maintained-apps/outputs/dell-command-update/windows.json +++ b/ee/maintained-apps/outputs/dell-command-update/windows.json @@ -4,7 +4,8 @@ "version": "5.7.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Dell Command %Update' AND publisher = 'Dell Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Dell Command %Update' AND publisher = 'Dell Inc.' AND version_compare(version, '5.7.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Dell Command %Update' AND publisher = 'Dell Inc.' AND version_compare(version, '5.7.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('dellcommandupdate.exe','dcu-cli.exe'));" }, "installer_url": "https://dl.dell.com/FOLDER14424243M/1/Dell-Command-Update-Application_RXT5N_WIN64_5.7.0_A00.EXE", "install_script_ref": "9f0e4526", diff --git a/ee/maintained-apps/outputs/dell-display-and-peripheral-manager/windows.json b/ee/maintained-apps/outputs/dell-display-and-peripheral-manager/windows.json index cc303c8d997..1a4d4690838 100644 --- a/ee/maintained-apps/outputs/dell-display-and-peripheral-manager/windows.json +++ b/ee/maintained-apps/outputs/dell-display-and-peripheral-manager/windows.json @@ -4,7 +4,8 @@ "version": "2.2.2.8", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Dell Display and Peripheral Manager' AND publisher = 'Dell Technologies';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Dell Display and Peripheral Manager' AND publisher = 'Dell Technologies' AND version_compare(version, '2.2.2.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Dell Display and Peripheral Manager' AND publisher = 'Dell Technologies' AND version_compare(version, '2.2.2.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'dell display and peripheral manager.exe');" }, "installer_url": "https://dl.dell.com/FOLDER14474164M/1/DDPM-Setup_2.2.2.8.exe", "install_script_ref": "56cc0c50", diff --git a/ee/maintained-apps/outputs/descript/darwin.json b/ee/maintained-apps/outputs/descript/darwin.json index f5810e8d552..8297eb7f4c5 100644 --- a/ee/maintained-apps/outputs/descript/darwin.json +++ b/ee/maintained-apps/outputs/descript/darwin.json @@ -4,7 +4,8 @@ "version": "114.0.4-release.20250509.32955", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.descript.beachcube';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.descript.beachcube' AND version_compare(bundle_short_version, '114.0.4-release.20250509.32955') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.descript.beachcube' AND version_compare(bundle_short_version, '114.0.4-release.20250509.32955') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.descript.beachcube');" }, "installer_url": "https://electron.descript.com/Descript-114.0.4-release.20250509.32955-arm64.dmg", "install_script_ref": "e065ab33", diff --git a/ee/maintained-apps/outputs/descript/windows.json b/ee/maintained-apps/outputs/descript/windows.json index 20eae615b23..cd316b3acd7 100644 --- a/ee/maintained-apps/outputs/descript/windows.json +++ b/ee/maintained-apps/outputs/descript/windows.json @@ -4,7 +4,8 @@ "version": "2.15.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Descript %' AND publisher = 'Descript, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Descript %' AND publisher = 'Descript, Inc.' AND version_compare(version, '2.15.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Descript %' AND publisher = 'Descript, Inc.' AND version_compare(version, '2.15.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'descript.exe');" }, "installer_url": "https://static-cdn.descript.com/desktop/win32/x64/Descript%20Setup%202.15.0.exe", "install_script_ref": "a5276316", diff --git a/ee/maintained-apps/outputs/deskpad/darwin.json b/ee/maintained-apps/outputs/deskpad/darwin.json index dde49dcf209..a47a60c860d 100644 --- a/ee/maintained-apps/outputs/deskpad/darwin.json +++ b/ee/maintained-apps/outputs/deskpad/darwin.json @@ -4,7 +4,8 @@ "version": "1.3.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.stengo.DeskPad';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.stengo.DeskPad' AND version_compare(bundle_short_version, '1.3.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.stengo.DeskPad' AND version_compare(bundle_short_version, '1.3.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.stengo.DeskPad');" }, "installer_url": "https://github.com/Stengo/DeskPad/releases/download/v1.3.2/DeskPad.app.zip", "install_script_ref": "3a1eba2f", diff --git a/ee/maintained-apps/outputs/desktime/darwin.json b/ee/maintained-apps/outputs/desktime/darwin.json index 6b4d0693c1a..05dcc63dbdc 100644 --- a/ee/maintained-apps/outputs/desktime/darwin.json +++ b/ee/maintained-apps/outputs/desktime/darwin.json @@ -4,7 +4,8 @@ "version": "6.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.desktime.DeskTime';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.desktime.DeskTime' AND version_compare(bundle_short_version, '6.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.desktime.DeskTime' AND version_compare(bundle_short_version, '6.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.desktime.DeskTime');" }, "installer_url": "https://desktime.com/storage/updates/electro-builder-auto-updater/stable/DeskTime-6.2.1-arm64.dmg", "install_script_ref": "8fa2f356", diff --git a/ee/maintained-apps/outputs/devin-desktop/darwin.json b/ee/maintained-apps/outputs/devin-desktop/darwin.json index c39aa27d124..76f756f03ab 100644 --- a/ee/maintained-apps/outputs/devin-desktop/darwin.json +++ b/ee/maintained-apps/outputs/devin-desktop/darwin.json @@ -4,7 +4,8 @@ "version": "3.6.27", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.exafunction.windsurf';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.exafunction.windsurf' AND version_compare(bundle_short_version, '3.6.27') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.exafunction.windsurf' AND version_compare(bundle_short_version, '3.6.27') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.exafunction.windsurf');" }, "installer_url": "https://windsurf-stable.codeiumdata.com/darwin-arm64-dmg/stable/0becb483ee8498d49deadf6aefe8c24f58b8007e/Devin-darwin-arm64-3.6.27.dmg", "install_script_ref": "cea2287e", diff --git a/ee/maintained-apps/outputs/devknife/darwin.json b/ee/maintained-apps/outputs/devknife/darwin.json index 3c6ba9f00fa..27b2157ee8e 100644 --- a/ee/maintained-apps/outputs/devknife/darwin.json +++ b/ee/maintained-apps/outputs/devknife/darwin.json @@ -4,7 +4,8 @@ "version": "1.16.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.solotuna.devknife';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.solotuna.devknife' AND version_compare(bundle_short_version, '1.16.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.solotuna.devknife' AND version_compare(bundle_short_version, '1.16.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.solotuna.devknife');" }, "installer_url": "https://files.solotuna.com/devknife/DevKnife-1.16.0.dmg", "install_script_ref": "3057a23a", diff --git a/ee/maintained-apps/outputs/devolutions-launcher/windows.json b/ee/maintained-apps/outputs/devolutions-launcher/windows.json index c0dedbf7826..78c1883fc21 100644 --- a/ee/maintained-apps/outputs/devolutions-launcher/windows.json +++ b/ee/maintained-apps/outputs/devolutions-launcher/windows.json @@ -4,7 +4,8 @@ "version": "2026.2.17.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Devolutions Launcher' AND publisher = 'Devolutions inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Devolutions Launcher' AND publisher = 'Devolutions inc.' AND version_compare(version, '2026.2.17.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Devolutions Launcher' AND publisher = 'Devolutions inc.' AND version_compare(version, '2026.2.17.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'devolutions launcher.exe');" }, "installer_url": "https://cdn.devolutions.net/download/Setup.Devolutions.Launcher.2026.2.17.0.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/devolutions-workspace/windows.json b/ee/maintained-apps/outputs/devolutions-workspace/windows.json index 106629b9685..c79efc35cca 100644 --- a/ee/maintained-apps/outputs/devolutions-workspace/windows.json +++ b/ee/maintained-apps/outputs/devolutions-workspace/windows.json @@ -4,7 +4,8 @@ "version": "2026.2.2.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Devolutions Password Manager' AND publisher = 'Devolutions Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Devolutions Password Manager' AND publisher = 'Devolutions Inc.' AND version_compare(version, '2026.2.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Devolutions Password Manager' AND publisher = 'Devolutions Inc.' AND version_compare(version, '2026.2.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'devolutions workspace.exe');" }, "installer_url": "https://cdn.devolutions.net/download/Devolutions.PasswordManager.2026.2.2.0-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/devonsphere-express/darwin.json b/ee/maintained-apps/outputs/devonsphere-express/darwin.json index 6362143d1d5..b4e734b64de 100644 --- a/ee/maintained-apps/outputs/devonsphere-express/darwin.json +++ b/ee/maintained-apps/outputs/devonsphere-express/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.devon-technologies.sphereexpress';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.devon-technologies.sphereexpress' AND version_compare(bundle_short_version, '1.9.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.devon-technologies.sphereexpress' AND version_compare(bundle_short_version, '1.9.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.devon-technologies.sphereexpress');" }, "installer_url": "https://download.devontechnologies.com/download/devonsphere/1.9.9/DEVONsphere_Express.app.zip", "install_script_ref": "3b55545a", diff --git a/ee/maintained-apps/outputs/devonthink/darwin.json b/ee/maintained-apps/outputs/devonthink/darwin.json index 6f5ec874d1c..4e8db89c964 100644 --- a/ee/maintained-apps/outputs/devonthink/darwin.json +++ b/ee/maintained-apps/outputs/devonthink/darwin.json @@ -4,7 +4,8 @@ "version": "4.3.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.devon-technologies.think';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.devon-technologies.think' AND version_compare(bundle_short_version, '4.3.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.devon-technologies.think' AND version_compare(bundle_short_version, '4.3.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.devon-technologies.think');" }, "installer_url": "https://download.devontechnologies.com/download/devonthink/4.3.2/DEVONthink.app.zip", "install_script_ref": "a5908de1", diff --git a/ee/maintained-apps/outputs/devpod/windows.json b/ee/maintained-apps/outputs/devpod/windows.json index 33910fcc926..b0da5144577 100644 --- a/ee/maintained-apps/outputs/devpod/windows.json +++ b/ee/maintained-apps/outputs/devpod/windows.json @@ -4,7 +4,8 @@ "version": "0.6.15", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'DevPod' AND publisher = 'loft';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'DevPod' AND publisher = 'loft' AND version_compare(version, '0.6.15') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'DevPod' AND publisher = 'loft' AND version_compare(version, '0.6.15') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'devpod.exe');" }, "installer_url": "https://github.com/loft-sh/devpod/releases/download/v0.6.15/DevPod_windows_x64_en-US.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/devtoys/darwin.json b/ee/maintained-apps/outputs/devtoys/darwin.json index 8132c636322..136533a85e9 100644 --- a/ee/maintained-apps/outputs/devtoys/darwin.json +++ b/ee/maintained-apps/outputs/devtoys/darwin.json @@ -4,7 +4,8 @@ "version": "2.0.9.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.devtoys';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.devtoys' AND version_compare(bundle_short_version, '2.0.9.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.devtoys' AND version_compare(bundle_short_version, '2.0.9.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.devtoys');" }, "installer_url": "https://github.com/DevToys-app/DevToys/releases/download/v2.0.9.0/devtoys_osx_arm64.zip", "install_script_ref": "8e3d636a", diff --git a/ee/maintained-apps/outputs/devtoys/windows.json b/ee/maintained-apps/outputs/devtoys/windows.json index 01644ec127f..022304d2e4b 100644 --- a/ee/maintained-apps/outputs/devtoys/windows.json +++ b/ee/maintained-apps/outputs/devtoys/windows.json @@ -4,7 +4,8 @@ "version": "2.0-preview.9", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'DevToys' AND publisher = 'DevToys';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'DevToys' AND publisher = 'DevToys' AND version_compare(version, '2.0-preview.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'DevToys' AND publisher = 'DevToys' AND version_compare(version, '2.0-preview.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'devtoys.exe');" }, "installer_url": "https://github.com/DevToys-app/DevToys/releases/download/v2.0.9.0/devtoys_win_x64.exe", "install_script_ref": "e01b1635", diff --git a/ee/maintained-apps/outputs/devutils/darwin.json b/ee/maintained-apps/outputs/devutils/darwin.json index 84ebca3327f..3765ea0b15a 100644 --- a/ee/maintained-apps/outputs/devutils/darwin.json +++ b/ee/maintained-apps/outputs/devutils/darwin.json @@ -4,7 +4,8 @@ "version": "1.17.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'tonyapp.devutils';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'tonyapp.devutils' AND version_compare(bundle_short_version, '1.17.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'tonyapp.devutils' AND version_compare(bundle_short_version, '1.17.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'tonyapp.devutils');" }, "installer_url": "https://devutils.com/archives/DevUtils-1.17.0.dmg", "install_script_ref": "ce7cada7", diff --git a/ee/maintained-apps/outputs/dfu-blaster-pro/darwin.json b/ee/maintained-apps/outputs/dfu-blaster-pro/darwin.json index ebd7be6734b..beb55d9a7fb 100644 --- a/ee/maintained-apps/outputs/dfu-blaster-pro/darwin.json +++ b/ee/maintained-apps/outputs/dfu-blaster-pro/darwin.json @@ -4,7 +4,8 @@ "version": "5.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.twocanoes.DFU-Blaster-Pro';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.twocanoes.DFU-Blaster-Pro' AND version_compare(bundle_short_version, '5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.twocanoes.DFU-Blaster-Pro' AND version_compare(bundle_short_version, '5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.twocanoes.DFU-Blaster-Pro');" }, "installer_url": "https://twocanoes-software-updates.s3.amazonaws.com/DFU_Blaster_Pro_Build-3567_Version-5.0.dmg", "install_script_ref": "bfa25a2c", diff --git a/ee/maintained-apps/outputs/dialpad/darwin.json b/ee/maintained-apps/outputs/dialpad/darwin.json index 4507878f89e..e7429b64796 100644 --- a/ee/maintained-apps/outputs/dialpad/darwin.json +++ b/ee/maintained-apps/outputs/dialpad/darwin.json @@ -4,7 +4,8 @@ "version": "2607.1.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dialpad';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dialpad' AND version_compare(bundle_short_version, '2607.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dialpad' AND version_compare(bundle_short_version, '2607.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.dialpad');" }, "installer_url": "https://download.dialpad.com/osx/arm64/dialpad.pkg", "install_script_ref": "7ebb399f", diff --git a/ee/maintained-apps/outputs/dialpad/windows.json b/ee/maintained-apps/outputs/dialpad/windows.json index add4696add0..54cd48dd229 100644 --- a/ee/maintained-apps/outputs/dialpad/windows.json +++ b/ee/maintained-apps/outputs/dialpad/windows.json @@ -4,7 +4,8 @@ "version": "2605.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Dialpad' AND publisher = 'Dialpad';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Dialpad' AND publisher = 'Dialpad' AND version_compare(version, '2605.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Dialpad' AND publisher = 'Dialpad' AND version_compare(version, '2605.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'dialpad.exe');" }, "installer_url": "https://storage.googleapis.com/dialpad_native/stable/win32/x64/DialpadSetup-2605.1.0_x64.exe", "install_script_ref": "47c0fae4", diff --git a/ee/maintained-apps/outputs/dictionaries/darwin.json b/ee/maintained-apps/outputs/dictionaries/darwin.json index bdf25bda31c..1d75bac1577 100644 --- a/ee/maintained-apps/outputs/dictionaries/darwin.json +++ b/ee/maintained-apps/outputs/dictionaries/darwin.json @@ -4,7 +4,8 @@ "version": "2.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.dictionaries.Dictionaries';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.dictionaries.Dictionaries' AND version_compare(bundle_short_version, '2.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.dictionaries.Dictionaries' AND version_compare(bundle_short_version, '2.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.dictionaries.Dictionaries');" }, "installer_url": "https://download.dictionaries.io/mac/Dictionaries-2.9.zip", "install_script_ref": "2490aeec", diff --git a/ee/maintained-apps/outputs/diffusionbee/darwin.json b/ee/maintained-apps/outputs/diffusionbee/darwin.json index e51d2b4cb7b..f0bb1537ac0 100644 --- a/ee/maintained-apps/outputs/diffusionbee/darwin.json +++ b/ee/maintained-apps/outputs/diffusionbee/darwin.json @@ -4,7 +4,8 @@ "version": "2.5.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.diffusionbee.diffusionbee';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.diffusionbee.diffusionbee' AND version_compare(bundle_short_version, '2.5.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.diffusionbee.diffusionbee' AND version_compare(bundle_short_version, '2.5.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.diffusionbee.diffusionbee');" }, "installer_url": "https://github.com/divamgupta/diffusionbee-stable-diffusion-ui/releases/download/2.5.3/DiffusionBee_MPS_arm64-2.5.3.dmg", "install_script_ref": "c1b7d151", diff --git a/ee/maintained-apps/outputs/digikam/darwin.json b/ee/maintained-apps/outputs/digikam/darwin.json index 084d95afd57..d93a330b50c 100644 --- a/ee/maintained-apps/outputs/digikam/darwin.json +++ b/ee/maintained-apps/outputs/digikam/darwin.json @@ -4,7 +4,8 @@ "version": "9.1.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.digiKam';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.digiKam' AND version_compare(bundle_short_version, '9.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.digiKam' AND version_compare(bundle_short_version, '9.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.digiKam');" }, "installer_url": "https://download.kde.org/stable/digikam/9.1.0/digiKam-9.1.0-Qt6-MacOS-arm64.pkg", "install_script_ref": "12dbbc86", diff --git a/ee/maintained-apps/outputs/digiseal-reader/windows.json b/ee/maintained-apps/outputs/digiseal-reader/windows.json index 12acf12083b..6b45b61c5fc 100644 --- a/ee/maintained-apps/outputs/digiseal-reader/windows.json +++ b/ee/maintained-apps/outputs/digiseal-reader/windows.json @@ -4,7 +4,8 @@ "version": "8.0.0.4", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'digiSeal reader' AND publisher = 'secrypt GmbH';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'digiSeal reader' AND publisher = 'secrypt GmbH' AND version_compare(version, '8.0.0.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'digiSeal reader' AND publisher = 'secrypt GmbH' AND version_compare(version, '8.0.0.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'digiseal reader.exe');" }, "installer_url": "https://www.secrypt.de/downloads/setup_digiSeal_reader.exe", "install_script_ref": "76c7506c", diff --git a/ee/maintained-apps/outputs/directory-opus/windows.json b/ee/maintained-apps/outputs/directory-opus/windows.json index 0637131e562..834f5e8d763 100644 --- a/ee/maintained-apps/outputs/directory-opus/windows.json +++ b/ee/maintained-apps/outputs/directory-opus/windows.json @@ -4,7 +4,8 @@ "version": "13.24", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Directory Opus' AND publisher = 'GPSoftware';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Directory Opus' AND publisher = 'GPSoftware' AND version_compare(version, '13.24') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Directory Opus' AND publisher = 'GPSoftware' AND version_compare(version, '13.24') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'directory opus.exe');" }, "installer_url": "https://cdn2.gpsoft.com.au/files/Opus13/DOpusInstall-13.24.exe", "install_script_ref": "37fe3170", diff --git a/ee/maintained-apps/outputs/discord/darwin.json b/ee/maintained-apps/outputs/discord/darwin.json index c75e58b14dd..58c1241976f 100644 --- a/ee/maintained-apps/outputs/discord/darwin.json +++ b/ee/maintained-apps/outputs/discord/darwin.json @@ -4,7 +4,8 @@ "version": "0.0.406", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hnc.Discord';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hnc.Discord' AND version_compare(bundle_short_version, '0.0.406') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hnc.Discord' AND version_compare(bundle_short_version, '0.0.406') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hnc.Discord');" }, "installer_url": "https://dl.discordapp.net/apps/osx/0.0.406/Discord.dmg", "install_script_ref": "43ce350f", diff --git a/ee/maintained-apps/outputs/discord/windows.json b/ee/maintained-apps/outputs/discord/windows.json index 3a6343b3c62..d5750cbfd16 100644 --- a/ee/maintained-apps/outputs/discord/windows.json +++ b/ee/maintained-apps/outputs/discord/windows.json @@ -4,7 +4,8 @@ "version": "1.0.9251", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Discord' AND publisher = 'Discord Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Discord' AND publisher = 'Discord Inc.' AND version_compare(version, '1.0.9251') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Discord' AND publisher = 'Discord Inc.' AND version_compare(version, '1.0.9251') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'discord.exe');" }, "installer_url": "https://stable.dl2.discordapp.net/distro/app/stable/win/x64/1.0.9251/DiscordSetup.exe", "install_script_ref": "fd04e860", diff --git a/ee/maintained-apps/outputs/displaylink/darwin.json b/ee/maintained-apps/outputs/displaylink/darwin.json index f9c2b5acf9c..5c0523cad17 100644 --- a/ee/maintained-apps/outputs/displaylink/darwin.json +++ b/ee/maintained-apps/outputs/displaylink/darwin.json @@ -4,7 +4,8 @@ "version": "16.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.displaylink.DisplayLinkUserAgent';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.displaylink.DisplayLinkUserAgent' AND version_compare(bundle_short_version, '16.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.displaylink.DisplayLinkUserAgent' AND version_compare(bundle_short_version, '16.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.displaylink.DisplayLinkUserAgent');" }, "installer_url": "https://www.synaptics.com/sites/default/files/exe_files/2026-07/DisplayLink%20Manager%20Graphics%20Connectivity16.2-EXE.pkg", "install_script_ref": "72806b75", diff --git a/ee/maintained-apps/outputs/dngrep/windows.json b/ee/maintained-apps/outputs/dngrep/windows.json index 64b5eedae77..15fb8f800bf 100644 --- a/ee/maintained-apps/outputs/dngrep/windows.json +++ b/ee/maintained-apps/outputs/dngrep/windows.json @@ -4,7 +4,8 @@ "version": "5.0.30.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'dnGrep %' AND publisher = 'dnGrep Community Contributors';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'dnGrep %' AND publisher = 'dnGrep Community Contributors' AND version_compare(version, '5.0.30.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'dnGrep %' AND publisher = 'dnGrep Community Contributors' AND version_compare(version, '5.0.30.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'dngrep.exe');" }, "installer_url": "https://github.com/dnGrep/dnGrep/releases/download/v5.0.30.0/dnGREP.5.0.30.x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/dockdoor/darwin.json b/ee/maintained-apps/outputs/dockdoor/darwin.json index f3d2e47ba98..b186a5d27d8 100644 --- a/ee/maintained-apps/outputs/dockdoor/darwin.json +++ b/ee/maintained-apps/outputs/dockdoor/darwin.json @@ -4,7 +4,8 @@ "version": "1.39.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ethanbills.DockDoor';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ethanbills.DockDoor' AND version_compare(bundle_short_version, '1.39.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ethanbills.DockDoor' AND version_compare(bundle_short_version, '1.39.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ethanbills.DockDoor');" }, "installer_url": "https://github.com/ejbills/DockDoor/releases/download/1.39.5/DockDoor.dmg", "install_script_ref": "8a8c0b06", diff --git a/ee/maintained-apps/outputs/docker-desktop/darwin.json b/ee/maintained-apps/outputs/docker-desktop/darwin.json index 15bde334d35..ef71a85eda8 100644 --- a/ee/maintained-apps/outputs/docker-desktop/darwin.json +++ b/ee/maintained-apps/outputs/docker-desktop/darwin.json @@ -4,7 +4,8 @@ "version": "4.85.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dockerdesktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dockerdesktop' AND path NOT LIKE '%.back%' AND version_compare(bundle_short_version, '4.85.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dockerdesktop' AND path NOT LIKE '%.back%' AND version_compare(bundle_short_version, '4.85.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.dockerdesktop');" }, "installer_url": "https://desktop.docker.com/mac/main/arm64/235549/Docker.dmg", "install_script_ref": "4afb9744", diff --git a/ee/maintained-apps/outputs/docker/windows.json b/ee/maintained-apps/outputs/docker/windows.json index 8751f1af6eb..52068d0a3e7 100644 --- a/ee/maintained-apps/outputs/docker/windows.json +++ b/ee/maintained-apps/outputs/docker/windows.json @@ -4,7 +4,8 @@ "version": "4.85.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Docker Desktop' AND publisher = 'Docker Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Docker Desktop' AND publisher = 'Docker Inc.' AND version_compare(version, '4.85.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Docker Desktop' AND publisher = 'Docker Inc.' AND version_compare(version, '4.85.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'docker desktop.exe');" }, "installer_url": "https://desktop.docker.com/win/main/amd64/235549/Docker%20Desktop%20Installer.exe", "install_script_ref": "b06042dd", diff --git a/ee/maintained-apps/outputs/dockfix/darwin.json b/ee/maintained-apps/outputs/dockfix/darwin.json index 156c3c934b2..56a4597089e 100644 --- a/ee/maintained-apps/outputs/dockfix/darwin.json +++ b/ee/maintained-apps/outputs/dockfix/darwin.json @@ -4,7 +4,8 @@ "version": "4.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dk.FIrstForm.DockFix';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dk.FIrstForm.DockFix' AND version_compare(bundle_short_version, '4.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dk.FIrstForm.DockFix' AND version_compare(bundle_short_version, '4.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'dk.FIrstForm.DockFix');" }, "installer_url": "https://www.dockfix.app/downloads/DockFix.dmg", "install_script_ref": "62518df5", diff --git a/ee/maintained-apps/outputs/dockside/darwin.json b/ee/maintained-apps/outputs/dockside/darwin.json index 4cf9d4833e7..ec9faa09d9b 100644 --- a/ee/maintained-apps/outputs/dockside/darwin.json +++ b/ee/maintained-apps/outputs/dockside/darwin.json @@ -4,7 +4,8 @@ "version": "2.9.26", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hachipoo.Dockside';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hachipoo.Dockside' AND version_compare(bundle_short_version, '2.9.26') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hachipoo.Dockside' AND version_compare(bundle_short_version, '2.9.26') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hachipoo.Dockside');" }, "installer_url": "https://github.com/PrajwalSD/Dockside/releases/download/v2.9.26/Dockside.dmg", "install_script_ref": "bb2b7871", diff --git a/ee/maintained-apps/outputs/dockview/darwin.json b/ee/maintained-apps/outputs/dockview/darwin.json index 171ef410fe0..84e3477c234 100644 --- a/ee/maintained-apps/outputs/dockview/darwin.json +++ b/ee/maintained-apps/outputs/dockview/darwin.json @@ -4,7 +4,8 @@ "version": "1.7.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sergey-gerasimenko.DockView';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sergey-gerasimenko.DockView' AND version_compare(bundle_short_version, '1.7.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sergey-gerasimenko.DockView' AND version_compare(bundle_short_version, '1.7.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sergey-gerasimenko.DockView');" }, "installer_url": "https://macplus-software.com/downloads/DockViewStandard.zip", "install_script_ref": "05ce6f98", diff --git a/ee/maintained-apps/outputs/dot/darwin.json b/ee/maintained-apps/outputs/dot/darwin.json index 708397d5b38..e021a732741 100644 --- a/ee/maintained-apps/outputs/dot/darwin.json +++ b/ee/maintained-apps/outputs/dot/darwin.json @@ -4,7 +4,8 @@ "version": "2.3.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.dot.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dot.app' AND version_compare(bundle_short_version, '2.3.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dot.app' AND version_compare(bundle_short_version, '2.3.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.dot.app');" }, "installer_url": "https://github.com/prateekkeshari/dot-releases/releases/download/v2.3.4/Dot-2.3.4.dmg", "install_script_ref": "d7062e7b", diff --git a/ee/maintained-apps/outputs/doughnut/darwin.json b/ee/maintained-apps/outputs/doughnut/darwin.json index 33329a433a7..a155dfe548b 100644 --- a/ee/maintained-apps/outputs/doughnut/darwin.json +++ b/ee/maintained-apps/outputs/doughnut/darwin.json @@ -4,7 +4,8 @@ "version": "2.0.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.cdyer.doughnut';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cdyer.doughnut' AND version_compare(bundle_short_version, '2.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cdyer.doughnut' AND version_compare(bundle_short_version, '2.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.cdyer.doughnut');" }, "installer_url": "https://github.com/dyerc/Doughnut/releases/download/v2.0.1/Doughnut-2.0.1.dmg", "install_script_ref": "4867b6e8", diff --git a/ee/maintained-apps/outputs/downie/darwin.json b/ee/maintained-apps/outputs/downie/darwin.json index c47d9f16489..37f3b91b228 100644 --- a/ee/maintained-apps/outputs/downie/darwin.json +++ b/ee/maintained-apps/outputs/downie/darwin.json @@ -4,7 +4,8 @@ "version": "4.12.12", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.charliemonroe.Downie-4';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.charliemonroe.Downie-4' AND version_compare(bundle_short_version, '4.12.12') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.charliemonroe.Downie-4' AND version_compare(bundle_short_version, '4.12.12') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.charliemonroe.Downie-4');" }, "installer_url": "https://software.charliemonroe.net/trial/downie/v4/Downie_4_5229.dmg", "install_script_ref": "4f6dd0e2", diff --git a/ee/maintained-apps/outputs/draftable-desktop/windows.json b/ee/maintained-apps/outputs/draftable-desktop/windows.json index da3213e7ee3..cbcc7fc9d54 100644 --- a/ee/maintained-apps/outputs/draftable-desktop/windows.json +++ b/ee/maintained-apps/outputs/draftable-desktop/windows.json @@ -4,7 +4,8 @@ "version": "26.6.200", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Draftable Desktop' AND publisher = 'Draftable';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Draftable Desktop' AND publisher = 'Draftable' AND version_compare(version, '26.6.200') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Draftable Desktop' AND publisher = 'Draftable' AND version_compare(version, '26.6.200') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'draftable desktop.exe');" }, "installer_url": "https://dl.draftable.com/desktop/DraftableDesktopSystem-26.6.200.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/drata-agent/darwin.json b/ee/maintained-apps/outputs/drata-agent/darwin.json index 3ffb9d3a87f..410ea2d442b 100644 --- a/ee/maintained-apps/outputs/drata-agent/darwin.json +++ b/ee/maintained-apps/outputs/drata-agent/darwin.json @@ -4,7 +4,8 @@ "version": "3.9.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.drata.agent';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.drata.agent' AND version_compare(bundle_short_version, '3.9.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.drata.agent' AND version_compare(bundle_short_version, '3.9.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.drata.agent');" }, "installer_url": "https://github.com/drata/agent-releases/releases/download/3.9.0/Drata-Agent-mac.dmg", "install_script_ref": "043cb411", diff --git a/ee/maintained-apps/outputs/drawbot/darwin.json b/ee/maintained-apps/outputs/drawbot/darwin.json index 47d80510a48..27ef2dcf68d 100644 --- a/ee/maintained-apps/outputs/drawbot/darwin.json +++ b/ee/maintained-apps/outputs/drawbot/darwin.json @@ -4,7 +4,8 @@ "version": "3.132", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.drawbot';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.drawbot' AND version_compare(bundle_short_version, '3.132') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.drawbot' AND version_compare(bundle_short_version, '3.132') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.drawbot');" }, "installer_url": "https://github.com/typemytype/drawbot/releases/download/3.132/DrawBot.dmg", "install_script_ref": "49896052", diff --git a/ee/maintained-apps/outputs/drawio/darwin.json b/ee/maintained-apps/outputs/drawio/darwin.json index df0daea0e06..377fdcdf51c 100644 --- a/ee/maintained-apps/outputs/drawio/darwin.json +++ b/ee/maintained-apps/outputs/drawio/darwin.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "31.1.5", + "version": "31.1.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jgraph.drawio.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jgraph.drawio.desktop' AND version_compare(bundle_short_version, '31.1.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jgraph.drawio.desktop' AND version_compare(bundle_short_version, '31.1.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jgraph.drawio.desktop');" }, - "installer_url": "https://github.com/jgraph/drawio-desktop/releases/download/v31.1.5/draw.io-arm64-31.1.5.dmg", + "installer_url": "https://github.com/jgraph/drawio-desktop/releases/download/v31.1.8/draw.io-arm64-31.1.8.dmg", "install_script_ref": "dfbabf21", "uninstall_script_ref": "a088fe93", - "sha256": "920462b10a7c44a08275752b1266a7a1bb26cf77b7f12607570385fd494ad3fc", + "sha256": "ff5b6239ac39a174f22d2a9fdab755a2488f923d33ec035815aa84673f367d79", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/drawio/windows.json b/ee/maintained-apps/outputs/drawio/windows.json index b1d21c599ff..4d2b4e6833d 100644 --- a/ee/maintained-apps/outputs/drawio/windows.json +++ b/ee/maintained-apps/outputs/drawio/windows.json @@ -4,7 +4,8 @@ "version": "31.1.5", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'draw.io' AND publisher = 'JGraph';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'draw.io' AND publisher = 'JGraph' AND version_compare(version, '31.1.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'draw.io' AND publisher = 'JGraph' AND version_compare(version, '31.1.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'draw.io.exe');" }, "installer_url": "https://github.com/jgraph/drawio-desktop/releases/download/v31.1.5/draw.io-31.1.5-windows-installer.exe", "install_script_ref": "51038703", diff --git a/ee/maintained-apps/outputs/drofus/windows.json b/ee/maintained-apps/outputs/drofus/windows.json index 9967d1a14d9..24ea0b8eebe 100644 --- a/ee/maintained-apps/outputs/drofus/windows.json +++ b/ee/maintained-apps/outputs/drofus/windows.json @@ -4,7 +4,8 @@ "version": "2.18.12.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'dRofus %' AND publisher = 'dRofus AS';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'dRofus %' AND publisher = 'dRofus AS' AND version_compare(version, '2.18.12.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'dRofus %' AND publisher = 'dRofus AS' AND version_compare(version, '2.18.12.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'drofus.exe');" }, "installer_url": "https://deploy.drofus.com/stable/drofus-setup-2.18.12.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/dropbox/darwin.json b/ee/maintained-apps/outputs/dropbox/darwin.json index 0522f90ef1a..59cda0ba866 100644 --- a/ee/maintained-apps/outputs/dropbox/darwin.json +++ b/ee/maintained-apps/outputs/dropbox/darwin.json @@ -4,7 +4,8 @@ "version": "264.4.3385", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.getdropbox.dropbox';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.getdropbox.dropbox' AND version_compare(bundle_short_version, '264.4.3385') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.getdropbox.dropbox' AND version_compare(bundle_short_version, '264.4.3385') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.getdropbox.dropbox');" }, "installer_url": "https://edge.dropboxstatic.com/dbx-releng/client/Dropbox%20264.4.3385.arm64.dmg", "install_script_ref": "dcd0d19e", diff --git a/ee/maintained-apps/outputs/dropbox/windows.json b/ee/maintained-apps/outputs/dropbox/windows.json index e50b5f691cb..84b1c6e4746 100644 --- a/ee/maintained-apps/outputs/dropbox/windows.json +++ b/ee/maintained-apps/outputs/dropbox/windows.json @@ -4,7 +4,8 @@ "version": "262.4.3183", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Dropbox' AND publisher = 'Dropbox, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Dropbox' AND publisher = 'Dropbox, Inc.' AND version_compare(version, '262.4.3183') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Dropbox' AND publisher = 'Dropbox, Inc.' AND version_compare(version, '262.4.3183') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'dropbox.exe');" }, "installer_url": "https://edge.dropboxstatic.com/dbx-releng/client/Dropbox%20262.4.3183%20Enterprise%20Installer.x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/dropdmg/darwin.json b/ee/maintained-apps/outputs/dropdmg/darwin.json index ca09ef98adc..95a99dc0b69 100644 --- a/ee/maintained-apps/outputs/dropdmg/darwin.json +++ b/ee/maintained-apps/outputs/dropdmg/darwin.json @@ -4,7 +4,8 @@ "version": "3.7.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.c-command.DropDMG';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.c-command.DropDMG' AND version_compare(bundle_short_version, '3.7.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.c-command.DropDMG' AND version_compare(bundle_short_version, '3.7.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.c-command.DropDMG');" }, "installer_url": "https://c-command.com/downloads/DropDMG-3.7.1.dmg", "install_script_ref": "1a786159", diff --git a/ee/maintained-apps/outputs/droplr/darwin.json b/ee/maintained-apps/outputs/droplr/darwin.json index 14c1c60eee0..a7c3a720cbf 100644 --- a/ee/maintained-apps/outputs/droplr/darwin.json +++ b/ee/maintained-apps/outputs/droplr/darwin.json @@ -4,7 +4,8 @@ "version": "5.9.19", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.droplr.droplr-mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.droplr.droplr-mac' AND version_compare(bundle_short_version, '5.9.19') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.droplr.droplr-mac' AND version_compare(bundle_short_version, '5.9.19') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.droplr.droplr-mac');" }, "installer_url": "https://files.droplr.com/apps/mac/Droplr5919-478.zip", "install_script_ref": "602acba5", diff --git a/ee/maintained-apps/outputs/dropshare/darwin.json b/ee/maintained-apps/outputs/dropshare/darwin.json index 005243d94bf..624f52b52dc 100644 --- a/ee/maintained-apps/outputs/dropshare/darwin.json +++ b/ee/maintained-apps/outputs/dropshare/darwin.json @@ -4,7 +4,8 @@ "version": "6.14", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.mkswap.Dropshare6';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.mkswap.Dropshare6' AND version_compare(bundle_short_version, '6.14') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.mkswap.Dropshare6' AND version_compare(bundle_short_version, '6.14') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.mkswap.Dropshare6');" }, "installer_url": "https://d2wvuuix8c9e48.cloudfront.net/Dropshare6-6257.app.zip", "install_script_ref": "372d8ac3", diff --git a/ee/maintained-apps/outputs/dropzone/darwin.json b/ee/maintained-apps/outputs/dropzone/darwin.json index 9166594924e..416de530403 100644 --- a/ee/maintained-apps/outputs/dropzone/darwin.json +++ b/ee/maintained-apps/outputs/dropzone/darwin.json @@ -4,7 +4,8 @@ "version": "4.80.76", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.aptonic.Dropzone4';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.aptonic.Dropzone4' AND version_compare(bundle_short_version, '4.80.76') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.aptonic.Dropzone4' AND version_compare(bundle_short_version, '4.80.76') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.aptonic.Dropzone4');" }, "installer_url": "https://aptonic.com/releases/Dropzone-4.80.76.zip", "install_script_ref": "84baf0b7", diff --git a/ee/maintained-apps/outputs/druva-insync/darwin.json b/ee/maintained-apps/outputs/druva-insync/darwin.json index 13f6b5ac1d2..8d57e603298 100644 --- a/ee/maintained-apps/outputs/druva-insync/darwin.json +++ b/ee/maintained-apps/outputs/druva-insync/darwin.json @@ -4,7 +4,8 @@ "version": "8.1.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.druva.inSyncClient';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.druva.inSyncClient' AND version_compare(bundle_short_version, '8.1.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.druva.inSyncClient' AND version_compare(bundle_short_version, '8.1.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.druva.inSyncClient');" }, "installer_url": "https://downloads.druva.com/downloads/inSync/MAC/8.1.3/inSync-8.1.3-r110967.dmg", "install_script_ref": "2a267f97", diff --git a/ee/maintained-apps/outputs/druva-insync/windows.json b/ee/maintained-apps/outputs/druva-insync/windows.json index 02f9b633399..8416be47c13 100644 --- a/ee/maintained-apps/outputs/druva-insync/windows.json +++ b/ee/maintained-apps/outputs/druva-insync/windows.json @@ -4,7 +4,8 @@ "version": "8.1.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Druva inSync %' AND publisher = 'Druva Technologies Pte. Ltd.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Druva inSync %' AND publisher = 'Druva Technologies Pte. Ltd.' AND version_compare(version, '8.1.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Druva inSync %' AND publisher = 'Druva Technologies Pte. Ltd.' AND version_compare(version, '8.1.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'druva insync.exe');" }, "installer_url": "https://downloads.druva.com/downloads/inSync/Windows/8.1.3/inSync8.1.3r111021.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/duckduckgo/darwin.json b/ee/maintained-apps/outputs/duckduckgo/darwin.json index f6147448601..133121da979 100644 --- a/ee/maintained-apps/outputs/duckduckgo/darwin.json +++ b/ee/maintained-apps/outputs/duckduckgo/darwin.json @@ -4,7 +4,8 @@ "version": "1.201.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.duckduckgo.macos.browser';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.duckduckgo.macos.browser' AND version_compare(bundle_short_version, '1.201.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.duckduckgo.macos.browser' AND version_compare(bundle_short_version, '1.201.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.duckduckgo.macos.browser');" }, "installer_url": "https://staticcdn.duckduckgo.com/macos-desktop-browser/duckduckgo-1.201.0.777.dmg", "install_script_ref": "18fb46ca", diff --git a/ee/maintained-apps/outputs/duet/darwin.json b/ee/maintained-apps/outputs/duet/darwin.json index 33fc351cc56..e4ff5df4bd1 100644 --- a/ee/maintained-apps/outputs/duet/darwin.json +++ b/ee/maintained-apps/outputs/duet/darwin.json @@ -4,7 +4,8 @@ "version": "3.20.3.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.kairos.duetMac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.kairos.duetMac' AND version_compare(bundle_short_version, '3.20.3.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.kairos.duetMac' AND version_compare(bundle_short_version, '3.20.3.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.kairos.duetMac');" }, "installer_url": "https://duetdownload.com/Mac/3_x/duet-dd-3-20-3-0.dmg", "install_script_ref": "d14e2a23", diff --git a/ee/maintained-apps/outputs/duo-desktop/darwin.json b/ee/maintained-apps/outputs/duo-desktop/darwin.json index 2b49fa53ab2..bd5836c2269 100644 --- a/ee/maintained-apps/outputs/duo-desktop/darwin.json +++ b/ee/maintained-apps/outputs/duo-desktop/darwin.json @@ -4,7 +4,8 @@ "version": "7.20.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.duosecurity.duo-device-health';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.duosecurity.duo-device-health' AND version_compare(bundle_short_version, '7.20.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.duosecurity.duo-device-health' AND version_compare(bundle_short_version, '7.20.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.duosecurity.duo-device-health');" }, "installer_url": "https://dl.duosecurity.com/DuoDesktop-7.20.0.0.pkg", "install_script_ref": "96c63e5c", diff --git a/ee/maintained-apps/outputs/duo-desktop/windows.json b/ee/maintained-apps/outputs/duo-desktop/windows.json index d14ddc89ae5..0897dfdf073 100644 --- a/ee/maintained-apps/outputs/duo-desktop/windows.json +++ b/ee/maintained-apps/outputs/duo-desktop/windows.json @@ -4,7 +4,8 @@ "version": "7.20.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Duo Desktop' AND publisher = 'Duo Security';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Duo Desktop' AND publisher = 'Duo Security' AND version_compare(version, '7.20.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Duo Desktop' AND publisher = 'Duo Security' AND version_compare(version, '7.20.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'duo desktop.exe');" }, "installer_url": "https://dl.duosecurity.com/DuoDesktop-7.20.0.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/dupeguru/darwin.json b/ee/maintained-apps/outputs/dupeguru/darwin.json index 7f8b0a62ccd..61fe26bd362 100644 --- a/ee/maintained-apps/outputs/dupeguru/darwin.json +++ b/ee/maintained-apps/outputs/dupeguru/darwin.json @@ -4,7 +4,8 @@ "version": "4.3.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hardcoded-software.dupeguru';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hardcoded-software.dupeguru' AND version_compare(bundle_short_version, '4.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hardcoded-software.dupeguru' AND version_compare(bundle_short_version, '4.3.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hardcoded-software.dupeguru');" }, "installer_url": "https://github.com/arsenetar/dupeguru/releases/download/4.3.1/dupeguru_macOS_Qt_4.3.1.zip", "install_script_ref": "c2208102", diff --git a/ee/maintained-apps/outputs/dupeguru/windows.json b/ee/maintained-apps/outputs/dupeguru/windows.json index 123b23a4faa..57f8ab38837 100644 --- a/ee/maintained-apps/outputs/dupeguru/windows.json +++ b/ee/maintained-apps/outputs/dupeguru/windows.json @@ -4,7 +4,8 @@ "version": "4.3.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'dupeGuru' AND publisher = 'Hardcoded Software';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'dupeGuru' AND publisher = 'Hardcoded Software' AND version_compare(version, '4.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'dupeGuru' AND publisher = 'Hardcoded Software' AND version_compare(version, '4.3.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'dupeguru.exe');" }, "installer_url": "https://github.com/arsenetar/dupeguru/releases/download/4.3.1/dupeGuru_win64_4.3.1.exe", "install_script_ref": "a5276316", diff --git a/ee/maintained-apps/outputs/dymo-connect/darwin.json b/ee/maintained-apps/outputs/dymo-connect/darwin.json index 60f597920d1..08328a40ee1 100644 --- a/ee/maintained-apps/outputs/dymo-connect/darwin.json +++ b/ee/maintained-apps/outputs/dymo-connect/darwin.json @@ -4,7 +4,8 @@ "version": "1.6.1.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.dymo.DYMO-WebApi-Mac-Host';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dymo.DYMO-WebApi-Mac-Host' AND version_compare(bundle_short_version, '1.6.1.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dymo.DYMO-WebApi-Mac-Host' AND version_compare(bundle_short_version, '1.6.1.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.dymo.DYMO-WebApi-Mac-Host');" }, "installer_url": "https://dymoreleasecontent.blob.core.windows.net/dymo-release/DCDMAC/DCDMac1.6.1.4-Arm64.pkg", "install_script_ref": "0cedfe85", diff --git a/ee/maintained-apps/outputs/dymo-id/windows.json b/ee/maintained-apps/outputs/dymo-id/windows.json index 529fd135724..b97a66c1787 100644 --- a/ee/maintained-apps/outputs/dymo-id/windows.json +++ b/ee/maintained-apps/outputs/dymo-id/windows.json @@ -4,7 +4,8 @@ "version": "1.5.1.71", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'DYMO ID' AND publisher = 'Sanford, L.P.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'DYMO ID' AND publisher = 'Sanford, L.P.' AND version_compare(version, '1.5.1.71') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'DYMO ID' AND publisher = 'Sanford, L.P.' AND version_compare(version, '1.5.1.71') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'dymo id.exe');" }, "installer_url": "https://download.dymo.com/dymo/Software/DYMOID_1.5.1/DYMOIDSetup.1.5.1.exe", "install_script_ref": "9f419a93", diff --git a/ee/maintained-apps/outputs/dynalist/windows.json b/ee/maintained-apps/outputs/dynalist/windows.json index b2e6f28d2fe..4decdde6996 100644 --- a/ee/maintained-apps/outputs/dynalist/windows.json +++ b/ee/maintained-apps/outputs/dynalist/windows.json @@ -4,7 +4,8 @@ "version": "1.0.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Dynalist' AND publisher = 'Dynalist Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Dynalist' AND publisher = 'Dynalist Inc.' AND version_compare(version, '1.0.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Dynalist' AND publisher = 'Dynalist Inc.' AND version_compare(version, '1.0.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'dynalist.exe');" }, "installer_url": "https://dynalist.io/standalone/download?file=Dynalist%20Setup.exe", "install_script_ref": "a5276316", diff --git a/ee/maintained-apps/outputs/eaglefiler/darwin.json b/ee/maintained-apps/outputs/eaglefiler/darwin.json index e7fe0ea41af..1be5533cb89 100644 --- a/ee/maintained-apps/outputs/eaglefiler/darwin.json +++ b/ee/maintained-apps/outputs/eaglefiler/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.21", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.c-command.EagleFiler';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.c-command.EagleFiler' AND version_compare(bundle_short_version, '1.9.21') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.c-command.EagleFiler' AND version_compare(bundle_short_version, '1.9.21') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.c-command.EagleFiler');" }, "installer_url": "https://c-command.com/downloads/EagleFiler-1.9.21.dmg", "install_script_ref": "54e6da83", diff --git a/ee/maintained-apps/outputs/easydict/darwin.json b/ee/maintained-apps/outputs/easydict/darwin.json index 345db24407c..d5f8a0f6ebb 100644 --- a/ee/maintained-apps/outputs/easydict/darwin.json +++ b/ee/maintained-apps/outputs/easydict/darwin.json @@ -4,7 +4,8 @@ "version": "2.21.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.izual.Easydict';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.izual.Easydict' AND version_compare(bundle_short_version, '2.21.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.izual.Easydict' AND version_compare(bundle_short_version, '2.21.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.izual.Easydict');" }, "installer_url": "https://github.com/tisfeng/Easydict/releases/download/2.21.0/Easydict.dmg", "install_script_ref": "dded9e66", diff --git a/ee/maintained-apps/outputs/easyfind/darwin.json b/ee/maintained-apps/outputs/easyfind/darwin.json index 43223673a09..b94b93fda69 100644 --- a/ee/maintained-apps/outputs/easyfind/darwin.json +++ b/ee/maintained-apps/outputs/easyfind/darwin.json @@ -4,7 +4,8 @@ "version": "5.0.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.grunenberg.EasyFind';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.grunenberg.EasyFind' AND version_compare(bundle_short_version, '5.0.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.grunenberg.EasyFind' AND version_compare(bundle_short_version, '5.0.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.grunenberg.EasyFind');" }, "installer_url": "https://download.devontechnologies.com/download/freeware/easyfind/5.0.2/EasyFind.app.zip", "install_script_ref": "2e8c7141", diff --git a/ee/maintained-apps/outputs/eclipse-ide/darwin.json b/ee/maintained-apps/outputs/eclipse-ide/darwin.json index f76db742424..662fd944b3d 100644 --- a/ee/maintained-apps/outputs/eclipse-ide/darwin.json +++ b/ee/maintained-apps/outputs/eclipse-ide/darwin.json @@ -4,7 +4,8 @@ "version": "4.40", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'epp.package.committers';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'epp.package.committers' AND version_compare(bundle_short_version, '4.40') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'epp.package.committers' AND version_compare(bundle_short_version, '4.40') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'epp.package.committers');" }, "installer_url": "https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2026-06/R/eclipse-committers-2026-06-R-macosx-cocoa-aarch64.dmg&r=1", "install_script_ref": "6b90e6bc", diff --git a/ee/maintained-apps/outputs/eclipse-temurin-jdk-11/windows.json b/ee/maintained-apps/outputs/eclipse-temurin-jdk-11/windows.json index 517d9298ffa..f3dc30bfd25 100644 --- a/ee/maintained-apps/outputs/eclipse-temurin-jdk-11/windows.json +++ b/ee/maintained-apps/outputs/eclipse-temurin-jdk-11/windows.json @@ -4,7 +4,8 @@ "version": "11.0.32.9", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JDK%' AND publisher = 'Eclipse Adoptium' AND version LIKE '11.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JDK%' AND publisher = 'Eclipse Adoptium' AND version LIKE '11.%' AND version_compare(version, '11.0.32.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JDK%' AND publisher = 'Eclipse Adoptium' AND version LIKE '11.%' AND version_compare(version, '11.0.32.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'eclipse temurin jdk 11.exe');" }, "installer_url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.32+9/OpenJDK11U-jdk_x64_windows_hotspot_11.0.32_9.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/eclipse-temurin-jdk-17/windows.json b/ee/maintained-apps/outputs/eclipse-temurin-jdk-17/windows.json index 4f802ec8bbc..76e7424a086 100644 --- a/ee/maintained-apps/outputs/eclipse-temurin-jdk-17/windows.json +++ b/ee/maintained-apps/outputs/eclipse-temurin-jdk-17/windows.json @@ -4,7 +4,8 @@ "version": "17.0.20.8", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JDK%' AND publisher = 'Eclipse Adoptium' AND version LIKE '17.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JDK%' AND publisher = 'Eclipse Adoptium' AND version LIKE '17.%' AND version_compare(version, '17.0.20.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JDK%' AND publisher = 'Eclipse Adoptium' AND version LIKE '17.%' AND version_compare(version, '17.0.20.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'eclipse temurin jdk 17.exe');" }, "installer_url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.20+8/OpenJDK17U-jdk_x64_windows_hotspot_17.0.20_8.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/eclipse-temurin-jdk-21/windows.json b/ee/maintained-apps/outputs/eclipse-temurin-jdk-21/windows.json index 5f3315ad860..008e304081f 100644 --- a/ee/maintained-apps/outputs/eclipse-temurin-jdk-21/windows.json +++ b/ee/maintained-apps/outputs/eclipse-temurin-jdk-21/windows.json @@ -4,7 +4,8 @@ "version": "21.0.12.8", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JDK%' AND publisher = 'Eclipse Adoptium' AND version LIKE '21.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JDK%' AND publisher = 'Eclipse Adoptium' AND version LIKE '21.%' AND version_compare(version, '21.0.12.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JDK%' AND publisher = 'Eclipse Adoptium' AND version LIKE '21.%' AND version_compare(version, '21.0.12.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'eclipse temurin jdk 21.exe');" }, "installer_url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.12+8/OpenJDK21U-jdk_x64_windows_hotspot_21.0.12_8.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/eclipse-temurin-jdk-8/windows.json b/ee/maintained-apps/outputs/eclipse-temurin-jdk-8/windows.json index ee354d2e908..3e234b3e592 100644 --- a/ee/maintained-apps/outputs/eclipse-temurin-jdk-8/windows.json +++ b/ee/maintained-apps/outputs/eclipse-temurin-jdk-8/windows.json @@ -4,7 +4,8 @@ "version": "8.0.502.7", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JDK%' AND publisher = 'Eclipse Adoptium' AND version LIKE '8.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JDK%' AND publisher = 'Eclipse Adoptium' AND version LIKE '8.%' AND version_compare(version, '8.0.502.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JDK%' AND publisher = 'Eclipse Adoptium' AND version LIKE '8.%' AND version_compare(version, '8.0.502.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'eclipse temurin jdk 8.exe');" }, "installer_url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u502-b07/OpenJDK8U-jdk_x64_windows_hotspot_8u502b07.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/eclipse-temurin-jre-11/windows.json b/ee/maintained-apps/outputs/eclipse-temurin-jre-11/windows.json index 7ccb609223f..1e4cd5bfbd6 100644 --- a/ee/maintained-apps/outputs/eclipse-temurin-jre-11/windows.json +++ b/ee/maintained-apps/outputs/eclipse-temurin-jre-11/windows.json @@ -4,7 +4,8 @@ "version": "11.0.32.9", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JRE%' AND publisher = 'Eclipse Adoptium' AND version LIKE '11.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JRE%' AND publisher = 'Eclipse Adoptium' AND version LIKE '11.%' AND version_compare(version, '11.0.32.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JRE%' AND publisher = 'Eclipse Adoptium' AND version LIKE '11.%' AND version_compare(version, '11.0.32.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'eclipse temurin jre 11.exe');" }, "installer_url": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.32+9/OpenJDK11U-jre_x64_windows_hotspot_11.0.32_9.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/eclipse-temurin-jre-17/windows.json b/ee/maintained-apps/outputs/eclipse-temurin-jre-17/windows.json index 7b9e92c1257..0ad579cdf8c 100644 --- a/ee/maintained-apps/outputs/eclipse-temurin-jre-17/windows.json +++ b/ee/maintained-apps/outputs/eclipse-temurin-jre-17/windows.json @@ -4,7 +4,8 @@ "version": "17.0.20.8", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JRE%' AND publisher = 'Eclipse Adoptium' AND version LIKE '17.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JRE%' AND publisher = 'Eclipse Adoptium' AND version LIKE '17.%' AND version_compare(version, '17.0.20.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JRE%' AND publisher = 'Eclipse Adoptium' AND version LIKE '17.%' AND version_compare(version, '17.0.20.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'eclipse temurin jre 17.exe');" }, "installer_url": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.20+8/OpenJDK17U-jre_x64_windows_hotspot_17.0.20_8.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/eclipse-temurin-jre-21/windows.json b/ee/maintained-apps/outputs/eclipse-temurin-jre-21/windows.json index 50d8ef6c6b3..2505679f067 100644 --- a/ee/maintained-apps/outputs/eclipse-temurin-jre-21/windows.json +++ b/ee/maintained-apps/outputs/eclipse-temurin-jre-21/windows.json @@ -4,7 +4,8 @@ "version": "21.0.12.8", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JRE%' AND publisher = 'Eclipse Adoptium' AND version LIKE '21.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JRE%' AND publisher = 'Eclipse Adoptium' AND version LIKE '21.%' AND version_compare(version, '21.0.12.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JRE%' AND publisher = 'Eclipse Adoptium' AND version LIKE '21.%' AND version_compare(version, '21.0.12.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'eclipse temurin jre 21.exe');" }, "installer_url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.12+8/OpenJDK21U-jre_x64_windows_hotspot_21.0.12_8.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/eclipse-temurin-jre-8/windows.json b/ee/maintained-apps/outputs/eclipse-temurin-jre-8/windows.json index 62b52ee5de6..6e0b43c697c 100644 --- a/ee/maintained-apps/outputs/eclipse-temurin-jre-8/windows.json +++ b/ee/maintained-apps/outputs/eclipse-temurin-jre-8/windows.json @@ -4,7 +4,8 @@ "version": "8.0.502.7", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JRE%' AND publisher = 'Eclipse Adoptium' AND version LIKE '8.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JRE%' AND publisher = 'Eclipse Adoptium' AND version LIKE '8.%' AND version_compare(version, '8.0.502.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Eclipse Temurin JRE%' AND publisher = 'Eclipse Adoptium' AND version LIKE '8.%' AND version_compare(version, '8.0.502.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'eclipse temurin jre 8.exe');" }, "installer_url": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u502-b07/OpenJDK8U-jre_x64_windows_hotspot_8u502b07.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/egnyte-webedit/windows.json b/ee/maintained-apps/outputs/egnyte-webedit/windows.json index d83fd2885cf..dfbf5a54678 100644 --- a/ee/maintained-apps/outputs/egnyte-webedit/windows.json +++ b/ee/maintained-apps/outputs/egnyte-webedit/windows.json @@ -4,7 +4,8 @@ "version": "2.4.1400.90", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Egnyte WebEdit' AND publisher = 'Egnyte, Inc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Egnyte WebEdit' AND publisher = 'Egnyte, Inc' AND version_compare(version, '2.4.1400.90') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Egnyte WebEdit' AND publisher = 'Egnyte, Inc' AND version_compare(version, '2.4.1400.90') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'egnyte webedit.exe');" }, "installer_url": "https://egnyte-cdn.egnyte.com/webedit/win/en-us/2.4.14/EgnyteWebEdit_2.4.14_90.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/egnyte/darwin.json b/ee/maintained-apps/outputs/egnyte/darwin.json index 1742059d250..a8a614d1a4f 100644 --- a/ee/maintained-apps/outputs/egnyte/darwin.json +++ b/ee/maintained-apps/outputs/egnyte/darwin.json @@ -4,7 +4,8 @@ "version": "1.19.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.egnyte.DesktopApp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.egnyte.DesktopApp' AND version_compare(bundle_short_version, '1.19.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.egnyte.DesktopApp' AND version_compare(bundle_short_version, '1.19.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.egnyte.DesktopApp');" }, "installer_url": "https://egnyte-cdn.egnyte.com/desktopapp/mac/en-us/1.19.1/Egnyte_1.19.1_2367.dmg", "install_script_ref": "5495db25", diff --git a/ee/maintained-apps/outputs/egnyte/windows.json b/ee/maintained-apps/outputs/egnyte/windows.json index 8e9274a87bd..c8de7ba63cf 100644 --- a/ee/maintained-apps/outputs/egnyte/windows.json +++ b/ee/maintained-apps/outputs/egnyte/windows.json @@ -4,7 +4,8 @@ "version": "4.5.1.201", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Egnyte Desktop App' AND publisher = 'Egnyte, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Egnyte Desktop App' AND publisher = 'Egnyte, Inc.' AND version_compare(version, '4.5.1.201') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Egnyte Desktop App' AND publisher = 'Egnyte, Inc.' AND version_compare(version, '4.5.1.201') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'egnyte.exe');" }, "installer_url": "https://egnyte-cdn.egnyte.com/egnytedrive/win/en-us/4.5.1/EgnyteDesktopApp_4.5.1_201.msi", "install_script_ref": "07209af6", diff --git a/ee/maintained-apps/outputs/electronmail/darwin.json b/ee/maintained-apps/outputs/electronmail/darwin.json index 6d890427431..22937ac3a96 100644 --- a/ee/maintained-apps/outputs/electronmail/darwin.json +++ b/ee/maintained-apps/outputs/electronmail/darwin.json @@ -4,7 +4,8 @@ "version": "5.3.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'github.comvladimiryElectronMail';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'github.comvladimiryElectronMail' AND version_compare(bundle_short_version, '5.3.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'github.comvladimiryElectronMail' AND version_compare(bundle_short_version, '5.3.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'github.comvladimiryElectronMail');" }, "installer_url": "https://github.com/vladimiry/ElectronMail/releases/download/v5.3.8/electron-mail-5.3.8-mac-arm64.dmg", "install_script_ref": "86cd344f", diff --git a/ee/maintained-apps/outputs/electrum/darwin.json b/ee/maintained-apps/outputs/electrum/darwin.json index f818c04e39e..d1a03a238a4 100644 --- a/ee/maintained-apps/outputs/electrum/darwin.json +++ b/ee/maintained-apps/outputs/electrum/darwin.json @@ -4,7 +4,8 @@ "version": "4.8.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.org.pythonmac.unspecified.Electrum';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.org.pythonmac.unspecified.Electrum' AND version_compare(bundle_short_version, '4.8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.org.pythonmac.unspecified.Electrum' AND version_compare(bundle_short_version, '4.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.org.pythonmac.unspecified.Electrum');" }, "installer_url": "https://download.electrum.org/4.8.0/electrum-4.8.0.dmg", "install_script_ref": "1065ee0a", diff --git a/ee/maintained-apps/outputs/electrum/windows.json b/ee/maintained-apps/outputs/electrum/windows.json index 6e8996fb42d..7414191c4bf 100644 --- a/ee/maintained-apps/outputs/electrum/windows.json +++ b/ee/maintained-apps/outputs/electrum/windows.json @@ -4,7 +4,8 @@ "version": "4.8.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Electrum' AND publisher = 'Electrum Technologies GmbH';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Electrum' AND publisher = 'Electrum Technologies GmbH' AND version_compare(version, '4.8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Electrum' AND publisher = 'Electrum Technologies GmbH' AND version_compare(version, '4.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'electrum.exe');" }, "installer_url": "https://download.electrum.org/4.8.0/electrum-4.8.0-setup.exe", "install_script_ref": "32bde59f", diff --git a/ee/maintained-apps/outputs/element/darwin.json b/ee/maintained-apps/outputs/element/darwin.json index e150375c2f2..a1ea2690ebe 100644 --- a/ee/maintained-apps/outputs/element/darwin.json +++ b/ee/maintained-apps/outputs/element/darwin.json @@ -4,7 +4,8 @@ "version": "1.12.25", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'im.riot.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'im.riot.app' AND version_compare(bundle_short_version, '1.12.25') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'im.riot.app' AND version_compare(bundle_short_version, '1.12.25') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'im.riot.app');" }, "installer_url": "https://packages.element.io/desktop/update/macos/Element-1.12.25-universal-mac.zip", "install_script_ref": "de37e84e", diff --git a/ee/maintained-apps/outputs/elephas/darwin.json b/ee/maintained-apps/outputs/elephas/darwin.json index d1a9053e0ec..ced0760901b 100644 --- a/ee/maintained-apps/outputs/elephas/darwin.json +++ b/ee/maintained-apps/outputs/elephas/darwin.json @@ -4,7 +4,8 @@ "version": "11.8002", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.kamban.elephas';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.kamban.elephas' AND version_compare(bundle_short_version, '11.8002') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.kamban.elephas' AND version_compare(bundle_short_version, '11.8002') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.kamban.elephas');" }, "installer_url": "https://assets.elephas.app/Elephas_11.8002.dmg", "install_script_ref": "9ed81db6", diff --git a/ee/maintained-apps/outputs/elevate-uc/windows.json b/ee/maintained-apps/outputs/elevate-uc/windows.json index 255197e56c0..19ad21efb26 100644 --- a/ee/maintained-apps/outputs/elevate-uc/windows.json +++ b/ee/maintained-apps/outputs/elevate-uc/windows.json @@ -4,7 +4,8 @@ "version": "2.32.60", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Elevate UC' AND publisher = 'Serverdata.net, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Elevate UC' AND publisher = 'Serverdata.net, Inc.' AND version_compare(version, '2.32.60') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Elevate UC' AND publisher = 'Serverdata.net, Inc.' AND version_compare(version, '2.32.60') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'elevate uc.exe');" }, "installer_url": "https://cp.serverdata.net/voice/pbx/softphonereleases/default/latest-win/elevate-uc-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/elgato-camera-hub/darwin.json b/ee/maintained-apps/outputs/elgato-camera-hub/darwin.json index 1b65c499e3e..1d57c2691bb 100644 --- a/ee/maintained-apps/outputs/elgato-camera-hub/darwin.json +++ b/ee/maintained-apps/outputs/elgato-camera-hub/darwin.json @@ -4,7 +4,8 @@ "version": "2.3.0.7286", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.CameraHub';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.CameraHub' AND version_compare(bundle_short_version, '2.3.0.7286') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.CameraHub' AND version_compare(bundle_short_version, '2.3.0.7286') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.elgato.CameraHub');" }, "installer_url": "https://edge.elgato.com/egc/macos/echm/2.3.0/CameraHub_2.3.0.7286.pkg", "install_script_ref": "5d2ba4c9", diff --git a/ee/maintained-apps/outputs/elgato-capture-device-utility/darwin.json b/ee/maintained-apps/outputs/elgato-capture-device-utility/darwin.json index 6e49084c992..a28214851ef 100644 --- a/ee/maintained-apps/outputs/elgato-capture-device-utility/darwin.json +++ b/ee/maintained-apps/outputs/elgato-capture-device-utility/darwin.json @@ -4,7 +4,8 @@ "version": "1.3.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.CaptureDeviceUtility';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.CaptureDeviceUtility' AND version_compare(bundle_short_version, '1.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.CaptureDeviceUtility' AND version_compare(bundle_short_version, '1.3.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.elgato.CaptureDeviceUtility');" }, "installer_url": "https://edge.elgato.com/egc/macos/ecdu/1.3.1/ElgatoCaptureDeviceUtility-1.3.1.684.app.zip", "install_script_ref": "c30bd4ef", diff --git a/ee/maintained-apps/outputs/elgato-control-center/darwin.json b/ee/maintained-apps/outputs/elgato-control-center/darwin.json index 113bced0c7a..e80731d41ba 100644 --- a/ee/maintained-apps/outputs/elgato-control-center/darwin.json +++ b/ee/maintained-apps/outputs/elgato-control-center/darwin.json @@ -4,7 +4,8 @@ "version": "1.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.corsair.ControlCenter';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.corsair.ControlCenter' AND version_compare(bundle_short_version, '1.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.corsair.ControlCenter' AND version_compare(bundle_short_version, '1.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.corsair.ControlCenter');" }, "installer_url": "https://edge.elgato.com/egc/macos/eccm/1.9/ElgatoControlCenter-1.9.20829.app.zip", "install_script_ref": "74093a22", diff --git a/ee/maintained-apps/outputs/elgato-control-center/windows.json b/ee/maintained-apps/outputs/elgato-control-center/windows.json index 3c61a2f2d97..f19a2e4334e 100644 --- a/ee/maintained-apps/outputs/elgato-control-center/windows.json +++ b/ee/maintained-apps/outputs/elgato-control-center/windows.json @@ -4,7 +4,8 @@ "version": "1.8.2.714", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Elgato Control Center' AND publisher = 'Corsair Memory, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Elgato Control Center' AND publisher = 'Corsair Memory, Inc.' AND version_compare(version, '1.8.2.714') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Elgato Control Center' AND publisher = 'Corsair Memory, Inc.' AND version_compare(version, '1.8.2.714') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'elgato control center.exe');" }, "installer_url": "https://edge.elgato.com/egc/windows/eccw/1.8.2/ControlCenter_1.8.2.714_x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/elgato-game-capture-hd/darwin.json b/ee/maintained-apps/outputs/elgato-game-capture-hd/darwin.json index cf626022662..6f76c983f72 100644 --- a/ee/maintained-apps/outputs/elgato-game-capture-hd/darwin.json +++ b/ee/maintained-apps/outputs/elgato-game-capture-hd/darwin.json @@ -4,7 +4,8 @@ "version": "2.11.14", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.GameCaptureHD';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.GameCaptureHD' AND version_compare(bundle_short_version, '2.11.14') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.GameCaptureHD' AND version_compare(bundle_short_version, '2.11.14') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.elgato.GameCaptureHD');" }, "installer_url": "https://edge.elgato.com/egc/macos/egcm/2.11.14/final/Game_Capture_HD_2.11.14.zip", "install_script_ref": "187d10aa", diff --git a/ee/maintained-apps/outputs/elgato-stream-deck/darwin.json b/ee/maintained-apps/outputs/elgato-stream-deck/darwin.json index 2a8a1aa9d2a..0264788ada3 100644 --- a/ee/maintained-apps/outputs/elgato-stream-deck/darwin.json +++ b/ee/maintained-apps/outputs/elgato-stream-deck/darwin.json @@ -4,7 +4,8 @@ "version": "7.5.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.StreamDeck';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.StreamDeck' AND version_compare(bundle_short_version, '7.5.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.StreamDeck' AND version_compare(bundle_short_version, '7.5.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.elgato.StreamDeck');" }, "installer_url": "https://edge.elgato.com/egc/macos/sd/Stream_Deck_7.5.1.22901.pkg", "install_script_ref": "08b5b783", diff --git a/ee/maintained-apps/outputs/elgato-stream-deck/windows.json b/ee/maintained-apps/outputs/elgato-stream-deck/windows.json index 31ae7cb78d9..e83e5643b98 100644 --- a/ee/maintained-apps/outputs/elgato-stream-deck/windows.json +++ b/ee/maintained-apps/outputs/elgato-stream-deck/windows.json @@ -4,7 +4,8 @@ "version": "7.5.1.22901", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Elgato Stream Deck' AND publisher = 'Corsair Memory, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Elgato Stream Deck' AND publisher = 'Corsair Memory, Inc.' AND version_compare(version, '7.5.1.22901') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Elgato Stream Deck' AND publisher = 'Corsair Memory, Inc.' AND version_compare(version, '7.5.1.22901') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'elgato stream deck.exe');" }, "installer_url": "https://edge.elgato.com/egc/windows/sd/Stream_Deck_7.5.1.22901.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/elgato-wave-link/darwin.json b/ee/maintained-apps/outputs/elgato-wave-link/darwin.json index e8d9b03c1f2..0d8738bdf16 100644 --- a/ee/maintained-apps/outputs/elgato-wave-link/darwin.json +++ b/ee/maintained-apps/outputs/elgato-wave-link/darwin.json @@ -4,7 +4,8 @@ "version": "3.2.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.WaveLink';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.WaveLink' AND version_compare(bundle_short_version, '3.2.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.WaveLink' AND version_compare(bundle_short_version, '3.2.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.elgato.WaveLink');" }, "installer_url": "https://edge.elgato.com/egc/macos/ewlm/release/ElgatoWaveLink-3.2.2.2896.dmg", "install_script_ref": "e06e544c", diff --git a/ee/maintained-apps/outputs/elmedia-player/darwin.json b/ee/maintained-apps/outputs/elmedia-player/darwin.json index 684f265f972..ace6188a9ad 100644 --- a/ee/maintained-apps/outputs/elmedia-player/darwin.json +++ b/ee/maintained-apps/outputs/elmedia-player/darwin.json @@ -4,7 +4,8 @@ "version": "8.24", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.Eltima.ElmediaPlayer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.Eltima.ElmediaPlayer' AND version_compare(bundle_short_version, '8.24') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.Eltima.ElmediaPlayer' AND version_compare(bundle_short_version, '8.24') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.Eltima.ElmediaPlayer');" }, "installer_url": "https://cdn.electronic.us/products/elmedia/mac/download/elmediaplayer.dmg", "install_script_ref": "73491012", diff --git a/ee/maintained-apps/outputs/emclient/darwin.json b/ee/maintained-apps/outputs/emclient/darwin.json index d2ae6570191..423d974a5a9 100644 --- a/ee/maintained-apps/outputs/emclient/darwin.json +++ b/ee/maintained-apps/outputs/emclient/darwin.json @@ -4,7 +4,8 @@ "version": "10.4.5647", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.emclient.mail.client';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.emclient.mail.client' AND version_compare(bundle_short_version, '10.4.5647') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.emclient.mail.client' AND version_compare(bundle_short_version, '10.4.5647') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.emclient.mail.client');" }, "installer_url": "https://cdn-dist.emclient.com/dist/v10.4.5647_Mac/setup.pkg", "install_script_ref": "b0719a50", diff --git a/ee/maintained-apps/outputs/emclient/windows.json b/ee/maintained-apps/outputs/emclient/windows.json index 2382a89bcca..1d8c5adf0f0 100644 --- a/ee/maintained-apps/outputs/emclient/windows.json +++ b/ee/maintained-apps/outputs/emclient/windows.json @@ -4,7 +4,8 @@ "version": "10.4.5647", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'eM Client' AND publisher = 'eM Client s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'eM Client' AND publisher = 'eM Client s.r.o.' AND version_compare(version, '10.4.5647') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'eM Client' AND publisher = 'eM Client s.r.o.' AND version_compare(version, '10.4.5647') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'em client.exe');" }, "installer_url": "https://www.emclient.com/dist/v10.4.5647/setup.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/endnote/windows.json b/ee/maintained-apps/outputs/endnote/windows.json index 343e1b21a77..f515b7aa46f 100644 --- a/ee/maintained-apps/outputs/endnote/windows.json +++ b/ee/maintained-apps/outputs/endnote/windows.json @@ -4,7 +4,8 @@ "version": "22.3.1.19926", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'EndNote 20%' AND publisher = 'Clarivate Analytics';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'EndNote 20%' AND publisher = 'Clarivate Analytics' AND version_compare(version, '22.3.1.19926') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'EndNote 20%' AND publisher = 'Clarivate Analytics' AND version_compare(version, '22.3.1.19926') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'endnote.exe');" }, "installer_url": "https://download.endnote.com/downloads/2025/EN2025Inst.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/enpass/darwin.json b/ee/maintained-apps/outputs/enpass/darwin.json index 90dd35528bd..856a4b0d1c3 100644 --- a/ee/maintained-apps/outputs/enpass/darwin.json +++ b/ee/maintained-apps/outputs/enpass/darwin.json @@ -4,7 +4,8 @@ "version": "6.12.5.2673", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'in.sinew.Enpass-Desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'in.sinew.Enpass-Desktop' AND version_compare(bundle_short_version, '6.12.5.2673') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'in.sinew.Enpass-Desktop' AND version_compare(bundle_short_version, '6.12.5.2673') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'in.sinew.Enpass-Desktop');" }, "installer_url": "https://dl.enpass.io/stable/mac/package/6.12.5.2673/Enpass.pkg", "install_script_ref": "0ea96ea6", diff --git a/ee/maintained-apps/outputs/enpass/windows.json b/ee/maintained-apps/outputs/enpass/windows.json index 24443304f56..6ac84e372d5 100644 --- a/ee/maintained-apps/outputs/enpass/windows.json +++ b/ee/maintained-apps/outputs/enpass/windows.json @@ -4,7 +4,8 @@ "version": "6.12.5.2659", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Enpass' AND publisher = 'Enpass Technologies Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Enpass' AND publisher = 'Enpass Technologies Inc.' AND version_compare(version, '6.12.5.2659') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Enpass' AND publisher = 'Enpass Technologies Inc.' AND version_compare(version, '6.12.5.2659') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'enpass.exe');" }, "installer_url": "https://dl.enpass.io/stable/windows/setup/x64/6.12.5.2659/Enpass-setup.exe", "install_script_ref": "e75b1371", diff --git a/ee/maintained-apps/outputs/ente-auth/darwin.json b/ee/maintained-apps/outputs/ente-auth/darwin.json index 6fbb199909f..c2e3af0fa79 100644 --- a/ee/maintained-apps/outputs/ente-auth/darwin.json +++ b/ee/maintained-apps/outputs/ente-auth/darwin.json @@ -4,7 +4,8 @@ "version": "4.4.25", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.ente.auth.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.ente.auth.mac' AND version_compare(bundle_short_version, '4.4.25') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.ente.auth.mac' AND version_compare(bundle_short_version, '4.4.25') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.ente.auth.mac');" }, "installer_url": "https://github.com/ente-io/ente/releases/download/auth-v4.4.25/ente-auth-v4.4.25.dmg", "install_script_ref": "6a5fe995", diff --git a/ee/maintained-apps/outputs/epic-games/darwin.json b/ee/maintained-apps/outputs/epic-games/darwin.json index c0867c99677..0ff2892b675 100644 --- a/ee/maintained-apps/outputs/epic-games/darwin.json +++ b/ee/maintained-apps/outputs/epic-games/darwin.json @@ -4,7 +4,8 @@ "version": "20.1.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.epicgames.EpicGamesLauncher';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.epicgames.EpicGamesLauncher' AND version_compare(bundle_short_version, '20.1.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.epicgames.EpicGamesLauncher' AND version_compare(bundle_short_version, '20.1.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.epicgames.EpicGamesLauncher');" }, "installer_url": "https://epicgames-download1.akamaized.net/Builds/UnrealEngineLauncher/Installers/Mac/EpicInstaller-20.1.4.dmg", "install_script_ref": "6e81209f", diff --git a/ee/maintained-apps/outputs/epic-games/windows.json b/ee/maintained-apps/outputs/epic-games/windows.json index 758589b7eb6..a93594a3b89 100644 --- a/ee/maintained-apps/outputs/epic-games/windows.json +++ b/ee/maintained-apps/outputs/epic-games/windows.json @@ -4,7 +4,8 @@ "version": "1.3.193.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Epic Games Launcher' AND publisher = 'Epic Games, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Epic Games Launcher' AND publisher = 'Epic Games, Inc.' AND version_compare(version, '1.3.193.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Epic Games Launcher' AND publisher = 'Epic Games, Inc.' AND version_compare(version, '1.3.193.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'epic games launcher.exe');" }, "installer_url": "https://epicgames-download1.akamaized.net/Builds/UnrealEngineLauncher/Installers/Windows/EpicInstaller-20.1.4.msi?launcherfilename=EpicInstaller-20.1.4.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/equinox/darwin.json b/ee/maintained-apps/outputs/equinox/darwin.json index 70c2e6a1d95..eab16461c31 100644 --- a/ee/maintained-apps/outputs/equinox/darwin.json +++ b/ee/maintained-apps/outputs/equinox/darwin.json @@ -4,7 +4,8 @@ "version": "6.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.rlxone.equinox';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rlxone.equinox' AND version_compare(bundle_short_version, '6.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rlxone.equinox' AND version_compare(bundle_short_version, '6.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.rlxone.equinox');" }, "installer_url": "https://github.com/rlxone/Equinox/releases/download/v6.0/Equinox-Installer.dmg", "install_script_ref": "6e48e77c", diff --git a/ee/maintained-apps/outputs/etrecheckpro/darwin.json b/ee/maintained-apps/outputs/etrecheckpro/darwin.json index c92e488c698..3c6be551b59 100644 --- a/ee/maintained-apps/outputs/etrecheckpro/darwin.json +++ b/ee/maintained-apps/outputs/etrecheckpro/darwin.json @@ -4,7 +4,8 @@ "version": "6.8.16", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.etresoft.EtreCheck4';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.etresoft.EtreCheck4' AND version_compare(bundle_short_version, '6.8.16') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.etresoft.EtreCheck4' AND version_compare(bundle_short_version, '6.8.16') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.etresoft.EtreCheck4');" }, "installer_url": "https://cdn.etrecheck.com/EtreCheckPro.zip", "install_script_ref": "1d74810e", diff --git a/ee/maintained-apps/outputs/evernote/windows.json b/ee/maintained-apps/outputs/evernote/windows.json index b77bf8f7dfa..752ad3184f3 100644 --- a/ee/maintained-apps/outputs/evernote/windows.json +++ b/ee/maintained-apps/outputs/evernote/windows.json @@ -4,10 +4,11 @@ "version": "11.28.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Evernote%' AND publisher = 'Evernote Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Evernote%' AND publisher = 'Evernote Corporation' AND version_compare(version, '11.28.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Evernote%' AND publisher = 'Evernote Corporation' AND version_compare(version, '11.28.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'evernote.exe');" }, "installer_url": "https://win.desktop.evernote.com/builds/Evernote-11.28.2-win-ddl-stage-20260731135230-91a1a6c7bfcaabc8722ecc0ac9136436611045cf-setup.exe", - "install_script_ref": "5820d576", + "install_script_ref": "30e766be", "uninstall_script_ref": "0c86d350", "sha256": "43c3515bd4019201b96776843aafc0f8c8f613e151599c8054b71d83a5be5b74", "default_categories": [ @@ -17,6 +18,6 @@ ], "refs": { "0c86d350": "# The \"(All Users)\" suffix in Evernote's DisplayName is locale-dependent, so\n# match on the \"Evernote\" prefix only.\n$softwareName = \"Evernote\"\n\n$softwareNameLike = \"Evernote*\"\n\n# /allusers matches the machine-wide install\n$uninstallArgs = \"/allusers /S\"\n\n$machineKey = `\n 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'\n$machineKey32on64 = `\n 'HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'\n\n$exitCode = 0\n\ntry {\n\n[array]$uninstallKeys = Get-ChildItem `\n -Path @($machineKey, $machineKey32on64) `\n -ErrorAction SilentlyContinue |\n ForEach-Object { Get-ItemProperty $_.PSPath }\n\n$foundUninstaller = $false\nforeach ($key in $uninstallKeys) {\n if ($key.DisplayName -like $softwareNameLike) {\n $foundUninstaller = $true\n $uninstallCommand = if ($key.QuietUninstallString) {\n $key.QuietUninstallString\n } else {\n $key.UninstallString\n }\n\n $splitArgs = $uninstallCommand.Split('\"')\n if ($splitArgs.Length -gt 1) {\n if ($splitArgs.Length -eq 3) {\n $uninstallArgs = \"$( $splitArgs[2] ) $uninstallArgs\".Trim()\n } elseif ($splitArgs.Length -gt 3) {\n Throw `\n \"Uninstall command contains multiple quoted strings. \" +\n \"Please update the uninstall script.`n\" +\n \"Uninstall command: $uninstallCommand\"\n }\n $uninstallCommand = $splitArgs[1]\n }\n Write-Host \"Uninstall command: $uninstallCommand\"\n Write-Host \"Uninstall args: $uninstallArgs\"\n\n $processOptions = @{\n FilePath = $uninstallCommand\n PassThru = $true\n Wait = $true\n }\n if ($uninstallArgs -ne '') {\n $processOptions.ArgumentList = \"$uninstallArgs\"\n }\n\n $process = Start-Process @processOptions\n $exitCode = $process.ExitCode\n\n Write-Host \"Uninstall exit code: $exitCode\"\n\n # Without an \"_?=\" argument an NSIS uninstaller relaunches\n # itself from %TEMP% and exits 0 before the removal finishes, so wait\n # for the registry entry to clear.\n if ($exitCode -eq 0) {\n $deadline = (Get-Date).AddSeconds(300)\n do {\n Start-Sleep -Seconds 5\n # Fail closed: a failed query is not proof of removal. Keys are\n # read leniently since the uninstaller deletes them as we walk.\n $stillInstalled = $true\n try {\n $stillInstalled = [bool](Get-ChildItem `\n -Path @($machineKey, $machineKey32on64) `\n -ErrorAction Stop |\n ForEach-Object {\n Get-ItemProperty $_.PSPath `\n -ErrorAction SilentlyContinue\n } |\n Where-Object {\n $_.DisplayName -like $softwareNameLike\n })\n } catch {\n Write-Host \"Could not query the uninstall registry: $_\"\n }\n } while ($stillInstalled -and (Get-Date) -lt $deadline)\n\n if ($stillInstalled) {\n Write-Host \"Could not confirm '$softwareName' was removed.\"\n $exitCode = 1\n } else {\n Write-Host \"'$softwareName' was removed.\"\n }\n }\n\n break\n }\n}\n\nif (-not $foundUninstaller) {\n Write-Host \"Uninstaller for '$softwareName' not found.\"\n $exitCode = 1\n}\n\n} catch {\n Write-Host \"Error: $_\"\n $exitCode = 1\n}\n\nExit $exitCode\n", - "5820d576": "# Learn more about .exe install scripts:\n# http://fleetdm.com/learn-more-about/exe-install-scripts\n\n$exeFilePath = \"${env:INSTALLER_PATH}\"\n\ntry {\n\n# Evernote uses an electron-builder NSIS installer. It defaults to a per-user\n# install, so /allusers is required for a machine-wide install alongside the\n# NSIS /S silent flag.\n$processOptions = @{\n FilePath = \"$exeFilePath\"\n ArgumentList = \"/allusers /S\"\n PassThru = $true\n Wait = $true\n}\n\n# Start process and track exit code\n$process = Start-Process @processOptions\n$exitCode = $process.ExitCode\n\n# Prints the exit code\nWrite-Host \"Install exit code: $exitCode\"\nExit $exitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n" + "30e766be": "# Learn more about .exe install scripts:\n# http://fleetdm.com/learn-more-about/exe-install-scripts\n\n$exeFilePath = \"${env:INSTALLER_PATH}\"\n\ntry {\n\n# Evernote uses an electron-builder NSIS installer. It defaults to a per-user\n# install, so /allusers is required for a machine-wide install alongside the\n# NSIS /S silent flag.\n#\n# The NSIS self-extractor intermittently dies with 0xc0000005 (access\n# violation, exit code -1073741819) before extracting anything. The same\n# installer succeeds on the next run, so retry on that specific exit code\n# only; every other exit code is reported as-is.\n$maxAttempts = 3\n$exitCode = 1\n\nfor ($attempt = 1; $attempt -le $maxAttempts; $attempt++) {\n $processOptions = @{\n FilePath = \"$exeFilePath\"\n ArgumentList = \"/allusers /S\"\n PassThru = $true\n Wait = $true\n }\n\n $process = Start-Process @processOptions\n $exitCode = $process.ExitCode\n\n Write-Host \"Install exit code: $exitCode (attempt $attempt of $maxAttempts)\"\n\n if ($exitCode -ne -1073741819) {\n Exit $exitCode\n }\n\n Start-Sleep -Seconds 10\n}\n\nExit $exitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n" } } diff --git a/ee/maintained-apps/outputs/exifcleaner/darwin.json b/ee/maintained-apps/outputs/exifcleaner/darwin.json index 8ddecb48195..eb1a4751541 100644 --- a/ee/maintained-apps/outputs/exifcleaner/darwin.json +++ b/ee/maintained-apps/outputs/exifcleaner/darwin.json @@ -4,7 +4,8 @@ "version": "4.2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.exifcleaner';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.exifcleaner' AND version_compare(bundle_short_version, '4.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.exifcleaner' AND version_compare(bundle_short_version, '4.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.exifcleaner');" }, "installer_url": "https://github.com/szTheory/exifcleaner/releases/download/v4.2.0/ExifCleaner-4.2.0-arm64.dmg", "install_script_ref": "d01e9e3e", diff --git a/ee/maintained-apps/outputs/exifrenamer/darwin.json b/ee/maintained-apps/outputs/exifrenamer/darwin.json index c5ae553abaa..4dfa759f502 100644 --- a/ee/maintained-apps/outputs/exifrenamer/darwin.json +++ b/ee/maintained-apps/outputs/exifrenamer/darwin.json @@ -4,7 +4,8 @@ "version": "2.4.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'de.qdev.ExifRenamer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'de.qdev.ExifRenamer' AND version_compare(bundle_short_version, '2.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'de.qdev.ExifRenamer' AND version_compare(bundle_short_version, '2.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'de.qdev.ExifRenamer');" }, "installer_url": "https://www.qdev.de/downloads/files/ExifRenamer.dmg", "install_script_ref": "221e90a5", diff --git a/ee/maintained-apps/outputs/expressvpn/darwin.json b/ee/maintained-apps/outputs/expressvpn/darwin.json index e038f51b8ef..1bd10490d7e 100644 --- a/ee/maintained-apps/outputs/expressvpn/darwin.json +++ b/ee/maintained-apps/outputs/expressvpn/darwin.json @@ -4,7 +4,8 @@ "version": "14.2.0.13656", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.expressvpn.ExpressVPN';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.expressvpn.ExpressVPN' AND version_compare(bundle_short_version, '14.2.0.13656') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.expressvpn.ExpressVPN' AND version_compare(bundle_short_version, '14.2.0.13656') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.expressvpn.ExpressVPN');" }, "installer_url": "https://www.expressvpn.works/clients/mac/expressvpn-macos-universal-14.2.0.13656_release.zip", "install_script_ref": "efad6361", diff --git a/ee/maintained-apps/outputs/extradock/darwin.json b/ee/maintained-apps/outputs/extradock/darwin.json index 426ccabae44..5665cd96cc5 100644 --- a/ee/maintained-apps/outputs/extradock/darwin.json +++ b/ee/maintained-apps/outputs/extradock/darwin.json @@ -4,7 +4,8 @@ "version": "4.3.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dignicy.extraDock';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dignicy.extraDock' AND version_compare(bundle_short_version, '4.3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dignicy.extraDock' AND version_compare(bundle_short_version, '4.3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'dignicy.extraDock');" }, "installer_url": "https://github.com/AppitStudio/extra-dock-updates/releases/download/v4.3.3/extraDock.dmg", "install_script_ref": "b1d54782", diff --git a/ee/maintained-apps/outputs/fantastical/darwin.json b/ee/maintained-apps/outputs/fantastical/darwin.json index 100b023118f..120ae0b5033 100644 --- a/ee/maintained-apps/outputs/fantastical/darwin.json +++ b/ee/maintained-apps/outputs/fantastical/darwin.json @@ -4,7 +4,8 @@ "version": "4.1.17", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.flexibits.fantastical';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.flexibits.fantastical' AND version_compare(bundle_short_version, '4.1.17') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.flexibits.fantastical' AND version_compare(bundle_short_version, '4.1.17') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.flexibits.fantastical');" }, "installer_url": "https://cdn.flexibits.com/Fantastical_4.1.17.zip", "install_script_ref": "7f9f4cb1", diff --git a/ee/maintained-apps/outputs/far2l/darwin.json b/ee/maintained-apps/outputs/far2l/darwin.json index c18bf2ff32f..2e45d4b8d2b 100644 --- a/ee/maintained-apps/outputs/far2l/darwin.json +++ b/ee/maintained-apps/outputs/far2l/darwin.json @@ -4,7 +4,8 @@ "version": "2.8.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.far2l';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.far2l' AND version_compare(bundle_short_version, '2.8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.far2l' AND version_compare(bundle_short_version, '2.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.far2l');" }, "installer_url": "https://github.com/elfmz/far2l/releases/download/v_2.8.0/far2l-2.8.0-beta-MacOS-11.2-universal.dmg", "install_script_ref": "c5c02643", diff --git a/ee/maintained-apps/outputs/farrago/darwin.json b/ee/maintained-apps/outputs/farrago/darwin.json index 24ac10012f1..0e18a497ba4 100644 --- a/ee/maintained-apps/outputs/farrago/darwin.json +++ b/ee/maintained-apps/outputs/farrago/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.farrago';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.farrago' AND version_compare(bundle_short_version, '2.1.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.farrago' AND version_compare(bundle_short_version, '2.1.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.rogueamoeba.farrago');" }, "installer_url": "https://cdn.rogueamoeba.com/farrago/download/Farrago.zip", "install_script_ref": "9449ec62", diff --git a/ee/maintained-apps/outputs/fastmail/darwin.json b/ee/maintained-apps/outputs/fastmail/darwin.json index 8872cd85a13..0fb5dcabf59 100644 --- a/ee/maintained-apps/outputs/fastmail/darwin.json +++ b/ee/maintained-apps/outputs/fastmail/darwin.json @@ -4,7 +4,8 @@ "version": "1.5.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.fastmail.mac.Fastmail';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fastmail.mac.Fastmail' AND version_compare(bundle_short_version, '1.5.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fastmail.mac.Fastmail' AND version_compare(bundle_short_version, '1.5.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.fastmail.mac.Fastmail');" }, "installer_url": "https://dl.fastmailcdn.com/desktop/production/mac/arm64/Fastmail-1.5.1-arm64-mac.zip", "install_script_ref": "dbf75744", diff --git a/ee/maintained-apps/outputs/fastscripts/darwin.json b/ee/maintained-apps/outputs/fastscripts/darwin.json index 7494ec20a37..3bdcd816a27 100644 --- a/ee/maintained-apps/outputs/fastscripts/darwin.json +++ b/ee/maintained-apps/outputs/fastscripts/darwin.json @@ -4,7 +4,8 @@ "version": "3.3.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.red-sweater.fastscripts3';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.red-sweater.fastscripts3' AND version_compare(bundle_short_version, '3.3.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.red-sweater.fastscripts3' AND version_compare(bundle_short_version, '3.3.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.red-sweater.fastscripts3');" }, "installer_url": "https://redsweater.com/fastscripts/FastScripts3.3.8.zip", "install_script_ref": "cd6199f7", diff --git a/ee/maintained-apps/outputs/fellow/darwin.json b/ee/maintained-apps/outputs/fellow/darwin.json index 0e225429dea..34ff281b56c 100644 --- a/ee/maintained-apps/outputs/fellow/darwin.json +++ b/ee/maintained-apps/outputs/fellow/darwin.json @@ -4,7 +4,8 @@ "version": "5.7.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.fellow';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.fellow' AND version_compare(bundle_short_version, '5.7.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.fellow' AND version_compare(bundle_short_version, '5.7.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.fellow');" }, "installer_url": "https://cdn.fellow.app/desktop/5.7.2/darwin/stable/universal/Fellow-5.7.2-universal.dmg", "install_script_ref": "fec4efb2", diff --git a/ee/maintained-apps/outputs/fellow/windows.json b/ee/maintained-apps/outputs/fellow/windows.json index 2f71ca8eecf..f322ade41dd 100644 --- a/ee/maintained-apps/outputs/fellow/windows.json +++ b/ee/maintained-apps/outputs/fellow/windows.json @@ -4,7 +4,8 @@ "version": "5.7.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Fellow' AND publisher = 'Fellow Insights Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Fellow' AND publisher = 'Fellow Insights Inc.' AND version_compare(version, '5.7.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Fellow' AND publisher = 'Fellow Insights Inc.' AND version_compare(version, '5.7.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'fellow.exe');" }, "installer_url": "https://cdn.fellow.app/desktop/5.7.2/win32/stable/x64/Fellow-5.7.2.exe", "install_script_ref": "66645abc", diff --git a/ee/maintained-apps/outputs/ferdium/darwin.json b/ee/maintained-apps/outputs/ferdium/darwin.json index 2f0c0b82fe3..a03a710e57b 100644 --- a/ee/maintained-apps/outputs/ferdium/darwin.json +++ b/ee/maintained-apps/outputs/ferdium/darwin.json @@ -4,7 +4,8 @@ "version": "7.1.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ferdium.ferdium-app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ferdium.ferdium-app' AND version_compare(bundle_short_version, '7.1.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ferdium.ferdium-app' AND version_compare(bundle_short_version, '7.1.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ferdium.ferdium-app');" }, "installer_url": "https://github.com/ferdium/ferdium-app/releases/download/v7.1.2/Ferdium-mac-7.1.2-arm64.dmg", "install_script_ref": "73eb31a7", diff --git a/ee/maintained-apps/outputs/fetch-app/darwin.json b/ee/maintained-apps/outputs/fetch-app/darwin.json index 22713720ca3..d470fbcfce2 100644 --- a/ee/maintained-apps/outputs/fetch-app/darwin.json +++ b/ee/maintained-apps/outputs/fetch-app/darwin.json @@ -4,7 +4,8 @@ "version": "5.8.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.fetchsoftworks.Fetch';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fetchsoftworks.Fetch' AND version_compare(bundle_short_version, '5.8.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fetchsoftworks.Fetch' AND version_compare(bundle_short_version, '5.8.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.fetchsoftworks.Fetch');" }, "installer_url": "https://fetchsoftworks.com/fetch/download/Fetch_5.8.3.zip", "install_script_ref": "1e7a1dd6", diff --git a/ee/maintained-apps/outputs/figma/darwin.json b/ee/maintained-apps/outputs/figma/darwin.json index 33e75284e1a..ac52a98db36 100644 --- a/ee/maintained-apps/outputs/figma/darwin.json +++ b/ee/maintained-apps/outputs/figma/darwin.json @@ -4,7 +4,8 @@ "version": "126.7.10", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.figma.Desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.figma.Desktop' AND version_compare(bundle_short_version, '126.7.10') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.figma.Desktop' AND version_compare(bundle_short_version, '126.7.10') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.figma.Desktop');" }, "installer_url": "https://desktop.figma.com/mac-arm/Figma-126.7.10.zip", "install_script_ref": "cea5222a", diff --git a/ee/maintained-apps/outputs/figma/windows.json b/ee/maintained-apps/outputs/figma/windows.json index 7494576367b..c4bad655ca8 100644 --- a/ee/maintained-apps/outputs/figma/windows.json +++ b/ee/maintained-apps/outputs/figma/windows.json @@ -4,7 +4,8 @@ "version": "126.7.10", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Figma' AND publisher = 'Figma, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Figma' AND publisher = 'Figma, Inc.' AND version_compare(version, '126.7.10') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Figma' AND publisher = 'Figma, Inc.' AND version_compare(version, '126.7.10') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'figma.exe');" }, "installer_url": "https://desktop.figma.com/win/build/Figma-126.7.10.exe", "install_script_ref": "442d71b3", diff --git a/ee/maintained-apps/outputs/file-juicer/darwin.json b/ee/maintained-apps/outputs/file-juicer/darwin.json index 25289ee0be9..a09c491fd05 100644 --- a/ee/maintained-apps/outputs/file-juicer/darwin.json +++ b/ee/maintained-apps/outputs/file-juicer/darwin.json @@ -4,7 +4,8 @@ "version": "4.115", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.echoone.FileJuicer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.echoone.FileJuicer' AND version_compare(bundle_short_version, '4.115') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.echoone.FileJuicer' AND version_compare(bundle_short_version, '4.115') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.echoone.FileJuicer');" }, "installer_url": "https://echoone.com/filejuicer/FileJuicer-4.115.zip", "install_script_ref": "389068f2", diff --git a/ee/maintained-apps/outputs/filebeat/windows.json b/ee/maintained-apps/outputs/filebeat/windows.json index c800d70f4c4..2988341cbd5 100644 --- a/ee/maintained-apps/outputs/filebeat/windows.json +++ b/ee/maintained-apps/outputs/filebeat/windows.json @@ -4,7 +4,8 @@ "version": "9.5.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Beats filebeat % (x86_64)' AND publisher = 'Elastic';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Beats filebeat % (x86_64)' AND publisher = 'Elastic' AND version_compare(version, '9.5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Beats filebeat % (x86_64)' AND publisher = 'Elastic' AND version_compare(version, '9.5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'filebeat.exe');" }, "installer_url": "https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-9.5.0-windows-x86_64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/filemaker-pro/darwin.json b/ee/maintained-apps/outputs/filemaker-pro/darwin.json index e79d727aa1b..08a90a04d42 100644 --- a/ee/maintained-apps/outputs/filemaker-pro/darwin.json +++ b/ee/maintained-apps/outputs/filemaker-pro/darwin.json @@ -4,7 +4,8 @@ "version": "26.0.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.filemaker.client.pro12';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.filemaker.client.pro12' AND version_compare(bundle_short_version, '26.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.filemaker.client.pro12' AND version_compare(bundle_short_version, '26.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.filemaker.client.pro12');" }, "installer_url": "https://downloads.claris.com/esd/fmp_26.0.1.51.dmg", "install_script_ref": "b6c07119", diff --git a/ee/maintained-apps/outputs/filen/darwin.json b/ee/maintained-apps/outputs/filen/darwin.json index f70b0c9a45e..cb1e54409b1 100644 --- a/ee/maintained-apps/outputs/filen/darwin.json +++ b/ee/maintained-apps/outputs/filen/darwin.json @@ -4,7 +4,8 @@ "version": "3.0.53", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.filen.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.filen.desktop' AND version_compare(bundle_short_version, '3.0.53') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.filen.desktop' AND version_compare(bundle_short_version, '3.0.53') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.filen.desktop');" }, "installer_url": "https://cdn.filen.io/@filen/desktop/release/v3.0.53/Filen_mac_arm64.dmg", "install_script_ref": "6dc93d3b", diff --git a/ee/maintained-apps/outputs/fing/darwin.json b/ee/maintained-apps/outputs/fing/darwin.json index d6a42667ead..f1eded67e95 100644 --- a/ee/maintained-apps/outputs/fing/darwin.json +++ b/ee/maintained-apps/outputs/fing/darwin.json @@ -4,7 +4,8 @@ "version": "4.0.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.fing.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fing.app' AND version_compare(bundle_short_version, '4.0.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fing.app' AND version_compare(bundle_short_version, '4.0.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.fing.app');" }, "installer_url": "https://get.fing.com/fing-desktop-releases/mac/Fing-4.0.3-mac.zip", "install_script_ref": "1ad031f1", diff --git a/ee/maintained-apps/outputs/firefly-iota-desktop/darwin.json b/ee/maintained-apps/outputs/firefly-iota-desktop/darwin.json index 4062034807c..fc48d75dcc6 100644 --- a/ee/maintained-apps/outputs/firefly-iota-desktop/darwin.json +++ b/ee/maintained-apps/outputs/firefly-iota-desktop/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.iota.firefly';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.iota.firefly' AND version_compare(bundle_short_version, '2.1.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.iota.firefly' AND version_compare(bundle_short_version, '2.1.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.iota.firefly');" }, "installer_url": "https://dl.firefly.iota.org/firefly-iota-desktop-2.1.2.dmg", "install_script_ref": "524217f1", diff --git a/ee/maintained-apps/outputs/firefly-shimmer/darwin.json b/ee/maintained-apps/outputs/firefly-shimmer/darwin.json index bd6d9b7717e..4efe7ef5ed9 100644 --- a/ee/maintained-apps/outputs/firefly-shimmer/darwin.json +++ b/ee/maintained-apps/outputs/firefly-shimmer/darwin.json @@ -4,7 +4,8 @@ "version": "2.2.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.iota.firefly-shimmer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.iota.firefly-shimmer' AND version_compare(bundle_short_version, '2.2.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.iota.firefly-shimmer' AND version_compare(bundle_short_version, '2.2.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.iota.firefly-shimmer');" }, "installer_url": "https://github.com/iotaledger/firefly/releases/download/desktop-shimmer-2.2.2/firefly-shimmer-desktop-2.2.2.dmg", "install_script_ref": "fd982e9e", diff --git a/ee/maintained-apps/outputs/firefox/darwin.json b/ee/maintained-apps/outputs/firefox/darwin.json index d0ef04fc064..b8159e3f0f1 100644 --- a/ee/maintained-apps/outputs/firefox/darwin.json +++ b/ee/maintained-apps/outputs/firefox/darwin.json @@ -4,7 +4,8 @@ "version": "153.0.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.firefox';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.firefox' AND version_compare(bundle_short_version, '153.0.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.firefox' AND version_compare(bundle_short_version, '153.0.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.mozilla.firefox');" }, "installer_url": "https://download-installer.cdn.mozilla.net/pub/firefox/releases/153.0.3/mac/en-US/Firefox%20153.0.3.dmg", "install_script_ref": "f4a36f7d", diff --git a/ee/maintained-apps/outputs/firefox/windows.json b/ee/maintained-apps/outputs/firefox/windows.json index 899b3edde81..d76babf9ded 100644 --- a/ee/maintained-apps/outputs/firefox/windows.json +++ b/ee/maintained-apps/outputs/firefox/windows.json @@ -4,7 +4,8 @@ "version": "153.0.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Mozilla Firefox (x64 en-US)' AND publisher = 'Mozilla';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Mozilla Firefox (x64 en-US)' AND publisher = 'Mozilla' AND version_compare(version, '153.0.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Mozilla Firefox (x64 en-US)' AND publisher = 'Mozilla' AND version_compare(version, '153.0.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'mozilla firefox.exe');" }, "installer_url": "https://download-installer.cdn.mozilla.net/pub/firefox/releases/153.0.3/win64/en-US/Firefox%20Setup%20153.0.3.exe", "install_script_ref": "80fb9175", diff --git a/ee/maintained-apps/outputs/firefox@developer-edition/darwin.json b/ee/maintained-apps/outputs/firefox@developer-edition/darwin.json index e10f46723b6..56aaf5a30bc 100644 --- a/ee/maintained-apps/outputs/firefox@developer-edition/darwin.json +++ b/ee/maintained-apps/outputs/firefox@developer-edition/darwin.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "154.0b7", + "version": "154.0b8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.firefoxdeveloperedition';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.firefoxdeveloperedition' AND version_compare(bundle_version, '15426.8.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.firefoxdeveloperedition' AND version_compare(bundle_version, '15426.8.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.mozilla.firefoxdeveloperedition');" }, - "installer_url": "https://download-installer.cdn.mozilla.net/pub/devedition/releases/154.0b7/mac/en-US/Firefox%20154.0b7.dmg", + "installer_url": "https://download-installer.cdn.mozilla.net/pub/devedition/releases/154.0b8/mac/en-US/Firefox%20154.0b8.dmg", "install_script_ref": "b679ecd7", "uninstall_script_ref": "292c5733", - "sha256": "31e84c8b4a47bcb4bc6c411e23c542fa519afdb2fd3d6d75476f8c8147e1dfc2", + "sha256": "fb371168991370f5652614a5d6df96ecb7a9fb2d19aa6b2f8255f439cd26942b", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/firefox@developer-edition/windows.json b/ee/maintained-apps/outputs/firefox@developer-edition/windows.json index a0149f43df3..68d4cb936c9 100644 --- a/ee/maintained-apps/outputs/firefox@developer-edition/windows.json +++ b/ee/maintained-apps/outputs/firefox@developer-edition/windows.json @@ -4,7 +4,8 @@ "version": "151.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Firefox Developer Edition (x64 en-US)' AND publisher = 'Mozilla';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Firefox Developer Edition (x64 en-US)' AND publisher = 'Mozilla' AND version_compare(version, '151.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Firefox Developer Edition (x64 en-US)' AND publisher = 'Mozilla' AND version_compare(version, '151.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'mozilla firefox developer edition.exe');" }, "installer_url": "https://download-installer.cdn.mozilla.net/pub/devedition/releases/151.0b10/win64/en-US/Firefox%20Setup%20151.0b10.exe", "install_script_ref": "30fd5964", diff --git a/ee/maintained-apps/outputs/firefox@esr/darwin.json b/ee/maintained-apps/outputs/firefox@esr/darwin.json index ca7dc96111b..fe9df1d93da 100644 --- a/ee/maintained-apps/outputs/firefox@esr/darwin.json +++ b/ee/maintained-apps/outputs/firefox@esr/darwin.json @@ -4,7 +4,8 @@ "version": "140.13.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.firefox';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.firefox' AND version_compare(bundle_short_version, '140.13.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.firefox' AND version_compare(bundle_short_version, '140.13.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.mozilla.firefox');" }, "installer_url": "https://download-installer.cdn.mozilla.net/pub/firefox/releases/140.13.0esr/mac/en-US/Firefox%20140.13.0esr.dmg", "install_script_ref": "f4a36f7d", diff --git a/ee/maintained-apps/outputs/firefox@esr/windows.json b/ee/maintained-apps/outputs/firefox@esr/windows.json index 452a8384d4b..bdd93cdf2c2 100644 --- a/ee/maintained-apps/outputs/firefox@esr/windows.json +++ b/ee/maintained-apps/outputs/firefox@esr/windows.json @@ -4,7 +4,8 @@ "version": "153.0.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Mozilla Firefox % ESR %' AND publisher = 'Mozilla';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Mozilla Firefox % ESR %' AND publisher = 'Mozilla' AND version_compare(version, '153.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Mozilla Firefox % ESR %' AND publisher = 'Mozilla' AND version_compare(version, '153.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'mozilla firefox esr.exe');" }, "installer_url": "https://download-installer.cdn.mozilla.net/pub/firefox/releases/153.0esr/win64/en-US/Firefox%20Setup%20153.0esr.exe", "install_script_ref": "36995f4f", diff --git a/ee/maintained-apps/outputs/firefox@nightly/darwin.json b/ee/maintained-apps/outputs/firefox@nightly/darwin.json index 73e2631d903..9b2a6c31f15 100644 --- a/ee/maintained-apps/outputs/firefox@nightly/darwin.json +++ b/ee/maintained-apps/outputs/firefox@nightly/darwin.json @@ -4,12 +4,13 @@ "version": "155.0a1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.nightly';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.nightly' AND version_compare(bundle_version, '15526.8.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.nightly' AND version_compare(bundle_version, '15526.8.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.mozilla.nightly');" }, - "installer_url": "https://ftp.mozilla.org/pub/firefox/nightly/2026/08/2026-08-06-21-17-40-mozilla-central/firefox-155.0a1.en-US.mac.dmg", + "installer_url": "https://ftp.mozilla.org/pub/firefox/nightly/2026/08/2026-08-07-09-46-15-mozilla-central/firefox-155.0a1.en-US.mac.dmg", "install_script_ref": "d9c4cf87", "uninstall_script_ref": "0661f848", - "sha256": "44e2a5fbd3980c8396882fad6b8d9cb20e52cbe1ed405bc258a8e65806cadf34", + "sha256": "5d03b2fc2e9fadee77c5d7dce500fa0ee050bef4772c3ae75081784ef6fdcf0a", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/firefox@nightly/windows.json b/ee/maintained-apps/outputs/firefox@nightly/windows.json index 18da96bc5c8..ce6dda1de22 100644 --- a/ee/maintained-apps/outputs/firefox@nightly/windows.json +++ b/ee/maintained-apps/outputs/firefox@nightly/windows.json @@ -4,7 +4,8 @@ "version": "155.2607.2809.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Firefox Nightly' AND publisher = 'Mozilla Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Firefox Nightly' AND publisher = 'Mozilla Corporation' AND version_compare(version, '155.2607.2809.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Firefox Nightly' AND publisher = 'Mozilla Corporation' AND version_compare(version, '155.2607.2809.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'mozilla firefox nightly.exe');" }, "installer_url": "https://ftp.mozilla.org/pub/firefox/nightly/2026/07/2026-07-28-09-52-22-mozilla-central/firefox-155.0a1.multi.win64.installer.msix", "install_script_ref": "255e7c51", diff --git a/ee/maintained-apps/outputs/fission/darwin.json b/ee/maintained-apps/outputs/fission/darwin.json index ffa4df6ac43..38dded7ddf8 100644 --- a/ee/maintained-apps/outputs/fission/darwin.json +++ b/ee/maintained-apps/outputs/fission/darwin.json @@ -4,7 +4,8 @@ "version": "2.9.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.Fission';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.Fission' AND version_compare(bundle_short_version, '2.9.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.Fission' AND version_compare(bundle_short_version, '2.9.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.rogueamoeba.Fission');" }, "installer_url": "https://cdn.rogueamoeba.com/fission/download/Fission.zip", "install_script_ref": "cf8dd037", diff --git a/ee/maintained-apps/outputs/fleet-desktop/darwin.json b/ee/maintained-apps/outputs/fleet-desktop/darwin.json index 798cedba00a..d15b35a2d0c 100644 --- a/ee/maintained-apps/outputs/fleet-desktop/darwin.json +++ b/ee/maintained-apps/outputs/fleet-desktop/darwin.json @@ -4,7 +4,8 @@ "version": "1.4.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.fleetdm.fleet-desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fleetdm.fleet-desktop' AND version_compare(bundle_short_version, '1.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fleetdm.fleet-desktop' AND version_compare(bundle_short_version, '1.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.fleetdm.fleet-desktop');" }, "installer_url": "https://download.fleetdm.com/fleet-desktop-macos/v1.4.0/fleet_desktop-v1.4.0.pkg", "install_script_ref": "0341b271", diff --git a/ee/maintained-apps/outputs/flexoptix/darwin.json b/ee/maintained-apps/outputs/flexoptix/darwin.json index 24f5b56be41..6ab0adac10e 100644 --- a/ee/maintained-apps/outputs/flexoptix/darwin.json +++ b/ee/maintained-apps/outputs/flexoptix/darwin.json @@ -4,7 +4,8 @@ "version": "5.66.0-latest", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.flexoptix.flexoptix.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.flexoptix.flexoptix.app' AND version_compare(bundle_short_version, '5.66.0-latest') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.flexoptix.flexoptix.app' AND version_compare(bundle_short_version, '5.66.0-latest') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.flexoptix.flexoptix.app');" }, "installer_url": "https://flexbox.reconfigure.me/download/electron/mac/arm64/FLEXOPTIX%20App-5.66.0-latest-arm64.dmg", "install_script_ref": "a73a3b76", diff --git a/ee/maintained-apps/outputs/flexwhere/windows.json b/ee/maintained-apps/outputs/flexwhere/windows.json index c77ff06dc4f..eaff220195e 100644 --- a/ee/maintained-apps/outputs/flexwhere/windows.json +++ b/ee/maintained-apps/outputs/flexwhere/windows.json @@ -4,7 +4,8 @@ "version": "3.5", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Flexwhere for Desktop' AND publisher = 'Dutchview';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Flexwhere for Desktop' AND publisher = 'Dutchview' AND version_compare(version, '3.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Flexwhere for Desktop' AND publisher = 'Dutchview' AND version_compare(version, '3.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'flexwhere for desktop.exe');" }, "installer_url": "https://s3.eu-central-1.amazonaws.com/releases.flexwhere.net/Flexwhere+for+Desktop+3.5.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/fluid/darwin.json b/ee/maintained-apps/outputs/fluid/darwin.json index a126dc94f6e..b0a8c1fa4c7 100644 --- a/ee/maintained-apps/outputs/fluid/darwin.json +++ b/ee/maintained-apps/outputs/fluid/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.fluidapp.Fluid2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fluidapp.Fluid2' AND version_compare(bundle_short_version, '2.1.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fluidapp.Fluid2' AND version_compare(bundle_short_version, '2.1.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.fluidapp.Fluid2');" }, "installer_url": "https://fluidapp.com/dist/Fluid_2.1.2.zip", "install_script_ref": "6cf0fb40", diff --git a/ee/maintained-apps/outputs/flux-app/darwin.json b/ee/maintained-apps/outputs/flux-app/darwin.json index ff9ad591265..f0dbea94e32 100644 --- a/ee/maintained-apps/outputs/flux-app/darwin.json +++ b/ee/maintained-apps/outputs/flux-app/darwin.json @@ -4,7 +4,8 @@ "version": "42.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.herf.Flux';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.herf.Flux' AND version_compare(bundle_short_version, '42.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.herf.Flux' AND version_compare(bundle_short_version, '42.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.herf.Flux');" }, "installer_url": "https://justgetflux.com/mac/Flux42.2.zip", "install_script_ref": "f384ab41", diff --git a/ee/maintained-apps/outputs/focusrite-control-2/darwin.json b/ee/maintained-apps/outputs/focusrite-control-2/darwin.json index 4203b3f044a..f1ceb57cd32 100644 --- a/ee/maintained-apps/outputs/focusrite-control-2/darwin.json +++ b/ee/maintained-apps/outputs/focusrite-control-2/darwin.json @@ -4,7 +4,8 @@ "version": "1.1081.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.focusrite.control';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.focusrite.control' AND version_compare(bundle_short_version, '1.1081.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.focusrite.control' AND version_compare(bundle_short_version, '1.1081.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.focusrite.control');" }, "installer_url": "https://releases.focusrite.com/com.focusrite.focusrite-control/release/Focusrite-Control-2-1.1081.0.0.dmg", "install_script_ref": "ef4c7fda", diff --git a/ee/maintained-apps/outputs/folx/darwin.json b/ee/maintained-apps/outputs/folx/darwin.json index 826a16085a6..53be6d106b5 100644 --- a/ee/maintained-apps/outputs/folx/darwin.json +++ b/ee/maintained-apps/outputs/folx/darwin.json @@ -4,7 +4,8 @@ "version": "5.34", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.eltima.Folx3';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.eltima.Folx3' AND version_compare(bundle_short_version, '5.34') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.eltima.Folx3' AND version_compare(bundle_short_version, '5.34') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.eltima.Folx3');" }, "installer_url": "https://cdn.electronic.us/products/folx/mac/download/downloader_mac.dmg", "install_script_ref": "80c411d3", diff --git a/ee/maintained-apps/outputs/fontbase/darwin.json b/ee/maintained-apps/outputs/fontbase/darwin.json index 9eba8de027f..dff75a60a4c 100644 --- a/ee/maintained-apps/outputs/fontbase/darwin.json +++ b/ee/maintained-apps/outputs/fontbase/darwin.json @@ -4,7 +4,8 @@ "version": "2026.5.23", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.dominiklevitsky.fontbase';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dominiklevitsky.fontbase' AND version_compare(bundle_short_version, '2026.5.23') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dominiklevitsky.fontbase' AND version_compare(bundle_short_version, '2026.5.23') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.dominiklevitsky.fontbase');" }, "installer_url": "https://releases.fontba.se/mac/FontBase-2026.5.23.dmg", "install_script_ref": "640e5416", diff --git a/ee/maintained-apps/outputs/fontlab/darwin.json b/ee/maintained-apps/outputs/fontlab/darwin.json index 299461898ea..4bfb34d8e9a 100644 --- a/ee/maintained-apps/outputs/fontlab/darwin.json +++ b/ee/maintained-apps/outputs/fontlab/darwin.json @@ -4,7 +4,8 @@ "version": "8.4.2.8950", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.fontlab.fontlab8';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fontlab.fontlab8' AND version_compare(bundle_short_version, '8.4.2.8950') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fontlab.fontlab8' AND version_compare(bundle_short_version, '8.4.2.8950') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.fontlab.fontlab8');" }, "installer_url": "https://fontlab.s3.amazonaws.com/fontlab-8/8950/FontLab-8-Mac-Install-8950.dmg", "install_script_ref": "0f75b1db", diff --git a/ee/maintained-apps/outputs/forecast/darwin.json b/ee/maintained-apps/outputs/forecast/darwin.json index 320db6479e8..1a513c5bc96 100644 --- a/ee/maintained-apps/outputs/forecast/darwin.json +++ b/ee/maintained-apps/outputs/forecast/darwin.json @@ -4,7 +4,8 @@ "version": "0.9.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'fm.overcast.forecast-encoder';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'fm.overcast.forecast-encoder' AND version_compare(bundle_short_version, '0.9.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'fm.overcast.forecast-encoder' AND version_compare(bundle_short_version, '0.9.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'fm.overcast.forecast-encoder');" }, "installer_url": "https://d2uzvmey2c90kn.cloudfront.net/appcast_download/Forecast_0.9.6_139.zip", "install_script_ref": "df2f2061", diff --git a/ee/maintained-apps/outputs/fork/darwin.json b/ee/maintained-apps/outputs/fork/darwin.json index 1a30078be12..25e1080f3d7 100644 --- a/ee/maintained-apps/outputs/fork/darwin.json +++ b/ee/maintained-apps/outputs/fork/darwin.json @@ -4,7 +4,8 @@ "version": "2.66.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.DanPristupov.Fork';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.DanPristupov.Fork' AND version_compare(bundle_short_version, '2.66.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.DanPristupov.Fork' AND version_compare(bundle_short_version, '2.66.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.DanPristupov.Fork');" }, "installer_url": "https://cdn.fork.dev/mac/Fork-2.66.7.dmg", "install_script_ref": "2b671081", diff --git a/ee/maintained-apps/outputs/fork/windows.json b/ee/maintained-apps/outputs/fork/windows.json index 490153f2dcd..243983b6a87 100644 --- a/ee/maintained-apps/outputs/fork/windows.json +++ b/ee/maintained-apps/outputs/fork/windows.json @@ -4,7 +4,8 @@ "version": "2.21.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Fork' AND publisher = 'Fork';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Fork' AND publisher = 'Fork' AND version_compare(version, '2.21.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Fork' AND publisher = 'Fork' AND version_compare(version, '2.21.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'fork.exe');" }, "installer_url": "https://cdn.fork.dev/win/Fork-2.21.0.exe", "install_script_ref": "51b8d74f", diff --git a/ee/maintained-apps/outputs/forklift/darwin.json b/ee/maintained-apps/outputs/forklift/darwin.json index f3f6067515b..6c80fe4535f 100644 --- a/ee/maintained-apps/outputs/forklift/darwin.json +++ b/ee/maintained-apps/outputs/forklift/darwin.json @@ -4,7 +4,8 @@ "version": "4.7.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.binarynights.ForkLift-4';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.binarynights.ForkLift-4' AND version_compare(bundle_short_version, '4.7.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.binarynights.ForkLift-4' AND version_compare(bundle_short_version, '4.7.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.binarynights.ForkLift-4');" }, "installer_url": "https://download.binarynights.com/ForkLift/ForkLift4.7.3.zip", "install_script_ref": "106d7599", diff --git a/ee/maintained-apps/outputs/fortify/windows.json b/ee/maintained-apps/outputs/fortify/windows.json index e5965bb7b00..d5628b7b2b3 100644 --- a/ee/maintained-apps/outputs/fortify/windows.json +++ b/ee/maintained-apps/outputs/fortify/windows.json @@ -4,7 +4,8 @@ "version": "2.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Fortify' AND publisher = 'Peculiar Ventures';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Fortify' AND publisher = 'Peculiar Ventures' AND version_compare(version, '2.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Fortify' AND publisher = 'Peculiar Ventures' AND version_compare(version, '2.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'fortify.exe');" }, "installer_url": "https://github.com/PeculiarVentures/fortify-releases/releases/download/v2.1.0/Fortify_2.1.0_x64_en-US.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/foxit-pdf-editor/windows.json b/ee/maintained-apps/outputs/foxit-pdf-editor/windows.json index dd4692d5119..831ead343dd 100644 --- a/ee/maintained-apps/outputs/foxit-pdf-editor/windows.json +++ b/ee/maintained-apps/outputs/foxit-pdf-editor/windows.json @@ -4,7 +4,8 @@ "version": "14.0.5.33580", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Foxit PDF Editor' AND publisher = 'Foxit Software Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Foxit PDF Editor' AND publisher = 'Foxit Software Inc.' AND version_compare(version, '14.0.5.33580') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Foxit PDF Editor' AND publisher = 'Foxit Software Inc.' AND version_compare(version, '14.0.5.33580') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'foxit pdf editor.exe');" }, "installer_url": "https://cdn01.foxitsoftware.com/product/phantomPDF/desktop/win/14.0.5/FoxitPDFEditor1405_L10N_Setup_x64.exe", "install_script_ref": "a6208245", diff --git a/ee/maintained-apps/outputs/foxit-pdf-reader/windows.json b/ee/maintained-apps/outputs/foxit-pdf-reader/windows.json index 0ff068a69b5..667e914dc8f 100644 --- a/ee/maintained-apps/outputs/foxit-pdf-reader/windows.json +++ b/ee/maintained-apps/outputs/foxit-pdf-reader/windows.json @@ -4,7 +4,8 @@ "version": "2026.1.2.36540", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Foxit PDF Reader' AND publisher = 'Foxit Software Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Foxit PDF Reader' AND publisher = 'Foxit Software Inc.' AND version_compare(version, '2026.1.2.36540') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Foxit PDF Reader' AND publisher = 'Foxit Software Inc.' AND version_compare(version, '2026.1.2.36540') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'foxit pdf reader.exe');" }, "installer_url": "https://cdn01.foxitsoftware.com/product/reader/desktop/win/2026.1.2/FoxitPDFReader202612_L10N_Setup_x64.exe", "install_script_ref": "4ce619b8", diff --git a/ee/maintained-apps/outputs/framer/darwin.json b/ee/maintained-apps/outputs/framer/darwin.json index 7f55f3b7e02..38328f8d790 100644 --- a/ee/maintained-apps/outputs/framer/darwin.json +++ b/ee/maintained-apps/outputs/framer/darwin.json @@ -4,7 +4,8 @@ "version": "2026.31.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.framer.electron';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.framer.electron' AND version_compare(bundle_short_version, '2026.31.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.framer.electron' AND version_compare(bundle_short_version, '2026.31.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.framer.electron');" }, "installer_url": "https://updates.framer.com/electron/darwin/arm64/Framer-2026.31.2.zip", "install_script_ref": "76134736", diff --git a/ee/maintained-apps/outputs/franz/darwin.json b/ee/maintained-apps/outputs/franz/darwin.json index 8e48c0b5503..12636dba662 100644 --- a/ee/maintained-apps/outputs/franz/darwin.json +++ b/ee/maintained-apps/outputs/franz/darwin.json @@ -4,7 +4,8 @@ "version": "6.5.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.meetfranz.franz';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.meetfranz.franz' AND version_compare(bundle_short_version, '6.5.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.meetfranz.franz' AND version_compare(bundle_short_version, '6.5.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.meetfranz.franz');" }, "installer_url": "https://github.com/meetfranz/franz-6/releases/download/v6.5.3/Franz-arm64.dmg", "install_script_ref": "7e8d07b5", diff --git a/ee/maintained-apps/outputs/franz/windows.json b/ee/maintained-apps/outputs/franz/windows.json index 1b3096b044f..940094d0cb8 100644 --- a/ee/maintained-apps/outputs/franz/windows.json +++ b/ee/maintained-apps/outputs/franz/windows.json @@ -4,7 +4,8 @@ "version": "5.11.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Franz' AND publisher = 'Stefan Malzner';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Franz' AND publisher = 'Stefan Malzner' AND version_compare(version, '5.11.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Franz' AND publisher = 'Stefan Malzner' AND version_compare(version, '5.11.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'franz.exe');" }, "installer_url": "https://github.com/meetfranz/franz/releases/download/v5.11.0/Franz-Setup-5.11.0.exe", "install_script_ref": "8c009ff0", diff --git a/ee/maintained-apps/outputs/free-download-manager/darwin.json b/ee/maintained-apps/outputs/free-download-manager/darwin.json index 048db232324..72a22a92116 100644 --- a/ee/maintained-apps/outputs/free-download-manager/darwin.json +++ b/ee/maintained-apps/outputs/free-download-manager/darwin.json @@ -4,7 +4,8 @@ "version": "6.34.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.freedownloadmanager.fdm6';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.freedownloadmanager.fdm6' AND version_compare(bundle_short_version, '6.34.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.freedownloadmanager.fdm6' AND version_compare(bundle_short_version, '6.34.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.freedownloadmanager.fdm6');" }, "installer_url": "https://files2.freedownloadmanager.org/6/latest/fdm.dmg", "install_script_ref": "29947033", diff --git a/ee/maintained-apps/outputs/freecad/windows.json b/ee/maintained-apps/outputs/freecad/windows.json index 364efcf278e..0bfe4ecfd40 100644 --- a/ee/maintained-apps/outputs/freecad/windows.json +++ b/ee/maintained-apps/outputs/freecad/windows.json @@ -4,7 +4,8 @@ "version": "1.1.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'FreeCAD%' AND publisher = 'FreeCAD Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'FreeCAD%' AND publisher = 'FreeCAD Team' AND version_compare(version, '1.1.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'FreeCAD%' AND publisher = 'FreeCAD Team' AND version_compare(version, '1.1.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'freecad.exe');" }, "installer_url": "https://github.com/FreeCAD/FreeCAD/releases/download/1.1.3/FreeCAD_1.1.3-Windows-x86_64-py311-installer.exe", "install_script_ref": "1cf2c1f5", diff --git a/ee/maintained-apps/outputs/front/darwin.json b/ee/maintained-apps/outputs/front/darwin.json index fee3591cffb..944f0a6a510 100644 --- a/ee/maintained-apps/outputs/front/darwin.json +++ b/ee/maintained-apps/outputs/front/darwin.json @@ -4,7 +4,8 @@ "version": "3.77.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.frontapp.Front';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.frontapp.Front' AND version_compare(bundle_short_version, '3.77.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.frontapp.Front' AND version_compare(bundle_short_version, '3.77.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.frontapp.Front');" }, "installer_url": "https://dl.frontapp.com/desktop/builds/3.77.0/Front-3.77.0-arm64.zip", "install_script_ref": "4c2f6469", diff --git a/ee/maintained-apps/outputs/fsmonitor/darwin.json b/ee/maintained-apps/outputs/fsmonitor/darwin.json index df8ff3502bf..7ae8804ac28 100644 --- a/ee/maintained-apps/outputs/fsmonitor/darwin.json +++ b/ee/maintained-apps/outputs/fsmonitor/darwin.json @@ -4,7 +4,8 @@ "version": "2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.tristan.FSMonitor';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tristan.FSMonitor' AND version_compare(bundle_short_version, '2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tristan.FSMonitor' AND version_compare(bundle_short_version, '2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.tristan.FSMonitor');" }, "installer_url": "https://tristan-software.ch/FSMonitor/Archives/FSMonitor_2.0(158).zip", "install_script_ref": "32599dcd", diff --git a/ee/maintained-apps/outputs/funter/darwin.json b/ee/maintained-apps/outputs/funter/darwin.json index d8f662de3a4..e1f14f24dbd 100644 --- a/ee/maintained-apps/outputs/funter/darwin.json +++ b/ee/maintained-apps/outputs/funter/darwin.json @@ -4,7 +4,8 @@ "version": "7.1.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nektony.Funter-SIII';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nektony.Funter-SIII' AND version_compare(bundle_short_version, '7.1.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nektony.Funter-SIII' AND version_compare(bundle_short_version, '7.1.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.nektony.Funter-SIII');" }, "installer_url": "https://download.nektony.com/download/funter/Funter.dmg?build=377", "install_script_ref": "f980a4f4", diff --git a/ee/maintained-apps/outputs/galaxy-modeler/windows.json b/ee/maintained-apps/outputs/galaxy-modeler/windows.json index d75682e558c..55bda4325b2 100644 --- a/ee/maintained-apps/outputs/galaxy-modeler/windows.json +++ b/ee/maintained-apps/outputs/galaxy-modeler/windows.json @@ -4,7 +4,8 @@ "version": "13.0.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Galaxy Modeler' AND publisher = 'Ideamerit';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Galaxy Modeler' AND publisher = 'Ideamerit' AND version_compare(version, '13.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Galaxy Modeler' AND publisher = 'Ideamerit' AND version_compare(version, '13.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'galaxy modeler.exe');" }, "installer_url": "https://www.datensen.com/downloads/Galaxy%20Modeler-13.0.0-x64.exe", "install_script_ref": "44443700", diff --git a/ee/maintained-apps/outputs/garmin-basecamp/windows.json b/ee/maintained-apps/outputs/garmin-basecamp/windows.json index 2c8851dd423..1e2f3ba244c 100644 --- a/ee/maintained-apps/outputs/garmin-basecamp/windows.json +++ b/ee/maintained-apps/outputs/garmin-basecamp/windows.json @@ -4,7 +4,8 @@ "version": "4.7.5.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Garmin BaseCamp' AND publisher = 'Garmin Ltd. or its subsidiaries';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Garmin BaseCamp' AND publisher = 'Garmin Ltd. or its subsidiaries' AND version_compare(version, '4.7.5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Garmin BaseCamp' AND publisher = 'Garmin Ltd. or its subsidiaries' AND version_compare(version, '4.7.5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'garmin basecamp.exe');" }, "installer_url": "https://download.garmin.com/software/BaseCamp_475.exe", "install_script_ref": "df742bcc", diff --git a/ee/maintained-apps/outputs/garmin-express/darwin.json b/ee/maintained-apps/outputs/garmin-express/darwin.json index 374e2ea0d41..057d9144375 100644 --- a/ee/maintained-apps/outputs/garmin-express/darwin.json +++ b/ee/maintained-apps/outputs/garmin-express/darwin.json @@ -4,7 +4,8 @@ "version": "7.29.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.garmin.renu.client';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.garmin.renu.client' AND version_compare(bundle_short_version, '7.29.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.garmin.renu.client' AND version_compare(bundle_short_version, '7.29.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.garmin.renu.client');" }, "installer_url": "https://download.garmin.com/omt/express/GarminExpress.dmg", "install_script_ref": "d19687b1", diff --git a/ee/maintained-apps/outputs/gather/darwin.json b/ee/maintained-apps/outputs/gather/darwin.json index 3c79fa7e89f..9d46ff84048 100644 --- a/ee/maintained-apps/outputs/gather/darwin.json +++ b/ee/maintained-apps/outputs/gather/darwin.json @@ -4,7 +4,8 @@ "version": "1.39.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.gather.Gather';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gather.Gather' AND version_compare(bundle_short_version, '1.39.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gather.Gather' AND version_compare(bundle_short_version, '1.39.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.gather.Gather');" }, "installer_url": "https://github.com/gathertown/gather-town-desktop-releases/releases/download/v1.39.2/Gather-1.39.2-arm64-mac.zip", "install_script_ref": "f9b83cc5", diff --git a/ee/maintained-apps/outputs/gdevelop/darwin.json b/ee/maintained-apps/outputs/gdevelop/darwin.json index 7e11c079fe0..5d1b84a4c9d 100644 --- a/ee/maintained-apps/outputs/gdevelop/darwin.json +++ b/ee/maintained-apps/outputs/gdevelop/darwin.json @@ -4,7 +4,8 @@ "version": "5.6.277", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.gdevelop-app.ide';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gdevelop-app.ide' AND version_compare(bundle_short_version, '5.6.277') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gdevelop-app.ide' AND version_compare(bundle_short_version, '5.6.277') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.gdevelop-app.ide');" }, "installer_url": "https://github.com/4ian/GDevelop/releases/download/v5.6.277/GDevelop-5-5.6.277-universal.dmg", "install_script_ref": "6eac5127", diff --git a/ee/maintained-apps/outputs/gdevelop/windows.json b/ee/maintained-apps/outputs/gdevelop/windows.json index 7646698b2ad..7d2219f6eca 100644 --- a/ee/maintained-apps/outputs/gdevelop/windows.json +++ b/ee/maintained-apps/outputs/gdevelop/windows.json @@ -4,7 +4,8 @@ "version": "5.6.277", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'GDevelop' AND publisher = 'GDevelop Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GDevelop' AND publisher = 'GDevelop Team' AND version_compare(version, '5.6.277') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GDevelop' AND publisher = 'GDevelop Team' AND version_compare(version, '5.6.277') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'gdevelop.exe');" }, "installer_url": "https://github.com/4ian/GDevelop/releases/download/v5.6.277/GDevelop-5-Setup-5.6.277.exe", "install_script_ref": "01cf10cc", diff --git a/ee/maintained-apps/outputs/geany/darwin.json b/ee/maintained-apps/outputs/geany/darwin.json index 420ddc1ece0..d4417229765 100644 --- a/ee/maintained-apps/outputs/geany/darwin.json +++ b/ee/maintained-apps/outputs/geany/darwin.json @@ -4,7 +4,8 @@ "version": "2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.geany.geany';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.geany.geany' AND version_compare(bundle_short_version, '2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.geany.geany' AND version_compare(bundle_short_version, '2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.geany.geany');" }, "installer_url": "https://download.geany.org/geany-2.1_osx_arm64.dmg", "install_script_ref": "f2ea35be", diff --git a/ee/maintained-apps/outputs/geany/windows.json b/ee/maintained-apps/outputs/geany/windows.json index 5ab28ba3c1d..f6a8f7c9e40 100644 --- a/ee/maintained-apps/outputs/geany/windows.json +++ b/ee/maintained-apps/outputs/geany/windows.json @@ -4,7 +4,8 @@ "version": "2.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Geany' AND publisher = 'The Geany developer team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Geany' AND publisher = 'The Geany developer team' AND version_compare(version, '2.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Geany' AND publisher = 'The Geany developer team' AND version_compare(version, '2.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'geany.exe');" }, "installer_url": "https://github.com/geany/geany/releases/download/2.1.0/geany-2.1_setup.exe", "install_script_ref": "8fe7f8a3", diff --git a/ee/maintained-apps/outputs/geekbench/darwin.json b/ee/maintained-apps/outputs/geekbench/darwin.json index a023186737b..ba2afb13940 100644 --- a/ee/maintained-apps/outputs/geekbench/darwin.json +++ b/ee/maintained-apps/outputs/geekbench/darwin.json @@ -4,7 +4,8 @@ "version": "6.7.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.primatelabs.Geekbench6';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.primatelabs.Geekbench6' AND version_compare(bundle_short_version, '6.7.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.primatelabs.Geekbench6' AND version_compare(bundle_short_version, '6.7.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.primatelabs.Geekbench6');" }, "installer_url": "https://cdn.geekbench.com/Geekbench-6.7.1-Mac.zip", "install_script_ref": "44b76259", diff --git a/ee/maintained-apps/outputs/gemini/darwin.json b/ee/maintained-apps/outputs/gemini/darwin.json index 01f82a191ce..0db09b776f1 100644 --- a/ee/maintained-apps/outputs/gemini/darwin.json +++ b/ee/maintained-apps/outputs/gemini/darwin.json @@ -4,7 +4,8 @@ "version": "2.10.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.macpaw.site.Gemini2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.macpaw.site.Gemini2' AND version_compare(bundle_short_version, '2.10.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.macpaw.site.Gemini2' AND version_compare(bundle_short_version, '2.10.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.macpaw.site.Gemini2');" }, "installer_url": "https://dl.devmate.com/com.macpaw.site.Gemini2/406/1781745541/Gemini2-406.zip", "install_script_ref": "be46b85c", diff --git a/ee/maintained-apps/outputs/genesys-cloud/darwin.json b/ee/maintained-apps/outputs/genesys-cloud/darwin.json index 6f6f4479970..331b43761bf 100644 --- a/ee/maintained-apps/outputs/genesys-cloud/darwin.json +++ b/ee/maintained-apps/outputs/genesys-cloud/darwin.json @@ -4,7 +4,8 @@ "version": "2.53.43", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.inin.purecloud.directory';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.inin.purecloud.directory' AND version_compare(bundle_short_version, '2.53.43') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.inin.purecloud.directory' AND version_compare(bundle_short_version, '2.53.43') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.inin.purecloud.directory');" }, "installer_url": "https://app.mypurecloud.com/directory-mac/build-assets/2.53.43-202/genesys-cloud-mac-2.53.43.dmg", "install_script_ref": "f12f0cd5", diff --git a/ee/maintained-apps/outputs/genesys-cloud/windows.json b/ee/maintained-apps/outputs/genesys-cloud/windows.json index ee9221b764e..9efb070c775 100644 --- a/ee/maintained-apps/outputs/genesys-cloud/windows.json +++ b/ee/maintained-apps/outputs/genesys-cloud/windows.json @@ -4,7 +4,8 @@ "version": "2.53.923.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'GenesysCloud' AND publisher = 'Genesys Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GenesysCloud' AND publisher = 'Genesys Inc.' AND version_compare(version, '2.53.923.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GenesysCloud' AND publisher = 'Genesys Inc.' AND version_compare(version, '2.53.923.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'genesys cloud.exe');" }, "installer_url": "https://app.mypurecloud.com/directory-windows/build-assets/2.53.923-257/genesys-cloud-windows-2.53.923-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/geogebra-classic/windows.json b/ee/maintained-apps/outputs/geogebra-classic/windows.json index 11d6bef0ae5..30dd407e6a8 100644 --- a/ee/maintained-apps/outputs/geogebra-classic/windows.json +++ b/ee/maintained-apps/outputs/geogebra-classic/windows.json @@ -4,7 +4,8 @@ "version": "6.0.927", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'GeoGebra Classic' AND publisher = 'International GeoGebra Institute';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GeoGebra Classic' AND publisher = 'International GeoGebra Institute' AND version_compare(version, '6.0.927') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GeoGebra Classic' AND publisher = 'International GeoGebra Institute' AND version_compare(version, '6.0.927') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'geogebra classic.exe');" }, "installer_url": "https://download.geogebra.org/installers/6.0/GeoGebra-Windows-Installer-6-0-927-1.msi", "install_script_ref": "d43086d9", diff --git a/ee/maintained-apps/outputs/gephi/darwin.json b/ee/maintained-apps/outputs/gephi/darwin.json index 7a0a9eeae91..80bf68723c1 100644 --- a/ee/maintained-apps/outputs/gephi/darwin.json +++ b/ee/maintained-apps/outputs/gephi/darwin.json @@ -4,7 +4,8 @@ "version": "0.11.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.gephi';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.gephi' AND version_compare(bundle_short_version, '0.11.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.gephi' AND version_compare(bundle_short_version, '0.11.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.gephi');" }, "installer_url": "https://github.com/gephi/gephi/releases/download/v0.11.2/gephi-0.11.2-macos-aarch64.dmg", "install_script_ref": "df5fb828", diff --git a/ee/maintained-apps/outputs/gephi/windows.json b/ee/maintained-apps/outputs/gephi/windows.json index 79077c9340a..07766c28a64 100644 --- a/ee/maintained-apps/outputs/gephi/windows.json +++ b/ee/maintained-apps/outputs/gephi/windows.json @@ -4,7 +4,8 @@ "version": "0.11.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Gephi' AND publisher = 'Gephi';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Gephi' AND publisher = 'Gephi' AND version_compare(version, '0.11.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Gephi' AND publisher = 'Gephi' AND version_compare(version, '0.11.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'gephi.exe');" }, "installer_url": "https://github.com/gephi/gephi/releases/download/v0.11.2/gephi-0.11.2-windows-x64.exe", "install_script_ref": "7da5f4b3", diff --git a/ee/maintained-apps/outputs/ghostty/darwin.json b/ee/maintained-apps/outputs/ghostty/darwin.json index 9dd600e90be..4ff5fbbfc1a 100644 --- a/ee/maintained-apps/outputs/ghostty/darwin.json +++ b/ee/maintained-apps/outputs/ghostty/darwin.json @@ -4,7 +4,8 @@ "version": "1.3.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mitchellh.ghostty';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mitchellh.ghostty' AND version_compare(bundle_short_version, '1.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mitchellh.ghostty' AND version_compare(bundle_short_version, '1.3.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mitchellh.ghostty');" }, "installer_url": "https://release.files.ghostty.org/1.3.1/Ghostty.dmg", "install_script_ref": "7b4dc14e", diff --git a/ee/maintained-apps/outputs/gimp/darwin.json b/ee/maintained-apps/outputs/gimp/darwin.json index fe97478ff4b..2f9ff183590 100644 --- a/ee/maintained-apps/outputs/gimp/darwin.json +++ b/ee/maintained-apps/outputs/gimp/darwin.json @@ -4,7 +4,8 @@ "version": "3.2.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.gimp.gimp-3.0';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.gimp.gimp-3.0' AND version_compare(bundle_short_version, '3.2.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.gimp.gimp-3.0' AND version_compare(bundle_short_version, '3.2.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.gimp.gimp-3.0');" }, "installer_url": "https://download.gimp.org/gimp/v3.2/macos/gimp-3.2.4-arm64.dmg", "install_script_ref": "7c3a81a2", diff --git a/ee/maintained-apps/outputs/gimp/windows.json b/ee/maintained-apps/outputs/gimp/windows.json index 5a8523ce349..6183e0514c2 100644 --- a/ee/maintained-apps/outputs/gimp/windows.json +++ b/ee/maintained-apps/outputs/gimp/windows.json @@ -4,7 +4,8 @@ "version": "3.2.4.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'GIMP %' AND publisher = 'The GIMP Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'GIMP %' AND publisher = 'The GIMP Team' AND version_compare(version, '3.2.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'GIMP %' AND publisher = 'The GIMP Team' AND version_compare(version, '3.2.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'gimp.exe');" }, "installer_url": "https://download.gimp.org/gimp/v3.2/windows/gimp-3.2.4-setup.exe", "install_script_ref": "7e5269bc", diff --git a/ee/maintained-apps/outputs/git-extensions/windows.json b/ee/maintained-apps/outputs/git-extensions/windows.json index 132d9ae4a41..451a66d93a0 100644 --- a/ee/maintained-apps/outputs/git-extensions/windows.json +++ b/ee/maintained-apps/outputs/git-extensions/windows.json @@ -4,7 +4,8 @@ "version": "7.2.0.92", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Git Extensions %' AND publisher = 'Git Extensions Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Git Extensions %' AND publisher = 'Git Extensions Team' AND version_compare(version, '7.2.0.92') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Git Extensions %' AND publisher = 'Git Extensions Team' AND version_compare(version, '7.2.0.92') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'git extensions.exe');" }, "installer_url": "https://github.com/gitextensions/gitextensions/releases/download/v7.2.0/GitExtensions-x64-7.2.0.92-501f831.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/git/windows.json b/ee/maintained-apps/outputs/git/windows.json index 2715bf9ae86..3ce28a7271c 100644 --- a/ee/maintained-apps/outputs/git/windows.json +++ b/ee/maintained-apps/outputs/git/windows.json @@ -4,7 +4,8 @@ "version": "2.55.0.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Git%' AND publisher = 'The Git Development Community';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Git%' AND publisher = 'The Git Development Community' AND version_compare(version, '2.55.0.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Git%' AND publisher = 'The Git Development Community' AND version_compare(version, '2.55.0.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'git.exe');" }, "installer_url": "https://github.com/git-for-windows/git/releases/download/v2.55.0.windows.3/Git-2.55.0.3-64-bit.exe", "install_script_ref": "64df8252", diff --git a/ee/maintained-apps/outputs/gitfinder/darwin.json b/ee/maintained-apps/outputs/gitfinder/darwin.json index 50aa766dc3e..f0a5798d5ce 100644 --- a/ee/maintained-apps/outputs/gitfinder/darwin.json +++ b/ee/maintained-apps/outputs/gitfinder/darwin.json @@ -4,7 +4,8 @@ "version": "1.7.11", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ag.zigz.GitFinder';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ag.zigz.GitFinder' AND version_compare(bundle_short_version, '1.7.11') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ag.zigz.GitFinder' AND version_compare(bundle_short_version, '1.7.11') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'ag.zigz.GitFinder');" }, "installer_url": "https://gitfinder.com/updates/GitFinder1_7_11.dmg", "install_script_ref": "faaa0fc7", diff --git a/ee/maintained-apps/outputs/github-copilot-for-xcode/darwin.json b/ee/maintained-apps/outputs/github-copilot-for-xcode/darwin.json index ff3d5300856..ef22b0aa458 100644 --- a/ee/maintained-apps/outputs/github-copilot-for-xcode/darwin.json +++ b/ee/maintained-apps/outputs/github-copilot-for-xcode/darwin.json @@ -4,7 +4,8 @@ "version": "0.50.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.CopilotForXcode';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.CopilotForXcode' AND version_compare(bundle_short_version, '0.50.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.CopilotForXcode' AND version_compare(bundle_short_version, '0.50.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.github.CopilotForXcode');" }, "installer_url": "https://githubcopilotide.z13.web.core.windows.net/0.50.0/GitHubCopilotForXcode.dmg", "install_script_ref": "ad9d6ab1", diff --git a/ee/maintained-apps/outputs/github-desktop/windows.json b/ee/maintained-apps/outputs/github-desktop/windows.json index ad4bf4bf829..b3f53e909a7 100644 --- a/ee/maintained-apps/outputs/github-desktop/windows.json +++ b/ee/maintained-apps/outputs/github-desktop/windows.json @@ -4,7 +4,8 @@ "version": "3.6.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'GitHub Desktop' AND publisher = 'GitHub, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GitHub Desktop' AND publisher = 'GitHub, Inc.' AND version_compare(version, '3.6.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GitHub Desktop' AND publisher = 'GitHub, Inc.' AND version_compare(version, '3.6.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'github desktop.exe');" }, "installer_url": "https://desktop.githubusercontent.com/releases/3.6.3-931da4a1/GitHubDesktopSetup-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/github/darwin.json b/ee/maintained-apps/outputs/github/darwin.json index 31b30d2e8a9..7f95cd5cbee 100644 --- a/ee/maintained-apps/outputs/github/darwin.json +++ b/ee/maintained-apps/outputs/github/darwin.json @@ -4,7 +4,8 @@ "version": "3.6.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.GitHubClient';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.GitHubClient' AND version_compare(bundle_short_version, '3.6.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.GitHubClient' AND version_compare(bundle_short_version, '3.6.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.github.GitHubClient');" }, "installer_url": "https://desktop.githubusercontent.com/releases/3.6.3-931da4a1/GitHubDesktop-arm64.zip", "install_script_ref": "7ed6a869", diff --git a/ee/maintained-apps/outputs/gitify/darwin.json b/ee/maintained-apps/outputs/gitify/darwin.json index d5f7c750cc7..ef5435e6674 100644 --- a/ee/maintained-apps/outputs/gitify/darwin.json +++ b/ee/maintained-apps/outputs/gitify/darwin.json @@ -4,7 +4,8 @@ "version": "7.2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.gitify';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.gitify' AND version_compare(bundle_short_version, '7.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.gitify' AND version_compare(bundle_short_version, '7.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.gitify');" }, "installer_url": "https://github.com/gitify-app/gitify/releases/download/v7.2.0/Gitify-7.2.0-universal-mac.zip", "install_script_ref": "335acee0", diff --git a/ee/maintained-apps/outputs/gitkraken/darwin.json b/ee/maintained-apps/outputs/gitkraken/darwin.json index 2112f31aad2..c97ff26a123 100644 --- a/ee/maintained-apps/outputs/gitkraken/darwin.json +++ b/ee/maintained-apps/outputs/gitkraken/darwin.json @@ -4,7 +4,8 @@ "version": "12.4.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.axosoft.gitkraken';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.axosoft.gitkraken' AND version_compare(bundle_short_version, '12.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.axosoft.gitkraken' AND version_compare(bundle_short_version, '12.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.axosoft.gitkraken');" }, "installer_url": "https://api.gitkraken.dev/releases/production/darwin/arm64/12.4.0/GitKraken-v12.4.0.zip", "install_script_ref": "d255d46a", diff --git a/ee/maintained-apps/outputs/gitkraken/windows.json b/ee/maintained-apps/outputs/gitkraken/windows.json index 54257ab08c7..38c9ee27101 100644 --- a/ee/maintained-apps/outputs/gitkraken/windows.json +++ b/ee/maintained-apps/outputs/gitkraken/windows.json @@ -4,7 +4,8 @@ "version": "12.4.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'GitKraken' AND publisher = 'GitKraken';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GitKraken' AND publisher = 'GitKraken' AND version_compare(version, '12.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GitKraken' AND publisher = 'GitKraken' AND version_compare(version, '12.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'gitkraken.exe');" }, "installer_url": "https://api.gitkraken.dev/releases/production/windows/x64/12.4.0/GitKrakenSetup.exe", "install_script_ref": "c85d5da1", diff --git a/ee/maintained-apps/outputs/gitup-app/darwin.json b/ee/maintained-apps/outputs/gitup-app/darwin.json index 33bbcd8af04..51179b87a0d 100644 --- a/ee/maintained-apps/outputs/gitup-app/darwin.json +++ b/ee/maintained-apps/outputs/gitup-app/darwin.json @@ -4,7 +4,8 @@ "version": "1.5.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'co.gitup.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.gitup.mac' AND version_compare(bundle_short_version, '1.5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.gitup.mac' AND version_compare(bundle_short_version, '1.5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'co.gitup.mac');" }, "installer_url": "https://github.com/git-up/GitUp/releases/download/v1.5.0/GitUp.zip", "install_script_ref": "b4a978fe", diff --git a/ee/maintained-apps/outputs/glyphs/darwin.json b/ee/maintained-apps/outputs/glyphs/darwin.json index 58e465151a1..aef5a0458d6 100644 --- a/ee/maintained-apps/outputs/glyphs/darwin.json +++ b/ee/maintained-apps/outputs/glyphs/darwin.json @@ -4,7 +4,8 @@ "version": "3.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.GeorgSeifert.Glyphs3';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.GeorgSeifert.Glyphs3' AND version_compare(bundle_short_version, '3.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.GeorgSeifert.Glyphs3' AND version_compare(bundle_short_version, '3.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.GeorgSeifert.Glyphs3');" }, "installer_url": "https://updates.glyphsapp.com/Glyphs3.5-3530.zip", "install_script_ref": "82042f03", diff --git a/ee/maintained-apps/outputs/gnupg/windows.json b/ee/maintained-apps/outputs/gnupg/windows.json index df50bb07928..7589335d6b0 100644 --- a/ee/maintained-apps/outputs/gnupg/windows.json +++ b/ee/maintained-apps/outputs/gnupg/windows.json @@ -4,7 +4,8 @@ "version": "2.5.21", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'GNU Privacy Guard' AND publisher = 'The GnuPG Project';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GNU Privacy Guard' AND publisher = 'The GnuPG Project' AND version_compare(version, '2.5.21') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GNU Privacy Guard' AND publisher = 'The GnuPG Project' AND version_compare(version, '2.5.21') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'gnu privacy guard.exe');" }, "installer_url": "https://gnupg.org/ftp/gcrypt/binary/gnupg-w32-2.5.21_20260702.exe", "install_script_ref": "8c2ff75e", diff --git a/ee/maintained-apps/outputs/go/windows.json b/ee/maintained-apps/outputs/go/windows.json index 5240fc0d791..39a092c9399 100644 --- a/ee/maintained-apps/outputs/go/windows.json +++ b/ee/maintained-apps/outputs/go/windows.json @@ -4,7 +4,8 @@ "version": "1.26.5", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Go Programming Language%' AND publisher = 'https://go.dev';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Go Programming Language%' AND publisher = 'https://go.dev' AND version_compare(version, '1.26.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Go Programming Language%' AND publisher = 'https://go.dev' AND version_compare(version, '1.26.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'go.exe');" }, "installer_url": "https://go.dev/dl/go1.26.5.windows-amd64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/go2shell/darwin.json b/ee/maintained-apps/outputs/go2shell/darwin.json index 7af0c00ed28..90503a6e28c 100644 --- a/ee/maintained-apps/outputs/go2shell/darwin.json +++ b/ee/maintained-apps/outputs/go2shell/darwin.json @@ -4,7 +4,8 @@ "version": "2.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.zipzapmac.Go2Shell';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.zipzapmac.Go2Shell' AND version_compare(bundle_short_version, '2.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.zipzapmac.Go2Shell' AND version_compare(bundle_short_version, '2.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.zipzapmac.Go2Shell');" }, "installer_url": "https://zipzapmac.com/DMGs/Go2Shell.dmg", "install_script_ref": "92ef1fd1", diff --git a/ee/maintained-apps/outputs/goanywhere-openpgp-studio/windows.json b/ee/maintained-apps/outputs/goanywhere-openpgp-studio/windows.json index 5ed291bc6db..945335e8834 100644 --- a/ee/maintained-apps/outputs/goanywhere-openpgp-studio/windows.json +++ b/ee/maintained-apps/outputs/goanywhere-openpgp-studio/windows.json @@ -4,7 +4,8 @@ "version": "1.2.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'GoAnywhere OpenPGP Studio' AND publisher = 'Fortra';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GoAnywhere OpenPGP Studio' AND publisher = 'Fortra' AND version_compare(version, '1.2.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GoAnywhere OpenPGP Studio' AND publisher = 'Fortra' AND version_compare(version, '1.2.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'goanywhere openpgp studio.exe');" }, "installer_url": "https://static.goanywhere.com/releases/goanywhere/openpgpstudio/gapgpstudio1_2_3_windows-x64.exe", "install_script_ref": "d871f28a", diff --git a/ee/maintained-apps/outputs/godot/darwin.json b/ee/maintained-apps/outputs/godot/darwin.json index cfe59a7312f..1566d49ba1c 100644 --- a/ee/maintained-apps/outputs/godot/darwin.json +++ b/ee/maintained-apps/outputs/godot/darwin.json @@ -4,7 +4,8 @@ "version": "4.7.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.godotengine.godot';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.godotengine.godot' AND version_compare(bundle_short_version, '4.7.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.godotengine.godot' AND version_compare(bundle_short_version, '4.7.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.godotengine.godot');" }, "installer_url": "https://github.com/godotengine/godot/releases/download/4.7.1-stable/Godot_v4.7.1-stable_macos.universal.zip", "install_script_ref": "1d550a06", diff --git a/ee/maintained-apps/outputs/godspeed/darwin.json b/ee/maintained-apps/outputs/godspeed/darwin.json index c2b06885585..0677fdfa1f3 100644 --- a/ee/maintained-apps/outputs/godspeed/darwin.json +++ b/ee/maintained-apps/outputs/godspeed/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.19", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.godspeedapp.Godspeed';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.godspeedapp.Godspeed' AND version_compare(bundle_short_version, '1.9.19') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.godspeedapp.Godspeed' AND version_compare(bundle_short_version, '1.9.19') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.godspeedapp.Godspeed');" }, "installer_url": "https://app-updates.godspeedapp.com/1.9.19%2FGodspeed.zip", "install_script_ref": "9dbdbbed", diff --git a/ee/maintained-apps/outputs/gog-galaxy/darwin.json b/ee/maintained-apps/outputs/gog-galaxy/darwin.json index 680c5fb3313..2b977b9df28 100644 --- a/ee/maintained-apps/outputs/gog-galaxy/darwin.json +++ b/ee/maintained-apps/outputs/gog-galaxy/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.8.32", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.gog.galaxy.cef.renderer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gog.galaxy.cef.renderer' AND version_compare(bundle_short_version, '2.1.8.32') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gog.galaxy.cef.renderer' AND version_compare(bundle_short_version, '2.1.8.32') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.gog.galaxy.cef.renderer');" }, "installer_url": "https://gog-cdn-fastly.gog.com/open/galaxy/client/galaxy_client_2.1.8.32.pkg", "install_script_ref": "89b9a1b7", diff --git a/ee/maintained-apps/outputs/gog-galaxy/windows.json b/ee/maintained-apps/outputs/gog-galaxy/windows.json index 86bb9ad64f1..718629d64f3 100644 --- a/ee/maintained-apps/outputs/gog-galaxy/windows.json +++ b/ee/maintained-apps/outputs/gog-galaxy/windows.json @@ -4,7 +4,8 @@ "version": "2.1.7.22", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'GOG GALAXY' AND publisher = 'GOG.com';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GOG GALAXY' AND publisher = 'GOG.com' AND version_compare(version, '2.1.7.22') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GOG GALAXY' AND publisher = 'GOG.com' AND version_compare(version, '2.1.7.22') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'gog galaxy.exe');" }, "installer_url": "https://content-system.gog.com/open_link/download?path=/open/galaxy/client/setup_galaxy_2.1.7.22.exe", "install_script_ref": "e1c78c6b", diff --git a/ee/maintained-apps/outputs/goland/darwin.json b/ee/maintained-apps/outputs/goland/darwin.json index 4046f3b9985..fcde14601c2 100644 --- a/ee/maintained-apps/outputs/goland/darwin.json +++ b/ee/maintained-apps/outputs/goland/darwin.json @@ -4,7 +4,8 @@ "version": "2026.2.0.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.goland';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.goland' AND version_compare(bundle_short_version, '2026.2.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.goland' AND version_compare(bundle_short_version, '2026.2.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jetbrains.goland');" }, "installer_url": "https://download.jetbrains.com/go/goland-2026.2.0.1-aarch64.dmg", "install_script_ref": "d74419ae", diff --git a/ee/maintained-apps/outputs/goland/windows.json b/ee/maintained-apps/outputs/goland/windows.json index 71ac732e338..efa04bd55dd 100644 --- a/ee/maintained-apps/outputs/goland/windows.json +++ b/ee/maintained-apps/outputs/goland/windows.json @@ -4,7 +4,8 @@ "version": "2026.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'GoLand %' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'GoLand %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.8665.270') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'GoLand %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.8665.270') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('goland.exe','goland64.exe'));" }, "installer_url": "https://download.jetbrains.com/go/goland-2026.2.exe", "install_script_ref": "6d754683", diff --git a/ee/maintained-apps/outputs/goldendict-ng/windows.json b/ee/maintained-apps/outputs/goldendict-ng/windows.json index 2c43c822b67..423c234e54a 100644 --- a/ee/maintained-apps/outputs/goldendict-ng/windows.json +++ b/ee/maintained-apps/outputs/goldendict-ng/windows.json @@ -4,7 +4,8 @@ "version": "26.8.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'GoldenDict-ng';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GoldenDict-ng' AND version_compare(version, '26.8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GoldenDict-ng' AND version_compare(version, '26.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'goldendict-ng.exe');" }, "installer_url": "https://github.com/xiaoyifang/goldendict-ng/releases/download/v26.8.0/GoldenDict-ng-26.8.0-Qt6.8.3-Windows-installer.exe", "install_script_ref": "cfd3838e", diff --git a/ee/maintained-apps/outputs/goodsync/darwin.json b/ee/maintained-apps/outputs/goodsync/darwin.json index f0c1ec3fe98..8797a3a6064 100644 --- a/ee/maintained-apps/outputs/goodsync/darwin.json +++ b/ee/maintained-apps/outputs/goodsync/darwin.json @@ -4,7 +4,8 @@ "version": "12.11.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sibersystems.goodsyncmac2000';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sibersystems.goodsyncmac2000' AND version_compare(bundle_short_version, '12.11.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sibersystems.goodsyncmac2000' AND version_compare(bundle_short_version, '12.11.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sibersystems.goodsyncmac2000');" }, "installer_url": "https://www.goodsync.com/download/goodsync-vsub-mac.dmg", "install_script_ref": "8bba2d96", diff --git a/ee/maintained-apps/outputs/google-ads-editor/windows.json b/ee/maintained-apps/outputs/google-ads-editor/windows.json index c6e04db4282..fdbaf3f2b25 100644 --- a/ee/maintained-apps/outputs/google-ads-editor/windows.json +++ b/ee/maintained-apps/outputs/google-ads-editor/windows.json @@ -4,7 +4,8 @@ "version": "14.13.3.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Google Ads Editor' AND publisher = 'Google';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Google Ads Editor' AND publisher = 'Google' AND version_compare(version, '14.13.3.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Google Ads Editor' AND publisher = 'Google' AND version_compare(version, '14.13.3.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'google ads editor.exe');" }, "installer_url": "https://dl.google.com/release2/misc/acmvm66t27zlttnusd3dbpuwmudq_14.13.3.0/google_ads_editor.msi", "install_script_ref": "351845b5", diff --git a/ee/maintained-apps/outputs/google-chrome/darwin.json b/ee/maintained-apps/outputs/google-chrome/darwin.json index 9fd90b2d9b3..68608f5f21c 100644 --- a/ee/maintained-apps/outputs/google-chrome/darwin.json +++ b/ee/maintained-apps/outputs/google-chrome/darwin.json @@ -4,7 +4,8 @@ "version": "151.0.7922.109", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.Chrome';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.Chrome' AND version_compare(bundle_short_version, '151.0.7922.109') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.Chrome' AND version_compare(bundle_short_version, '151.0.7922.109') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.google.Chrome');" }, "installer_url": "https://dl.google.com/dl/chrome/mac/universal/stable/gcem/GoogleChrome.pkg", "install_script_ref": "02a1baed", diff --git a/ee/maintained-apps/outputs/google-chrome/windows.json b/ee/maintained-apps/outputs/google-chrome/windows.json index 97d55e826ec..ba33ada0c04 100644 --- a/ee/maintained-apps/outputs/google-chrome/windows.json +++ b/ee/maintained-apps/outputs/google-chrome/windows.json @@ -4,7 +4,8 @@ "version": "151.0.7922.76", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Google Chrome' AND publisher = 'Google LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Google Chrome' AND publisher = 'Google LLC' AND version_compare(version, '151.0.7922.76') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Google Chrome' AND publisher = 'Google LLC' AND version_compare(version, '151.0.7922.76') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'chrome.exe');" }, "installer_url": "https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/google-drive/darwin.json b/ee/maintained-apps/outputs/google-drive/darwin.json index 27be2ede334..0c53d8beafe 100644 --- a/ee/maintained-apps/outputs/google-drive/darwin.json +++ b/ee/maintained-apps/outputs/google-drive/darwin.json @@ -4,7 +4,8 @@ "version": "129.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.drivefs';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.drivefs' AND version_compare(bundle_short_version, '129.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.drivefs' AND version_compare(bundle_short_version, '129.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.google.drivefs');" }, "installer_url": "https://dl.google.com/drive-file-stream/5-percent/GoogleDrive.dmg", "install_script_ref": "fb03b6bd", diff --git a/ee/maintained-apps/outputs/google-drive/windows.json b/ee/maintained-apps/outputs/google-drive/windows.json index 0d4a714bfc6..e191f04a04c 100644 --- a/ee/maintained-apps/outputs/google-drive/windows.json +++ b/ee/maintained-apps/outputs/google-drive/windows.json @@ -4,7 +4,8 @@ "version": "129.0.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Google Drive' AND publisher = 'Google LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Google Drive' AND publisher = 'Google LLC' AND version_compare(version, '129.0.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Google Drive' AND publisher = 'Google LLC' AND version_compare(version, '129.0.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'google drive.exe');" }, "installer_url": "https://dl.google.com/release2/drive-file-stream/adrnonybri4rh25g3rwcs6mgeqva_129.0.1.0/setup.exe", "install_script_ref": "fa36b892", diff --git a/ee/maintained-apps/outputs/google-earth-pro/darwin.json b/ee/maintained-apps/outputs/google-earth-pro/darwin.json index f67dbf96ce3..35bdbcd91bb 100644 --- a/ee/maintained-apps/outputs/google-earth-pro/darwin.json +++ b/ee/maintained-apps/outputs/google-earth-pro/darwin.json @@ -4,7 +4,8 @@ "version": "7.3.7.1155", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.GoogleEarthUpdateHelper';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.GoogleEarthUpdateHelper' AND version_compare(bundle_short_version, '7.3.7.1155') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.GoogleEarthUpdateHelper' AND version_compare(bundle_short_version, '7.3.7.1155') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.google.GoogleEarthUpdateHelper');" }, "installer_url": "https://dl.google.com/dl/earth/client/advanced/current/googleearthpromac-intel-7.3.7.dmg", "install_script_ref": "812a1706", diff --git a/ee/maintained-apps/outputs/google-earth-pro/windows.json b/ee/maintained-apps/outputs/google-earth-pro/windows.json index aa8462f4dcc..c9534065e1e 100644 --- a/ee/maintained-apps/outputs/google-earth-pro/windows.json +++ b/ee/maintained-apps/outputs/google-earth-pro/windows.json @@ -4,7 +4,8 @@ "version": "7.3.7.1155", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Google Earth Pro' AND publisher = 'Google';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Google Earth Pro' AND publisher = 'Google' AND version_compare(version, '7.3.7.1155') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Google Earth Pro' AND publisher = 'Google' AND version_compare(version, '7.3.7.1155') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'google earth pro.exe');" }, "installer_url": "https://dl.google.com/release2/Earth/duhweelqjwtdslrbgzm7ehfkc4_7.3.7.1155/googleearth-win-pro-7.3.7.1155-x64.exe", "install_script_ref": "8916df19", diff --git a/ee/maintained-apps/outputs/google-gemini/darwin.json b/ee/maintained-apps/outputs/google-gemini/darwin.json index 6f24d22eaab..e42ad589ecf 100644 --- a/ee/maintained-apps/outputs/google-gemini/darwin.json +++ b/ee/maintained-apps/outputs/google-gemini/darwin.json @@ -4,7 +4,8 @@ "version": "1.92.1.684", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.GeminiMacOS';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.GeminiMacOS' AND version_compare(bundle_short_version, '1.92.1.684') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.GeminiMacOS' AND version_compare(bundle_short_version, '1.92.1.684') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.google.GeminiMacOS');" }, "installer_url": "https://dl.google.com/release2/j33ro/release/Gemini.dmg", "install_script_ref": "42bb1ca2", diff --git a/ee/maintained-apps/outputs/google-web-designer/windows.json b/ee/maintained-apps/outputs/google-web-designer/windows.json index 6bc433200ce..36864a20287 100644 --- a/ee/maintained-apps/outputs/google-web-designer/windows.json +++ b/ee/maintained-apps/outputs/google-web-designer/windows.json @@ -4,7 +4,8 @@ "version": "14.3.0.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Google Web Designer' AND publisher = 'Google LLC.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Google Web Designer' AND publisher = 'Google LLC.' AND version_compare(version, '14.3.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Google Web Designer' AND publisher = 'Google LLC.' AND version_compare(version, '14.3.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'google web designer.exe');" }, "installer_url": "https://dl.google.com/release2/Webdesigner/acky5xyddb2r44okdi2iwoujpiwa_14.3.0.0/googlewebdesigner_win_x64_14.3.0.0.exe", "install_script_ref": "a7d586ca", diff --git a/ee/maintained-apps/outputs/gotomeeting/darwin.json b/ee/maintained-apps/outputs/gotomeeting/darwin.json index f1d8cdc5df6..dd7ac1938eb 100644 --- a/ee/maintained-apps/outputs/gotomeeting/darwin.json +++ b/ee/maintained-apps/outputs/gotomeeting/darwin.json @@ -4,7 +4,8 @@ "version": "19950", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.logmein.GoToMeeting';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.logmein.GoToMeeting' AND version_compare(bundle_short_version, '19950') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.logmein.GoToMeeting' AND version_compare(bundle_short_version, '19950') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.logmein.GoToMeeting');" }, "installer_url": "https://builds.cdn.getgo.com/builds/g2m/19950/GoToMeeting.dmg", "install_script_ref": "7e7c6b9f", diff --git a/ee/maintained-apps/outputs/gotomeeting/windows.json b/ee/maintained-apps/outputs/gotomeeting/windows.json index a4e437063dd..2fb462166e0 100644 --- a/ee/maintained-apps/outputs/gotomeeting/windows.json +++ b/ee/maintained-apps/outputs/gotomeeting/windows.json @@ -4,7 +4,8 @@ "version": "10.19.0.19950", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'GoToMeeting %';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'GoToMeeting %' AND version_compare(version, '10.19.0.19950') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'GoToMeeting %' AND version_compare(version, '10.19.0.19950') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'gotomeeting.exe');" }, "installer_url": "https://link.gotomeeting.com/latest-msi", "install_script_ref": "a6c7d24e", diff --git a/ee/maintained-apps/outputs/gpg-suite/darwin.json b/ee/maintained-apps/outputs/gpg-suite/darwin.json index 63535acb3d8..65bbef5d1d4 100644 --- a/ee/maintained-apps/outputs/gpg-suite/darwin.json +++ b/ee/maintained-apps/outputs/gpg-suite/darwin.json @@ -4,7 +4,8 @@ "version": "2023.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.gpgtools.updater';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.gpgtools.updater' AND version_compare(bundle_short_version, '2023.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.gpgtools.updater' AND version_compare(bundle_short_version, '2023.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.gpgtools.updater');" }, "installer_url": "https://releases.gpgtools.org/GPG_Suite-2023.3.dmg", "install_script_ref": "73599142", diff --git a/ee/maintained-apps/outputs/gpg4win/windows.json b/ee/maintained-apps/outputs/gpg4win/windows.json index 04294c5429f..753664b34b1 100644 --- a/ee/maintained-apps/outputs/gpg4win/windows.json +++ b/ee/maintained-apps/outputs/gpg4win/windows.json @@ -4,7 +4,8 @@ "version": "5.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Gpg4win %' AND publisher = 'The Gpg4win Project';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Gpg4win %' AND publisher = 'The Gpg4win Project' AND version_compare(version, '5.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Gpg4win %' AND publisher = 'The Gpg4win Project' AND version_compare(version, '5.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'gpg4win.exe');" }, "installer_url": "https://files.gpg4win.org/gpg4win-5.1.0.exe", "install_script_ref": "33dd6930", diff --git a/ee/maintained-apps/outputs/gpodder/darwin.json b/ee/maintained-apps/outputs/gpodder/darwin.json index a24dc504b2b..4c216b582a8 100644 --- a/ee/maintained-apps/outputs/gpodder/darwin.json +++ b/ee/maintained-apps/outputs/gpodder/darwin.json @@ -4,7 +4,8 @@ "version": "3.11.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.gpodder.gpodder';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.gpodder.gpodder' AND version_compare(bundle_short_version, '3.11.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.gpodder.gpodder' AND version_compare(bundle_short_version, '3.11.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.gpodder.gpodder');" }, "installer_url": "https://github.com/gpodder/gpodder/releases/download/3.11.5/macOS-gPodder-3.11.5.zip", "install_script_ref": "94cf1b81", diff --git a/ee/maintained-apps/outputs/gpodder/windows.json b/ee/maintained-apps/outputs/gpodder/windows.json index 6f191c54c77..c92ce448d03 100644 --- a/ee/maintained-apps/outputs/gpodder/windows.json +++ b/ee/maintained-apps/outputs/gpodder/windows.json @@ -4,7 +4,8 @@ "version": "3.11.5", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'gPodder' AND publisher = 'The gPodder Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'gPodder' AND publisher = 'The gPodder Team' AND version_compare(version, '3.11.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'gPodder' AND publisher = 'The gPodder Team' AND version_compare(version, '3.11.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'gpodder.exe');" }, "installer_url": "https://github.com/gpodder/gpodder/releases/download/3.11.5/windows-gpodder-3.11.5-installer.exe", "install_script_ref": "d02fa30e", diff --git a/ee/maintained-apps/outputs/grammarly-desktop/darwin.json b/ee/maintained-apps/outputs/grammarly-desktop/darwin.json index 6ecd2ebe4b1..81ac3f76575 100644 --- a/ee/maintained-apps/outputs/grammarly-desktop/darwin.json +++ b/ee/maintained-apps/outputs/grammarly-desktop/darwin.json @@ -4,7 +4,8 @@ "version": "1.181.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.grammarly.ProjectLlama';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.grammarly.ProjectLlama' AND version_compare(bundle_short_version, '1.181.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.grammarly.ProjectLlama' AND version_compare(bundle_short_version, '1.181.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.grammarly.ProjectLlama');" }, "installer_url": "https://download-mac.grammarly.com/versions/1.181.2.0/Grammarly.dmg", "install_script_ref": "8274b7dd", diff --git a/ee/maintained-apps/outputs/grandperspective/darwin.json b/ee/maintained-apps/outputs/grandperspective/darwin.json index 8a45e291bb1..b81a4c3b890 100644 --- a/ee/maintained-apps/outputs/grandperspective/darwin.json +++ b/ee/maintained-apps/outputs/grandperspective/darwin.json @@ -4,7 +4,8 @@ "version": "3.7.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.sourceforge.grandperspectiv';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.sourceforge.grandperspectiv' AND version_compare(bundle_short_version, '3.7.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.sourceforge.grandperspectiv' AND version_compare(bundle_short_version, '3.7.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.sourceforge.grandperspectiv');" }, "installer_url": "https://downloads.sourceforge.net/grandperspectiv/grandperspective/3.7.2/GrandPerspective-3_7_2.dmg", "install_script_ref": "358f677e", diff --git a/ee/maintained-apps/outputs/granola/darwin.json b/ee/maintained-apps/outputs/granola/darwin.json index c892c8800be..d714181d96a 100644 --- a/ee/maintained-apps/outputs/granola/darwin.json +++ b/ee/maintained-apps/outputs/granola/darwin.json @@ -4,7 +4,8 @@ "version": "7.469.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.granola.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.granola.app' AND version_compare(bundle_short_version, '7.469.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.granola.app' AND version_compare(bundle_short_version, '7.469.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.granola.app');" }, "installer_url": "https://dr2v7l5emb758.cloudfront.net/7.469.1/Granola-7.469.1-mac-universal.dmg", "install_script_ref": "08a593fa", diff --git a/ee/maintained-apps/outputs/granola/windows.json b/ee/maintained-apps/outputs/granola/windows.json index bbbf9d5dd81..b68d0170608 100644 --- a/ee/maintained-apps/outputs/granola/windows.json +++ b/ee/maintained-apps/outputs/granola/windows.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "7.452.4", + "version": "7.469.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Granola %' AND publisher = 'Granola';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Granola %' AND publisher = 'Granola' AND version_compare(version, '7.452.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Granola %' AND publisher = 'Granola' AND version_compare(version, '7.469.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'granola.exe');" }, - "installer_url": "https://dr2v7l5emb758.cloudfront.net/7.452.4/Granola-7.452.4-win-x64.exe", + "installer_url": "https://dr2v7l5emb758.cloudfront.net/7.469.1/Granola-7.469.1-win-x64.exe", "install_script_ref": "3f66ac53", "uninstall_script_ref": "a4fab3f5", - "sha256": "dbbbf0a3895993526eeaa40eed6de32b750799f2fa917c2f86356b4c17492e6e", + "sha256": "28e8c328a260673df2dc2bb6720e980bf1622df2dec3be9f89cc6cf286fdd60c", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/graphviz/windows.json b/ee/maintained-apps/outputs/graphviz/windows.json index fd1fb51468c..663532784ed 100644 --- a/ee/maintained-apps/outputs/graphviz/windows.json +++ b/ee/maintained-apps/outputs/graphviz/windows.json @@ -4,7 +4,8 @@ "version": "15.1.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Graphviz' AND publisher = 'Graphviz';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Graphviz' AND publisher = 'Graphviz' AND version_compare(version, '15.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Graphviz' AND publisher = 'Graphviz' AND version_compare(version, '15.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'graphviz.exe');" }, "installer_url": "https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/15.1.1/windows_10_cmake_Release_graphviz-install-15.1.1-win64.exe", "install_script_ref": "8456d4ce", diff --git a/ee/maintained-apps/outputs/grepwin/windows.json b/ee/maintained-apps/outputs/grepwin/windows.json index 56978fa49aa..d8e7bac2fde 100644 --- a/ee/maintained-apps/outputs/grepwin/windows.json +++ b/ee/maintained-apps/outputs/grepwin/windows.json @@ -4,7 +4,8 @@ "version": "2.1.1434", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'grepWin' AND publisher = 'Stefans Tools';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'grepWin' AND publisher = 'Stefans Tools' AND version_compare(version, '2.1.1434') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'grepWin' AND publisher = 'Stefans Tools' AND version_compare(version, '2.1.1434') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'grepwin.exe');" }, "installer_url": "https://github.com/stefankueng/grepWin/releases/download/2.1.12/grepWin-2.1.12-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/grids/darwin.json b/ee/maintained-apps/outputs/grids/darwin.json index 88f8b6a859d..3f4a2b48452 100644 --- a/ee/maintained-apps/outputs/grids/darwin.json +++ b/ee/maintained-apps/outputs/grids/darwin.json @@ -4,7 +4,8 @@ "version": "8.5.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.thinktimecreations.Grids';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.thinktimecreations.Grids' AND version_compare(bundle_short_version, '8.5.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.thinktimecreations.Grids' AND version_compare(bundle_short_version, '8.5.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.thinktimecreations.Grids');" }, "installer_url": "https://gridsapp.net/bin/Grids_8.5.8.zip", "install_script_ref": "847f3ff9", diff --git a/ee/maintained-apps/outputs/groove-omnidialer/darwin.json b/ee/maintained-apps/outputs/groove-omnidialer/darwin.json index 8141c762737..1d0a0d18c2c 100644 --- a/ee/maintained-apps/outputs/groove-omnidialer/darwin.json +++ b/ee/maintained-apps/outputs/groove-omnidialer/darwin.json @@ -4,7 +4,8 @@ "version": "26.723.1023", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dialer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dialer' AND version_compare(bundle_short_version, '26.723.1023') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dialer' AND version_compare(bundle_short_version, '26.723.1023') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.dialer');" }, "installer_url": "https://groove-dialer.s3-us-west-2.amazonaws.com/electron/Groove%20OmniDialer-26.723.1023-universal.dmg", "install_script_ref": "43b09f43", diff --git a/ee/maintained-apps/outputs/groove-omnidialer/windows.json b/ee/maintained-apps/outputs/groove-omnidialer/windows.json index 06de859ee1f..48c9b75a439 100644 --- a/ee/maintained-apps/outputs/groove-omnidialer/windows.json +++ b/ee/maintained-apps/outputs/groove-omnidialer/windows.json @@ -4,7 +4,8 @@ "version": "26.603.1020", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Groove OmniDialer %' AND name NOT LIKE 'Groove OmniDialer Enterprise%' AND publisher = 'Groove Labs, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Groove OmniDialer %' AND name NOT LIKE 'Groove OmniDialer Enterprise%' AND publisher = 'Groove Labs, Inc.' AND version_compare(version, '26.603.1020') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Groove OmniDialer %' AND name NOT LIKE 'Groove OmniDialer Enterprise%' AND publisher = 'Groove Labs, Inc.' AND version_compare(version, '26.603.1020') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'groove omnidialer.exe');" }, "installer_url": "https://groove-dialer.s3-us-west-2.amazonaws.com/electron/Groove%20OmniDialer%20Setup%2026.603.1020.exe", "install_script_ref": "f49af3d5", diff --git a/ee/maintained-apps/outputs/gyazo/darwin.json b/ee/maintained-apps/outputs/gyazo/darwin.json index dbb340d1398..7928ac9aaef 100644 --- a/ee/maintained-apps/outputs/gyazo/darwin.json +++ b/ee/maintained-apps/outputs/gyazo/darwin.json @@ -4,7 +4,8 @@ "version": "10.12.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.gyazo.menu';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gyazo.menu' AND version_compare(bundle_short_version, '10.12.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gyazo.menu' AND version_compare(bundle_short_version, '10.12.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.gyazo.menu');" }, "installer_url": "https://files.gyazo.com/setup/Gyazo-10.12.0.pkg", "install_script_ref": "0ea4a9bb", diff --git a/ee/maintained-apps/outputs/hammerspoon/darwin.json b/ee/maintained-apps/outputs/hammerspoon/darwin.json index 0d9ea3238f1..f2cc2e217ed 100644 --- a/ee/maintained-apps/outputs/hammerspoon/darwin.json +++ b/ee/maintained-apps/outputs/hammerspoon/darwin.json @@ -4,7 +4,8 @@ "version": "1.1.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.hammerspoon.Hammerspoon';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.hammerspoon.Hammerspoon' AND version_compare(bundle_short_version, '1.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.hammerspoon.Hammerspoon' AND version_compare(bundle_short_version, '1.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.hammerspoon.Hammerspoon');" }, "installer_url": "https://github.com/Hammerspoon/hammerspoon/releases/download/1.1.1/Hammerspoon-1.1.1.zip", "install_script_ref": "daad534e", diff --git a/ee/maintained-apps/outputs/handbrake-app/darwin.json b/ee/maintained-apps/outputs/handbrake-app/darwin.json index 49d1951dea0..ce3418038bb 100644 --- a/ee/maintained-apps/outputs/handbrake-app/darwin.json +++ b/ee/maintained-apps/outputs/handbrake-app/darwin.json @@ -4,7 +4,8 @@ "version": "1.11.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'fr.handbrake.HandBrake';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'fr.handbrake.HandBrake' AND version_compare(bundle_short_version, '1.11.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'fr.handbrake.HandBrake' AND version_compare(bundle_short_version, '1.11.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'fr.handbrake.HandBrake');" }, "installer_url": "https://handbrake.fr/rotation.php?file=HandBrake-1.11.2.dmg&update=true", "install_script_ref": "22c7d8a5", diff --git a/ee/maintained-apps/outputs/handbrake/windows.json b/ee/maintained-apps/outputs/handbrake/windows.json index 0ed543c130e..7ba34a07438 100644 --- a/ee/maintained-apps/outputs/handbrake/windows.json +++ b/ee/maintained-apps/outputs/handbrake/windows.json @@ -4,7 +4,8 @@ "version": "1.11.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'HandBrake %';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'HandBrake %' AND version_compare(version, '1.11.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'HandBrake %' AND version_compare(version, '1.11.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'handbrake.exe');" }, "installer_url": "https://github.com/HandBrake/HandBrake/releases/download/1.11.2/HandBrake-1.11.2-x86_64-Win_GUI.exe", "install_script_ref": "b102dbce", diff --git a/ee/maintained-apps/outputs/hazel/darwin.json b/ee/maintained-apps/outputs/hazel/darwin.json index 5823527d1e7..ed350a993d5 100644 --- a/ee/maintained-apps/outputs/hazel/darwin.json +++ b/ee/maintained-apps/outputs/hazel/darwin.json @@ -4,7 +4,8 @@ "version": "6.1.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.noodlesoft.Hazel';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.noodlesoft.Hazel' AND version_compare(bundle_short_version, '6.1.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.noodlesoft.Hazel' AND version_compare(bundle_short_version, '6.1.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.noodlesoft.Hazel');" }, "installer_url": "https://s3.amazonaws.com/Noodlesoft/Hazel-6.1.2.dmg", "install_script_ref": "5b1ef051", diff --git a/ee/maintained-apps/outputs/hazeover/darwin.json b/ee/maintained-apps/outputs/hazeover/darwin.json index 1d008e9332f..7c5c18c793e 100644 --- a/ee/maintained-apps/outputs/hazeover/darwin.json +++ b/ee/maintained-apps/outputs/hazeover/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.pointum.hazeover';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.pointum.hazeover' AND version_compare(bundle_short_version, '1.9.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.pointum.hazeover' AND version_compare(bundle_short_version, '1.9.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.pointum.hazeover');" }, "installer_url": "https://hazeover.com/HazeOver.dmg", "install_script_ref": "d2558376", diff --git a/ee/maintained-apps/outputs/heidisql/windows.json b/ee/maintained-apps/outputs/heidisql/windows.json index 67d1d4506ff..8d23ade851d 100644 --- a/ee/maintained-apps/outputs/heidisql/windows.json +++ b/ee/maintained-apps/outputs/heidisql/windows.json @@ -4,7 +4,8 @@ "version": "12.21.0.7344", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'HeidiSQL%' AND publisher = 'Ansgar Becker';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'HeidiSQL%' AND publisher = 'Ansgar Becker' AND version_compare(version, '12.21.0.7344') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'HeidiSQL%' AND publisher = 'Ansgar Becker' AND version_compare(version, '12.21.0.7344') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'heidisql.exe');" }, "installer_url": "https://github.com/HeidiSQL/HeidiSQL/releases/download/v12.21/HeidiSQL_12.21.0.7344_Setup.exe", "install_script_ref": "38d3f7b8", diff --git a/ee/maintained-apps/outputs/helium/darwin.json b/ee/maintained-apps/outputs/helium/darwin.json index b5f0a17721c..32b110882c2 100644 --- a/ee/maintained-apps/outputs/helium/darwin.json +++ b/ee/maintained-apps/outputs/helium/darwin.json @@ -4,7 +4,8 @@ "version": "1.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.koushikdutta.Helium';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.koushikdutta.Helium' AND version_compare(bundle_short_version, '1.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.koushikdutta.Helium' AND version_compare(bundle_short_version, '1.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.koushikdutta.Helium');" }, "installer_url": "https://github.com/koush/CarbonResources/releases/download/v1.0.0/carbon-mac.zip", "install_script_ref": "306a5e6f", diff --git a/ee/maintained-apps/outputs/hex-fiend/darwin.json b/ee/maintained-apps/outputs/hex-fiend/darwin.json index 94f8733c2ef..821822d1083 100644 --- a/ee/maintained-apps/outputs/hex-fiend/darwin.json +++ b/ee/maintained-apps/outputs/hex-fiend/darwin.json @@ -4,7 +4,8 @@ "version": "2.18.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ridiculousfish.HexFiend';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ridiculousfish.HexFiend' AND version_compare(bundle_short_version, '2.18.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ridiculousfish.HexFiend' AND version_compare(bundle_short_version, '2.18.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ridiculousfish.HexFiend');" }, "installer_url": "https://github.com/hexfiend/HexFiend/releases/download/v2.18.1/Hex_Fiend_2.18.1.dmg", "install_script_ref": "2897294c", diff --git a/ee/maintained-apps/outputs/hey-desktop/darwin.json b/ee/maintained-apps/outputs/hey-desktop/darwin.json index bdb23ab896c..4eb1049d580 100644 --- a/ee/maintained-apps/outputs/hey-desktop/darwin.json +++ b/ee/maintained-apps/outputs/hey-desktop/darwin.json @@ -4,7 +4,8 @@ "version": "1.3.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hey.app.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hey.app.desktop' AND version_compare(bundle_short_version, '1.3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hey.app.desktop' AND version_compare(bundle_short_version, '1.3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hey.app.desktop');" }, "installer_url": "https://hey.com/desktop/HEY-1.3.3-arm64-mac.zip", "install_script_ref": "18afb1ae", diff --git a/ee/maintained-apps/outputs/hiddenbar/darwin.json b/ee/maintained-apps/outputs/hiddenbar/darwin.json index 5a2280e07c7..f2d7ba0916b 100644 --- a/ee/maintained-apps/outputs/hiddenbar/darwin.json +++ b/ee/maintained-apps/outputs/hiddenbar/darwin.json @@ -4,7 +4,8 @@ "version": "1.10", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.dwarvesv.minimalbar';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dwarvesv.minimalbar' AND version_compare(bundle_short_version, '1.10') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dwarvesv.minimalbar' AND version_compare(bundle_short_version, '1.10') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.dwarvesv.minimalbar');" }, "installer_url": "https://github.com/dwarvesf/hidden/releases/download/v1.10/Hidden-Bar-v1.10-macos.zip", "install_script_ref": "1f8579a8", diff --git a/ee/maintained-apps/outputs/hides/darwin.json b/ee/maintained-apps/outputs/hides/darwin.json index 88d9058221b..0fe4b1f1f6b 100644 --- a/ee/maintained-apps/outputs/hides/darwin.json +++ b/ee/maintained-apps/outputs/hides/darwin.json @@ -4,7 +4,8 @@ "version": "7.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sweetpproductions.Hides';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sweetpproductions.Hides' AND version_compare(bundle_short_version, '7.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sweetpproductions.Hides' AND version_compare(bundle_short_version, '7.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sweetpproductions.Hides');" }, "installer_url": "https://sweetpproductions.com/products/hides/Hides.dmg", "install_script_ref": "f9716646", diff --git a/ee/maintained-apps/outputs/hidock/darwin.json b/ee/maintained-apps/outputs/hidock/darwin.json index 3b60fb27105..202b572c162 100644 --- a/ee/maintained-apps/outputs/hidock/darwin.json +++ b/ee/maintained-apps/outputs/hidock/darwin.json @@ -4,7 +4,8 @@ "version": "1.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'design.rafa.HiDock';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'design.rafa.HiDock' AND version_compare(bundle_short_version, '1.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'design.rafa.HiDock' AND version_compare(bundle_short_version, '1.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'design.rafa.HiDock');" }, "installer_url": "https://hidock.app/HiDock_1.4.zip", "install_script_ref": "e657202f", diff --git a/ee/maintained-apps/outputs/highlight-ai/darwin.json b/ee/maintained-apps/outputs/highlight-ai/darwin.json index 1ad8740754c..ca9ef538986 100644 --- a/ee/maintained-apps/outputs/highlight-ai/darwin.json +++ b/ee/maintained-apps/outputs/highlight-ai/darwin.json @@ -4,7 +4,8 @@ "version": "1.3.282", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'tv.medal.highlight';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'tv.medal.highlight' AND version_compare(bundle_short_version, '1.3.282') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'tv.medal.highlight' AND version_compare(bundle_short_version, '1.3.282') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'tv.medal.highlight');" }, "installer_url": "https://cdn.highlightai.com/releases/darwin/arm64/Highlight-1.3.282-arm64.dmg", "install_script_ref": "2c254002", diff --git a/ee/maintained-apps/outputs/hive-app/darwin.json b/ee/maintained-apps/outputs/hive-app/darwin.json index a0a8e462d9e..e4270da34e3 100644 --- a/ee/maintained-apps/outputs/hive-app/darwin.json +++ b/ee/maintained-apps/outputs/hive-app/darwin.json @@ -4,7 +4,8 @@ "version": "1.2.26", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hive.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hive.app' AND version_compare(bundle_short_version, '1.2.26') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hive.app' AND version_compare(bundle_short_version, '1.2.26') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hive.app');" }, "installer_url": "https://github.com/morapelker/hive/releases/download/v1.2.26/Hive-1.2.26-arm64.dmg", "install_script_ref": "3bd4ebe4", diff --git a/ee/maintained-apps/outputs/home-assistant/darwin.json b/ee/maintained-apps/outputs/home-assistant/darwin.json index 8c9271c56fc..e94cfbc3650 100644 --- a/ee/maintained-apps/outputs/home-assistant/darwin.json +++ b/ee/maintained-apps/outputs/home-assistant/darwin.json @@ -4,7 +4,8 @@ "version": "2026.7.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.robbie.HomeAssistant';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.robbie.HomeAssistant' AND version_compare(bundle_short_version, '2026.7.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.robbie.HomeAssistant' AND version_compare(bundle_short_version, '2026.7.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.robbie.HomeAssistant');" }, "installer_url": "https://github.com/home-assistant/iOS/releases/download/release%2F2026.7.3%2F2026.2546/home-assistant-mac.zip", "install_script_ref": "3485600f", diff --git a/ee/maintained-apps/outputs/homerow/darwin.json b/ee/maintained-apps/outputs/homerow/darwin.json index 1b88d1a8fff..e4fd205024b 100644 --- a/ee/maintained-apps/outputs/homerow/darwin.json +++ b/ee/maintained-apps/outputs/homerow/darwin.json @@ -4,7 +4,8 @@ "version": "1.5.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.superultra.Homerow';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.superultra.Homerow' AND version_compare(bundle_short_version, '1.5.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.superultra.Homerow' AND version_compare(bundle_short_version, '1.5.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.superultra.Homerow');" }, "installer_url": "https://builds.homerow.app/v1.5.3/Homerow.zip", "install_script_ref": "43083449", diff --git a/ee/maintained-apps/outputs/hot/darwin.json b/ee/maintained-apps/outputs/hot/darwin.json index ae4bd716937..27edd17cff5 100644 --- a/ee/maintained-apps/outputs/hot/darwin.json +++ b/ee/maintained-apps/outputs/hot/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.xs-labs.Hot';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.xs-labs.Hot' AND version_compare(bundle_short_version, '1.9.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.xs-labs.Hot' AND version_compare(bundle_short_version, '1.9.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.xs-labs.Hot');" }, "installer_url": "https://github.com/macmade/Hot/releases/download/1.9.4/Hot.zip", "install_script_ref": "66063cf5", diff --git a/ee/maintained-apps/outputs/houdahspot/darwin.json b/ee/maintained-apps/outputs/houdahspot/darwin.json index da547bc3c70..63b83268692 100644 --- a/ee/maintained-apps/outputs/houdahspot/darwin.json +++ b/ee/maintained-apps/outputs/houdahspot/darwin.json @@ -4,7 +4,8 @@ "version": "6.8.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.houdah.HoudahSpot6';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.houdah.HoudahSpot6' AND version_compare(bundle_short_version, '6.8.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.houdah.HoudahSpot6' AND version_compare(bundle_short_version, '6.8.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.houdah.HoudahSpot6');" }, "installer_url": "https://dl.houdah.com/houdahSpot/updates/cast_assets/156b5d02-8e40-4b77-bcda-d1c6e91c16ad/HoudahSpot_6.8.2.dmg", "install_script_ref": "1ac21a08", diff --git a/ee/maintained-apps/outputs/hp-easy-admin/darwin.json b/ee/maintained-apps/outputs/hp-easy-admin/darwin.json index cb9288948f2..6a1fd72ed65 100644 --- a/ee/maintained-apps/outputs/hp-easy-admin/darwin.json +++ b/ee/maintained-apps/outputs/hp-easy-admin/darwin.json @@ -4,7 +4,8 @@ "version": "2.16.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hp.hp-easy-admin';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hp.hp-easy-admin' AND version_compare(bundle_short_version, '2.16.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hp.hp-easy-admin' AND version_compare(bundle_short_version, '2.16.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hp.hp-easy-admin');" }, "installer_url": "https://ftp.hp.com/pub/softlib/software12/HP_Quick_Start/osx/Applications/HP_Easy_Admin.app.zip", "install_script_ref": "f6b40bc6", diff --git a/ee/maintained-apps/outputs/hp-prime-virtual-calculator/windows.json b/ee/maintained-apps/outputs/hp-prime-virtual-calculator/windows.json index c843f16cb22..dfc58d2b768 100644 --- a/ee/maintained-apps/outputs/hp-prime-virtual-calculator/windows.json +++ b/ee/maintained-apps/outputs/hp-prime-virtual-calculator/windows.json @@ -4,7 +4,8 @@ "version": "2.4", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'HP Prime Virtual Calculator';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'HP Prime Virtual Calculator' AND version_compare(version, '2.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'HP Prime Virtual Calculator' AND version_compare(version, '2.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'hp prime virtual calculator.exe');" }, "installer_url": "https://updates.moravia-consulting.com/HP_Prime_Virtual_Calculator_x64_2025_09_15.exe", "install_script_ref": "198b4efd", diff --git a/ee/maintained-apps/outputs/hubstaff/darwin.json b/ee/maintained-apps/outputs/hubstaff/darwin.json index ef9f8bfe7a4..0be82480d40 100644 --- a/ee/maintained-apps/outputs/hubstaff/darwin.json +++ b/ee/maintained-apps/outputs/hubstaff/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.netsoft.Hubstaff';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.netsoft.Hubstaff' AND version_compare(bundle_short_version, '1.9.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.netsoft.Hubstaff' AND version_compare(bundle_short_version, '1.9.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.netsoft.Hubstaff');" }, "installer_url": "https://app.hubstaff.com/download/12322-standard-mac-os-x-1-9-6-release/dmg?architecture=arm64", "install_script_ref": "1c60a3b3", diff --git a/ee/maintained-apps/outputs/huly/darwin.json b/ee/maintained-apps/outputs/huly/darwin.json index ad515bf0435..c9b46d9bdfe 100644 --- a/ee/maintained-apps/outputs/huly/darwin.json +++ b/ee/maintained-apps/outputs/huly/darwin.json @@ -4,7 +4,8 @@ "version": "0.7.426", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'hc.hcengineering.Huly';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'hc.hcengineering.Huly' AND version_compare(bundle_short_version, '0.7.426') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'hc.hcengineering.Huly' AND version_compare(bundle_short_version, '0.7.426') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'hc.hcengineering.Huly');" }, "installer_url": "https://dist.huly.io/Huly-macos-0.7.426-arm64.zip", "install_script_ref": "dbf3095d", diff --git a/ee/maintained-apps/outputs/hwmonitor/windows.json b/ee/maintained-apps/outputs/hwmonitor/windows.json index 695fba19de5..3ea1dc6c075 100644 --- a/ee/maintained-apps/outputs/hwmonitor/windows.json +++ b/ee/maintained-apps/outputs/hwmonitor/windows.json @@ -4,7 +4,8 @@ "version": "1.67", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'CPUID HWMonitor%' AND publisher = 'CPUID, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'CPUID HWMonitor%' AND publisher = 'CPUID, Inc.' AND version_compare(version, '1.67') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'CPUID HWMonitor%' AND publisher = 'CPUID, Inc.' AND version_compare(version, '1.67') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'hwmonitor.exe');" }, "installer_url": "https://download.cpuid.com/hwmonitor/hwmonitor_1.67.exe", "install_script_ref": "4424c050", diff --git a/ee/maintained-apps/outputs/hyper/darwin.json b/ee/maintained-apps/outputs/hyper/darwin.json index f4833005684..c71cda54aee 100644 --- a/ee/maintained-apps/outputs/hyper/darwin.json +++ b/ee/maintained-apps/outputs/hyper/darwin.json @@ -4,7 +4,8 @@ "version": "3.4.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'co.zeit.hyper';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.zeit.hyper' AND version_compare(bundle_short_version, '3.4.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.zeit.hyper' AND version_compare(bundle_short_version, '3.4.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'co.zeit.hyper');" }, "installer_url": "https://github.com/vercel/hyper/releases/download/v3.4.1/Hyper-3.4.1-mac-arm64.zip", "install_script_ref": "558c1955", diff --git a/ee/maintained-apps/outputs/hyperkey/darwin.json b/ee/maintained-apps/outputs/hyperkey/darwin.json index 9d7bda3d2a0..2595fab92b8 100644 --- a/ee/maintained-apps/outputs/hyperkey/darwin.json +++ b/ee/maintained-apps/outputs/hyperkey/darwin.json @@ -4,7 +4,8 @@ "version": "1.56", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.Hyperkey';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.Hyperkey' AND version_compare(bundle_short_version, '1.56') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.Hyperkey' AND version_compare(bundle_short_version, '1.56') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.knollsoft.Hyperkey');" }, "installer_url": "https://hyperkey.app/downloads/Hyperkey1.56.dmg", "install_script_ref": "0a0bca29", diff --git a/ee/maintained-apps/outputs/i1profiler/darwin.json b/ee/maintained-apps/outputs/i1profiler/darwin.json index d1f7bfd9d35..cb60d8fa996 100644 --- a/ee/maintained-apps/outputs/i1profiler/darwin.json +++ b/ee/maintained-apps/outputs/i1profiler/darwin.json @@ -4,7 +4,8 @@ "version": "3.8.7.19194", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.x-rite.i1Profiler';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.x-rite.i1Profiler' AND version_compare(bundle_short_version, '3.8.7.19194') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.x-rite.i1Profiler' AND version_compare(bundle_short_version, '3.8.7.19194') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.x-rite.i1Profiler');" }, "installer_url": "https://downloads.xrite.com/downloads/software/i1Profiler/3.8.7/Mac/i1Profiler.zip", "install_script_ref": "8cfe1759", diff --git a/ee/maintained-apps/outputs/ibm-notifier/darwin.json b/ee/maintained-apps/outputs/ibm-notifier/darwin.json index 06bb764c720..4006d6d7690 100644 --- a/ee/maintained-apps/outputs/ibm-notifier/darwin.json +++ b/ee/maintained-apps/outputs/ibm-notifier/darwin.json @@ -4,7 +4,8 @@ "version": "3.2.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ibm.cio.notifier';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ibm.cio.notifier' AND version_compare(bundle_short_version, '3.2.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ibm.cio.notifier' AND version_compare(bundle_short_version, '3.2.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ibm.cio.notifier');" }, "installer_url": "https://github.com/IBM/mac-ibm-notifications/releases/download/v-3.2.4-b-136/IBM.Notifier.zip", "install_script_ref": "125a95f9", diff --git a/ee/maintained-apps/outputs/ibm-semeru-jdk-11/windows.json b/ee/maintained-apps/outputs/ibm-semeru-jdk-11/windows.json index 6689f1b77cf..fb77c560c1a 100644 --- a/ee/maintained-apps/outputs/ibm-semeru-jdk-11/windows.json +++ b/ee/maintained-apps/outputs/ibm-semeru-jdk-11/windows.json @@ -4,7 +4,8 @@ "version": "11.0.32.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '11.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '11.%' AND version_compare(version, '11.0.32.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '11.%' AND version_compare(version, '11.0.32.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'ibm semeru runtime open edition jdk 11.exe');" }, "installer_url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.32.0/ibm-semeru-open-jdk_x64_windows_11.0.32.0.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/ibm-semeru-jdk-17/windows.json b/ee/maintained-apps/outputs/ibm-semeru-jdk-17/windows.json index 1a915224b4c..63cbec0fccb 100644 --- a/ee/maintained-apps/outputs/ibm-semeru-jdk-17/windows.json +++ b/ee/maintained-apps/outputs/ibm-semeru-jdk-17/windows.json @@ -4,7 +4,8 @@ "version": "17.0.20.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '17.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '17.%' AND version_compare(version, '17.0.20.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '17.%' AND version_compare(version, '17.0.20.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'ibm semeru runtime open edition jdk 17.exe');" }, "installer_url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.20.0/ibm-semeru-open-jdk_x64_windows_17.0.20.0.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/ibm-semeru-jdk-21/windows.json b/ee/maintained-apps/outputs/ibm-semeru-jdk-21/windows.json index 304916aed1b..ff97f436790 100644 --- a/ee/maintained-apps/outputs/ibm-semeru-jdk-21/windows.json +++ b/ee/maintained-apps/outputs/ibm-semeru-jdk-21/windows.json @@ -4,7 +4,8 @@ "version": "21.0.12.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '21.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '21.%' AND version_compare(version, '21.0.12.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '21.%' AND version_compare(version, '21.0.12.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'ibm semeru runtime open edition jdk 21.exe');" }, "installer_url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.12.0/ibm-semeru-open-jdk_x64_windows_21.0.12.0.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/ibm-semeru-jdk-8/windows.json b/ee/maintained-apps/outputs/ibm-semeru-jdk-8/windows.json index 87b9df8bbd3..d088bf9b2a3 100644 --- a/ee/maintained-apps/outputs/ibm-semeru-jdk-8/windows.json +++ b/ee/maintained-apps/outputs/ibm-semeru-jdk-8/windows.json @@ -4,7 +4,8 @@ "version": "8.0.502.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '8.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '8.%' AND version_compare(version, '8.0.502.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JDK)%' AND publisher = 'Semeru' AND version LIKE '8.%' AND version_compare(version, '8.0.502.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'ibm semeru runtime open edition jdk 8.exe');" }, "installer_url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk-8.0.502.0/ibm-semeru-open-jdk_x64_windows_8.0.502.0.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/ibm-semeru-jre-11/windows.json b/ee/maintained-apps/outputs/ibm-semeru-jre-11/windows.json index cf3588e6d49..fd4d55989d9 100644 --- a/ee/maintained-apps/outputs/ibm-semeru-jre-11/windows.json +++ b/ee/maintained-apps/outputs/ibm-semeru-jre-11/windows.json @@ -4,7 +4,8 @@ "version": "11.0.32.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '11.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '11.%' AND version_compare(version, '11.0.32.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '11.%' AND version_compare(version, '11.0.32.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'ibm semeru runtime open edition jre 11.exe');" }, "installer_url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.32.0/ibm-semeru-open-jre_x64_windows_11.0.32.0.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/ibm-semeru-jre-17/windows.json b/ee/maintained-apps/outputs/ibm-semeru-jre-17/windows.json index e75c75b7bfc..79c2920263c 100644 --- a/ee/maintained-apps/outputs/ibm-semeru-jre-17/windows.json +++ b/ee/maintained-apps/outputs/ibm-semeru-jre-17/windows.json @@ -4,7 +4,8 @@ "version": "17.0.20.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '17.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '17.%' AND version_compare(version, '17.0.20.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '17.%' AND version_compare(version, '17.0.20.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'ibm semeru runtime open edition jre 17.exe');" }, "installer_url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.20.0/ibm-semeru-open-jre_x64_windows_17.0.20.0.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/ibm-semeru-jre-21/windows.json b/ee/maintained-apps/outputs/ibm-semeru-jre-21/windows.json index f1efd04cd10..945fb8a2b11 100644 --- a/ee/maintained-apps/outputs/ibm-semeru-jre-21/windows.json +++ b/ee/maintained-apps/outputs/ibm-semeru-jre-21/windows.json @@ -4,7 +4,8 @@ "version": "21.0.12.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '21.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '21.%' AND version_compare(version, '21.0.12.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '21.%' AND version_compare(version, '21.0.12.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'ibm semeru runtime open edition jre 21.exe');" }, "installer_url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.12.0/ibm-semeru-open-jre_x64_windows_21.0.12.0.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/ibm-semeru-jre-8/windows.json b/ee/maintained-apps/outputs/ibm-semeru-jre-8/windows.json index d82cd4f3b41..72d3cc1989d 100644 --- a/ee/maintained-apps/outputs/ibm-semeru-jre-8/windows.json +++ b/ee/maintained-apps/outputs/ibm-semeru-jre-8/windows.json @@ -4,7 +4,8 @@ "version": "8.0.502.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '8.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '8.%' AND version_compare(version, '8.0.502.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '8.%' AND version_compare(version, '8.0.502.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'ibm semeru runtime open edition jre 8.exe');" }, "installer_url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk-8.0.502.0/ibm-semeru-open-jre_x64_windows_8.0.502.0.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/icon-composer/darwin.json b/ee/maintained-apps/outputs/icon-composer/darwin.json index ea9ff268e31..706e3ec4096 100644 --- a/ee/maintained-apps/outputs/icon-composer/darwin.json +++ b/ee/maintained-apps/outputs/icon-composer/darwin.json @@ -4,7 +4,8 @@ "version": "1.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.apple.IconComposer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apple.IconComposer' AND version_compare(bundle_short_version, '1.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apple.IconComposer' AND version_compare(bundle_short_version, '1.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.apple.IconComposer');" }, "installer_url": "https://devimages-cdn.apple.com/design/resources/download/Icon-Composer-1.2.dmg", "install_script_ref": "9e1dcea8", diff --git a/ee/maintained-apps/outputs/iconjar/darwin.json b/ee/maintained-apps/outputs/iconjar/darwin.json index a0a136c2d6b..49079c5eb45 100644 --- a/ee/maintained-apps/outputs/iconjar/darwin.json +++ b/ee/maintained-apps/outputs/iconjar/darwin.json @@ -4,7 +4,8 @@ "version": "2.11.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.iconjar.iconjar';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.iconjar.iconjar' AND version_compare(bundle_short_version, '2.11.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.iconjar.iconjar' AND version_compare(bundle_short_version, '2.11.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.iconjar.iconjar');" }, "installer_url": "https://geticonjar.com/releases/IconJar.app.50604.zip", "install_script_ref": "e31853eb", diff --git a/ee/maintained-apps/outputs/idagio/darwin.json b/ee/maintained-apps/outputs/idagio/darwin.json index 9fd16e644c3..2b1ee770d8d 100644 --- a/ee/maintained-apps/outputs/idagio/darwin.json +++ b/ee/maintained-apps/outputs/idagio/darwin.json @@ -4,7 +4,8 @@ "version": "1.15.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.idagio.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.idagio.desktop' AND version_compare(bundle_short_version, '1.15.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.idagio.desktop' AND version_compare(bundle_short_version, '1.15.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.idagio.desktop');" }, "installer_url": "https://dl.idagio.com/IDAGIO-1.15.0.dmg", "install_script_ref": "ac857656", diff --git a/ee/maintained-apps/outputs/iexplorer/darwin.json b/ee/maintained-apps/outputs/iexplorer/darwin.json index 6c746d2a2eb..e99b440deaa 100644 --- a/ee/maintained-apps/outputs/iexplorer/darwin.json +++ b/ee/maintained-apps/outputs/iexplorer/darwin.json @@ -4,7 +4,8 @@ "version": "4.6.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.macroplant.iExplorer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.macroplant.iExplorer' AND version_compare(bundle_short_version, '4.6.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.macroplant.iExplorer' AND version_compare(bundle_short_version, '4.6.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.macroplant.iExplorer');" }, "installer_url": "https://assets.macroplant.com/download/180/iExplorer-4.6.0.dmg", "install_script_ref": "ac114a57", diff --git a/ee/maintained-apps/outputs/iina/darwin.json b/ee/maintained-apps/outputs/iina/darwin.json index e1c9ca66040..86a80042659 100644 --- a/ee/maintained-apps/outputs/iina/darwin.json +++ b/ee/maintained-apps/outputs/iina/darwin.json @@ -4,7 +4,8 @@ "version": "1.4.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.colliderli.iina';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.colliderli.iina' AND version_compare(bundle_short_version, '1.4.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.colliderli.iina' AND version_compare(bundle_short_version, '1.4.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.colliderli.iina');" }, "installer_url": "https://dl.iina.io/IINA.v1.4.4.dmg", "install_script_ref": "1e4f1721", diff --git a/ee/maintained-apps/outputs/imageglass/windows.json b/ee/maintained-apps/outputs/imageglass/windows.json index 3acc9686f5f..2d8a5f5bccb 100644 --- a/ee/maintained-apps/outputs/imageglass/windows.json +++ b/ee/maintained-apps/outputs/imageglass/windows.json @@ -4,7 +4,8 @@ "version": "9.6.1.807", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'ImageGlass' AND publisher = 'Duong Dieu Phap';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ImageGlass' AND publisher = 'Duong Dieu Phap' AND version_compare(version, '9.6.1.807') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ImageGlass' AND publisher = 'Duong Dieu Phap' AND version_compare(version, '9.6.1.807') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'imageglass.exe');" }, "installer_url": "https://github.com/d2phap/ImageGlass/releases/download/9.6.1.807/ImageGlass_9.6.1.807_x64.msi", "install_script_ref": "72349997", diff --git a/ee/maintained-apps/outputs/imazing-converter/darwin.json b/ee/maintained-apps/outputs/imazing-converter/darwin.json index 29aab14621f..25717d87493 100644 --- a/ee/maintained-apps/outputs/imazing-converter/darwin.json +++ b/ee/maintained-apps/outputs/imazing-converter/darwin.json @@ -4,7 +4,8 @@ "version": "2.0.14", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.DigiDNA.iMazingHEICConverterMac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.DigiDNA.iMazingHEICConverterMac' AND version_compare(bundle_short_version, '2.0.14') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.DigiDNA.iMazingHEICConverterMac' AND version_compare(bundle_short_version, '2.0.14') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.DigiDNA.iMazingHEICConverterMac');" }, "installer_url": "https://downloads.imazing.com/mac/iMazing-Converter/2.0.14.586/iMazing_Converter_2.0.14.586.dmg", "install_script_ref": "4fe46552", diff --git a/ee/maintained-apps/outputs/imazing-heic-converter/windows.json b/ee/maintained-apps/outputs/imazing-heic-converter/windows.json index 494b1909000..68821cc24ee 100644 --- a/ee/maintained-apps/outputs/imazing-heic-converter/windows.json +++ b/ee/maintained-apps/outputs/imazing-heic-converter/windows.json @@ -4,7 +4,8 @@ "version": "1.0.14.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'iMazing HEIC Converter%' AND publisher = 'DigiDNA';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'iMazing HEIC Converter%' AND publisher = 'DigiDNA' AND version_compare(version, '1.0.14.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'iMazing HEIC Converter%' AND publisher = 'DigiDNA' AND version_compare(version, '1.0.14.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'imazing heic converter.exe');" }, "installer_url": "https://downloads.imazing.com/windows/iMazing-HEIC-Converter/1.0.14/iMazing_HEIC_Converter_1.0.14.exe", "install_script_ref": "bc1dc807", diff --git a/ee/maintained-apps/outputs/imazing-profile-editor/darwin.json b/ee/maintained-apps/outputs/imazing-profile-editor/darwin.json index b5fb3f9068c..d97f58563f6 100644 --- a/ee/maintained-apps/outputs/imazing-profile-editor/darwin.json +++ b/ee/maintained-apps/outputs/imazing-profile-editor/darwin.json @@ -4,7 +4,8 @@ "version": "2.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.DigiDNA.iMazingProfileEditorMac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.DigiDNA.iMazingProfileEditorMac' AND version_compare(bundle_short_version, '2.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.DigiDNA.iMazingProfileEditorMac' AND version_compare(bundle_short_version, '2.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.DigiDNA.iMazingProfileEditorMac');" }, "installer_url": "https://downloads.imazing.com/mac/iMazing-Profile-Editor/2.2.1.393403/iMazing_Profile_Editor_2.2.1.393403.dmg", "install_script_ref": "afa0cb8b", diff --git a/ee/maintained-apps/outputs/imazing-profile-editor/windows.json b/ee/maintained-apps/outputs/imazing-profile-editor/windows.json index bf9099f67aa..c03eb5d512a 100644 --- a/ee/maintained-apps/outputs/imazing-profile-editor/windows.json +++ b/ee/maintained-apps/outputs/imazing-profile-editor/windows.json @@ -4,7 +4,8 @@ "version": "2.0.4.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'iMazing Profile Editor' AND publisher = 'DigiDNA';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'iMazing Profile Editor' AND publisher = 'DigiDNA' AND version_compare(version, '2.0.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'iMazing Profile Editor' AND publisher = 'DigiDNA' AND version_compare(version, '2.0.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'imazing profile editor.exe');" }, "installer_url": "https://downloads.imazing.com/windows/iMazing-Profile-Editor/2.0.4/iMazing_Profile_Editor_2.0.4.exe", "install_script_ref": "46d85965", diff --git a/ee/maintained-apps/outputs/imazing/darwin.json b/ee/maintained-apps/outputs/imazing/darwin.json index cf68dbe5589..6de4c755e17 100644 --- a/ee/maintained-apps/outputs/imazing/darwin.json +++ b/ee/maintained-apps/outputs/imazing/darwin.json @@ -4,7 +4,8 @@ "version": "3.6.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.DigiDNA.iMazing3Mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.DigiDNA.iMazing3Mac' AND version_compare(bundle_short_version, '3.6.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.DigiDNA.iMazing3Mac' AND version_compare(bundle_short_version, '3.6.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.DigiDNA.iMazing3Mac');" }, "installer_url": "https://downloads.imazing.com/mac/iMazing/3.6.2.24301/iMazing_3.6.2.24301.dmg", "install_script_ref": "042b7def", diff --git a/ee/maintained-apps/outputs/imazing/windows.json b/ee/maintained-apps/outputs/imazing/windows.json index f2180ea927a..b8e58cabb75 100644 --- a/ee/maintained-apps/outputs/imazing/windows.json +++ b/ee/maintained-apps/outputs/imazing/windows.json @@ -4,7 +4,8 @@ "version": "3.3.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'iMazing' AND publisher = 'DigiDNA';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'iMazing' AND publisher = 'DigiDNA' AND version_compare(version, '3.3.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'iMazing' AND publisher = 'DigiDNA' AND version_compare(version, '3.3.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'imazing.exe');" }, "installer_url": "https://downloads.imazing.com/windows/iMazing/3.3.1/iMazing_3.3.1.exe", "install_script_ref": "145b29b1", diff --git a/ee/maintained-apps/outputs/imhex/darwin.json b/ee/maintained-apps/outputs/imhex/darwin.json index 2214bf98cec..94049cd65f6 100644 --- a/ee/maintained-apps/outputs/imhex/darwin.json +++ b/ee/maintained-apps/outputs/imhex/darwin.json @@ -4,7 +4,8 @@ "version": "1.38.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.WerWolv.ImHex';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.WerWolv.ImHex' AND version_compare(bundle_short_version, '1.38.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.WerWolv.ImHex' AND version_compare(bundle_short_version, '1.38.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.WerWolv.ImHex');" }, "installer_url": "https://github.com/WerWolv/ImHex/releases/download/v1.38.1/imhex-1.38.1-macOS-arm64.dmg", "install_script_ref": "2f0542a3", diff --git a/ee/maintained-apps/outputs/imhex/windows.json b/ee/maintained-apps/outputs/imhex/windows.json index 0b7f6326093..dd804fb1c52 100644 --- a/ee/maintained-apps/outputs/imhex/windows.json +++ b/ee/maintained-apps/outputs/imhex/windows.json @@ -4,7 +4,8 @@ "version": "1.38.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'ImHex' AND publisher = 'WerWolv';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ImHex' AND publisher = 'WerWolv' AND version_compare(version, '1.38.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ImHex' AND publisher = 'WerWolv' AND version_compare(version, '1.38.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'imhex.exe');" }, "installer_url": "https://github.com/WerWolv/ImHex/releases/download/v1.38.1/imhex-1.38.1-Windows-x86_64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/infix-pdf-editor/windows.json b/ee/maintained-apps/outputs/infix-pdf-editor/windows.json index 5d29661bb8a..8d3c26f1118 100644 --- a/ee/maintained-apps/outputs/infix-pdf-editor/windows.json +++ b/ee/maintained-apps/outputs/infix-pdf-editor/windows.json @@ -4,7 +4,8 @@ "version": "7.7.0.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Infix PDF Editor' AND publisher = 'Iceni Technology';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Infix PDF Editor' AND publisher = 'Iceni Technology' AND version_compare(version, '7.7.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Infix PDF Editor' AND publisher = 'Iceni Technology' AND version_compare(version, '7.7.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'infix pdf editor.exe');" }, "installer_url": "https://www.pdfeditor.biz/Infix7/v7.7.0/InfixSetup.exe", "install_script_ref": "0a10872d", diff --git a/ee/maintained-apps/outputs/inkscape/darwin.json b/ee/maintained-apps/outputs/inkscape/darwin.json index ee93eb676ed..87de4f4d5ff 100644 --- a/ee/maintained-apps/outputs/inkscape/darwin.json +++ b/ee/maintained-apps/outputs/inkscape/darwin.json @@ -4,7 +4,8 @@ "version": "1.4.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.inkscape.Inkscape';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.inkscape.Inkscape' AND version_compare(bundle_short_version, '1.4.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.inkscape.Inkscape' AND version_compare(bundle_short_version, '1.4.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.inkscape.Inkscape');" }, "installer_url": "https://media.inkscape.org/dl/resources/file/Inkscape-1.4.4_arm64.dmg", "install_script_ref": "ba159d18", diff --git a/ee/maintained-apps/outputs/inkscape/windows.json b/ee/maintained-apps/outputs/inkscape/windows.json index 20c2b287223..865971e1dbf 100644 --- a/ee/maintained-apps/outputs/inkscape/windows.json +++ b/ee/maintained-apps/outputs/inkscape/windows.json @@ -4,7 +4,8 @@ "version": "1.4.4", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Inkscape' AND publisher = 'Inkscape';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Inkscape' AND publisher = 'Inkscape' AND version_compare(version, '1.4.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Inkscape' AND publisher = 'Inkscape' AND version_compare(version, '1.4.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'inkscape.exe');" }, "installer_url": "https://media.inkscape.org/dl/resources/file/inkscape-1.4.4_2026-05-05_dcaf3e7-x64.signed_xMx7DJV.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/input-source-pro/darwin.json b/ee/maintained-apps/outputs/input-source-pro/darwin.json index b8c64e14c76..de08b62957f 100644 --- a/ee/maintained-apps/outputs/input-source-pro/darwin.json +++ b/ee/maintained-apps/outputs/input-source-pro/darwin.json @@ -4,7 +4,8 @@ "version": "2.11.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.runjuu.Input-Source-Pro';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.runjuu.Input-Source-Pro' AND version_compare(bundle_short_version, '2.11.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.runjuu.Input-Source-Pro' AND version_compare(bundle_short_version, '2.11.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.runjuu.Input-Source-Pro');" }, "installer_url": "https://inputsource.pro/stable/Input%20Source%20Pro%202.11.0.dmg", "install_script_ref": "ed013b7a", diff --git a/ee/maintained-apps/outputs/insomnia/darwin.json b/ee/maintained-apps/outputs/insomnia/darwin.json index d8c3516deeb..1f58ce3a943 100644 --- a/ee/maintained-apps/outputs/insomnia/darwin.json +++ b/ee/maintained-apps/outputs/insomnia/darwin.json @@ -4,7 +4,8 @@ "version": "13.1.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.insomnia.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.insomnia.app' AND version_compare(bundle_short_version, '13.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.insomnia.app' AND version_compare(bundle_short_version, '13.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.insomnia.app');" }, "installer_url": "https://github.com/Kong/insomnia/releases/download/core%4013.1.0/Insomnia.Core-13.1.0.dmg", "install_script_ref": "0864b0d0", diff --git a/ee/maintained-apps/outputs/insomnia/windows.json b/ee/maintained-apps/outputs/insomnia/windows.json index dd9efd5035e..90c09e0fc61 100644 --- a/ee/maintained-apps/outputs/insomnia/windows.json +++ b/ee/maintained-apps/outputs/insomnia/windows.json @@ -4,7 +4,8 @@ "version": "13.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Insomnia' AND publisher = 'Kong';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Insomnia' AND publisher = 'Kong' AND version_compare(version, '13.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Insomnia' AND publisher = 'Kong' AND version_compare(version, '13.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'insomnia.exe');" }, "installer_url": "https://github.com/Kong/insomnia/releases/download/core@13.1.0/Insomnia.Core-13.1.0.exe", "install_script_ref": "a20529f5", diff --git a/ee/maintained-apps/outputs/install4j/windows.json b/ee/maintained-apps/outputs/install4j/windows.json index 857fb300803..d60c3f3e9e3 100644 --- a/ee/maintained-apps/outputs/install4j/windows.json +++ b/ee/maintained-apps/outputs/install4j/windows.json @@ -4,7 +4,8 @@ "version": "11.0.5", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'install4j%' AND publisher = 'ej-technologies GmbH';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'install4j%' AND publisher = 'ej-technologies GmbH' AND version_compare(version, '11.0.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'install4j%' AND publisher = 'ej-technologies GmbH' AND version_compare(version, '11.0.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'install4j.exe');" }, "installer_url": "https://download.ej-technologies.com/install4j/install4j_windows-x64_11_0_5.exe", "install_script_ref": "05891962", diff --git a/ee/maintained-apps/outputs/intellidock/darwin.json b/ee/maintained-apps/outputs/intellidock/darwin.json index 52b6df65f0a..7059bba04c1 100644 --- a/ee/maintained-apps/outputs/intellidock/darwin.json +++ b/ee/maintained-apps/outputs/intellidock/darwin.json @@ -4,7 +4,8 @@ "version": "1.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.mightymac.IntelliDock';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.mightymac.IntelliDock' AND version_compare(bundle_short_version, '1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.mightymac.IntelliDock' AND version_compare(bundle_short_version, '1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.mightymac.IntelliDock');" }, "installer_url": "https://mightymac.app/intellidock/download/IntelliDock-1.0.dmg", "install_script_ref": "6f3f236b", diff --git a/ee/maintained-apps/outputs/intellij-idea-ce/darwin.json b/ee/maintained-apps/outputs/intellij-idea-ce/darwin.json index 8be07579ddb..41163505ad6 100644 --- a/ee/maintained-apps/outputs/intellij-idea-ce/darwin.json +++ b/ee/maintained-apps/outputs/intellij-idea-ce/darwin.json @@ -4,7 +4,8 @@ "version": "2025.2.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.intellij.ce';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.intellij.ce' AND version_compare(bundle_short_version, '2025.2.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.intellij.ce' AND version_compare(bundle_short_version, '2025.2.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jetbrains.intellij.ce');" }, "installer_url": "https://download.jetbrains.com/idea/ideaIC-2025.2.5-aarch64.dmg", "install_script_ref": "a63f40db", diff --git a/ee/maintained-apps/outputs/intellij-idea-ce/windows.json b/ee/maintained-apps/outputs/intellij-idea-ce/windows.json index 5d6e58a535d..01dee9b7e97 100644 --- a/ee/maintained-apps/outputs/intellij-idea-ce/windows.json +++ b/ee/maintained-apps/outputs/intellij-idea-ce/windows.json @@ -4,7 +4,8 @@ "version": "2025.2.6.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'IntelliJ IDEA Community Edition %' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IntelliJ IDEA Community Edition %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '252.28539.54') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IntelliJ IDEA Community Edition %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '252.28539.54') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('idea.exe','idea64.exe'));" }, "installer_url": "https://download.jetbrains.com/idea/ideaIC-2025.2.6.2.exe", "install_script_ref": "036a6387", diff --git a/ee/maintained-apps/outputs/intellij-idea/darwin.json b/ee/maintained-apps/outputs/intellij-idea/darwin.json index 4d8966db800..15e6d19fa25 100644 --- a/ee/maintained-apps/outputs/intellij-idea/darwin.json +++ b/ee/maintained-apps/outputs/intellij-idea/darwin.json @@ -4,7 +4,8 @@ "version": "2026.2.0.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.intellij';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.intellij' AND version_compare(bundle_short_version, '2026.2.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.intellij' AND version_compare(bundle_short_version, '2026.2.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jetbrains.intellij');" }, "installer_url": "https://download.jetbrains.com/idea/ideaIU-2026.2.0.1-aarch64.dmg", "install_script_ref": "b853eec2", diff --git a/ee/maintained-apps/outputs/intellij-idea/windows.json b/ee/maintained-apps/outputs/intellij-idea/windows.json index 48fdb2f4a33..322051ccd66 100644 --- a/ee/maintained-apps/outputs/intellij-idea/windows.json +++ b/ee/maintained-apps/outputs/intellij-idea/windows.json @@ -4,7 +4,8 @@ "version": "2025.2.5", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'IntelliJ IDEA %' AND name NOT LIKE 'IntelliJ IDEA Community%' AND name NOT LIKE 'IntelliJ IDEA Educational%' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IntelliJ IDEA %' AND name NOT LIKE 'IntelliJ IDEA Community%' AND name NOT LIKE 'IntelliJ IDEA Educational%' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '252.28238.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IntelliJ IDEA %' AND name NOT LIKE 'IntelliJ IDEA Community%' AND name NOT LIKE 'IntelliJ IDEA Educational%' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '252.28238.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('idea.exe','idea64.exe'));" }, "installer_url": "https://download.jetbrains.com/idea/ideaIU-2025.2.5.exe", "install_script_ref": "6284895d", diff --git a/ee/maintained-apps/outputs/intune-company-portal/darwin.json b/ee/maintained-apps/outputs/intune-company-portal/darwin.json index 2fa8565c37b..c4a159ab30d 100644 --- a/ee/maintained-apps/outputs/intune-company-portal/darwin.json +++ b/ee/maintained-apps/outputs/intune-company-portal/darwin.json @@ -4,7 +4,8 @@ "version": "5.2606.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.CompanyPortalMac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.CompanyPortalMac' AND version_compare(bundle_short_version, '5.2606.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.CompanyPortalMac' AND version_compare(bundle_short_version, '5.2606.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.microsoft.CompanyPortalMac');" }, "installer_url": "https://res.public.onecdn.static.microsoft/mro1cdnstorage/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/CompanyPortal_5.2606.0-Upgrade.pkg", "install_script_ref": "c8b93090", diff --git a/ee/maintained-apps/outputs/invesalius/darwin.json b/ee/maintained-apps/outputs/invesalius/darwin.json index 0e112621f90..a751fe47871 100644 --- a/ee/maintained-apps/outputs/invesalius/darwin.json +++ b/ee/maintained-apps/outputs/invesalius/darwin.json @@ -4,7 +4,8 @@ "version": "3.1.99998", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'br.gov.cti.invesalius';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'br.gov.cti.invesalius' AND version_compare(bundle_short_version, '3.1.99998') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'br.gov.cti.invesalius' AND version_compare(bundle_short_version, '3.1.99998') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'br.gov.cti.invesalius');" }, "installer_url": "https://github.com/invesalius/invesalius3/releases/download/v3.1.99998/InVesalius.3.1.99998.arm64.dmg", "install_script_ref": "e2f5a27a", diff --git a/ee/maintained-apps/outputs/irfanview/windows.json b/ee/maintained-apps/outputs/irfanview/windows.json index 8f5556bae43..8a0ade19746 100644 --- a/ee/maintained-apps/outputs/irfanview/windows.json +++ b/ee/maintained-apps/outputs/irfanview/windows.json @@ -4,7 +4,8 @@ "version": "4.75", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'IrfanView%' AND publisher = 'Irfan Skiljan';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IrfanView%' AND publisher = 'Irfan Skiljan' AND version_compare(version, '4.75') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IrfanView%' AND publisher = 'Irfan Skiljan' AND version_compare(version, '4.75') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'irfanview.exe');" }, "installer_url": "https://download.fileforum.com/download/967963863-1/iview475_x64_setup.exe", "install_script_ref": "fa8b00ca", diff --git a/ee/maintained-apps/outputs/ironpython/windows.json b/ee/maintained-apps/outputs/ironpython/windows.json index 9074db4401e..6ca20a89a37 100644 --- a/ee/maintained-apps/outputs/ironpython/windows.json +++ b/ee/maintained-apps/outputs/ironpython/windows.json @@ -4,7 +4,8 @@ "version": "3.4.2.1000", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'IronPython 3%' AND publisher = '.NET Foundation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IronPython 3%' AND publisher = '.NET Foundation' AND version_compare(version, '3.4.2.1000') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IronPython 3%' AND publisher = '.NET Foundation' AND version_compare(version, '3.4.2.1000') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'ironpython 3.exe');" }, "installer_url": "https://github.com/IronLanguages/ironpython3/releases/download/v3.4.2/IronPython-3.4.2.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/isobuster/windows.json b/ee/maintained-apps/outputs/isobuster/windows.json index 91a69f88f1f..465a7d068c0 100644 --- a/ee/maintained-apps/outputs/isobuster/windows.json +++ b/ee/maintained-apps/outputs/isobuster/windows.json @@ -4,7 +4,8 @@ "version": "5.8", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'IsoBuster%' AND publisher = 'Smart Projects';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IsoBuster%' AND publisher = 'Smart Projects' AND version_compare(version, '5.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IsoBuster%' AND publisher = 'Smart Projects' AND version_compare(version, '5.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'isobuster.exe');" }, "installer_url": "https://www.isobuster.com/downloads/isobuster/isobuster_install_64bit.exe", "install_script_ref": "b8edd281", diff --git a/ee/maintained-apps/outputs/istherenet/darwin.json b/ee/maintained-apps/outputs/istherenet/darwin.json index 77c2679a130..30b9589e97c 100644 --- a/ee/maintained-apps/outputs/istherenet/darwin.json +++ b/ee/maintained-apps/outputs/istherenet/darwin.json @@ -4,7 +4,8 @@ "version": "1.7.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lowtechguys.IsThereNet';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lowtechguys.IsThereNet' AND version_compare(bundle_short_version, '1.7.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lowtechguys.IsThereNet' AND version_compare(bundle_short_version, '1.7.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.lowtechguys.IsThereNet');" }, "installer_url": "https://files.lowtechguys.com/releases/IsThereNet-1.7.1.dmg", "install_script_ref": "9c9545ab", diff --git a/ee/maintained-apps/outputs/iterm2/darwin.json b/ee/maintained-apps/outputs/iterm2/darwin.json index e2cddce3c8e..521ef91a570 100644 --- a/ee/maintained-apps/outputs/iterm2/darwin.json +++ b/ee/maintained-apps/outputs/iterm2/darwin.json @@ -4,7 +4,8 @@ "version": "3.6.11", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.googlecode.iterm2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.googlecode.iterm2' AND version_compare(bundle_short_version, '3.6.11') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.googlecode.iterm2' AND version_compare(bundle_short_version, '3.6.11') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.googlecode.iterm2');" }, "installer_url": "https://iterm2.com/downloads/stable/iTerm2-3_6_11.zip", "install_script_ref": "ca42742a", diff --git a/ee/maintained-apps/outputs/itsycal/darwin.json b/ee/maintained-apps/outputs/itsycal/darwin.json index 83c3943d04c..3d9405ffbbe 100644 --- a/ee/maintained-apps/outputs/itsycal/darwin.json +++ b/ee/maintained-apps/outputs/itsycal/darwin.json @@ -4,7 +4,8 @@ "version": "0.15.12", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mowglii.ItsycalApp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mowglii.ItsycalApp' AND version_compare(bundle_short_version, '0.15.12') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mowglii.ItsycalApp' AND version_compare(bundle_short_version, '0.15.12') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mowglii.ItsycalApp');" }, "installer_url": "https://itsycal.s3.amazonaws.com/Itsycal-0.15.12.zip", "install_script_ref": "5ef46ea0", diff --git a/ee/maintained-apps/outputs/itunes/windows.json b/ee/maintained-apps/outputs/itunes/windows.json index c764543e2c9..4eaab353437 100644 --- a/ee/maintained-apps/outputs/itunes/windows.json +++ b/ee/maintained-apps/outputs/itunes/windows.json @@ -4,7 +4,8 @@ "version": "12.13.10.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'iTunes' AND publisher = 'Apple Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'iTunes' AND publisher = 'Apple Inc.' AND version_compare(version, '12.13.10.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'iTunes' AND publisher = 'Apple Inc.' AND version_compare(version, '12.13.10.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'itunes.exe');" }, "installer_url": "https://secure-appldnld.apple.com/itunes12/047-76416-20260302-fefe4356-211d-4da1-8bc4-058eb36ea803/iTunes64Setup.exe", "install_script_ref": "d180d999", diff --git a/ee/maintained-apps/outputs/jabra-direct/darwin.json b/ee/maintained-apps/outputs/jabra-direct/darwin.json index d184b836b7c..c3a1a9d809e 100644 --- a/ee/maintained-apps/outputs/jabra-direct/darwin.json +++ b/ee/maintained-apps/outputs/jabra-direct/darwin.json @@ -4,7 +4,8 @@ "version": "8.1.14601", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jabra.directonline';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jabra.directonline' AND version_compare(bundle_short_version, '8.1.14601') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jabra.directonline' AND version_compare(bundle_short_version, '8.1.14601') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jabra.directonline');" }, "installer_url": "https://jabraxpressonlineprdstor.blob.core.windows.net/jdo/JabraDirectSetup.dmg", "install_script_ref": "3fb7cc70", diff --git a/ee/maintained-apps/outputs/jabra-direct/windows.json b/ee/maintained-apps/outputs/jabra-direct/windows.json index 28ce74451af..9b85108d18d 100644 --- a/ee/maintained-apps/outputs/jabra-direct/windows.json +++ b/ee/maintained-apps/outputs/jabra-direct/windows.json @@ -4,7 +4,8 @@ "version": "8.1.14601", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Jabra Direct' AND publisher = 'GN Audio A/S';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Jabra Direct' AND publisher = 'GN Audio A/S' AND version_compare(version, '8.1.14601') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Jabra Direct' AND publisher = 'GN Audio A/S' AND version_compare(version, '8.1.14601') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'jabra direct.exe');" }, "installer_url": "https://jabraxpressonlineprdstor.blob.core.windows.net/jdo/JabraDirectSetup.exe", "install_script_ref": "66727e5a", diff --git a/ee/maintained-apps/outputs/jami/darwin.json b/ee/maintained-apps/outputs/jami/darwin.json index ea6d36d56cb..15750f4574b 100644 --- a/ee/maintained-apps/outputs/jami/darwin.json +++ b/ee/maintained-apps/outputs/jami/darwin.json @@ -4,7 +4,8 @@ "version": "2.41", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'cx.ring';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'cx.ring' AND version_compare(bundle_short_version, '2.41') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'cx.ring' AND version_compare(bundle_short_version, '2.41') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'cx.ring');" }, "installer_url": "https://dl.jami.net/mac_osx/jami2026072011.dmg", "install_script_ref": "656eb108", diff --git a/ee/maintained-apps/outputs/jami/windows.json b/ee/maintained-apps/outputs/jami/windows.json index 96f94aeebf5..044f3d8c796 100644 --- a/ee/maintained-apps/outputs/jami/windows.json +++ b/ee/maintained-apps/outputs/jami/windows.json @@ -4,7 +4,8 @@ "version": "1.0.9197.28092", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Jami' AND publisher = 'Savoir-Faire Linux';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Jami' AND publisher = 'Savoir-Faire Linux' AND version_compare(version, '1.0.9197.28092') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Jami' AND publisher = 'Savoir-Faire Linux' AND version_compare(version, '1.0.9197.28092') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'jami.exe');" }, "installer_url": "https://dl.jami.net/windows/archive/jami_x86_64-202503061740.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/jamovi/darwin.json b/ee/maintained-apps/outputs/jamovi/darwin.json index 781eabb13b9..c702d723dba 100644 --- a/ee/maintained-apps/outputs/jamovi/darwin.json +++ b/ee/maintained-apps/outputs/jamovi/darwin.json @@ -4,7 +4,8 @@ "version": "28.1.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.jamovi.jamovi';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.jamovi.jamovi' AND version_compare(bundle_short_version, '28.1.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.jamovi.jamovi' AND version_compare(bundle_short_version, '28.1.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.jamovi.jamovi');" }, "installer_url": "https://www.jamovi.org/downloads/jamovi-28.1.0.0-macos-arm64.dmg", "install_script_ref": "71ee016b", diff --git a/ee/maintained-apps/outputs/jasp/darwin.json b/ee/maintained-apps/outputs/jasp/darwin.json index 8ac164cb311..87ea9f30563 100644 --- a/ee/maintained-apps/outputs/jasp/darwin.json +++ b/ee/maintained-apps/outputs/jasp/darwin.json @@ -4,7 +4,8 @@ "version": "0.98.1.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.jasp-stats.JASP';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.jasp-stats.JASP' AND version_compare(bundle_short_version, '0.98.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.jasp-stats.JASP' AND version_compare(bundle_short_version, '0.98.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.jasp-stats.JASP');" }, "installer_url": "https://github.com/jasp-stats/jasp-desktop/releases/download/v0.98.1/JASP-0.98.1.0-macOS-arm64.dmg", "install_script_ref": "bbbd6311", diff --git a/ee/maintained-apps/outputs/jellyfin/darwin.json b/ee/maintained-apps/outputs/jellyfin/darwin.json index bab1406e180..79a0fc17953 100644 --- a/ee/maintained-apps/outputs/jellyfin/darwin.json +++ b/ee/maintained-apps/outputs/jellyfin/darwin.json @@ -4,7 +4,8 @@ "version": "10.11.11", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'Jellyfin.Server';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'Jellyfin.Server' AND version_compare(bundle_short_version, '10.11.11') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'Jellyfin.Server' AND version_compare(bundle_short_version, '10.11.11') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'Jellyfin.Server');" }, "installer_url": "https://repo.jellyfin.org/files/server/macos/stable/v10.11.11/arm64/jellyfin_10.11.11-arm64.dmg", "install_script_ref": "386ec6ab", diff --git a/ee/maintained-apps/outputs/jetbrains-toolbox/darwin.json b/ee/maintained-apps/outputs/jetbrains-toolbox/darwin.json index 6c940c4cad5..3b3164a699a 100644 --- a/ee/maintained-apps/outputs/jetbrains-toolbox/darwin.json +++ b/ee/maintained-apps/outputs/jetbrains-toolbox/darwin.json @@ -4,7 +4,8 @@ "version": "3.6.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.toolbox';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.toolbox' AND version_compare(bundle_short_version, '3.6.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.toolbox' AND version_compare(bundle_short_version, '3.6.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jetbrains.toolbox');" }, "installer_url": "https://download.jetbrains.com/toolbox/jetbrains-toolbox-3.6.4.86641-arm64.dmg", "install_script_ref": "18687029", diff --git a/ee/maintained-apps/outputs/jetbrains-toolbox/windows.json b/ee/maintained-apps/outputs/jetbrains-toolbox/windows.json index 09d60f464f9..143f15fc0d7 100644 --- a/ee/maintained-apps/outputs/jetbrains-toolbox/windows.json +++ b/ee/maintained-apps/outputs/jetbrains-toolbox/windows.json @@ -4,7 +4,8 @@ "version": "3.6.4.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'JetBrains Toolbox' AND publisher = 'JetBrains';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'JetBrains Toolbox' AND publisher = 'JetBrains' AND version_compare(version, '3.6.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'JetBrains Toolbox' AND publisher = 'JetBrains' AND version_compare(version, '3.6.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('toolbox.exe','jetbrains-toolbox.exe'));" }, "installer_url": "https://download.jetbrains.com/toolbox/jetbrains-toolbox-3.6.4.86641.exe", "install_script_ref": "f635418b", diff --git a/ee/maintained-apps/outputs/jiggler/darwin.json b/ee/maintained-apps/outputs/jiggler/darwin.json index fba171e1959..e2903de296e 100644 --- a/ee/maintained-apps/outputs/jiggler/darwin.json +++ b/ee/maintained-apps/outputs/jiggler/darwin.json @@ -4,7 +4,8 @@ "version": "1.10", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.stick.app.jiggler';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.stick.app.jiggler' AND version_compare(bundle_short_version, '1.10') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.stick.app.jiggler' AND version_compare(bundle_short_version, '1.10') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.stick.app.jiggler');" }, "installer_url": "https://downloads.sticksoftware.com/Jiggler.dmg", "install_script_ref": "709befc0", diff --git a/ee/maintained-apps/outputs/jitsi-meet/darwin.json b/ee/maintained-apps/outputs/jitsi-meet/darwin.json index b7674300843..728e3b1d752 100644 --- a/ee/maintained-apps/outputs/jitsi-meet/darwin.json +++ b/ee/maintained-apps/outputs/jitsi-meet/darwin.json @@ -4,7 +4,8 @@ "version": "2026.8.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.jitsi.jitsi-meet';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.jitsi.jitsi-meet' AND version_compare(bundle_short_version, '2026.8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.jitsi.jitsi-meet' AND version_compare(bundle_short_version, '2026.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.jitsi.jitsi-meet');" }, "installer_url": "https://github.com/jitsi/jitsi-meet-electron/releases/download/v2026.8.0/jitsi-meet.dmg", "install_script_ref": "7b39a3a8", diff --git a/ee/maintained-apps/outputs/joplin/darwin.json b/ee/maintained-apps/outputs/joplin/darwin.json index 2aca5967ce1..dd2bf79cd77 100644 --- a/ee/maintained-apps/outputs/joplin/darwin.json +++ b/ee/maintained-apps/outputs/joplin/darwin.json @@ -4,7 +4,8 @@ "version": "3.6.15", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.cozic.joplin-desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.cozic.joplin-desktop' AND version_compare(bundle_short_version, '3.6.15') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.cozic.joplin-desktop' AND version_compare(bundle_short_version, '3.6.15') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.cozic.joplin-desktop');" }, "installer_url": "https://github.com/laurent22/joplin/releases/download/v3.6.15/Joplin-3.6.15-arm64.DMG", "install_script_ref": "a14de727", diff --git a/ee/maintained-apps/outputs/joplin/windows.json b/ee/maintained-apps/outputs/joplin/windows.json index 34bcc5098f6..043b3dc6762 100644 --- a/ee/maintained-apps/outputs/joplin/windows.json +++ b/ee/maintained-apps/outputs/joplin/windows.json @@ -4,7 +4,8 @@ "version": "3.6.15", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Joplin %' AND publisher = 'Laurent Cozic';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Joplin %' AND publisher = 'Laurent Cozic' AND version_compare(version, '3.6.15') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Joplin %' AND publisher = 'Laurent Cozic' AND version_compare(version, '3.6.15') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'joplin.exe');" }, "installer_url": "https://github.com/laurent22/joplin/releases/download/v3.6.15/Joplin-Setup-3.6.15.exe", "install_script_ref": "c256db87", diff --git a/ee/maintained-apps/outputs/jordanbaird-ice/darwin.json b/ee/maintained-apps/outputs/jordanbaird-ice/darwin.json index 94f8c59e464..0f33198033b 100644 --- a/ee/maintained-apps/outputs/jordanbaird-ice/darwin.json +++ b/ee/maintained-apps/outputs/jordanbaird-ice/darwin.json @@ -4,7 +4,8 @@ "version": "0.11.12", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jordanbaird.Ice';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jordanbaird.Ice' AND version_compare(bundle_short_version, '0.11.12') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jordanbaird.Ice' AND version_compare(bundle_short_version, '0.11.12') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jordanbaird.Ice');" }, "installer_url": "https://github.com/jordanbaird/ice-releases/releases/download/0.11.12/Ice.zip", "install_script_ref": "03e7fb11", diff --git a/ee/maintained-apps/outputs/julia-app/darwin.json b/ee/maintained-apps/outputs/julia-app/darwin.json index f86425d9256..8dff9311985 100644 --- a/ee/maintained-apps/outputs/julia-app/darwin.json +++ b/ee/maintained-apps/outputs/julia-app/darwin.json @@ -4,7 +4,8 @@ "version": "1.12.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.Julia';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.Julia' AND version_compare(bundle_short_version, '1.12.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.Julia' AND version_compare(bundle_short_version, '1.12.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.github.Julia');" }, "installer_url": "https://julialang-s3.julialang.org/bin/mac/aarch64/1.12/julia-1.12.6-macaarch64.dmg", "install_script_ref": "d9e3339c", diff --git a/ee/maintained-apps/outputs/julia-app/windows.json b/ee/maintained-apps/outputs/julia-app/windows.json index d4e8a69fdee..c3fa8fd3298 100644 --- a/ee/maintained-apps/outputs/julia-app/windows.json +++ b/ee/maintained-apps/outputs/julia-app/windows.json @@ -4,7 +4,8 @@ "version": "1.12.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Julia %' AND publisher = 'Julia Language';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Julia %' AND publisher = 'Julia Language' AND version_compare(version, '1.12.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Julia %' AND publisher = 'Julia Language' AND version_compare(version, '1.12.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'julia.exe');" }, "installer_url": "https://julialang-s3.julialang.org/bin/winnt/x64/1.12/julia-1.12.6-win64.exe", "install_script_ref": "8e29c74d", diff --git a/ee/maintained-apps/outputs/jump-desktop/darwin.json b/ee/maintained-apps/outputs/jump-desktop/darwin.json index 354a573caf7..b87a66b9c63 100644 --- a/ee/maintained-apps/outputs/jump-desktop/darwin.json +++ b/ee/maintained-apps/outputs/jump-desktop/darwin.json @@ -4,7 +4,8 @@ "version": "9.1.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.p5sys.jump.mac.viewer.web';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.p5sys.jump.mac.viewer.web' AND version_compare(bundle_short_version, '9.1.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.p5sys.jump.mac.viewer.web' AND version_compare(bundle_short_version, '9.1.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.p5sys.jump.mac.viewer.web');" }, "installer_url": "https://mirror.jumpdesktop.com/downloads/jdm/JumpDesktopMac-90109.zip", "install_script_ref": "5ddfa84f", diff --git a/ee/maintained-apps/outputs/kaleidoscope/darwin.json b/ee/maintained-apps/outputs/kaleidoscope/darwin.json index 9ff44664ba2..eabce3ee4df 100644 --- a/ee/maintained-apps/outputs/kaleidoscope/darwin.json +++ b/ee/maintained-apps/outputs/kaleidoscope/darwin.json @@ -4,7 +4,8 @@ "version": "7.0.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.kaleidoscope.v6';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.kaleidoscope.v6' AND version_compare(bundle_short_version, '7.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.kaleidoscope.v6' AND version_compare(bundle_short_version, '7.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.kaleidoscope.v6');" }, "installer_url": "https://updates.kaleidoscope.app/v7/prod/Kaleidoscope-7.0.1-10509.app.zip", "install_script_ref": "3a263165", diff --git a/ee/maintained-apps/outputs/kap/darwin.json b/ee/maintained-apps/outputs/kap/darwin.json index 9789c71f80c..6b67f729e62 100644 --- a/ee/maintained-apps/outputs/kap/darwin.json +++ b/ee/maintained-apps/outputs/kap/darwin.json @@ -4,7 +4,8 @@ "version": "3.6.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.wulkano.kap';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.wulkano.kap' AND version_compare(bundle_short_version, '3.6.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.wulkano.kap' AND version_compare(bundle_short_version, '3.6.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.wulkano.kap');" }, "installer_url": "https://github.com/wulkano/kap/releases/download/v3.6.0/Kap-3.6.0-arm64.dmg", "install_script_ref": "12d70243", diff --git a/ee/maintained-apps/outputs/kdenlive/darwin.json b/ee/maintained-apps/outputs/kdenlive/darwin.json index 4bea23d6223..d5873c4b7b0 100644 --- a/ee/maintained-apps/outputs/kdenlive/darwin.json +++ b/ee/maintained-apps/outputs/kdenlive/darwin.json @@ -4,7 +4,8 @@ "version": "26.04.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.kde.Kdenlive';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.kde.Kdenlive' AND version_compare(bundle_short_version, '26.04.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.kde.Kdenlive' AND version_compare(bundle_short_version, '26.04.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.kde.Kdenlive');" }, "installer_url": "https://cdn.download.kde.org/stable/kdenlive/26.04/macOS/kdenlive-26.04.3-arm64.dmg", "install_script_ref": "7b5dd185", diff --git a/ee/maintained-apps/outputs/keepassxc/darwin.json b/ee/maintained-apps/outputs/keepassxc/darwin.json index d95c082d1d2..a408d08a598 100644 --- a/ee/maintained-apps/outputs/keepassxc/darwin.json +++ b/ee/maintained-apps/outputs/keepassxc/darwin.json @@ -4,7 +4,8 @@ "version": "2.7.12", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.keepassx.keepassxc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.keepassx.keepassxc' AND version_compare(bundle_short_version, '2.7.12') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.keepassx.keepassxc' AND version_compare(bundle_short_version, '2.7.12') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.keepassx.keepassxc');" }, "installer_url": "https://github.com/keepassxreboot/keepassxc/releases/download/2.7.12/KeePassXC-2.7.12-arm64.dmg", "install_script_ref": "0e8948ca", diff --git a/ee/maintained-apps/outputs/keepassxc/windows.json b/ee/maintained-apps/outputs/keepassxc/windows.json index 3c8913fca32..eb5c8694155 100644 --- a/ee/maintained-apps/outputs/keepassxc/windows.json +++ b/ee/maintained-apps/outputs/keepassxc/windows.json @@ -4,7 +4,8 @@ "version": "2.7.12", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'KeePassXC' AND publisher = 'KeePassXC Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'KeePassXC' AND publisher = 'KeePassXC Team' AND version_compare(version, '2.7.12') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'KeePassXC' AND publisher = 'KeePassXC Team' AND version_compare(version, '2.7.12') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'keepassxc.exe');" }, "installer_url": "https://github.com/keepassxreboot/keepassxc/releases/download/2.7.12/KeePassXC-2.7.12-Win64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/keeper-password-manager/darwin.json b/ee/maintained-apps/outputs/keeper-password-manager/darwin.json index 3bd1ded5b30..bad004d6816 100644 --- a/ee/maintained-apps/outputs/keeper-password-manager/darwin.json +++ b/ee/maintained-apps/outputs/keeper-password-manager/darwin.json @@ -4,7 +4,8 @@ "version": "18.5.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.keepersecurity.passwordmanager';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.keepersecurity.passwordmanager' AND version_compare(bundle_short_version, '18.5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.keepersecurity.passwordmanager' AND version_compare(bundle_short_version, '18.5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.keepersecurity.passwordmanager');" }, "installer_url": "https://keepersecurity.com/desktop_electron/Darwin/KeeperSetup.dmg", "install_script_ref": "bd9c8589", diff --git a/ee/maintained-apps/outputs/keepingyouawake/darwin.json b/ee/maintained-apps/outputs/keepingyouawake/darwin.json index 92af51ea261..209a0ac3cdc 100644 --- a/ee/maintained-apps/outputs/keepingyouawake/darwin.json +++ b/ee/maintained-apps/outputs/keepingyouawake/darwin.json @@ -4,7 +4,8 @@ "version": "1.6.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'info.marcel-dierkes.KeepingYouAwake';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'info.marcel-dierkes.KeepingYouAwake' AND version_compare(bundle_short_version, '1.6.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'info.marcel-dierkes.KeepingYouAwake' AND version_compare(bundle_short_version, '1.6.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'info.marcel-dierkes.KeepingYouAwake');" }, "installer_url": "https://github.com/newmarcel/KeepingYouAwake/releases/download/1.6.8/KeepingYouAwake-1.6.8.zip", "install_script_ref": "c3416a87", diff --git a/ee/maintained-apps/outputs/keeweb/darwin.json b/ee/maintained-apps/outputs/keeweb/darwin.json index 54b6b6d1aff..524aba4577f 100644 --- a/ee/maintained-apps/outputs/keeweb/darwin.json +++ b/ee/maintained-apps/outputs/keeweb/darwin.json @@ -4,7 +4,8 @@ "version": "1.18.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.antelle.keeweb';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.antelle.keeweb' AND version_compare(bundle_short_version, '1.18.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.antelle.keeweb' AND version_compare(bundle_short_version, '1.18.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.antelle.keeweb');" }, "installer_url": "https://github.com/keeweb/keeweb/releases/download/v1.18.7/KeeWeb-1.18.7.mac.arm64.dmg", "install_script_ref": "e5f3a771", diff --git a/ee/maintained-apps/outputs/keka/darwin.json b/ee/maintained-apps/outputs/keka/darwin.json index 7d1854cc875..1ad1c485207 100644 --- a/ee/maintained-apps/outputs/keka/darwin.json +++ b/ee/maintained-apps/outputs/keka/darwin.json @@ -4,7 +4,8 @@ "version": "1.6.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.aone.keka';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.aone.keka' AND version_compare(bundle_short_version, '1.6.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.aone.keka' AND version_compare(bundle_short_version, '1.6.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.aone.keka');" }, "installer_url": "https://github.com/aonez/Keka/releases/download/v1.6.7/Keka-1.6.7.dmg", "install_script_ref": "70a86665", diff --git a/ee/maintained-apps/outputs/keyboard-cowboy/darwin.json b/ee/maintained-apps/outputs/keyboard-cowboy/darwin.json index 38ae612614b..cc3217a93b1 100644 --- a/ee/maintained-apps/outputs/keyboard-cowboy/darwin.json +++ b/ee/maintained-apps/outputs/keyboard-cowboy/darwin.json @@ -4,7 +4,8 @@ "version": "3.28.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.zenangst.Keyboard-Cowboy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.zenangst.Keyboard-Cowboy' AND version_compare(bundle_short_version, '3.28.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.zenangst.Keyboard-Cowboy' AND version_compare(bundle_short_version, '3.28.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.zenangst.Keyboard-Cowboy');" }, "installer_url": "https://github.com/zenangst/KeyboardCowboy/releases/download/3.28.4/Keyboard.Cowboy.3.28.4.dmg", "install_script_ref": "05c18d94", diff --git a/ee/maintained-apps/outputs/keyboard-maestro/darwin.json b/ee/maintained-apps/outputs/keyboard-maestro/darwin.json index b0fa1555f1e..056b69fb59a 100644 --- a/ee/maintained-apps/outputs/keyboard-maestro/darwin.json +++ b/ee/maintained-apps/outputs/keyboard-maestro/darwin.json @@ -4,7 +4,8 @@ "version": "11.1.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.stairways.keyboardmaestro.editor';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.stairways.keyboardmaestro.editor' AND version_compare(bundle_short_version, '11.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.stairways.keyboardmaestro.editor' AND version_compare(bundle_short_version, '11.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.stairways.keyboardmaestro.editor');" }, "installer_url": "https://files.stairways.com/keyboardmaestro-1111.zip", "install_script_ref": "3de43890", diff --git a/ee/maintained-apps/outputs/keyboardcleantool/darwin.json b/ee/maintained-apps/outputs/keyboardcleantool/darwin.json index bbd4caa4757..a662c2af10c 100644 --- a/ee/maintained-apps/outputs/keyboardcleantool/darwin.json +++ b/ee/maintained-apps/outputs/keyboardcleantool/darwin.json @@ -4,7 +4,8 @@ "version": "7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hegenberg.KeyboardCleanTool';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hegenberg.KeyboardCleanTool' AND version_compare(bundle_short_version, '7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hegenberg.KeyboardCleanTool' AND version_compare(bundle_short_version, '7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hegenberg.KeyboardCleanTool');" }, "installer_url": "https://folivora.ai/releases/KeyboardCleanTool.zip", "install_script_ref": "5082bf17", diff --git a/ee/maintained-apps/outputs/keycastr/darwin.json b/ee/maintained-apps/outputs/keycastr/darwin.json index bc2ec694c1b..bb376ba7324 100644 --- a/ee/maintained-apps/outputs/keycastr/darwin.json +++ b/ee/maintained-apps/outputs/keycastr/darwin.json @@ -4,7 +4,8 @@ "version": "0.10.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.github.keycastr';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.github.keycastr' AND version_compare(bundle_short_version, '0.10.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.github.keycastr' AND version_compare(bundle_short_version, '0.10.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.github.keycastr');" }, "installer_url": "https://github.com/keycastr/keycastr/releases/download/v0.10.5/KeyCastr.app.zip", "install_script_ref": "68bfaec3", diff --git a/ee/maintained-apps/outputs/keyclu/darwin.json b/ee/maintained-apps/outputs/keyclu/darwin.json index 33ebdc5a7b5..b12fe41cf8f 100644 --- a/ee/maintained-apps/outputs/keyclu/darwin.json +++ b/ee/maintained-apps/outputs/keyclu/darwin.json @@ -4,7 +4,8 @@ "version": "0.32", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.0804Team.KeyClu';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.0804Team.KeyClu' AND version_compare(bundle_short_version, '0.32') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.0804Team.KeyClu' AND version_compare(bundle_short_version, '0.32') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.0804Team.KeyClu');" }, "installer_url": "https://github.com/Anze/KeyCluCask/releases/download/v0.32/KeyClu.zip", "install_script_ref": "e77607c6", diff --git a/ee/maintained-apps/outputs/keystore-explorer/darwin.json b/ee/maintained-apps/outputs/keystore-explorer/darwin.json index 83e85be9ef2..65ac885eeef 100644 --- a/ee/maintained-apps/outputs/keystore-explorer/darwin.json +++ b/ee/maintained-apps/outputs/keystore-explorer/darwin.json @@ -4,7 +4,8 @@ "version": "5.6.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.kse.keystore-explorer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.kse.keystore-explorer' AND version_compare(bundle_short_version, '5.6.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.kse.keystore-explorer' AND version_compare(bundle_short_version, '5.6.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.kse.keystore-explorer');" }, "installer_url": "https://github.com/kaikramer/keystore-explorer/releases/download/v5.6.1/kse-561-arm64.dmg", "install_script_ref": "cfac5836", diff --git a/ee/maintained-apps/outputs/kiro-cli/darwin.json b/ee/maintained-apps/outputs/kiro-cli/darwin.json index 3e9fea64600..f75ba7e0429 100644 --- a/ee/maintained-apps/outputs/kiro-cli/darwin.json +++ b/ee/maintained-apps/outputs/kiro-cli/darwin.json @@ -4,7 +4,8 @@ "version": "2.16.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.cli';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.cli' AND version_compare(bundle_short_version, '2.16.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.cli' AND version_compare(bundle_short_version, '2.16.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'dev.kiro.cli');" }, "installer_url": "https://desktop-release.q.us-east-1.amazonaws.com/2.16.2/Kiro%20CLI.dmg", "install_script_ref": "21bed962", diff --git a/ee/maintained-apps/outputs/kiro/darwin.json b/ee/maintained-apps/outputs/kiro/darwin.json index 369acbb01a7..6f2ba8e892d 100644 --- a/ee/maintained-apps/outputs/kiro/darwin.json +++ b/ee/maintained-apps/outputs/kiro/darwin.json @@ -4,7 +4,8 @@ "version": "1.0.288", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.desktop' AND version_compare(bundle_short_version, '1.0.288') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.desktop' AND version_compare(bundle_short_version, '1.0.288') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'dev.kiro.desktop');" }, "installer_url": "https://prod.download.desktop.kiro.dev/releases/stable/darwin-arm64/signed/1.0.288/kiro-ide-1.0.288-stable-darwin-arm64.dmg", "install_script_ref": "84b6676a", diff --git a/ee/maintained-apps/outputs/kiro/windows.json b/ee/maintained-apps/outputs/kiro/windows.json index ff5980498b5..ce9dd85e1e9 100644 --- a/ee/maintained-apps/outputs/kiro/windows.json +++ b/ee/maintained-apps/outputs/kiro/windows.json @@ -4,7 +4,8 @@ "version": "1.0.288", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Kiro (User)' AND publisher = 'Amazon Web Services';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Kiro (User)' AND publisher = 'Amazon Web Services' AND version_compare(version, '1.0.288') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Kiro (User)' AND publisher = 'Amazon Web Services' AND version_compare(version, '1.0.288') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'kiro.exe');" }, "installer_url": "https://prod.download.desktop.kiro.dev/releases/stable/win32-x64/signed/1.0.288/kiro-ide-1.0.288-stable-win32-x64.exe", "install_script_ref": "c5bc3c21", diff --git a/ee/maintained-apps/outputs/kitty/darwin.json b/ee/maintained-apps/outputs/kitty/darwin.json index 5718f994352..294a52d727d 100644 --- a/ee/maintained-apps/outputs/kitty/darwin.json +++ b/ee/maintained-apps/outputs/kitty/darwin.json @@ -4,7 +4,8 @@ "version": "0.48.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.kovidgoyal.kitty';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.kovidgoyal.kitty' AND version_compare(bundle_short_version, '0.48.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.kovidgoyal.kitty' AND version_compare(bundle_short_version, '0.48.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.kovidgoyal.kitty');" }, "installer_url": "https://github.com/kovidgoyal/kitty/releases/download/v0.48.2/kitty-0.48.2.dmg", "install_script_ref": "ab5aff61", diff --git a/ee/maintained-apps/outputs/klokki/darwin.json b/ee/maintained-apps/outputs/klokki/darwin.json index a0bc24049f2..936efe6ca8e 100644 --- a/ee/maintained-apps/outputs/klokki/darwin.json +++ b/ee/maintained-apps/outputs/klokki/darwin.json @@ -4,7 +4,8 @@ "version": "1.3.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.klokki-launcher';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.klokki-launcher' AND version_compare(bundle_short_version, '1.3.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.klokki-launcher' AND version_compare(bundle_short_version, '1.3.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.klokki-launcher');" }, "installer_url": "https://klokki.com/download/Klokki.dmg", "install_script_ref": "42610a14", diff --git a/ee/maintained-apps/outputs/knime/darwin.json b/ee/maintained-apps/outputs/knime/darwin.json index 39267a2d500..04ae00c9a8f 100644 --- a/ee/maintained-apps/outputs/knime/darwin.json +++ b/ee/maintained-apps/outputs/knime/darwin.json @@ -4,7 +4,8 @@ "version": "5.12.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.knime.product';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.knime.product' AND version_compare(bundle_short_version, '5.12.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.knime.product' AND version_compare(bundle_short_version, '5.12.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.knime.product');" }, "installer_url": "https://download.knime.org/analytics-platform/macosx/knime_5.12.0.app.macosx.cocoa.aarch64.dmg", "install_script_ref": "6c958731", diff --git a/ee/maintained-apps/outputs/knime/windows.json b/ee/maintained-apps/outputs/knime/windows.json index a353c270a87..132284ce0fa 100644 --- a/ee/maintained-apps/outputs/knime/windows.json +++ b/ee/maintained-apps/outputs/knime/windows.json @@ -4,7 +4,8 @@ "version": "5.8.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'KNIME Analytics Platform %' AND publisher = 'KNIME AG';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'KNIME Analytics Platform %' AND publisher = 'KNIME AG' AND version_compare(version, '5.8.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'KNIME Analytics Platform %' AND publisher = 'KNIME AG' AND version_compare(version, '5.8.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'knime.exe');" }, "installer_url": "https://download.knime.com/analytics-platform/win/KNIME%205.8.3%20Installer%20(64bit).exe", "install_script_ref": "37a3a8bd", diff --git a/ee/maintained-apps/outputs/knockknock/darwin.json b/ee/maintained-apps/outputs/knockknock/darwin.json index 6b78f5e9d7c..3226a8b33ae 100644 --- a/ee/maintained-apps/outputs/knockknock/darwin.json +++ b/ee/maintained-apps/outputs/knockknock/darwin.json @@ -4,7 +4,8 @@ "version": "4.0.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.objective-see.KnockKnock';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.objective-see.KnockKnock' AND version_compare(bundle_short_version, '4.0.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.objective-see.KnockKnock' AND version_compare(bundle_short_version, '4.0.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.objective-see.KnockKnock');" }, "installer_url": "https://github.com/objective-see/KnockKnock/releases/download/v4.0.3/KnockKnock_4.0.3.zip", "install_script_ref": "357d3c4a", diff --git a/ee/maintained-apps/outputs/krisp/darwin.json b/ee/maintained-apps/outputs/krisp/darwin.json index f5ce468aea6..11acc7ec1a5 100644 --- a/ee/maintained-apps/outputs/krisp/darwin.json +++ b/ee/maintained-apps/outputs/krisp/darwin.json @@ -4,7 +4,8 @@ "version": "3.14.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ai.krisp.krispMac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ai.krisp.krispMac' AND version_compare(bundle_short_version, '3.14.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ai.krisp.krispMac' AND version_compare(bundle_short_version, '3.14.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'ai.krisp.krispMac');" }, "installer_url": "https://cdn.krisp.ai/mp/mn/3.14/mac/Krisp_3.14.6_arm64.pkg", "install_script_ref": "8eee0d6d", diff --git a/ee/maintained-apps/outputs/krita/darwin.json b/ee/maintained-apps/outputs/krita/darwin.json index 15fbb55af64..e0d5bc6ac82 100644 --- a/ee/maintained-apps/outputs/krita/darwin.json +++ b/ee/maintained-apps/outputs/krita/darwin.json @@ -4,7 +4,8 @@ "version": "5.3.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.kde.krita';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.kde.krita' AND version_compare(bundle_short_version, '5.3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.kde.krita' AND version_compare(bundle_short_version, '5.3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.kde.krita');" }, "installer_url": "https://download.kde.org/stable/krita/5.3.3/krita-5.3.3-signed.dmg", "install_script_ref": "cdb966e7", diff --git a/ee/maintained-apps/outputs/krita/windows.json b/ee/maintained-apps/outputs/krita/windows.json index 9a2bb8fc109..7f0ab864424 100644 --- a/ee/maintained-apps/outputs/krita/windows.json +++ b/ee/maintained-apps/outputs/krita/windows.json @@ -4,7 +4,8 @@ "version": "5.3.3.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Krita_x64' AND publisher = 'Krita Foundation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Krita_x64' AND publisher = 'Krita Foundation' AND version_compare(version, '5.3.3.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Krita_x64' AND publisher = 'Krita Foundation' AND version_compare(version, '5.3.3.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'krita.exe');" }, "installer_url": "https://download.kde.org/stable/krita/5.3.3/krita-x64-5.3.3-setup.exe", "install_script_ref": "4899cb9d", diff --git a/ee/maintained-apps/outputs/lapce/darwin.json b/ee/maintained-apps/outputs/lapce/darwin.json index adcf2162452..c987a4085a3 100644 --- a/ee/maintained-apps/outputs/lapce/darwin.json +++ b/ee/maintained-apps/outputs/lapce/darwin.json @@ -4,7 +4,8 @@ "version": "0.4.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.lapce';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.lapce' AND version_compare(bundle_short_version, '0.4.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.lapce' AND version_compare(bundle_short_version, '0.4.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.lapce');" }, "installer_url": "https://github.com/lapce/lapce/releases/download/v0.4.6/Lapce-macos.dmg", "install_script_ref": "38ecdbea", diff --git a/ee/maintained-apps/outputs/lapce/windows.json b/ee/maintained-apps/outputs/lapce/windows.json index 7a7b1a480fc..bc45fd3bcca 100644 --- a/ee/maintained-apps/outputs/lapce/windows.json +++ b/ee/maintained-apps/outputs/lapce/windows.json @@ -4,7 +4,8 @@ "version": "0.4.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Lapce' AND publisher = 'Lapce';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Lapce' AND publisher = 'Lapce' AND version_compare(version, '0.4.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Lapce' AND publisher = 'Lapce' AND version_compare(version, '0.4.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'lapce.exe');" }, "installer_url": "https://github.com/lapce/lapce/releases/download/v0.4.6/Lapce-windows.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/lasso-app/darwin.json b/ee/maintained-apps/outputs/lasso-app/darwin.json index f394385ab68..96778ea9d40 100644 --- a/ee/maintained-apps/outputs/lasso-app/darwin.json +++ b/ee/maintained-apps/outputs/lasso-app/darwin.json @@ -4,7 +4,8 @@ "version": "1.8.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.heavylightapps.lasso';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.heavylightapps.lasso' AND version_compare(bundle_short_version, '1.8.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.heavylightapps.lasso' AND version_compare(bundle_short_version, '1.8.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.heavylightapps.lasso');" }, "installer_url": "https://f003.backblazeb2.com/file/lasso-app/Lasso.dmg", "install_script_ref": "43555296", diff --git a/ee/maintained-apps/outputs/last-window-quits/darwin.json b/ee/maintained-apps/outputs/last-window-quits/darwin.json index cce00b21bb3..102512014c3 100644 --- a/ee/maintained-apps/outputs/last-window-quits/darwin.json +++ b/ee/maintained-apps/outputs/last-window-quits/darwin.json @@ -4,7 +4,8 @@ "version": "1.1.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.lawand.last-window-quits';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.lawand.last-window-quits' AND version_compare(bundle_short_version, '1.1.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.lawand.last-window-quits' AND version_compare(bundle_short_version, '1.1.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.lawand.last-window-quits');" }, "installer_url": "https://lawand.io/wp-content/uploads/2024/12/last-window-quits-1.1.4.zip", "install_script_ref": "58da4ce9", diff --git a/ee/maintained-apps/outputs/lastpass/darwin.json b/ee/maintained-apps/outputs/lastpass/darwin.json index 4688d3ec57f..fc4805d6c7a 100644 --- a/ee/maintained-apps/outputs/lastpass/darwin.json +++ b/ee/maintained-apps/outputs/lastpass/darwin.json @@ -4,7 +4,8 @@ "version": "4.116.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lastpass.lastpassmacdesktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lastpass.lastpassmacdesktop' AND version_compare(bundle_short_version, '4.116.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lastpass.lastpassmacdesktop' AND version_compare(bundle_short_version, '4.116.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.lastpass.lastpassmacdesktop');" }, "installer_url": "https://download.cloud.lastpass.com/mac/LastPass.dmg", "install_script_ref": "dc019f1a", diff --git a/ee/maintained-apps/outputs/lastpass/windows.json b/ee/maintained-apps/outputs/lastpass/windows.json index 9d8b5da0036..c7e73cd1964 100644 --- a/ee/maintained-apps/outputs/lastpass/windows.json +++ b/ee/maintained-apps/outputs/lastpass/windows.json @@ -4,7 +4,8 @@ "version": "5.4.4.1499", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'LastPass' AND publisher = 'LastPass US LP.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'LastPass' AND publisher = 'LastPass US LP.' AND version_compare(version, '5.4.4.1499') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'LastPass' AND publisher = 'LastPass US LP.' AND version_compare(version, '5.4.4.1499') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'lastpass.exe');" }, "installer_url": "https://download.cloud.lastpass.com/windows_installer/LastPassInstaller.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/latest/darwin.json b/ee/maintained-apps/outputs/latest/darwin.json index 857af9b3478..5b079a6b3d3 100644 --- a/ee/maintained-apps/outputs/latest/darwin.json +++ b/ee/maintained-apps/outputs/latest/darwin.json @@ -4,7 +4,8 @@ "version": "0.11", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.max-langer.Latest';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.max-langer.Latest' AND version_compare(bundle_short_version, '0.11') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.max-langer.Latest' AND version_compare(bundle_short_version, '0.11') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.max-langer.Latest');" }, "installer_url": "https://max.codes/latest/0.11.zip", "install_script_ref": "cd2d088e", diff --git a/ee/maintained-apps/outputs/launchbar/darwin.json b/ee/maintained-apps/outputs/launchbar/darwin.json index d884f233ec6..d818d61f26b 100644 --- a/ee/maintained-apps/outputs/launchbar/darwin.json +++ b/ee/maintained-apps/outputs/launchbar/darwin.json @@ -4,7 +4,8 @@ "version": "6.24", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'at.obdev.LaunchBar';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'at.obdev.LaunchBar' AND version_compare(bundle_short_version, '6.24') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'at.obdev.LaunchBar' AND version_compare(bundle_short_version, '6.24') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'at.obdev.LaunchBar');" }, "installer_url": "https://www.obdev.at/downloads/launchbar/LaunchBar-6.24.dmg", "install_script_ref": "1854606c", diff --git a/ee/maintained-apps/outputs/lenovo-dock-manager/windows.json b/ee/maintained-apps/outputs/lenovo-dock-manager/windows.json index 49ae7659c61..2d1324c06dd 100644 --- a/ee/maintained-apps/outputs/lenovo-dock-manager/windows.json +++ b/ee/maintained-apps/outputs/lenovo-dock-manager/windows.json @@ -4,7 +4,8 @@ "version": "1.6.5.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Lenovo Dock Manager %' AND publisher = 'Lenovo';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Lenovo Dock Manager %' AND publisher = 'Lenovo' AND version_compare(version, '1.6.5.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Lenovo Dock Manager %' AND publisher = 'Lenovo' AND version_compare(version, '1.6.5.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'dockmgr.exe');" }, "installer_url": "https://download.lenovo.com/consumer/options/dockmanagersetup_1.6.5.3.exe", "install_script_ref": "82f10c96", diff --git a/ee/maintained-apps/outputs/lenovo-system-update/windows.json b/ee/maintained-apps/outputs/lenovo-system-update/windows.json index b3e2efb3e8f..093594c844a 100644 --- a/ee/maintained-apps/outputs/lenovo-system-update/windows.json +++ b/ee/maintained-apps/outputs/lenovo-system-update/windows.json @@ -4,7 +4,8 @@ "version": "5.08.03.59", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Lenovo System Update';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Lenovo System Update' AND version_compare(version, '5.08.03.59') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Lenovo System Update' AND version_compare(version, '5.08.03.59') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'lenovo system update.exe');" }, "installer_url": "https://download.lenovo.com/pccbbs/thinkvantage_en/system_update_5.08.03.59.exe", "install_script_ref": "04c67509", diff --git a/ee/maintained-apps/outputs/lens/darwin.json b/ee/maintained-apps/outputs/lens/darwin.json index 5290834c0eb..244bae8c96e 100644 --- a/ee/maintained-apps/outputs/lens/darwin.json +++ b/ee/maintained-apps/outputs/lens/darwin.json @@ -4,7 +4,8 @@ "version": "2026.6.260931-latest", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.kontena-lens';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.kontena-lens' AND version_compare(bundle_short_version, '2026.6.260931-latest') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.kontena-lens' AND version_compare(bundle_short_version, '2026.6.260931-latest') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.kontena-lens');" }, "installer_url": "https://api.k8slens.dev/binaries/Lens-2026.6.260931-latest-arm64.dmg", "install_script_ref": "347d280a", diff --git a/ee/maintained-apps/outputs/lens/windows.json b/ee/maintained-apps/outputs/lens/windows.json index bcaf41b7d2c..671f2d355af 100644 --- a/ee/maintained-apps/outputs/lens/windows.json +++ b/ee/maintained-apps/outputs/lens/windows.json @@ -4,7 +4,8 @@ "version": "2026.6.260931-latest", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Lens %' AND publisher = 'Mirantis, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Lens %' AND publisher = 'Mirantis, Inc.' AND version_compare(version, '2026.6.260931-latest') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Lens %' AND publisher = 'Mirantis, Inc.' AND version_compare(version, '2026.6.260931-latest') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'lens.exe');" }, "installer_url": "https://downloads.k8slens.dev/ide/Lens%20Setup%202026.6.260931-latest.exe", "install_script_ref": "c6fa52b0", diff --git a/ee/maintained-apps/outputs/libreoffice/darwin.json b/ee/maintained-apps/outputs/libreoffice/darwin.json index a3009f483a1..65994b64b3e 100644 --- a/ee/maintained-apps/outputs/libreoffice/darwin.json +++ b/ee/maintained-apps/outputs/libreoffice/darwin.json @@ -4,7 +4,8 @@ "version": "26.2.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.libreoffice.script';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.libreoffice.script' AND version_compare(bundle_short_version, '26.2.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.libreoffice.script' AND version_compare(bundle_short_version, '26.2.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.libreoffice.script');" }, "installer_url": "https://download.documentfoundation.org/libreoffice/stable/26.2.5/mac/aarch64/LibreOffice_26.2.5_MacOS_aarch64.dmg", "install_script_ref": "cdd1906a", diff --git a/ee/maintained-apps/outputs/libreoffice/windows.json b/ee/maintained-apps/outputs/libreoffice/windows.json index 95b3a061d6e..0a229252117 100644 --- a/ee/maintained-apps/outputs/libreoffice/windows.json +++ b/ee/maintained-apps/outputs/libreoffice/windows.json @@ -4,7 +4,8 @@ "version": "26.2.5.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'LibreOffice %' AND publisher = 'The Document Foundation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'LibreOffice %' AND publisher = 'The Document Foundation' AND version_compare(version, '26.2.5.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'LibreOffice %' AND publisher = 'The Document Foundation' AND version_compare(version, '26.2.5.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'libreoffice.exe');" }, "installer_url": "https://download.documentfoundation.org/libreoffice/stable/26.2.5/win/x86_64/LibreOffice_26.2.5_Win_x86-64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/lightburn/darwin.json b/ee/maintained-apps/outputs/lightburn/darwin.json index 273449d2337..9f5c002c92b 100644 --- a/ee/maintained-apps/outputs/lightburn/darwin.json +++ b/ee/maintained-apps/outputs/lightburn/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.03", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.LightBurnSoftware.LightBurn';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.LightBurnSoftware.LightBurn' AND version_compare(bundle_short_version, '2.1.03') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.LightBurnSoftware.LightBurn' AND version_compare(bundle_short_version, '2.1.03') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.LightBurnSoftware.LightBurn');" }, "installer_url": "https://release.lightburnsoftware.com/LightBurn/Release/LightBurn-v2.1.03/LightBurn.V2.1.03.dmg", "install_script_ref": "a9eeda34", diff --git a/ee/maintained-apps/outputs/linear/darwin.json b/ee/maintained-apps/outputs/linear/darwin.json index cb00288b35b..465bbd91f34 100644 --- a/ee/maintained-apps/outputs/linear/darwin.json +++ b/ee/maintained-apps/outputs/linear/darwin.json @@ -4,7 +4,8 @@ "version": "1.32.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.linear';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.linear' AND version_compare(bundle_short_version, '1.32.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.linear' AND version_compare(bundle_short_version, '1.32.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.linear');" }, "installer_url": "https://releases.linear.app/Linear-1.32.1-universal.dmg", "install_script_ref": "cfaa1646", diff --git a/ee/maintained-apps/outputs/linear/windows.json b/ee/maintained-apps/outputs/linear/windows.json index 78c42bb7326..25087b0844f 100644 --- a/ee/maintained-apps/outputs/linear/windows.json +++ b/ee/maintained-apps/outputs/linear/windows.json @@ -4,7 +4,8 @@ "version": "1.32.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Linear %' AND publisher = 'Linear Orbit, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Linear %' AND publisher = 'Linear Orbit, Inc.' AND version_compare(version, '1.32.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Linear %' AND publisher = 'Linear Orbit, Inc.' AND version_compare(version, '1.32.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'linear.exe');" }, "installer_url": "https://releases.linear.app/Linear%20Setup%201.32.1.exe", "install_script_ref": "166c7345", diff --git a/ee/maintained-apps/outputs/linearmouse/darwin.json b/ee/maintained-apps/outputs/linearmouse/darwin.json index 04e84f9ef87..8070af1a49d 100644 --- a/ee/maintained-apps/outputs/linearmouse/darwin.json +++ b/ee/maintained-apps/outputs/linearmouse/darwin.json @@ -4,7 +4,8 @@ "version": "0.11.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lujjjh.LinearMouse';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lujjjh.LinearMouse' AND version_compare(bundle_short_version, '0.11.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lujjjh.LinearMouse' AND version_compare(bundle_short_version, '0.11.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.lujjjh.LinearMouse');" }, "installer_url": "https://dl.linearmouse.org/v0.11.4/LinearMouse.dmg", "install_script_ref": "d00f4222", diff --git a/ee/maintained-apps/outputs/lingon-x/darwin.json b/ee/maintained-apps/outputs/lingon-x/darwin.json index 5ee22bd8445..74c08b05b82 100644 --- a/ee/maintained-apps/outputs/lingon-x/darwin.json +++ b/ee/maintained-apps/outputs/lingon-x/darwin.json @@ -4,7 +4,8 @@ "version": "9.6.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.peterborgapps.LingonX9';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.peterborgapps.LingonX9' AND version_compare(bundle_short_version, '9.6.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.peterborgapps.LingonX9' AND version_compare(bundle_short_version, '9.6.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.peterborgapps.LingonX9');" }, "installer_url": "https://www.peterborgapps.com/downloads/LingonX9.zip", "install_script_ref": "a383e434", diff --git a/ee/maintained-apps/outputs/little-snitch/darwin.json b/ee/maintained-apps/outputs/little-snitch/darwin.json index 7e68f206464..c0739cc64cd 100644 --- a/ee/maintained-apps/outputs/little-snitch/darwin.json +++ b/ee/maintained-apps/outputs/little-snitch/darwin.json @@ -4,7 +4,8 @@ "version": "6.4.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'at.obdev.LittleSnitch';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'at.obdev.LittleSnitch' AND version_compare(bundle_short_version, '6.4.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'at.obdev.LittleSnitch' AND version_compare(bundle_short_version, '6.4.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'at.obdev.LittleSnitch');" }, "installer_url": "https://www.obdev.at/downloads/littlesnitch/LittleSnitch-6.4.1.dmg", "install_script_ref": "d5277c66", diff --git a/ee/maintained-apps/outputs/lo-rain/darwin.json b/ee/maintained-apps/outputs/lo-rain/darwin.json index dc45c89ca37..f1726a3d80c 100644 --- a/ee/maintained-apps/outputs/lo-rain/darwin.json +++ b/ee/maintained-apps/outputs/lo-rain/darwin.json @@ -4,7 +4,8 @@ "version": "1.5.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'lo.cafe.lo-rain';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'lo.cafe.lo-rain' AND version_compare(bundle_short_version, '1.5.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'lo.cafe.lo-rain' AND version_compare(bundle_short_version, '1.5.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'lo.cafe.lo-rain');" }, "installer_url": "https://lo.cafe/lo-rain-files/lo-rain-1.5.2.dmg", "install_script_ref": "573c1451", diff --git a/ee/maintained-apps/outputs/local/darwin.json b/ee/maintained-apps/outputs/local/darwin.json index 37d188d7cee..e2c645f85e1 100644 --- a/ee/maintained-apps/outputs/local/darwin.json +++ b/ee/maintained-apps/outputs/local/darwin.json @@ -4,7 +4,8 @@ "version": "10.1.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.getflywheel.lightning.local';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.getflywheel.lightning.local' AND version_compare(bundle_short_version, '10.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.getflywheel.lightning.local' AND version_compare(bundle_short_version, '10.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.getflywheel.lightning.local');" }, "installer_url": "https://cdn.localwp.com/releases-stable/10.1.1+6939/local-10.1.1-mac-arm64.dmg", "install_script_ref": "c77001b6", diff --git a/ee/maintained-apps/outputs/localsend/darwin.json b/ee/maintained-apps/outputs/localsend/darwin.json index f7cdd0994a1..3a4cb6f28f6 100644 --- a/ee/maintained-apps/outputs/localsend/darwin.json +++ b/ee/maintained-apps/outputs/localsend/darwin.json @@ -4,7 +4,8 @@ "version": "1.17.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.localsend.localsendApp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.localsend.localsendApp' AND version_compare(bundle_short_version, '1.17.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.localsend.localsendApp' AND version_compare(bundle_short_version, '1.17.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.localsend.localsendApp');" }, "installer_url": "https://github.com/localsend/localsend/releases/download/v1.17.0/LocalSend-1.17.0.dmg", "install_script_ref": "f3e3757e", diff --git a/ee/maintained-apps/outputs/localsend/windows.json b/ee/maintained-apps/outputs/localsend/windows.json index ee0c3f404ef..cfd3c8792fe 100644 --- a/ee/maintained-apps/outputs/localsend/windows.json +++ b/ee/maintained-apps/outputs/localsend/windows.json @@ -4,7 +4,8 @@ "version": "1.17.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'LocalSend' AND publisher = 'Tien Do Nam';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'LocalSend' AND publisher = 'Tien Do Nam' AND version_compare(version, '1.17.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'LocalSend' AND publisher = 'Tien Do Nam' AND version_compare(version, '1.17.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'localsend.exe');" }, "installer_url": "https://github.com/localsend/localsend/releases/download/v1.17.0/LocalSend-1.17.0-windows-x86-64.exe", "install_script_ref": "67e98e13", diff --git a/ee/maintained-apps/outputs/locationsimulator/darwin.json b/ee/maintained-apps/outputs/locationsimulator/darwin.json index 4bc64cbd9c4..c0bf35c1164 100644 --- a/ee/maintained-apps/outputs/locationsimulator/darwin.json +++ b/ee/maintained-apps/outputs/locationsimulator/darwin.json @@ -4,7 +4,8 @@ "version": "0.2.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.schlaubi.LocationSimulator';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.schlaubi.LocationSimulator' AND version_compare(bundle_short_version, '0.2.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.schlaubi.LocationSimulator' AND version_compare(bundle_short_version, '0.2.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.schlaubi.LocationSimulator');" }, "installer_url": "https://github.com/Schlaubischlump/LocationSimulator/releases/download/v0.2.2/LocationSimulator.app.zip", "install_script_ref": "7ec9a43d", diff --git a/ee/maintained-apps/outputs/logi-options+/darwin.json b/ee/maintained-apps/outputs/logi-options+/darwin.json index 524d6b7802c..81f5ebef839 100644 --- a/ee/maintained-apps/outputs/logi-options+/darwin.json +++ b/ee/maintained-apps/outputs/logi-options+/darwin.json @@ -4,7 +4,8 @@ "version": "2.5.926888", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.logi.optionsplus';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.logi.optionsplus' AND version_compare(bundle_short_version, '2.5.926888') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.logi.optionsplus' AND version_compare(bundle_short_version, '2.5.926888') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.logi.optionsplus');" }, "installer_url": "https://download01.logi.com/web/ftp/pub/techsupport/optionsplus/logioptionsplus_installer.zip", "install_script_ref": "3067b165", diff --git a/ee/maintained-apps/outputs/logi-options+/windows.json b/ee/maintained-apps/outputs/logi-options+/windows.json index 02b56515e4b..22b0a84c528 100644 --- a/ee/maintained-apps/outputs/logi-options+/windows.json +++ b/ee/maintained-apps/outputs/logi-options+/windows.json @@ -4,7 +4,8 @@ "version": "2.5.926888", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Logi Options+' AND publisher = 'Logitech';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Logi Options+' AND publisher = 'Logitech' AND version_compare(version, '2.5.926888') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Logi Options+' AND publisher = 'Logitech' AND version_compare(version, '2.5.926888') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'logi options+.exe');" }, "installer_url": "https://download01.logi.com/web/ftp/pub/techsupport/optionsplus/logioptionsplus_installer.exe", "install_script_ref": "ca441859", diff --git a/ee/maintained-apps/outputs/logitech-unifying-software/windows.json b/ee/maintained-apps/outputs/logitech-unifying-software/windows.json index 5ccac1857bf..443935183bb 100644 --- a/ee/maintained-apps/outputs/logitech-unifying-software/windows.json +++ b/ee/maintained-apps/outputs/logitech-unifying-software/windows.json @@ -4,7 +4,8 @@ "version": "2.52.33", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Logitech Unifying Software %' AND publisher = 'Logitech';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Logitech Unifying Software %' AND publisher = 'Logitech' AND version_compare(version, '2.52.33') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Logitech Unifying Software %' AND publisher = 'Logitech' AND version_compare(version, '2.52.33') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'logitech unifying software.exe');" }, "installer_url": "https://download01.logi.com/web/ftp/pub/techsupport/unifying/unifying252.exe", "install_script_ref": "a3795eea", diff --git a/ee/maintained-apps/outputs/logitune/darwin.json b/ee/maintained-apps/outputs/logitune/darwin.json index 72cc1094cc5..47d41ed90bc 100644 --- a/ee/maintained-apps/outputs/logitune/darwin.json +++ b/ee/maintained-apps/outputs/logitune/darwin.json @@ -4,7 +4,8 @@ "version": "3.14.72", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.logitech.logitune';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.logitech.logitune' AND version_compare(bundle_short_version, '3.14.72') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.logitech.logitune' AND version_compare(bundle_short_version, '3.14.72') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.logitech.logitune');" }, "installer_url": "https://software.vc.logitech.com/downloads/tune/LogiTuneInstaller.pkg", "install_script_ref": "93aa8f2a", diff --git a/ee/maintained-apps/outputs/logseq/darwin.json b/ee/maintained-apps/outputs/logseq/darwin.json index 512b68bd670..4ae81b8b94f 100644 --- a/ee/maintained-apps/outputs/logseq/darwin.json +++ b/ee/maintained-apps/outputs/logseq/darwin.json @@ -4,7 +4,8 @@ "version": "2.0.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.logseq';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.logseq' AND version_compare(bundle_short_version, '2.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.logseq' AND version_compare(bundle_short_version, '2.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.logseq');" }, "installer_url": "https://github.com/logseq/logseq/releases/download/2.0.1/logseq-darwin-arm64-2.0.1.dmg", "install_script_ref": "c983b34e", diff --git a/ee/maintained-apps/outputs/lookaway/darwin.json b/ee/maintained-apps/outputs/lookaway/darwin.json index 5679813f5a9..db1faf6dcc8 100644 --- a/ee/maintained-apps/outputs/lookaway/darwin.json +++ b/ee/maintained-apps/outputs/lookaway/darwin.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "2.3.1", + "version": "2.4.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mysticalbits.lookaway';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mysticalbits.lookaway' AND version_compare(bundle_short_version, '2.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mysticalbits.lookaway' AND version_compare(bundle_short_version, '2.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mysticalbits.lookaway');" }, - "installer_url": "https://github.com/mysticalbits/lookaway-releases/releases/download/2.3.1/LookAway.dmg", + "installer_url": "https://github.com/mysticalbits/lookaway-releases/releases/download/2.4.0/LookAway.dmg", "install_script_ref": "693c5e6c", "uninstall_script_ref": "edb6da69", - "sha256": "de44307feba1f113e79a3d140c20edcb3887acccbc53f3ecfa14af1737d930ea", + "sha256": "ef5303ffadd701f0f5c4935cf7517ab2703ae869fb2229aafd318e165c8c159b", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/loom/darwin.json b/ee/maintained-apps/outputs/loom/darwin.json index 75eea185a59..05862095c7f 100644 --- a/ee/maintained-apps/outputs/loom/darwin.json +++ b/ee/maintained-apps/outputs/loom/darwin.json @@ -4,7 +4,8 @@ "version": "0.367.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.loom.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.loom.desktop' AND version_compare(bundle_short_version, '0.367.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.loom.desktop' AND version_compare(bundle_short_version, '0.367.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.loom.desktop');" }, "installer_url": "https://packages.loom.com/desktop-packages/Loom-0.367.1-arm64.dmg", "install_script_ref": "53e2b898", diff --git a/ee/maintained-apps/outputs/loom/windows.json b/ee/maintained-apps/outputs/loom/windows.json index a340404cc66..ffaf28eeb67 100644 --- a/ee/maintained-apps/outputs/loom/windows.json +++ b/ee/maintained-apps/outputs/loom/windows.json @@ -4,7 +4,8 @@ "version": "0.367.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Loom' AND publisher = 'Loom, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Loom' AND publisher = 'Loom, Inc.' AND version_compare(version, '0.367.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Loom' AND publisher = 'Loom, Inc.' AND version_compare(version, '0.367.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'loom.exe');" }, "installer_url": "https://cdn.loom.com/desktop-packages/Loom%20Setup%200.367.1.exe", "install_script_ref": "77327cbf", diff --git a/ee/maintained-apps/outputs/loop/darwin.json b/ee/maintained-apps/outputs/loop/darwin.json index 8fbcd65fcf3..b34e4a59543 100644 --- a/ee/maintained-apps/outputs/loop/darwin.json +++ b/ee/maintained-apps/outputs/loop/darwin.json @@ -4,7 +4,8 @@ "version": "1.4.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.MrKai77.Loop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.MrKai77.Loop' AND version_compare(bundle_short_version, '1.4.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.MrKai77.Loop' AND version_compare(bundle_short_version, '1.4.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.MrKai77.Loop');" }, "installer_url": "https://github.com/MrKai77/Loop/releases/download/1.4.2/Loop.zip", "install_script_ref": "e72cb917", diff --git a/ee/maintained-apps/outputs/loopback/darwin.json b/ee/maintained-apps/outputs/loopback/darwin.json index 588c79652d6..0ecf41dd2fc 100644 --- a/ee/maintained-apps/outputs/loopback/darwin.json +++ b/ee/maintained-apps/outputs/loopback/darwin.json @@ -4,7 +4,8 @@ "version": "2.4.10", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.Loopback';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.Loopback' AND version_compare(bundle_short_version, '2.4.10') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.Loopback' AND version_compare(bundle_short_version, '2.4.10') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.rogueamoeba.Loopback');" }, "installer_url": "https://cdn.rogueamoeba.com/loopback/download/Loopback.zip", "install_script_ref": "e7c273f8", diff --git a/ee/maintained-apps/outputs/losslesscut/darwin.json b/ee/maintained-apps/outputs/losslesscut/darwin.json index 2e466f28a86..ce7dfcb847b 100644 --- a/ee/maintained-apps/outputs/losslesscut/darwin.json +++ b/ee/maintained-apps/outputs/losslesscut/darwin.json @@ -4,7 +4,8 @@ "version": "3.69.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'no.mifi.losslesscut-mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'no.mifi.losslesscut-mac' AND version_compare(bundle_short_version, '3.69.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'no.mifi.losslesscut-mac' AND version_compare(bundle_short_version, '3.69.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'no.mifi.losslesscut-mac');" }, "installer_url": "https://github.com/mifi/lossless-cut/releases/download/v3.69.0/LosslessCut-mac-arm64.dmg", "install_script_ref": "6acff1c2", diff --git a/ee/maintained-apps/outputs/low-profile/darwin.json b/ee/maintained-apps/outputs/low-profile/darwin.json index dd358f0a368..7648cae655b 100644 --- a/ee/maintained-apps/outputs/low-profile/darwin.json +++ b/ee/maintained-apps/outputs/low-profile/darwin.json @@ -4,7 +4,8 @@ "version": "5.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ninxsoft.lowprofile';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ninxsoft.lowprofile' AND version_compare(bundle_short_version, '5.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ninxsoft.lowprofile' AND version_compare(bundle_short_version, '5.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ninxsoft.lowprofile');" }, "installer_url": "https://github.com/ninxsoft/LowProfile/releases/download/v5.0.0/Low.Profile.5.0.0.pkg", "install_script_ref": "5d908716", diff --git a/ee/maintained-apps/outputs/lulu/darwin.json b/ee/maintained-apps/outputs/lulu/darwin.json index 9e7d7a2f9bb..b511a603082 100644 --- a/ee/maintained-apps/outputs/lulu/darwin.json +++ b/ee/maintained-apps/outputs/lulu/darwin.json @@ -4,7 +4,8 @@ "version": "4.5.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.objective-see.lulu.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.objective-see.lulu.app' AND version_compare(bundle_short_version, '4.5.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.objective-see.lulu.app' AND version_compare(bundle_short_version, '4.5.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.objective-see.lulu.app');" }, "installer_url": "https://github.com/objective-see/LuLu/releases/download/v4.5.1/LuLu_4.5.1.dmg", "install_script_ref": "efe18b37", diff --git a/ee/maintained-apps/outputs/lunacy/darwin.json b/ee/maintained-apps/outputs/lunacy/darwin.json index 7768389be92..0e280830841 100644 --- a/ee/maintained-apps/outputs/lunacy/darwin.json +++ b/ee/maintained-apps/outputs/lunacy/darwin.json @@ -4,7 +4,8 @@ "version": "14.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.icons8.Lunacy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.icons8.Lunacy' AND version_compare(bundle_short_version, '14.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.icons8.Lunacy' AND version_compare(bundle_short_version, '14.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.icons8.Lunacy');" }, "installer_url": "https://lcdn.icons8.com/setup/Lunacy_14.1.dmg", "install_script_ref": "dfe007e8", diff --git a/ee/maintained-apps/outputs/lunar/darwin.json b/ee/maintained-apps/outputs/lunar/darwin.json index ee9e79fb836..faea381e5f2 100644 --- a/ee/maintained-apps/outputs/lunar/darwin.json +++ b/ee/maintained-apps/outputs/lunar/darwin.json @@ -4,7 +4,8 @@ "version": "6.11.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'fyi.lunar.Lunar';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'fyi.lunar.Lunar' AND version_compare(bundle_short_version, '6.11.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'fyi.lunar.Lunar' AND version_compare(bundle_short_version, '6.11.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'fyi.lunar.Lunar');" }, "installer_url": "https://files.lunar.fyi/releases/Lunar-6.11.0.dmg", "install_script_ref": "91c6d0e9", diff --git a/ee/maintained-apps/outputs/lunasea/darwin.json b/ee/maintained-apps/outputs/lunasea/darwin.json index c45b6c7fc0a..af035a32733 100644 --- a/ee/maintained-apps/outputs/lunasea/darwin.json +++ b/ee/maintained-apps/outputs/lunasea/darwin.json @@ -4,7 +4,8 @@ "version": "11.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.lunasea.lunasea';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.lunasea.lunasea' AND version_compare(bundle_short_version, '11.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.lunasea.lunasea' AND version_compare(bundle_short_version, '11.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.lunasea.lunasea');" }, "installer_url": "https://github.com/JagandeepBrar/LunaSea/releases/download/v11.0.0/lunasea-macos-amd64.zip", "install_script_ref": "c48005df", diff --git a/ee/maintained-apps/outputs/lunatask/darwin.json b/ee/maintained-apps/outputs/lunatask/darwin.json index 1cd8786dbbb..40c32d5dba8 100644 --- a/ee/maintained-apps/outputs/lunatask/darwin.json +++ b/ee/maintained-apps/outputs/lunatask/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.29", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mikekreeki.tasks';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mikekreeki.tasks' AND version_compare(bundle_short_version, '2.1.29') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mikekreeki.tasks' AND version_compare(bundle_short_version, '2.1.29') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mikekreeki.tasks');" }, "installer_url": "https://github.com/lunatask/lunatask/releases/download/v2.1.29/Lunatask-2.1.29-universal.dmg", "install_script_ref": "aa6aa664", diff --git a/ee/maintained-apps/outputs/lycheeslicer/darwin.json b/ee/maintained-apps/outputs/lycheeslicer/darwin.json index 855198ed00c..ce6f2daf47c 100644 --- a/ee/maintained-apps/outputs/lycheeslicer/darwin.json +++ b/ee/maintained-apps/outputs/lycheeslicer/darwin.json @@ -4,7 +4,8 @@ "version": "7.6.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mango3d.lychee';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mango3d.lychee' AND version_compare(bundle_short_version, '7.6.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mango3d.lychee' AND version_compare(bundle_short_version, '7.6.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mango3d.lychee');" }, "installer_url": "https://mango-lychee.nyc3.cdn.digitaloceanspaces.com/LycheeSlicer-7.6.6.dmg", "install_script_ref": "f2f3783d", diff --git a/ee/maintained-apps/outputs/mac-mouse-fix/darwin.json b/ee/maintained-apps/outputs/mac-mouse-fix/darwin.json index af23ae34eeb..0cdf5b4245b 100644 --- a/ee/maintained-apps/outputs/mac-mouse-fix/darwin.json +++ b/ee/maintained-apps/outputs/mac-mouse-fix/darwin.json @@ -4,7 +4,8 @@ "version": "3.0.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nuebling.mac-mouse-fix';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nuebling.mac-mouse-fix' AND version_compare(bundle_short_version, '3.0.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nuebling.mac-mouse-fix' AND version_compare(bundle_short_version, '3.0.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.nuebling.mac-mouse-fix');" }, "installer_url": "https://github.com/noah-nuebling/mac-mouse-fix/releases/download/3.0.8/MacMouseFixApp.zip", "install_script_ref": "99b2b437", diff --git a/ee/maintained-apps/outputs/maccy/darwin.json b/ee/maintained-apps/outputs/maccy/darwin.json index f1cf17b4246..60b77171cdf 100644 --- a/ee/maintained-apps/outputs/maccy/darwin.json +++ b/ee/maintained-apps/outputs/maccy/darwin.json @@ -4,7 +4,8 @@ "version": "2.7.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.p0deje.Maccy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.p0deje.Maccy' AND version_compare(bundle_short_version, '2.7.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.p0deje.Maccy' AND version_compare(bundle_short_version, '2.7.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.p0deje.Maccy');" }, "installer_url": "https://github.com/p0deje/Maccy/releases/download/2.7.0/Maccy.app.zip", "install_script_ref": "624a6947", diff --git a/ee/maintained-apps/outputs/macdown/darwin.json b/ee/maintained-apps/outputs/macdown/darwin.json index 4c421ee5279..a960218022a 100644 --- a/ee/maintained-apps/outputs/macdown/darwin.json +++ b/ee/maintained-apps/outputs/macdown/darwin.json @@ -4,7 +4,8 @@ "version": "0.7.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.uranusjr.macdown';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.uranusjr.macdown' AND version_compare(bundle_short_version, '0.7.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.uranusjr.macdown' AND version_compare(bundle_short_version, '0.7.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.uranusjr.macdown');" }, "installer_url": "https://github.com/MacDownApp/macdown/releases/download/v0.7.2/MacDown.app.zip", "install_script_ref": "7f252525", diff --git a/ee/maintained-apps/outputs/mace/darwin.json b/ee/maintained-apps/outputs/mace/darwin.json index 8f556599f44..58d849283f8 100644 --- a/ee/maintained-apps/outputs/mace/darwin.json +++ b/ee/maintained-apps/outputs/mace/darwin.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "1.0.0", + "version": "1.1.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mace.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mace.app' AND version_compare(bundle_short_version, '1.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mace.app' AND version_compare(bundle_short_version, '1.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mace.app');" }, - "installer_url": "https://github.com/MACE-App/MACE/releases/download/v1.0.0/M.A.C.E.V1.0.0.dmg", + "installer_url": "https://github.com/MACE-App/MACE/releases/download/v1.1.0/M.A.C.E.V1.1.0.dmg", "install_script_ref": "6d62fdae", "uninstall_script_ref": "672b1fee", - "sha256": "a24d47f5c26d43ba673ed05ed5dcdd24025405790e82f10ce77c374ce9411577", + "sha256": "1ee2a0cac4617f91bb9c92a8875a54ca99c2b215b03293ecdb45afc006a3ef33", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/macjournal/darwin.json b/ee/maintained-apps/outputs/macjournal/darwin.json index 487f5dbd9a4..2d2b960eb55 100644 --- a/ee/maintained-apps/outputs/macjournal/darwin.json +++ b/ee/maintained-apps/outputs/macjournal/darwin.json @@ -4,7 +4,8 @@ "version": "7.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.DanSchimpf.MacJournal';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.DanSchimpf.MacJournal' AND version_compare(bundle_short_version, '7.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.DanSchimpf.MacJournal' AND version_compare(bundle_short_version, '7.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.DanSchimpf.MacJournal');" }, "installer_url": "https://danschimpf.com/macjournal/MacJournal_7.4.zip", "install_script_ref": "cd7f985f", diff --git a/ee/maintained-apps/outputs/macpacker/darwin.json b/ee/maintained-apps/outputs/macpacker/darwin.json index 2f87b050399..e5202a18d3d 100644 --- a/ee/maintained-apps/outputs/macpacker/darwin.json +++ b/ee/maintained-apps/outputs/macpacker/darwin.json @@ -4,7 +4,8 @@ "version": "0.19.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sarensx.MacPacker';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sarensx.MacPacker' AND version_compare(bundle_short_version, '0.19.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sarensx.MacPacker' AND version_compare(bundle_short_version, '0.19.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sarensx.MacPacker');" }, "installer_url": "https://macpacker-releases.s3.amazonaws.com/MacPacker_v0.19.0.zip", "install_script_ref": "dd6b97de", diff --git a/ee/maintained-apps/outputs/macpass/darwin.json b/ee/maintained-apps/outputs/macpass/darwin.json index 02928ee95b2..833495b559d 100644 --- a/ee/maintained-apps/outputs/macpass/darwin.json +++ b/ee/maintained-apps/outputs/macpass/darwin.json @@ -4,7 +4,8 @@ "version": "0.8.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hicknhacksoftware.MacPass';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hicknhacksoftware.MacPass' AND version_compare(bundle_short_version, '0.8.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hicknhacksoftware.MacPass' AND version_compare(bundle_short_version, '0.8.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hicknhacksoftware.MacPass');" }, "installer_url": "https://github.com/MacPass/MacPass/releases/download/0.8.1/MacPass-0.8.1.zip", "install_script_ref": "a933de6f", diff --git a/ee/maintained-apps/outputs/macpilot/darwin.json b/ee/maintained-apps/outputs/macpilot/darwin.json index 79336b234e6..8d8fc2147de 100644 --- a/ee/maintained-apps/outputs/macpilot/darwin.json +++ b/ee/maintained-apps/outputs/macpilot/darwin.json @@ -4,7 +4,8 @@ "version": "17.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.koingosw.MacPilot';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.koingosw.MacPilot' AND version_compare(bundle_short_version, '17.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.koingosw.MacPilot' AND version_compare(bundle_short_version, '17.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.koingosw.MacPilot');" }, "installer_url": "https://www.koingosw.com/products/macpilot/download/macpilot.dmg", "install_script_ref": "c5af05bc", diff --git a/ee/maintained-apps/outputs/macs-fan-control/darwin.json b/ee/maintained-apps/outputs/macs-fan-control/darwin.json index 2745e97d9d3..a33e5c402b0 100644 --- a/ee/maintained-apps/outputs/macs-fan-control/darwin.json +++ b/ee/maintained-apps/outputs/macs-fan-control/darwin.json @@ -4,7 +4,8 @@ "version": "1.5.21", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.crystalidea.macsfancontrol';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.crystalidea.macsfancontrol' AND version_compare(bundle_short_version, '1.5.21') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.crystalidea.macsfancontrol' AND version_compare(bundle_short_version, '1.5.21') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.crystalidea.macsfancontrol');" }, "installer_url": "https://github.com/crystalidea/macs-fan-control/releases/download/v1.5.21/macsfancontrol.zip", "install_script_ref": "35a9abbe", diff --git a/ee/maintained-apps/outputs/macsyzones/darwin.json b/ee/maintained-apps/outputs/macsyzones/darwin.json index 905b47c70df..1d0cab759d5 100644 --- a/ee/maintained-apps/outputs/macsyzones/darwin.json +++ b/ee/maintained-apps/outputs/macsyzones/darwin.json @@ -4,7 +4,8 @@ "version": "3.0.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.macsyzones.MacsyZones';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.macsyzones.MacsyZones' AND version_compare(bundle_short_version, '3.0.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.macsyzones.MacsyZones' AND version_compare(bundle_short_version, '3.0.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.macsyzones.MacsyZones');" }, "installer_url": "https://github.com/rohanrhu/MacsyZones/releases/download/v3.0.4/MacsyZones.zip", "install_script_ref": "43d700bc", diff --git a/ee/maintained-apps/outputs/mactracker/darwin.json b/ee/maintained-apps/outputs/mactracker/darwin.json index 934e5310d63..34df76c0310 100644 --- a/ee/maintained-apps/outputs/mactracker/darwin.json +++ b/ee/maintained-apps/outputs/mactracker/darwin.json @@ -4,7 +4,8 @@ "version": "8.2.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mactrackerapp.Mactracker';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mactrackerapp.Mactracker' AND version_compare(bundle_short_version, '8.2.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mactrackerapp.Mactracker' AND version_compare(bundle_short_version, '8.2.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mactrackerapp.Mactracker');" }, "installer_url": "https://mactracker.ca/downloads/Mactracker_8.2.3.zip", "install_script_ref": "bb82d969", diff --git a/ee/maintained-apps/outputs/macvim-app/darwin.json b/ee/maintained-apps/outputs/macvim-app/darwin.json index 793033fd2ae..2e10081fb21 100644 --- a/ee/maintained-apps/outputs/macvim-app/darwin.json +++ b/ee/maintained-apps/outputs/macvim-app/darwin.json @@ -4,7 +4,8 @@ "version": "183", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.vim.MacVim';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.vim.MacVim' AND version_compare(bundle_short_version, '183') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.vim.MacVim' AND version_compare(bundle_short_version, '183') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.vim.MacVim');" }, "installer_url": "https://github.com/macvim-dev/macvim/releases/download/release-183/MacVim.dmg", "install_script_ref": "03c62dd5", diff --git a/ee/maintained-apps/outputs/macwhisper/darwin.json b/ee/maintained-apps/outputs/macwhisper/darwin.json index b7be4267af6..811f16b129d 100644 --- a/ee/maintained-apps/outputs/macwhisper/darwin.json +++ b/ee/maintained-apps/outputs/macwhisper/darwin.json @@ -4,7 +4,8 @@ "version": "14.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.goodsnooze.MacWhisper';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.goodsnooze.MacWhisper' AND version_compare(bundle_short_version, '14.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.goodsnooze.MacWhisper' AND version_compare(bundle_short_version, '14.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.goodsnooze.MacWhisper');" }, "installer_url": "https://cdn.macwhisper.com/macwhisper/MacWhisper-1472.zip", "install_script_ref": "15cfdede", diff --git a/ee/maintained-apps/outputs/maestral/darwin.json b/ee/maintained-apps/outputs/maestral/darwin.json index 80c0f08e5e3..41834ea1766 100644 --- a/ee/maintained-apps/outputs/maestral/darwin.json +++ b/ee/maintained-apps/outputs/maestral/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.samschott.maestral';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.samschott.maestral' AND version_compare(bundle_short_version, '1.9.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.samschott.maestral' AND version_compare(bundle_short_version, '1.9.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.samschott.maestral');" }, "installer_url": "https://github.com/SamSchott/maestral/releases/download/v1.9.5/Maestral-1.9.5.dmg", "install_script_ref": "439b57b1", diff --git a/ee/maintained-apps/outputs/magicquit/darwin.json b/ee/maintained-apps/outputs/magicquit/darwin.json index a917ef247b2..1522002a6e8 100644 --- a/ee/maintained-apps/outputs/magicquit/darwin.json +++ b/ee/maintained-apps/outputs/magicquit/darwin.json @@ -4,7 +4,8 @@ "version": "1.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.MagicQuit';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.MagicQuit' AND version_compare(bundle_short_version, '1.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.MagicQuit' AND version_compare(bundle_short_version, '1.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.MagicQuit');" }, "installer_url": "https://magicquit.com/apps/MagicQuit_1.4.dmg", "install_script_ref": "0856e33f", diff --git a/ee/maintained-apps/outputs/mailspring/darwin.json b/ee/maintained-apps/outputs/mailspring/darwin.json index cfb9b85a446..a050483c916 100644 --- a/ee/maintained-apps/outputs/mailspring/darwin.json +++ b/ee/maintained-apps/outputs/mailspring/darwin.json @@ -4,7 +4,8 @@ "version": "1.23.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mailspring.mailspring';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mailspring.mailspring' AND version_compare(bundle_short_version, '1.23.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mailspring.mailspring' AND version_compare(bundle_short_version, '1.23.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mailspring.mailspring');" }, "installer_url": "https://github.com/Foundry376/Mailspring/releases/download/1.23.0/Mailspring-AppleSilicon.zip", "install_script_ref": "0d9e5ca1", diff --git a/ee/maintained-apps/outputs/malwarebytes/darwin.json b/ee/maintained-apps/outputs/malwarebytes/darwin.json index 7415149abaf..6c47155eb83 100644 --- a/ee/maintained-apps/outputs/malwarebytes/darwin.json +++ b/ee/maintained-apps/outputs/malwarebytes/darwin.json @@ -4,7 +4,8 @@ "version": "5.25.2.4106", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.malwarebytes.mbam.frontend.application';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.malwarebytes.mbam.frontend.application' AND version_compare(bundle_short_version, '5.25.2.4106') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.malwarebytes.mbam.frontend.application' AND version_compare(bundle_short_version, '5.25.2.4106') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.malwarebytes.mbam.frontend.application');" }, "installer_url": "https://data-cdn.mbamupdates.com/web/mb5_mac/Malwarebytes-Mac-5.25.2.4106.pkg", "install_script_ref": "28d20772", diff --git a/ee/maintained-apps/outputs/mark-text/darwin.json b/ee/maintained-apps/outputs/mark-text/darwin.json index bc792303c0c..adcc3c9a8cc 100644 --- a/ee/maintained-apps/outputs/mark-text/darwin.json +++ b/ee/maintained-apps/outputs/mark-text/darwin.json @@ -4,7 +4,8 @@ "version": "0.19.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.marktext.marktext';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.marktext.marktext' AND version_compare(bundle_short_version, '0.19.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.marktext.marktext' AND version_compare(bundle_short_version, '0.19.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.github.marktext.marktext');" }, "installer_url": "https://github.com/marktext/marktext/releases/download/v0.19.1/marktext-mac-arm64-0.19.1.dmg", "install_script_ref": "1260c83f", diff --git a/ee/maintained-apps/outputs/marked-app/darwin.json b/ee/maintained-apps/outputs/marked-app/darwin.json index fb2361545e0..5ef72505098 100644 --- a/ee/maintained-apps/outputs/marked-app/darwin.json +++ b/ee/maintained-apps/outputs/marked-app/darwin.json @@ -4,7 +4,8 @@ "version": "3.1.18", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.brettterpstra.marked';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.brettterpstra.marked' AND version_compare(bundle_short_version, '3.1.18') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.brettterpstra.marked' AND version_compare(bundle_short_version, '3.1.18') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.brettterpstra.marked');" }, "installer_url": "https://updates.markedapp.com/updates/Marked%203.1.18-1201.zip", "install_script_ref": "23ea6da3", diff --git a/ee/maintained-apps/outputs/markedit/darwin.json b/ee/maintained-apps/outputs/markedit/darwin.json index e0d92e84e04..162db8d8fc2 100644 --- a/ee/maintained-apps/outputs/markedit/darwin.json +++ b/ee/maintained-apps/outputs/markedit/darwin.json @@ -4,7 +4,8 @@ "version": "1.33.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.cyan.markedit';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.cyan.markedit' AND version_compare(bundle_short_version, '1.33.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.cyan.markedit' AND version_compare(bundle_short_version, '1.33.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.cyan.markedit');" }, "installer_url": "https://github.com/MarkEdit-app/MarkEdit/releases/download/v1.33.1/MarkEdit-1.33.1.dmg", "install_script_ref": "d9059f8f", diff --git a/ee/maintained-apps/outputs/marsedit/darwin.json b/ee/maintained-apps/outputs/marsedit/darwin.json index c778de6c92a..ed3100d0e89 100644 --- a/ee/maintained-apps/outputs/marsedit/darwin.json +++ b/ee/maintained-apps/outputs/marsedit/darwin.json @@ -4,7 +4,8 @@ "version": "5.4.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.red-sweater.marsedit5';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.red-sweater.marsedit5' AND version_compare(bundle_short_version, '5.4.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.red-sweater.marsedit5' AND version_compare(bundle_short_version, '5.4.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.red-sweater.marsedit5');" }, "installer_url": "https://redsweater.com/marsedit/MarsEdit5.4.4.zip", "install_script_ref": "3ab523cf", diff --git a/ee/maintained-apps/outputs/marta/darwin.json b/ee/maintained-apps/outputs/marta/darwin.json index 2fddcb67acd..a30e73a00ac 100644 --- a/ee/maintained-apps/outputs/marta/darwin.json +++ b/ee/maintained-apps/outputs/marta/darwin.json @@ -4,7 +4,8 @@ "version": "0.8.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.yanex.marta';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.yanex.marta' AND version_compare(bundle_short_version, '0.8.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.yanex.marta' AND version_compare(bundle_short_version, '0.8.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.yanex.marta');" }, "installer_url": "https://updates.marta.sh/release/Marta-0.8.2.dmg", "install_script_ref": "9b602993", diff --git a/ee/maintained-apps/outputs/marvel/darwin.json b/ee/maintained-apps/outputs/marvel/darwin.json index f16d30035be..f7efb852a07 100644 --- a/ee/maintained-apps/outputs/marvel/darwin.json +++ b/ee/maintained-apps/outputs/marvel/darwin.json @@ -4,7 +4,8 @@ "version": "11.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.marvelprototyping.marvelmacos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.marvelprototyping.marvelmacos' AND version_compare(bundle_short_version, '11.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.marvelprototyping.marvelmacos' AND version_compare(bundle_short_version, '11.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.marvelprototyping.marvelmacos');" }, "installer_url": "https://storage.googleapis.com/sketch-plugin/11.5/Marvel.zip", "install_script_ref": "76a0c6b7", diff --git a/ee/maintained-apps/outputs/masscode/darwin.json b/ee/maintained-apps/outputs/masscode/darwin.json index 51d99c79ade..18144d41522 100644 --- a/ee/maintained-apps/outputs/masscode/darwin.json +++ b/ee/maintained-apps/outputs/masscode/darwin.json @@ -4,7 +4,8 @@ "version": "5.10.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.masscode.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.masscode.app' AND version_compare(bundle_short_version, '5.10.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.masscode.app' AND version_compare(bundle_short_version, '5.10.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.masscode.app');" }, "installer_url": "https://github.com/massCodeIO/massCode/releases/download/v5.10.0/massCode-5.10.0-arm64.dmg", "install_script_ref": "d25eb03c", diff --git a/ee/maintained-apps/outputs/mattermost/darwin.json b/ee/maintained-apps/outputs/mattermost/darwin.json index 66cfc62dca2..631f316502f 100644 --- a/ee/maintained-apps/outputs/mattermost/darwin.json +++ b/ee/maintained-apps/outputs/mattermost/darwin.json @@ -4,7 +4,8 @@ "version": "6.2.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'Mattermost.Desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'Mattermost.Desktop' AND version_compare(bundle_short_version, '6.2.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'Mattermost.Desktop' AND version_compare(bundle_short_version, '6.2.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'Mattermost.Desktop');" }, "installer_url": "https://releases.mattermost.com/desktop/6.2.2/mattermost-desktop-6.2.2-mac-arm64.zip", "install_script_ref": "c929f3d3", diff --git a/ee/maintained-apps/outputs/mattermost/windows.json b/ee/maintained-apps/outputs/mattermost/windows.json index eb44007411c..b4bf165ab4c 100644 --- a/ee/maintained-apps/outputs/mattermost/windows.json +++ b/ee/maintained-apps/outputs/mattermost/windows.json @@ -4,7 +4,8 @@ "version": "6.2.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Mattermost' AND publisher = 'Mattermost, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Mattermost' AND publisher = 'Mattermost, Inc.' AND version_compare(version, '6.2.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Mattermost' AND publisher = 'Mattermost, Inc.' AND version_compare(version, '6.2.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'mattermost.exe');" }, "installer_url": "https://github.com/mattermost/desktop/releases/download/v6.2.2/mattermost-desktop-6.2.2-win-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/meetingbar/darwin.json b/ee/maintained-apps/outputs/meetingbar/darwin.json index c452dfc9b3b..f1af340d425 100644 --- a/ee/maintained-apps/outputs/meetingbar/darwin.json +++ b/ee/maintained-apps/outputs/meetingbar/darwin.json @@ -4,7 +4,8 @@ "version": "4.11.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'leits.MeetingBar';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'leits.MeetingBar' AND version_compare(bundle_short_version, '4.11.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'leits.MeetingBar' AND version_compare(bundle_short_version, '4.11.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'leits.MeetingBar');" }, "installer_url": "https://github.com/leits/MeetingBar/releases/download/v4.11.6/MeetingBar.dmg", "install_script_ref": "631edcc1", diff --git a/ee/maintained-apps/outputs/megasync/darwin.json b/ee/maintained-apps/outputs/megasync/darwin.json index f572247aa8d..90ce503d3f3 100644 --- a/ee/maintained-apps/outputs/megasync/darwin.json +++ b/ee/maintained-apps/outputs/megasync/darwin.json @@ -4,7 +4,8 @@ "version": "6.5.1.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'mega.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'mega.mac' AND version_compare(bundle_short_version, '6.5.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'mega.mac' AND version_compare(bundle_short_version, '6.5.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'mega.mac');" }, "installer_url": "https://mega.nz/MEGAsyncSetupArm64.dmg", "install_script_ref": "f026a0a4", diff --git a/ee/maintained-apps/outputs/megasync/windows.json b/ee/maintained-apps/outputs/megasync/windows.json index 3725184dd7f..6c5623451b6 100644 --- a/ee/maintained-apps/outputs/megasync/windows.json +++ b/ee/maintained-apps/outputs/megasync/windows.json @@ -4,7 +4,8 @@ "version": "6.5.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'MEGAsync' AND publisher = 'Mega Limited';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'MEGAsync' AND publisher = 'Mega Limited' AND version_compare(version, '6.5.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'MEGAsync' AND publisher = 'Mega Limited' AND version_compare(version, '6.5.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'megasync.exe');" }, "installer_url": "https://mega.nz/MEGAsyncSetup64.exe", "install_script_ref": "de703749", diff --git a/ee/maintained-apps/outputs/mellel/darwin.json b/ee/maintained-apps/outputs/mellel/darwin.json index 946c1013ac1..4a98adbaa9a 100644 --- a/ee/maintained-apps/outputs/mellel/darwin.json +++ b/ee/maintained-apps/outputs/mellel/darwin.json @@ -4,7 +4,8 @@ "version": "6.7.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.redlex.mellel6';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.redlex.mellel6' AND version_compare(bundle_short_version, '6.7.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.redlex.mellel6' AND version_compare(bundle_short_version, '6.7.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.redlex.mellel6');" }, "installer_url": "https://d1riogbqt3a9uw.cloudfront.net/mellel_67102.dmg", "install_script_ref": "e256c536", diff --git a/ee/maintained-apps/outputs/melodics/darwin.json b/ee/maintained-apps/outputs/melodics/darwin.json index 8a7384976c9..e9e10c29c4d 100644 --- a/ee/maintained-apps/outputs/melodics/darwin.json +++ b/ee/maintained-apps/outputs/melodics/darwin.json @@ -4,7 +4,8 @@ "version": "5.0.993", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.melodics.Melodics';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.melodics.Melodics' AND version_compare(bundle_short_version, '5.0.993') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.melodics.Melodics' AND version_compare(bundle_short_version, '5.0.993') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.melodics.Melodics');" }, "installer_url": "https://web-cdn.melodics.com/download/65B6631F-18C9-47BE-8140-D8181BED5E26.zip", "install_script_ref": "fa7d6756", diff --git a/ee/maintained-apps/outputs/memory-cleaner/darwin.json b/ee/maintained-apps/outputs/memory-cleaner/darwin.json index 10c2fd30a09..7e1b0ff7757 100644 --- a/ee/maintained-apps/outputs/memory-cleaner/darwin.json +++ b/ee/maintained-apps/outputs/memory-cleaner/darwin.json @@ -4,7 +4,8 @@ "version": "5.5.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nektony.Memory-Cleaner-SIII';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nektony.Memory-Cleaner-SIII' AND version_compare(bundle_short_version, '5.5.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nektony.Memory-Cleaner-SIII' AND version_compare(bundle_short_version, '5.5.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.nektony.Memory-Cleaner-SIII');" }, "installer_url": "https://download.nektony.com/download/memory-cleaner/dmg/memory-cleaner.dmg?build=271", "install_script_ref": "1047a92f", diff --git a/ee/maintained-apps/outputs/memory/darwin.json b/ee/maintained-apps/outputs/memory/darwin.json index a6277c1f772..8141daa4f0e 100644 --- a/ee/maintained-apps/outputs/memory/darwin.json +++ b/ee/maintained-apps/outputs/memory/darwin.json @@ -4,7 +4,8 @@ "version": "2023.11", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.timeapp.devlpmp.Timely-Mac-Tracker';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.timeapp.devlpmp.Timely-Mac-Tracker' AND version_compare(bundle_short_version, '2023.11') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.timeapp.devlpmp.Timely-Mac-Tracker' AND version_compare(bundle_short_version, '2023.11') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.timeapp.devlpmp.Timely-Mac-Tracker');" }, "installer_url": "https://memorymacapp.s3.amazonaws.com/Memory.zip", "install_script_ref": "a01b634d", diff --git a/ee/maintained-apps/outputs/memoryanalyzer/darwin.json b/ee/maintained-apps/outputs/memoryanalyzer/darwin.json index 45f3b054f40..d3038934f72 100644 --- a/ee/maintained-apps/outputs/memoryanalyzer/darwin.json +++ b/ee/maintained-apps/outputs/memoryanalyzer/darwin.json @@ -4,7 +4,8 @@ "version": "1.17.0.20260601", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.eclipse.mat.ui.rcp.MemoryAnalyzer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.eclipse.mat.ui.rcp.MemoryAnalyzer' AND version_compare(bundle_short_version, '1.17.0.20260601') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.eclipse.mat.ui.rcp.MemoryAnalyzer' AND version_compare(bundle_short_version, '1.17.0.20260601') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.eclipse.mat.ui.rcp.MemoryAnalyzer');" }, "installer_url": "https://download.eclipse.org/mat/1.17.0/rcp/MemoryAnalyzer-1.17.0.20260601-macosx.cocoa.aarch64.dmg", "install_script_ref": "470cc121", diff --git a/ee/maintained-apps/outputs/mendeley-reference-manager/darwin.json b/ee/maintained-apps/outputs/mendeley-reference-manager/darwin.json index 5bcc6914caf..b5258f94223 100644 --- a/ee/maintained-apps/outputs/mendeley-reference-manager/darwin.json +++ b/ee/maintained-apps/outputs/mendeley-reference-manager/darwin.json @@ -4,7 +4,8 @@ "version": "2.148.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.elsevier.mendeley';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elsevier.mendeley' AND version_compare(bundle_short_version, '2.148.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elsevier.mendeley' AND version_compare(bundle_short_version, '2.148.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.elsevier.mendeley');" }, "installer_url": "https://static.mendeley.com/bin/desktop/mendeley-reference-manager-2.148.0-universal.dmg", "install_script_ref": "be90d0c1", diff --git a/ee/maintained-apps/outputs/menubar-stats/darwin.json b/ee/maintained-apps/outputs/menubar-stats/darwin.json index 4a91af0ccc1..b5f9ff5f445 100644 --- a/ee/maintained-apps/outputs/menubar-stats/darwin.json +++ b/ee/maintained-apps/outputs/menubar-stats/darwin.json @@ -4,7 +4,8 @@ "version": "3.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.fabriceleyne.menubarstats';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fabriceleyne.menubarstats' AND version_compare(bundle_short_version, '3.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fabriceleyne.menubarstats' AND version_compare(bundle_short_version, '3.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.fabriceleyne.menubarstats');" }, "installer_url": "https://seense.com/menubarstats/updateapp/mbs.zip", "install_script_ref": "9e9d40f3", diff --git a/ee/maintained-apps/outputs/menubarx/darwin.json b/ee/maintained-apps/outputs/menubarx/darwin.json index 70e72c11311..fb6176a02c2 100644 --- a/ee/maintained-apps/outputs/menubarx/darwin.json +++ b/ee/maintained-apps/outputs/menubarx/darwin.json @@ -4,7 +4,8 @@ "version": "1.7.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.app.menubarx';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.app.menubarx' AND version_compare(bundle_short_version, '1.7.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.app.menubarx' AND version_compare(bundle_short_version, '1.7.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.app.menubarx');" }, "installer_url": "https://menubarx-1251679148.file.myqcloud.com/download/MenubarX-1.7.6.dmg", "install_script_ref": "34dfaf4c", diff --git a/ee/maintained-apps/outputs/merlin-project/darwin.json b/ee/maintained-apps/outputs/merlin-project/darwin.json index ff2ac5b7b54..233d6395cae 100644 --- a/ee/maintained-apps/outputs/merlin-project/darwin.json +++ b/ee/maintained-apps/outputs/merlin-project/darwin.json @@ -4,7 +4,8 @@ "version": "9.2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.projectwizards.merlinproject';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.projectwizards.merlinproject' AND version_compare(bundle_short_version, '9.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.projectwizards.merlinproject' AND version_compare(bundle_short_version, '9.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.projectwizards.merlinproject');" }, "installer_url": "https://www.projectwizards.net/downloads/MerlinProject.zip", "install_script_ref": "fa315c97", diff --git a/ee/maintained-apps/outputs/microsoft-365-copilot/darwin.json b/ee/maintained-apps/outputs/microsoft-365-copilot/darwin.json index 121517de81b..a85e0b422fc 100644 --- a/ee/maintained-apps/outputs/microsoft-365-copilot/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-365-copilot/darwin.json @@ -4,7 +4,8 @@ "version": "1.2607.2701", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.m365copilot';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.m365copilot' AND version_compare(bundle_short_version, '1.2607.2701') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.m365copilot' AND version_compare(bundle_short_version, '1.2607.2701') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.microsoft.m365copilot');" }, "installer_url": "https://res.public.onecdn.static.microsoft/mro1cdnstorage/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/Microsoft_365_Copilot_universal_1.2607.2701_Installer.pkg", "install_script_ref": "0be42f66", diff --git a/ee/maintained-apps/outputs/microsoft-access-database-engine-2016/windows.json b/ee/maintained-apps/outputs/microsoft-access-database-engine-2016/windows.json index bb22cbce858..9d3ab3c371f 100644 --- a/ee/maintained-apps/outputs/microsoft-access-database-engine-2016/windows.json +++ b/ee/maintained-apps/outputs/microsoft-access-database-engine-2016/windows.json @@ -4,7 +4,8 @@ "version": "16.0.5044.1000", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Microsoft Access database engine 2016 (English)' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft Access database engine 2016 (English)' AND publisher = 'Microsoft Corporation' AND version_compare(version, '16.0.5044.1000') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft Access database engine 2016 (English)' AND publisher = 'Microsoft Corporation' AND version_compare(version, '16.0.5044.1000') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'microsoft access database engine 2016 redistributable.exe');" }, "installer_url": "https://download.microsoft.com/download/3/5/c/35c84c36-661a-44e6-9324-8786b8dbe231/accessdatabaseengine_X64.exe", "install_script_ref": "877f9b39", diff --git a/ee/maintained-apps/outputs/microsoft-auto-update/darwin.json b/ee/maintained-apps/outputs/microsoft-auto-update/darwin.json index ad4e906b96e..95d2ee65769 100644 --- a/ee/maintained-apps/outputs/microsoft-auto-update/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-auto-update/darwin.json @@ -4,7 +4,8 @@ "version": "4.84", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.autoupdate2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.autoupdate2' AND version_compare(bundle_short_version, '4.84') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.autoupdate2' AND version_compare(bundle_short_version, '4.84') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.microsoft.autoupdate2');" }, "installer_url": "https://res.public.onecdn.static.microsoft/mro1cdnstorage/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/Microsoft_AutoUpdate_4.84.26071119_Updater.pkg", "install_script_ref": "24bb5f81", diff --git a/ee/maintained-apps/outputs/microsoft-azure-storage-explorer/darwin.json b/ee/maintained-apps/outputs/microsoft-azure-storage-explorer/darwin.json index 62f85a0364e..e7c273e4f63 100644 --- a/ee/maintained-apps/outputs/microsoft-azure-storage-explorer/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-azure-storage-explorer/darwin.json @@ -4,7 +4,8 @@ "version": "1.45.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.StorageExplorer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.StorageExplorer' AND version_compare(bundle_short_version, '1.45.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.StorageExplorer' AND version_compare(bundle_short_version, '1.45.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.microsoft.StorageExplorer');" }, "installer_url": "https://github.com/microsoft/AzureStorageExplorer/releases/download/v1.45.0/StorageExplorer-darwin-arm64.zip", "install_script_ref": "e616ea6f", diff --git a/ee/maintained-apps/outputs/microsoft-dotnet-desktop-runtime-10/windows.json b/ee/maintained-apps/outputs/microsoft-dotnet-desktop-runtime-10/windows.json index c1a829a8aad..d17dc795bf7 100644 --- a/ee/maintained-apps/outputs/microsoft-dotnet-desktop-runtime-10/windows.json +++ b/ee/maintained-apps/outputs/microsoft-dotnet-desktop-runtime-10/windows.json @@ -4,7 +4,8 @@ "version": "10.0.10", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Microsoft Windows Desktop Runtime 10.%' AND name LIKE '%(x64)' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Microsoft Windows Desktop Runtime 10.%' AND name LIKE '%(x64)' AND publisher = 'Microsoft Corporation' AND version_compare(version, '10.0.10.50000') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Microsoft Windows Desktop Runtime 10.%' AND name LIKE '%(x64)' AND publisher = 'Microsoft Corporation' AND version_compare(version, '10.0.10.50000') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'microsoft .net desktop runtime 10.exe');" }, "installer_url": "https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.10/windowsdesktop-runtime-10.0.10-win-x64.exe", "install_script_ref": "13facdef", diff --git a/ee/maintained-apps/outputs/microsoft-dotnet-runtime-10/windows.json b/ee/maintained-apps/outputs/microsoft-dotnet-runtime-10/windows.json index 7b238359255..e54b6a5e071 100644 --- a/ee/maintained-apps/outputs/microsoft-dotnet-runtime-10/windows.json +++ b/ee/maintained-apps/outputs/microsoft-dotnet-runtime-10/windows.json @@ -4,7 +4,8 @@ "version": "10.0.10", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Microsoft .NET Runtime - 10.%' AND name LIKE '%(x64)' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Microsoft .NET Runtime - 10.%' AND name LIKE '%(x64)' AND publisher = 'Microsoft Corporation' AND version_compare(version, '10.0.10') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Microsoft .NET Runtime - 10.%' AND name LIKE '%(x64)' AND publisher = 'Microsoft Corporation' AND version_compare(version, '10.0.10') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'microsoft .net runtime 10.exe');" }, "installer_url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.10/dotnet-runtime-10.0.10-win-x64.exe", "install_script_ref": "13facdef", diff --git a/ee/maintained-apps/outputs/microsoft-dotnet-runtime-8/windows.json b/ee/maintained-apps/outputs/microsoft-dotnet-runtime-8/windows.json index ffd655ab0b0..10c2a6cecde 100644 --- a/ee/maintained-apps/outputs/microsoft-dotnet-runtime-8/windows.json +++ b/ee/maintained-apps/outputs/microsoft-dotnet-runtime-8/windows.json @@ -4,7 +4,8 @@ "version": "8.0.29", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Microsoft .NET Runtime - 8.%' AND name LIKE '%(x64)' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Microsoft .NET Runtime - 8.%' AND name LIKE '%(x64)' AND publisher = 'Microsoft Corporation' AND version_compare(version, '8.0.29') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Microsoft .NET Runtime - 8.%' AND name LIKE '%(x64)' AND publisher = 'Microsoft Corporation' AND version_compare(version, '8.0.29') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'microsoft .net runtime 8.exe');" }, "installer_url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/8.0.29/dotnet-runtime-8.0.29-win-x64.exe", "install_script_ref": "13facdef", diff --git a/ee/maintained-apps/outputs/microsoft-edge/darwin.json b/ee/maintained-apps/outputs/microsoft-edge/darwin.json index a35e7c477fd..fa68d10440c 100644 --- a/ee/maintained-apps/outputs/microsoft-edge/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-edge/darwin.json @@ -4,7 +4,8 @@ "version": "151.0.4129.72", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.edgemac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.edgemac' AND version_compare(bundle_short_version, '151.0.4129.72') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.edgemac' AND version_compare(bundle_short_version, '151.0.4129.72') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.microsoft.edgemac');" }, "installer_url": "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/9153ab01-16c7-4aef-a5ca-0a99e41c6a3e/MicrosoftEdge-151.0.4129.72.dmg", "install_script_ref": "4c051c40", diff --git a/ee/maintained-apps/outputs/microsoft-edge/windows.json b/ee/maintained-apps/outputs/microsoft-edge/windows.json index f7e8e1229d3..ce0c7cb9a1e 100644 --- a/ee/maintained-apps/outputs/microsoft-edge/windows.json +++ b/ee/maintained-apps/outputs/microsoft-edge/windows.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "151.0.4129.59", + "version": "151.0.4129.72", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Microsoft Edge' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft Edge' AND publisher = 'Microsoft Corporation' AND version_compare(version, '151.0.4129.59') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft Edge' AND publisher = 'Microsoft Corporation' AND version_compare(version, '151.0.4129.72') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'msedge.exe');" }, - "installer_url": "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/6d262b14-57af-4d34-aa54-b13dd27d2547/MicrosoftEdgeEnterpriseX64.msi", + "installer_url": "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/2ae295aa-6f3e-46de-b26b-c0188683d4fa/MicrosoftEdgeEnterpriseX64.msi", "install_script_ref": "22e48c46", "uninstall_script_ref": "e12e9902", - "sha256": "ad2fb7b3bd49564d0967c4eb0b0307d5420a9636e8e2f479e7ffc4e8b7b86ae6", + "sha256": "edf3e24eb291b26bbd09c0a7477e30ce32897e4692743b47961cc40c0cfa8685", "default_categories": [ "Browsers" ], diff --git a/ee/maintained-apps/outputs/microsoft-excel/darwin.json b/ee/maintained-apps/outputs/microsoft-excel/darwin.json index cda6a1d354b..54701b3a399 100644 --- a/ee/maintained-apps/outputs/microsoft-excel/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-excel/darwin.json @@ -4,7 +4,8 @@ "version": "16.111.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Excel';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Excel' AND version_compare(bundle_short_version, '16.111.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Excel' AND version_compare(bundle_short_version, '16.111.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.microsoft.Excel');" }, "installer_url": "https://res.public.onecdn.static.microsoft/mro1cdnstorage/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/Microsoft_Excel_16.111.26080215_Installer.pkg", "install_script_ref": "362de618", diff --git a/ee/maintained-apps/outputs/microsoft-odbc-driver-17/windows.json b/ee/maintained-apps/outputs/microsoft-odbc-driver-17/windows.json index a1c36a9caa4..60c12ad8fef 100644 --- a/ee/maintained-apps/outputs/microsoft-odbc-driver-17/windows.json +++ b/ee/maintained-apps/outputs/microsoft-odbc-driver-17/windows.json @@ -4,7 +4,8 @@ "version": "17.11.1.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Microsoft ODBC Driver 17 for SQL Server' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft ODBC Driver 17 for SQL Server' AND publisher = 'Microsoft Corporation' AND version_compare(version, '17.11.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft ODBC Driver 17 for SQL Server' AND publisher = 'Microsoft Corporation' AND version_compare(version, '17.11.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'microsoft odbc driver 17 for sql server.exe');" }, "installer_url": "https://download.microsoft.com/download/d99fcd4f-548f-46e6-83d5-b9eb62b373d5/amd64/1033/msodbcsql.msi", "install_script_ref": "5a2f9a9f", diff --git a/ee/maintained-apps/outputs/microsoft-odbc-driver-18/windows.json b/ee/maintained-apps/outputs/microsoft-odbc-driver-18/windows.json index 718531e3c61..df385a7c2de 100644 --- a/ee/maintained-apps/outputs/microsoft-odbc-driver-18/windows.json +++ b/ee/maintained-apps/outputs/microsoft-odbc-driver-18/windows.json @@ -4,7 +4,8 @@ "version": "18.6.2.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Microsoft ODBC Driver 18 for SQL Server' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft ODBC Driver 18 for SQL Server' AND publisher = 'Microsoft Corporation' AND version_compare(version, '18.6.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft ODBC Driver 18 for SQL Server' AND publisher = 'Microsoft Corporation' AND version_compare(version, '18.6.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'microsoft odbc driver 18 for sql server.exe');" }, "installer_url": "https://download.microsoft.com/download/7bf9fad4-0f21-486d-a750-fc990ded5624/amd64/1033/msodbcsql.msi", "install_script_ref": "5a2f9a9f", diff --git a/ee/maintained-apps/outputs/microsoft-office/windows.json b/ee/maintained-apps/outputs/microsoft-office/windows.json index 7b1714dd695..c11be319359 100644 --- a/ee/maintained-apps/outputs/microsoft-office/windows.json +++ b/ee/maintained-apps/outputs/microsoft-office/windows.json @@ -4,7 +4,8 @@ "version": "16.0.20131.20090", "queries": { "exists": "SELECT 1 FROM programs WHERE (name LIKE 'Microsoft 365 Apps %' OR name LIKE 'Microsoft Office %') AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE ((name LIKE 'Microsoft 365 Apps %' OR name LIKE 'Microsoft Office %') AND publisher = 'Microsoft Corporation') AND version_compare(version, '16.0.20131.20090') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE ((name LIKE 'Microsoft 365 Apps %' OR name LIKE 'Microsoft Office %') AND publisher = 'Microsoft Corporation') AND version_compare(version, '16.0.20131.20090') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'microsoft office.exe');" }, "installer_url": "https://officecdn.microsoft.com/pr/wsus/setup.exe", "install_script_ref": "7e3fc6bb", diff --git a/ee/maintained-apps/outputs/microsoft-onenote/darwin.json b/ee/maintained-apps/outputs/microsoft-onenote/darwin.json index bc899de43fc..d53344cec70 100644 --- a/ee/maintained-apps/outputs/microsoft-onenote/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-onenote/darwin.json @@ -4,7 +4,8 @@ "version": "16.111.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.onenote.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.onenote.mac' AND version_compare(bundle_short_version, '16.111.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.onenote.mac' AND version_compare(bundle_short_version, '16.111.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.microsoft.onenote.mac');" }, "installer_url": "https://res.public.onecdn.static.microsoft/mro1cdnstorage/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/Microsoft_OneNote_16.111.26080215_Updater.pkg", "install_script_ref": "c0a2a291", diff --git a/ee/maintained-apps/outputs/microsoft-outlook/darwin.json b/ee/maintained-apps/outputs/microsoft-outlook/darwin.json index 995863ad8ad..4f515029f46 100644 --- a/ee/maintained-apps/outputs/microsoft-outlook/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-outlook/darwin.json @@ -4,7 +4,8 @@ "version": "16.111", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Outlook';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Outlook' AND version_compare(bundle_short_version, '16.111') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Outlook' AND version_compare(bundle_short_version, '16.111') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.microsoft.Outlook');" }, "installer_url": "https://res.public.onecdn.static.microsoft/mro1cdnstorage/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/Microsoft_Outlook_16.111.26071325_Installer.pkg", "install_script_ref": "ab4266af", diff --git a/ee/maintained-apps/outputs/microsoft-powerpoint/darwin.json b/ee/maintained-apps/outputs/microsoft-powerpoint/darwin.json index 84de057b01b..e8ec77ca734 100644 --- a/ee/maintained-apps/outputs/microsoft-powerpoint/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-powerpoint/darwin.json @@ -4,7 +4,8 @@ "version": "16.111.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Powerpoint';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Powerpoint' AND version_compare(bundle_short_version, '16.111.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Powerpoint' AND version_compare(bundle_short_version, '16.111.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.microsoft.Powerpoint');" }, "installer_url": "https://res.public.onecdn.static.microsoft/mro1cdnstorage/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/Microsoft_PowerPoint_16.111.26080215_Installer.pkg", "install_script_ref": "25bf79f6", diff --git a/ee/maintained-apps/outputs/microsoft-remote-help/darwin.json b/ee/maintained-apps/outputs/microsoft-remote-help/darwin.json index 6650ce416b1..4b9406ad4be 100644 --- a/ee/maintained-apps/outputs/microsoft-remote-help/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-remote-help/darwin.json @@ -4,7 +4,8 @@ "version": "1.0.2606021", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.remotehelp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.remotehelp' AND version_compare(bundle_short_version, '1.0.2606021') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.remotehelp' AND version_compare(bundle_short_version, '1.0.2606021') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.microsoft.remotehelp');" }, "installer_url": "https://res.public.onecdn.static.microsoft/mro1cdnstorage/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/Microsoft_Remote_Help_1.0.2606021_installer.pkg", "install_script_ref": "e849ddb4", diff --git a/ee/maintained-apps/outputs/microsoft-remote-help/windows.json b/ee/maintained-apps/outputs/microsoft-remote-help/windows.json index b52e986ee06..a4150864771 100644 --- a/ee/maintained-apps/outputs/microsoft-remote-help/windows.json +++ b/ee/maintained-apps/outputs/microsoft-remote-help/windows.json @@ -4,7 +4,8 @@ "version": "5.1.1998.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Remote Help' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Remote Help' AND publisher = 'Microsoft Corporation' AND version_compare(version, '5.1.1998.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Remote Help' AND publisher = 'Microsoft Corporation' AND version_compare(version, '5.1.1998.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'remotehelp.exe');" }, "installer_url": "https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/updt/2025/03/remotehelpinstaller_bd142b4c833c024a512ed124a1f9058461e18cab.exe", "install_script_ref": "0907f7e7", diff --git a/ee/maintained-apps/outputs/microsoft-teams/darwin.json b/ee/maintained-apps/outputs/microsoft-teams/darwin.json index 884d027c741..6477c3fd847 100644 --- a/ee/maintained-apps/outputs/microsoft-teams/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-teams/darwin.json @@ -4,7 +4,8 @@ "version": "26198.202.4929.7171", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.teams2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.teams2' AND version_compare(bundle_short_version, '26198.202.4929.7171') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.teams2' AND version_compare(bundle_short_version, '26198.202.4929.7171') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.microsoft.teams2');" }, "installer_url": "https://statics.teams.cdn.office.net/production-osx/26198.202.4929.7171/MicrosoftTeams.pkg", "install_script_ref": "9f201b2c", diff --git a/ee/maintained-apps/outputs/microsoft-teams/windows.json b/ee/maintained-apps/outputs/microsoft-teams/windows.json index 3d323a57e5b..e002df093d0 100644 --- a/ee/maintained-apps/outputs/microsoft-teams/windows.json +++ b/ee/maintained-apps/outputs/microsoft-teams/windows.json @@ -4,7 +4,8 @@ "version": "26198.304.4946.9672", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Microsoft Teams' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft Teams' AND publisher = 'Microsoft Corporation' AND version_compare(version, '26198.304.4946.9672') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft Teams' AND publisher = 'Microsoft Corporation' AND version_compare(version, '26198.304.4946.9672') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('teams.exe','ms-teams.exe'));" }, "installer_url": "https://teamsinstaller.public.onecdn.static.microsoft/production-windows-x64/26198.304.4946.9672/MSTeams-x64.msix", "install_script_ref": "d1b37440", diff --git a/ee/maintained-apps/outputs/microsoft-word/darwin.json b/ee/maintained-apps/outputs/microsoft-word/darwin.json index 1180c36fec8..67bd5b5fae3 100644 --- a/ee/maintained-apps/outputs/microsoft-word/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-word/darwin.json @@ -4,7 +4,8 @@ "version": "16.111.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Word';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Word' AND version_compare(bundle_short_version, '16.111.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Word' AND version_compare(bundle_short_version, '16.111.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.microsoft.Word');" }, "installer_url": "https://res.public.onecdn.static.microsoft/mro1cdnstorage/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/Microsoft_Word_16.111.26080215_Installer.pkg", "install_script_ref": "2802d72b", diff --git a/ee/maintained-apps/outputs/middle/darwin.json b/ee/maintained-apps/outputs/middle/darwin.json index b7c3de5719b..dbe13462517 100644 --- a/ee/maintained-apps/outputs/middle/darwin.json +++ b/ee/maintained-apps/outputs/middle/darwin.json @@ -4,7 +4,8 @@ "version": "1.14", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.Middle';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.Middle' AND version_compare(bundle_short_version, '1.14') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.Middle' AND version_compare(bundle_short_version, '1.14') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.knollsoft.Middle');" }, "installer_url": "https://middleclick.app/downloads/Middle1.14.dmg", "install_script_ref": "1acc9948", diff --git a/ee/maintained-apps/outputs/middleclick/darwin.json b/ee/maintained-apps/outputs/middleclick/darwin.json index 4e9e0094d78..333d233be0d 100644 --- a/ee/maintained-apps/outputs/middleclick/darwin.json +++ b/ee/maintained-apps/outputs/middleclick/darwin.json @@ -4,7 +4,8 @@ "version": "3.2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'art.ginzburg.MiddleClick';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'art.ginzburg.MiddleClick' AND version_compare(bundle_short_version, '3.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'art.ginzburg.MiddleClick' AND version_compare(bundle_short_version, '3.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'art.ginzburg.MiddleClick');" }, "installer_url": "https://github.com/artginzburg/MiddleClick/releases/download/3.2.0/MiddleClick.zip", "install_script_ref": "d43f9ae1", diff --git a/ee/maintained-apps/outputs/milanote/darwin.json b/ee/maintained-apps/outputs/milanote/darwin.json index 9d7f9d8f9de..8adbae3e577 100644 --- a/ee/maintained-apps/outputs/milanote/darwin.json +++ b/ee/maintained-apps/outputs/milanote/darwin.json @@ -4,7 +4,8 @@ "version": "3.18.119", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.milanote.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.milanote.app' AND version_compare(bundle_short_version, '3.18.119') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.milanote.app' AND version_compare(bundle_short_version, '3.18.119') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.milanote.app');" }, "installer_url": "https://milanote-app-releases.s3.amazonaws.com/Milanote-3.18.119.dmg", "install_script_ref": "7bb39759", diff --git a/ee/maintained-apps/outputs/mimecast/darwin.json b/ee/maintained-apps/outputs/mimecast/darwin.json index b9a226f9444..9215cd179c0 100644 --- a/ee/maintained-apps/outputs/mimecast/darwin.json +++ b/ee/maintained-apps/outputs/mimecast/darwin.json @@ -4,7 +4,8 @@ "version": "2.11", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mimecast.Mimecast-Mail';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mimecast.Mimecast-Mail' AND version_compare(bundle_short_version, '2.11') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mimecast.Mimecast-Mail' AND version_compare(bundle_short_version, '2.11') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mimecast.Mimecast-Mail');" }, "installer_url": "https://us-api.mimecast.com/update/bin/msm/eNptjMtuwjAURP_F6xb5mdjsoBWL8lBVhKqyiRzfa7CKkxYnoaTqv9fsWY00c-b8koSuP2MAMiVvzUn4xerA5gv_8RKfr5fd97haDj-7i9ovj-YwcjsPfP36rrd-vTzqbR2LYTOmzQJmcF2RB-JOAZuu_wLb4cSHE04aGzG71yGis6mbQDzc5SKojIG3SjrNlRGqMKIUvHRgwDHuCi50cbv2qWsjnl0LN_HTbjtjM2nuSlMYbwyjrDSS6swMeE6hbciU3eO79hPzRuqqT5RVSlUDKPUoKk45pSpXkjOBhlFEB-C8LrUsTAFSuZLpmqI33tKS5dRWc5_7GmovbQ1WGecY-fsHKkl1eg", "install_script_ref": "1d5453bb", diff --git a/ee/maintained-apps/outputs/mimestream/darwin.json b/ee/maintained-apps/outputs/mimestream/darwin.json index f6b3110ae37..3b9abef9fda 100644 --- a/ee/maintained-apps/outputs/mimestream/darwin.json +++ b/ee/maintained-apps/outputs/mimestream/darwin.json @@ -4,7 +4,8 @@ "version": "1.10.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mimestream.Mimestream';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mimestream.Mimestream' AND version_compare(bundle_short_version, '1.10.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mimestream.Mimestream' AND version_compare(bundle_short_version, '1.10.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mimestream.Mimestream');" }, "installer_url": "https://download.mimestream.com/Mimestream_1.10.6.dmg", "install_script_ref": "83f72574", diff --git a/ee/maintained-apps/outputs/mindmac/darwin.json b/ee/maintained-apps/outputs/mindmac/darwin.json index 0e40749f89e..170d3711232 100644 --- a/ee/maintained-apps/outputs/mindmac/darwin.json +++ b/ee/maintained-apps/outputs/mindmac/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.28", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.mindmac.macos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.mindmac.macos' AND version_compare(bundle_short_version, '1.9.28') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.mindmac.macos' AND version_compare(bundle_short_version, '1.9.28') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.mindmac.macos');" }, "installer_url": "https://github.com/MindMacApp/MindMac/releases/download/1.9.28/MindMac_1.9.28.dmg", "install_script_ref": "44e10253", diff --git a/ee/maintained-apps/outputs/mindmanager/darwin.json b/ee/maintained-apps/outputs/mindmanager/darwin.json index d58b45ec42f..fbf84861804 100644 --- a/ee/maintained-apps/outputs/mindmanager/darwin.json +++ b/ee/maintained-apps/outputs/mindmanager/darwin.json @@ -4,7 +4,8 @@ "version": "25.2.105", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mindjet.mindmanager.25';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mindjet.mindmanager.25' AND version_compare(bundle_short_version, '25.2.105') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mindjet.mindmanager.25' AND version_compare(bundle_short_version, '25.2.105') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mindjet.mindmanager.25');" }, "installer_url": "https://download.mindjet.com/MindManager_Mac_25.2.105.dmg", "install_script_ref": "646a5d21", diff --git a/ee/maintained-apps/outputs/mindmanager/windows.json b/ee/maintained-apps/outputs/mindmanager/windows.json index b94120466fb..d96dfe02603 100644 --- a/ee/maintained-apps/outputs/mindmanager/windows.json +++ b/ee/maintained-apps/outputs/mindmanager/windows.json @@ -4,7 +4,8 @@ "version": "25.0.208.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'MindManager %' AND publisher = 'Corel Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'MindManager %' AND publisher = 'Corel Corporation' AND version_compare(version, '25.0.208.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'MindManager %' AND publisher = 'Corel Corporation' AND version_compare(version, '25.0.208.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'mindmanager.exe');" }, "installer_url": "https://download.mindjet.com/MindManager_64bit_25.0.208_redist.exe", "install_script_ref": "83267335", diff --git a/ee/maintained-apps/outputs/minisim/darwin.json b/ee/maintained-apps/outputs/minisim/darwin.json index f0a90bee52d..23166ab439c 100644 --- a/ee/maintained-apps/outputs/minisim/darwin.json +++ b/ee/maintained-apps/outputs/minisim/darwin.json @@ -4,7 +4,8 @@ "version": "0.10.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.oskarkwasniewski.MiniSim';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.oskarkwasniewski.MiniSim' AND version_compare(bundle_short_version, '0.10.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.oskarkwasniewski.MiniSim' AND version_compare(bundle_short_version, '0.10.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.oskarkwasniewski.MiniSim');" }, "installer_url": "https://github.com/okwasniewski/MiniSim/releases/download/v0.10.0/MiniSim.app.zip", "install_script_ref": "501c2932", diff --git a/ee/maintained-apps/outputs/minstaller/darwin.json b/ee/maintained-apps/outputs/minstaller/darwin.json index b7f8783cb3d..1fae7aeadc4 100644 --- a/ee/maintained-apps/outputs/minstaller/darwin.json +++ b/ee/maintained-apps/outputs/minstaller/darwin.json @@ -4,7 +4,8 @@ "version": "3.2.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.motionvfx.mInstaller';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.motionvfx.mInstaller' AND version_compare(bundle_short_version, '3.2.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.motionvfx.mInstaller' AND version_compare(bundle_short_version, '3.2.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.motionvfx.mInstaller');" }, "installer_url": "https://s3.motionvfx.com/mvfxpublic/mInstaller/sparkle/mInstaller-3.2.5.zip", "install_script_ref": "c8744c93", diff --git a/ee/maintained-apps/outputs/miro/darwin.json b/ee/maintained-apps/outputs/miro/darwin.json index ad501330e12..2dc43792c39 100644 --- a/ee/maintained-apps/outputs/miro/darwin.json +++ b/ee/maintained-apps/outputs/miro/darwin.json @@ -4,7 +4,8 @@ "version": "0.11.168", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.realtimeboard';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.realtimeboard' AND version_compare(bundle_short_version, '0.11.168') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.realtimeboard' AND version_compare(bundle_short_version, '0.11.168') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.realtimeboard');" }, "installer_url": "https://desktop.miro.com/platforms/darwin-arm64/Install-Miro.dmg", "install_script_ref": "cf00ec55", diff --git a/ee/maintained-apps/outputs/miro/windows.json b/ee/maintained-apps/outputs/miro/windows.json index c391cbcbba7..0949e48346e 100644 --- a/ee/maintained-apps/outputs/miro/windows.json +++ b/ee/maintained-apps/outputs/miro/windows.json @@ -4,7 +4,8 @@ "version": "0.11.168", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Miro' AND publisher = 'Miro';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Miro' AND publisher = 'Miro' AND version_compare(version, '0.11.168') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Miro' AND publisher = 'Miro' AND version_compare(version, '0.11.168') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'miro.exe');" }, "installer_url": "https://desktop.miro.com/platforms/win32-nsis-pu/Miro-setup.exe", "install_script_ref": "c9d9747e", diff --git a/ee/maintained-apps/outputs/missive/darwin.json b/ee/maintained-apps/outputs/missive/darwin.json index ebcd88ca989..9cd872de85b 100644 --- a/ee/maintained-apps/outputs/missive/darwin.json +++ b/ee/maintained-apps/outputs/missive/darwin.json @@ -4,7 +4,8 @@ "version": "11.29.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.missiveapp.osx';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.missiveapp.osx' AND version_compare(bundle_short_version, '11.29.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.missiveapp.osx' AND version_compare(bundle_short_version, '11.29.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.missiveapp.osx');" }, "installer_url": "https://downloads.missiveapp.com/11.29.0/Missive-11.29.0.dmg", "install_script_ref": "36da7a79", diff --git a/ee/maintained-apps/outputs/mist/darwin.json b/ee/maintained-apps/outputs/mist/darwin.json index 3f5c94f899f..6bb61824d6b 100644 --- a/ee/maintained-apps/outputs/mist/darwin.json +++ b/ee/maintained-apps/outputs/mist/darwin.json @@ -4,7 +4,8 @@ "version": "0.40", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ninxsoft.mist';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ninxsoft.mist' AND version_compare(bundle_short_version, '0.40') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ninxsoft.mist' AND version_compare(bundle_short_version, '0.40') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ninxsoft.mist');" }, "installer_url": "https://github.com/ninxsoft/Mist/releases/download/v0.40/Mist.0.40.pkg", "install_script_ref": "77c01f99", diff --git a/ee/maintained-apps/outputs/mixxx/darwin.json b/ee/maintained-apps/outputs/mixxx/darwin.json index 59dc9637073..b87abd8cff7 100644 --- a/ee/maintained-apps/outputs/mixxx/darwin.json +++ b/ee/maintained-apps/outputs/mixxx/darwin.json @@ -4,7 +4,8 @@ "version": "2.5.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.mixxx.mixxx';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mixxx.mixxx' AND version_compare(bundle_short_version, '2.5.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mixxx.mixxx' AND version_compare(bundle_short_version, '2.5.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.mixxx.mixxx');" }, "installer_url": "https://downloads.mixxx.org/releases/2.5.6/mixxx-2.5.6-macosarm.dmg", "install_script_ref": "f4975039", diff --git a/ee/maintained-apps/outputs/mixxx/windows.json b/ee/maintained-apps/outputs/mixxx/windows.json index ed467c8235c..cc6b8fc2f2a 100644 --- a/ee/maintained-apps/outputs/mixxx/windows.json +++ b/ee/maintained-apps/outputs/mixxx/windows.json @@ -4,7 +4,8 @@ "version": "2.5.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Mixxx' AND publisher = 'Mixxx Project';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Mixxx' AND publisher = 'Mixxx Project' AND version_compare(version, '2.5.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Mixxx' AND publisher = 'Mixxx Project' AND version_compare(version, '2.5.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'mixxx.exe');" }, "installer_url": "https://downloads.mixxx.org/releases/2.5.6/mixxx-2.5.6-win64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/mobirise/darwin.json b/ee/maintained-apps/outputs/mobirise/darwin.json index 14640519f9a..1e8485f81db 100644 --- a/ee/maintained-apps/outputs/mobirise/darwin.json +++ b/ee/maintained-apps/outputs/mobirise/darwin.json @@ -4,7 +4,8 @@ "version": "6.1.12", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mobirise.Mobirise';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mobirise.Mobirise' AND version_compare(bundle_short_version, '6.1.12') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mobirise.Mobirise' AND version_compare(bundle_short_version, '6.1.12') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mobirise.Mobirise');" }, "installer_url": "https://download.mobirise.com/MobiriseSetup-m.dmg", "install_script_ref": "4abc0775", diff --git a/ee/maintained-apps/outputs/mockoon/darwin.json b/ee/maintained-apps/outputs/mockoon/darwin.json index 80f03c9010b..4e1aa45d73a 100644 --- a/ee/maintained-apps/outputs/mockoon/darwin.json +++ b/ee/maintained-apps/outputs/mockoon/darwin.json @@ -4,7 +4,8 @@ "version": "9.8.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mockoon.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mockoon.app' AND version_compare(bundle_short_version, '9.8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mockoon.app' AND version_compare(bundle_short_version, '9.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mockoon.app');" }, "installer_url": "https://github.com/mockoon/mockoon/releases/download/v9.8.0/mockoon.setup.9.8.0.arm64.dmg", "install_script_ref": "ced539a3", diff --git a/ee/maintained-apps/outputs/modern-csv/darwin.json b/ee/maintained-apps/outputs/modern-csv/darwin.json index 48f3c9018cc..af0a1e252fc 100644 --- a/ee/maintained-apps/outputs/modern-csv/darwin.json +++ b/ee/maintained-apps/outputs/modern-csv/darwin.json @@ -4,7 +4,8 @@ "version": "2.4.3.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.galliumdigital.Modern-CSV';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.galliumdigital.Modern-CSV' AND version_compare(bundle_short_version, '2.4.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.galliumdigital.Modern-CSV' AND version_compare(bundle_short_version, '2.4.3.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.galliumdigital.Modern-CSV');" }, "installer_url": "https://www.moderncsv.com/release/ModernCSV-Mac-v2.4.3.1.dmg", "install_script_ref": "8b7198d0", diff --git a/ee/maintained-apps/outputs/mongodb-compass/darwin.json b/ee/maintained-apps/outputs/mongodb-compass/darwin.json index d7747958183..d3c292e84c6 100644 --- a/ee/maintained-apps/outputs/mongodb-compass/darwin.json +++ b/ee/maintained-apps/outputs/mongodb-compass/darwin.json @@ -1,22 +1,23 @@ { "versions": [ { - "version": "1.49.12", + "version": "1.49.14", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mongodb.compass';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mongodb.compass' AND version_compare(bundle_short_version, '1.49.12') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mongodb.compass' AND version_compare(bundle_short_version, '1.49.14') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mongodb.compass');" }, - "installer_url": "https://downloads.mongodb.com/compass/mongodb-compass-1.49.12-darwin-arm64.dmg", + "installer_url": "https://downloads.mongodb.com/compass/mongodb-compass-1.49.14-darwin-arm64.dmg", "install_script_ref": "f6e74b2e", - "uninstall_script_ref": "9db6b9b2", - "sha256": "b32710b2ad0a8b119e865fe7d00f825d20a43145d82b3c5fd3f333328c8a069d", + "uninstall_script_ref": "022cab65", + "sha256": "19622bfbd88aad63a961adbeb9e133ef4744d0ccc30d78ad5549000e3d1801a6", "default_categories": [ "Developer tools" ] } ], "refs": { - "9db6b9b2": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/MongoDB Compass.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.mongodb.compass.sfl*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/MongoDB Compass'\ntrash $LOGGED_IN_USER '~/Library/Caches/MongoDB Compass'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.mongodb.compass.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.mongodb.compass.savedState'\n", + "022cab65": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nquit_application 'com.mongodb.compass'\nsudo rm -rf \"$APPDIR/MongoDB Compass.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.mongodb.compass.sfl*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/MongoDB Compass'\ntrash $LOGGED_IN_USER '~/Library/Caches/MongoDB Compass'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.mongodb.compass.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.mongodb.compass.savedState'\n", "f6e74b2e": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath \"$INSTALLER_PATH\")\")\n# functions\n\nquit_and_track_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n eval \"export $var_name=0\"\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n eval \"export $var_name=0\"\n return\n fi\n\n # App was running, mark it for relaunch\n eval \"export $var_name=1\"\n echo \"Application '$bundle_id' was running; will relaunch after installation.\"\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nrelaunch_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local was_running\n\n # Check if the app was running before installation\n eval \"was_running=\\$$var_name\"\n if [[ \"$was_running\" != \"1\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping relaunching application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Relaunching application '$bundle_id'...\"\n\n # Launch the app in the logged-in user's GUI session. Apps launched by root\n # won't register with the user's Dock/GUI, so run 'open' as the console user.\n # Use 'launchctl asuser' to bootstrap into the console user's Mach namespace\n # and GUI session — 'sudo -u' alone doesn't do this, which can cause\n # LSOpenURLsWithRole() failures even when 'open' exits 0.\n local open_status=0\n if [[ $EUID -eq 0 ]]; then\n local console_uid\n console_uid=$(id -u \"$console_user\")\n /bin/launchctl asuser \"$console_uid\" sudo -u \"$console_user\" open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n else\n open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n fi\n\n if [[ $open_status -eq 0 ]]; then\n echo \"Application '$bundle_id' relaunched successfully.\"\n else\n echo \"Failed to relaunch application '$bundle_id'.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nyes | hdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\" || exit 1\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\" || true\n# copy to the applications folder\nquit_and_track_application 'com.mongodb.compass'\nif [ -d \"$APPDIR/MongoDB Compass.app\" ]; then\n\tsudo mv \"$APPDIR/MongoDB Compass.app\" \"$TMPDIR/MongoDB Compass.app.bkp\" || exit $?\nfi\nif ! sudo cp -R \"$TMPDIR/MongoDB Compass.app\" \"$APPDIR\"; then\n\t# remove the partial copy so a failed install isn't inventoried as the new\n\t# version, then restore the previous version if there was one\n\tsudo rm -rf \"$APPDIR/MongoDB Compass.app\"\n\tif [ -d \"$TMPDIR/MongoDB Compass.app.bkp\" ]; then\n\t\tsudo mv \"$TMPDIR/MongoDB Compass.app.bkp\" \"$APPDIR/MongoDB Compass.app\"\n\tfi\n\texit 1\nfi\nrelaunch_application 'com.mongodb.compass'\n" } } diff --git a/ee/maintained-apps/outputs/mongodb-compass/windows.json b/ee/maintained-apps/outputs/mongodb-compass/windows.json index b99cd66e75e..9d45aabebe9 100644 --- a/ee/maintained-apps/outputs/mongodb-compass/windows.json +++ b/ee/maintained-apps/outputs/mongodb-compass/windows.json @@ -4,7 +4,8 @@ "version": "1.49.14.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'MongoDB Compass' AND publisher = 'MongoDB Inc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'MongoDB Compass' AND publisher = 'MongoDB Inc' AND version_compare(version, '1.49.14.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'MongoDB Compass' AND publisher = 'MongoDB Inc' AND version_compare(version, '1.49.14.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'mongodb compass.exe');" }, "installer_url": "https://github.com/mongodb-js/compass/releases/download/v1.49.14/mongodb-compass-1.49.14-win32-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/monitorcontrol/darwin.json b/ee/maintained-apps/outputs/monitorcontrol/darwin.json index b0133ad2869..ca4b9e826ea 100644 --- a/ee/maintained-apps/outputs/monitorcontrol/darwin.json +++ b/ee/maintained-apps/outputs/monitorcontrol/darwin.json @@ -4,7 +4,8 @@ "version": "4.3.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'me.guillaumeb.MonitorControl';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'me.guillaumeb.MonitorControl' AND version_compare(bundle_short_version, '4.3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'me.guillaumeb.MonitorControl' AND version_compare(bundle_short_version, '4.3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'me.guillaumeb.MonitorControl');" }, "installer_url": "https://github.com/MonitorControl/MonitorControl/releases/download/v4.3.3/MonitorControl.4.3.3.dmg", "install_script_ref": "431e1d86", diff --git a/ee/maintained-apps/outputs/moom/darwin.json b/ee/maintained-apps/outputs/moom/darwin.json index ab35fb97bd7..e5d260fd719 100644 --- a/ee/maintained-apps/outputs/moom/darwin.json +++ b/ee/maintained-apps/outputs/moom/darwin.json @@ -4,7 +4,8 @@ "version": "4.5.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.manytricks.Moom';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.manytricks.Moom' AND version_compare(bundle_short_version, '4.5.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.manytricks.Moom' AND version_compare(bundle_short_version, '4.5.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.manytricks.Moom');" }, "installer_url": "https://manytricks.com/download/_do_not_hotlink_/moom451.dmg", "install_script_ref": "c6126f16", diff --git a/ee/maintained-apps/outputs/moonlight/darwin.json b/ee/maintained-apps/outputs/moonlight/darwin.json index 3c6e2c2df43..f463ac1ab94 100644 --- a/ee/maintained-apps/outputs/moonlight/darwin.json +++ b/ee/maintained-apps/outputs/moonlight/darwin.json @@ -4,7 +4,8 @@ "version": "6.1.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.moonlight-stream.Moonlight';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.moonlight-stream.Moonlight' AND version_compare(bundle_short_version, '6.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.moonlight-stream.Moonlight' AND version_compare(bundle_short_version, '6.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.moonlight-stream.Moonlight');" }, "installer_url": "https://github.com/moonlight-stream/moonlight-qt/releases/download/v6.1.0/Moonlight-6.1.0.dmg", "install_script_ref": "703cbc76", diff --git a/ee/maintained-apps/outputs/morgen/darwin.json b/ee/maintained-apps/outputs/morgen/darwin.json index 5ed3ccb8131..6b5e17b67d7 100644 --- a/ee/maintained-apps/outputs/morgen/darwin.json +++ b/ee/maintained-apps/outputs/morgen/darwin.json @@ -4,7 +4,8 @@ "version": "4.0.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.todesktop.210203cqcj00tw1';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.todesktop.210203cqcj00tw1' AND version_compare(bundle_short_version, '4.0.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.todesktop.210203cqcj00tw1' AND version_compare(bundle_short_version, '4.0.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.todesktop.210203cqcj00tw1');" }, "installer_url": "https://download.todesktop.com/210203cqcj00tw1/Morgen%204.0.6%20-%20Build%20260519by9gmr661-arm64.dmg", "install_script_ref": "f5f4c69a", diff --git a/ee/maintained-apps/outputs/morgen/windows.json b/ee/maintained-apps/outputs/morgen/windows.json index ff6b8d83acf..8325b773503 100644 --- a/ee/maintained-apps/outputs/morgen/windows.json +++ b/ee/maintained-apps/outputs/morgen/windows.json @@ -4,7 +4,8 @@ "version": "4.0.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Morgen' AND publisher = 'Morgen AG';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Morgen' AND publisher = 'Morgen AG' AND version_compare(version, '4.0.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Morgen' AND publisher = 'Morgen AG' AND version_compare(version, '4.0.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'morgen.exe');" }, "installer_url": "https://download.todesktop.com/210203cqcj00tw1/Morgen%20Setup%204.0.6%20-%20Build%20260519by9gmr661-x64.exe", "install_script_ref": "de703749", diff --git a/ee/maintained-apps/outputs/mos/darwin.json b/ee/maintained-apps/outputs/mos/darwin.json index 290cc63d501..becfd9f2a78 100644 --- a/ee/maintained-apps/outputs/mos/darwin.json +++ b/ee/maintained-apps/outputs/mos/darwin.json @@ -4,7 +4,8 @@ "version": "4.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.caldis.Mos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.caldis.Mos' AND version_compare(bundle_short_version, '4.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.caldis.Mos' AND version_compare(bundle_short_version, '4.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.caldis.Mos');" }, "installer_url": "https://github.com/Caldis/Mos/releases/download/4.2.1/Mos.Versions.4.2.1-20260531.1.zip", "install_script_ref": "a15bd3ff", diff --git a/ee/maintained-apps/outputs/mountain-duck/darwin.json b/ee/maintained-apps/outputs/mountain-duck/darwin.json index 9798942a07b..3dd524b45c3 100644 --- a/ee/maintained-apps/outputs/mountain-duck/darwin.json +++ b/ee/maintained-apps/outputs/mountain-duck/darwin.json @@ -4,7 +4,8 @@ "version": "5.3.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.mountainduck';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.mountainduck' AND version_compare(bundle_short_version, '5.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.mountainduck' AND version_compare(bundle_short_version, '5.3.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.mountainduck');" }, "installer_url": "https://dist.mountainduck.io/Mountain%20Duck-5.3.1.29526.zip", "install_script_ref": "b1d40229", diff --git a/ee/maintained-apps/outputs/mozilla-vpn/darwin.json b/ee/maintained-apps/outputs/mozilla-vpn/darwin.json index a378103c65d..3a1368a5639 100644 --- a/ee/maintained-apps/outputs/mozilla-vpn/darwin.json +++ b/ee/maintained-apps/outputs/mozilla-vpn/darwin.json @@ -4,7 +4,8 @@ "version": "2.39.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.macos.FirefoxVPN';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.macos.FirefoxVPN' AND version_compare(bundle_short_version, '2.39.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.macos.FirefoxVPN' AND version_compare(bundle_short_version, '2.39.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.mozilla.macos.FirefoxVPN');" }, "installer_url": "https://archive.mozilla.org/pub/vpn/releases/2.39.0/mac/MozillaVPN.pkg", "install_script_ref": "c33ea99b", diff --git a/ee/maintained-apps/outputs/mozilla-vpn/windows.json b/ee/maintained-apps/outputs/mozilla-vpn/windows.json index 2a20d914d9b..727be9466ab 100644 --- a/ee/maintained-apps/outputs/mozilla-vpn/windows.json +++ b/ee/maintained-apps/outputs/mozilla-vpn/windows.json @@ -4,7 +4,8 @@ "version": "2.39.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Mozilla VPN' AND publisher = 'Mozilla Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Mozilla VPN' AND publisher = 'Mozilla Corporation' AND version_compare(version, '2.39.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Mozilla VPN' AND publisher = 'Mozilla Corporation' AND version_compare(version, '2.39.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'mozilla vpn.exe');" }, "installer_url": "https://archive.mozilla.org/pub/vpn/releases/2.39.0/windows/MozillaVPN.msi", "install_script_ref": "c02fc638", diff --git a/ee/maintained-apps/outputs/mqttx/darwin.json b/ee/maintained-apps/outputs/mqttx/darwin.json index 0a3e2f94e07..dbf49388e85 100644 --- a/ee/maintained-apps/outputs/mqttx/darwin.json +++ b/ee/maintained-apps/outputs/mqttx/darwin.json @@ -4,7 +4,8 @@ "version": "1.13.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.mqttx';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.mqttx' AND version_compare(bundle_short_version, '1.13.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.mqttx' AND version_compare(bundle_short_version, '1.13.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.mqttx');" }, "installer_url": "https://github.com/emqx/MQTTX/releases/download/v1.13.0/MQTTX-1.13.0-arm64.dmg", "install_script_ref": "5e37349c", diff --git a/ee/maintained-apps/outputs/mullvad-browser/darwin.json b/ee/maintained-apps/outputs/mullvad-browser/darwin.json index 0db16826037..d9d0f98ec71 100644 --- a/ee/maintained-apps/outputs/mullvad-browser/darwin.json +++ b/ee/maintained-apps/outputs/mullvad-browser/darwin.json @@ -4,7 +4,8 @@ "version": "15.0.19", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.mullvad.mullvadbrowser';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.mullvad.mullvadbrowser' AND version_compare(bundle_short_version, '15.0.19') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.mullvad.mullvadbrowser' AND version_compare(bundle_short_version, '15.0.19') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.mullvad.mullvadbrowser');" }, "installer_url": "https://cdn.mullvad.net/browser/15.0.19/mullvad-browser-macos-15.0.19.dmg", "install_script_ref": "30301c81", diff --git a/ee/maintained-apps/outputs/mullvad-browser/windows.json b/ee/maintained-apps/outputs/mullvad-browser/windows.json index e6a63155504..d6287fd0063 100644 --- a/ee/maintained-apps/outputs/mullvad-browser/windows.json +++ b/ee/maintained-apps/outputs/mullvad-browser/windows.json @@ -4,7 +4,8 @@ "version": "15.0.19", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Mullvad Browser' AND publisher = 'Mullvad VPN';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Mullvad Browser' AND publisher = 'Mullvad VPN' AND version_compare(version, '15.0.19') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Mullvad Browser' AND publisher = 'Mullvad VPN' AND version_compare(version, '15.0.19') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'mullvad browser.exe');" }, "installer_url": "https://github.com/mullvad/mullvad-browser/releases/download/15.0.19/mullvad-browser-windows-x86_64-15.0.19.exe", "install_script_ref": "de703749", diff --git a/ee/maintained-apps/outputs/mullvad-vpn/darwin.json b/ee/maintained-apps/outputs/mullvad-vpn/darwin.json index 7b6d3a7279a..2ad6cf82b5c 100644 --- a/ee/maintained-apps/outputs/mullvad-vpn/darwin.json +++ b/ee/maintained-apps/outputs/mullvad-vpn/darwin.json @@ -4,7 +4,8 @@ "version": "2026.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.mullvad.vpn';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.mullvad.vpn' AND version_compare(bundle_short_version, '2026.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.mullvad.vpn' AND version_compare(bundle_short_version, '2026.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.mullvad.vpn');" }, "installer_url": "https://cdn.mullvad.net/app/desktop/releases/2026.3/MullvadVPN-2026.3.pkg", "install_script_ref": "cbe59118", diff --git a/ee/maintained-apps/outputs/multitouch/darwin.json b/ee/maintained-apps/outputs/multitouch/darwin.json index 5844230ca3c..6a5c78a8a54 100644 --- a/ee/maintained-apps/outputs/multitouch/darwin.json +++ b/ee/maintained-apps/outputs/multitouch/darwin.json @@ -4,7 +4,8 @@ "version": "1.48", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.brassmonkery.Multitouch';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.brassmonkery.Multitouch' AND version_compare(bundle_short_version, '1.48') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.brassmonkery.Multitouch' AND version_compare(bundle_short_version, '1.48') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.brassmonkery.Multitouch');" }, "installer_url": "https://multitouch.app/downloads/multitouch1.48.dmg", "install_script_ref": "e5858c04", diff --git a/ee/maintained-apps/outputs/mural/darwin.json b/ee/maintained-apps/outputs/mural/darwin.json index 37e0c2f45b1..f0eea4ef4c6 100644 --- a/ee/maintained-apps/outputs/mural/darwin.json +++ b/ee/maintained-apps/outputs/mural/darwin.json @@ -4,7 +4,8 @@ "version": "3.0.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'co.mural.macOS';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.mural.macOS' AND version_compare(bundle_short_version, '3.0.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.mural.macOS' AND version_compare(bundle_short_version, '3.0.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'co.mural.macOS');" }, "installer_url": "https://download.mural.co/mac-app/Mural-3.0.4.dmg", "install_script_ref": "2494fe6e", diff --git a/ee/maintained-apps/outputs/museeks/darwin.json b/ee/maintained-apps/outputs/museeks/darwin.json index cf3d3406ce4..1f322e2415c 100644 --- a/ee/maintained-apps/outputs/museeks/darwin.json +++ b/ee/maintained-apps/outputs/museeks/darwin.json @@ -4,7 +4,8 @@ "version": "0.23.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.museeks';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.museeks' AND version_compare(bundle_short_version, '0.23.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.museeks' AND version_compare(bundle_short_version, '0.23.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.museeks');" }, "installer_url": "https://github.com/martpie/museeks/releases/download/0.23.4/Museeks_0.23.4_universal.dmg", "install_script_ref": "fbdc4209", diff --git a/ee/maintained-apps/outputs/musescore/darwin.json b/ee/maintained-apps/outputs/musescore/darwin.json index 9e8278e3e3a..532569c8d0a 100644 --- a/ee/maintained-apps/outputs/musescore/darwin.json +++ b/ee/maintained-apps/outputs/musescore/darwin.json @@ -4,7 +4,8 @@ "version": "4.7.4.260706075", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.musescore.MuseScore';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.musescore.MuseScore' AND version_compare(bundle_short_version, '4.7.4.260706075') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.musescore.MuseScore' AND version_compare(bundle_short_version, '4.7.4.260706075') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.musescore.MuseScore');" }, "installer_url": "https://github.com/musescore/MuseScore/releases/download/v4.7.4/MuseScore-Studio-4.7.4.260706075.dmg", "install_script_ref": "53445a59", diff --git a/ee/maintained-apps/outputs/mx-power-gadget/darwin.json b/ee/maintained-apps/outputs/mx-power-gadget/darwin.json index 2b61a3d4a12..bd8926c7595 100644 --- a/ee/maintained-apps/outputs/mx-power-gadget/darwin.json +++ b/ee/maintained-apps/outputs/mx-power-gadget/darwin.json @@ -4,7 +4,8 @@ "version": "1.6.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.fabriceleyne.MxPowerGadget';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fabriceleyne.MxPowerGadget' AND version_compare(bundle_short_version, '1.6.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fabriceleyne.MxPowerGadget' AND version_compare(bundle_short_version, '1.6.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.fabriceleyne.MxPowerGadget');" }, "installer_url": "https://www.seense.com/menubarstats/mxpg/updateapp/mxpg.zip", "install_script_ref": "d90ad44c", diff --git a/ee/maintained-apps/outputs/mysqlworkbench/darwin.json b/ee/maintained-apps/outputs/mysqlworkbench/darwin.json index 4dc3b938ab4..90e5ba1103b 100644 --- a/ee/maintained-apps/outputs/mysqlworkbench/darwin.json +++ b/ee/maintained-apps/outputs/mysqlworkbench/darwin.json @@ -4,7 +4,8 @@ "version": "8.0.47.CE", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.oracle.workbench.MySQLWorkbench';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.oracle.workbench.MySQLWorkbench' AND version_compare(bundle_short_version, '8.0.47.CE') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.oracle.workbench.MySQLWorkbench' AND version_compare(bundle_short_version, '8.0.47.CE') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.oracle.workbench.MySQLWorkbench');" }, "installer_url": "https://cdn.mysql.com/Downloads/MySQLGUITools/mysql-workbench-community-8.0.47-macos-arm64.dmg", "install_script_ref": "bf3f28e1", diff --git a/ee/maintained-apps/outputs/mysqlworkbench/windows.json b/ee/maintained-apps/outputs/mysqlworkbench/windows.json index 50c5fc0fe09..ca944036253 100644 --- a/ee/maintained-apps/outputs/mysqlworkbench/windows.json +++ b/ee/maintained-apps/outputs/mysqlworkbench/windows.json @@ -4,7 +4,8 @@ "version": "8.0.47", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'MySQL Workbench %' AND publisher = 'Oracle Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'MySQL Workbench %' AND publisher = 'Oracle Corporation' AND version_compare(version, '8.0.47') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'MySQL Workbench %' AND publisher = 'Oracle Corporation' AND version_compare(version, '8.0.47') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'mysql workbench.exe');" }, "installer_url": "https://cdn.mysql.com/Downloads/MySQLGUITools/mysql-workbench-community-8.0.47-winx64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/nagstamon/darwin.json b/ee/maintained-apps/outputs/nagstamon/darwin.json index 2a34bcd97ce..0a9d9f244b0 100644 --- a/ee/maintained-apps/outputs/nagstamon/darwin.json +++ b/ee/maintained-apps/outputs/nagstamon/darwin.json @@ -4,7 +4,8 @@ "version": "3.18.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'de.nagstamon';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'de.nagstamon' AND version_compare(bundle_short_version, '3.18.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'de.nagstamon' AND version_compare(bundle_short_version, '3.18.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'de.nagstamon');" }, "installer_url": "https://github.com/HenriWahl/Nagstamon/releases/download/v3.18.2/Nagstamon-3.18.2-ARM.dmg", "install_script_ref": "99136b87", diff --git a/ee/maintained-apps/outputs/nagstamon/windows.json b/ee/maintained-apps/outputs/nagstamon/windows.json index 58b535da7cc..3989aeca754 100644 --- a/ee/maintained-apps/outputs/nagstamon/windows.json +++ b/ee/maintained-apps/outputs/nagstamon/windows.json @@ -4,7 +4,8 @@ "version": "3.18.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Nagstamon' AND publisher = 'Henri Wahl';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Nagstamon' AND publisher = 'Henri Wahl' AND version_compare(version, '3.18.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Nagstamon' AND publisher = 'Henri Wahl' AND version_compare(version, '3.18.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'nagstamon.exe');" }, "installer_url": "https://github.com/HenriWahl/Nagstamon/releases/download/v3.18.2/Nagstamon-3.18.2-win64_setup.exe", "install_script_ref": "886734d1", diff --git a/ee/maintained-apps/outputs/name-mangler/darwin.json b/ee/maintained-apps/outputs/name-mangler/darwin.json index 1c4721747ba..b1677f0f1cc 100644 --- a/ee/maintained-apps/outputs/name-mangler/darwin.json +++ b/ee/maintained-apps/outputs/name-mangler/darwin.json @@ -4,7 +4,8 @@ "version": "3.9.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.manytricks.NameMangler';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.manytricks.NameMangler' AND version_compare(bundle_short_version, '3.9.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.manytricks.NameMangler' AND version_compare(bundle_short_version, '3.9.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.manytricks.NameMangler');" }, "installer_url": "https://manytricks.com/download/_do_not_hotlink_/namemangler393.dmg", "install_script_ref": "0c2a9a05", diff --git a/ee/maintained-apps/outputs/naps2/darwin.json b/ee/maintained-apps/outputs/naps2/darwin.json index 66840666693..358433ee1b7 100644 --- a/ee/maintained-apps/outputs/naps2/darwin.json +++ b/ee/maintained-apps/outputs/naps2/darwin.json @@ -4,7 +4,8 @@ "version": "8.3.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.naps2.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.naps2.desktop' AND version_compare(bundle_short_version, '8.3.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.naps2.desktop' AND version_compare(bundle_short_version, '8.3.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.naps2.desktop');" }, "installer_url": "https://github.com/cyanfish/naps2/releases/download/v8.3.2/naps2-8.3.2-mac-arm64.pkg", "install_script_ref": "5926c956", diff --git a/ee/maintained-apps/outputs/naps2/windows.json b/ee/maintained-apps/outputs/naps2/windows.json index 7bc84c62d7e..fa542695570 100644 --- a/ee/maintained-apps/outputs/naps2/windows.json +++ b/ee/maintained-apps/outputs/naps2/windows.json @@ -4,7 +4,8 @@ "version": "8.3.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'NAPS2' AND publisher = 'NAPS2 Software';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'NAPS2' AND publisher = 'NAPS2 Software' AND version_compare(version, '8.3.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'NAPS2' AND publisher = 'NAPS2 Software' AND version_compare(version, '8.3.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'naps2.exe');" }, "installer_url": "https://github.com/cyanfish/naps2/releases/download/v8.3.2/naps2-8.3.2-win-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/ndi-tools/darwin.json b/ee/maintained-apps/outputs/ndi-tools/darwin.json index 3cd9aa27ee2..d273d2f0823 100644 --- a/ee/maintained-apps/outputs/ndi-tools/darwin.json +++ b/ee/maintained-apps/outputs/ndi-tools/darwin.json @@ -4,7 +4,8 @@ "version": "6.3.2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.newtek.Application-Mac-NDI-ScanConverter';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.newtek.Application-Mac-NDI-ScanConverter' AND version_compare(bundle_short_version, '6.3.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.newtek.Application-Mac-NDI-ScanConverter' AND version_compare(bundle_short_version, '6.3.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.newtek.Application-Mac-NDI-ScanConverter');" }, "installer_url": "https://downloads.ndi.tv/Tools/NDIToolsInstaller.pkg", "install_script_ref": "ff5e76f7", diff --git a/ee/maintained-apps/outputs/neofinder/darwin.json b/ee/maintained-apps/outputs/neofinder/darwin.json index 77a8ffeb4d6..6dc240bc737 100644 --- a/ee/maintained-apps/outputs/neofinder/darwin.json +++ b/ee/maintained-apps/outputs/neofinder/darwin.json @@ -4,7 +4,8 @@ "version": "9.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'de.wfs-apps.neofinder';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'de.wfs-apps.neofinder' AND version_compare(bundle_short_version, '9.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'de.wfs-apps.neofinder' AND version_compare(bundle_short_version, '9.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'de.wfs-apps.neofinder');" }, "installer_url": "https://www.wfs-apps.de/updates/neofinder-mac.9.2.1.zip", "install_script_ref": "1ed6fe6c", diff --git a/ee/maintained-apps/outputs/nessus-agent/windows.json b/ee/maintained-apps/outputs/nessus-agent/windows.json index 5c1671645e5..787f087e8de 100644 --- a/ee/maintained-apps/outputs/nessus-agent/windows.json +++ b/ee/maintained-apps/outputs/nessus-agent/windows.json @@ -4,7 +4,8 @@ "version": "11.2.2.20009", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Nessus Agent (x64)' AND publisher = 'Tenable';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Nessus Agent (x64)' AND publisher = 'Tenable' AND version_compare(version, '11.2.2.20009') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Nessus Agent (x64)' AND publisher = 'Tenable' AND version_compare(version, '11.2.2.20009') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'nessus agent.exe');" }, "installer_url": "https://www.tenable.com/downloads/api/v2/pages/nessus-agents/files/NessusAgent-11.2.2-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/netiquette/darwin.json b/ee/maintained-apps/outputs/netiquette/darwin.json index 13eedb25899..0e33fa85ba6 100644 --- a/ee/maintained-apps/outputs/netiquette/darwin.json +++ b/ee/maintained-apps/outputs/netiquette/darwin.json @@ -4,7 +4,8 @@ "version": "2.3.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.objective-see.Netiquette';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.objective-see.Netiquette' AND version_compare(bundle_short_version, '2.3.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.objective-see.Netiquette' AND version_compare(bundle_short_version, '2.3.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.objective-see.Netiquette');" }, "installer_url": "https://github.com/objective-see/Netiquette/releases/download/v2.3.0/Netiquette_2.3.0.zip", "install_script_ref": "ff0c8d4e", diff --git a/ee/maintained-apps/outputs/netnewswire/darwin.json b/ee/maintained-apps/outputs/netnewswire/darwin.json index 4dde2153c1c..bbd61e68145 100644 --- a/ee/maintained-apps/outputs/netnewswire/darwin.json +++ b/ee/maintained-apps/outputs/netnewswire/darwin.json @@ -4,7 +4,8 @@ "version": "7.1.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ranchero.NetNewsWire-Evergreen';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ranchero.NetNewsWire-Evergreen' AND version_compare(bundle_short_version, '7.1.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ranchero.NetNewsWire-Evergreen' AND version_compare(bundle_short_version, '7.1.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ranchero.NetNewsWire-Evergreen');" }, "installer_url": "https://github.com/Ranchero-Software/NetNewsWire/releases/download/mac-7.1.2/NetNewsWire7.1.2.zip", "install_script_ref": "c0cd566a", diff --git a/ee/maintained-apps/outputs/netron/darwin.json b/ee/maintained-apps/outputs/netron/darwin.json index 256d4c3f970..3bb11ad1200 100644 --- a/ee/maintained-apps/outputs/netron/darwin.json +++ b/ee/maintained-apps/outputs/netron/darwin.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "9.2.0", + "version": "9.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lutzroeder.netron';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lutzroeder.netron' AND version_compare(bundle_short_version, '9.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lutzroeder.netron' AND version_compare(bundle_short_version, '9.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.lutzroeder.netron');" }, - "installer_url": "https://github.com/lutzroeder/netron/releases/download/v9.2.0/Netron-9.2.0-mac.zip", + "installer_url": "https://github.com/lutzroeder/netron/releases/download/v9.2.1/Netron-9.2.1-mac.zip", "install_script_ref": "ee434397", "uninstall_script_ref": "acbbb0d7", - "sha256": "be72b8a2d942cc41469eee08818bfd5ea4ff9bb168eba3e2390d6cf32b27785b", + "sha256": "fa1400f592fee23a49a3c0547ca81962b21b5562a642668246f03c6b7635213b", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/netspot/darwin.json b/ee/maintained-apps/outputs/netspot/darwin.json index ac4eb31eb35..1c445be788c 100644 --- a/ee/maintained-apps/outputs/netspot/darwin.json +++ b/ee/maintained-apps/outputs/netspot/darwin.json @@ -4,7 +4,8 @@ "version": "5.1.4971", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.etwok.netspotwifi';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.etwok.netspotwifi' AND version_compare(bundle_short_version, '5.1.4971') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.etwok.netspotwifi' AND version_compare(bundle_short_version, '5.1.4971') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.etwok.netspotwifi');" }, "installer_url": "https://cdn.netspotapp.com/download/NetSpot.dmg", "install_script_ref": "623af591", diff --git a/ee/maintained-apps/outputs/nextcloud-talk/darwin.json b/ee/maintained-apps/outputs/nextcloud-talk/darwin.json index 490eb2b44d7..e03ba456fd9 100644 --- a/ee/maintained-apps/outputs/nextcloud-talk/darwin.json +++ b/ee/maintained-apps/outputs/nextcloud-talk/darwin.json @@ -4,7 +4,8 @@ "version": "2.2.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nextcloud.talk.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nextcloud.talk.mac' AND version_compare(bundle_short_version, '2.2.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nextcloud.talk.mac' AND version_compare(bundle_short_version, '2.2.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.nextcloud.talk.mac');" }, "installer_url": "https://github.com/nextcloud-releases/talk-desktop/releases/download/v2.2.3/Nextcloud.Talk-macos-universal.dmg", "install_script_ref": "7677109a", diff --git a/ee/maintained-apps/outputs/nextcloud/darwin.json b/ee/maintained-apps/outputs/nextcloud/darwin.json index 50e5c433fd1..6de742649ff 100644 --- a/ee/maintained-apps/outputs/nextcloud/darwin.json +++ b/ee/maintained-apps/outputs/nextcloud/darwin.json @@ -4,7 +4,8 @@ "version": "34.0.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nextcloud.desktopclient';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nextcloud.desktopclient' AND version_compare(bundle_short_version, '34.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nextcloud.desktopclient' AND version_compare(bundle_short_version, '34.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.nextcloud.desktopclient');" }, "installer_url": "https://github.com/nextcloud-releases/desktop/releases/download/v34.0.1/Nextcloud-34.0.1.pkg", "install_script_ref": "fc8d8f94", diff --git a/ee/maintained-apps/outputs/nextcloud/windows.json b/ee/maintained-apps/outputs/nextcloud/windows.json index a13e5abba4a..0325ff08f56 100644 --- a/ee/maintained-apps/outputs/nextcloud/windows.json +++ b/ee/maintained-apps/outputs/nextcloud/windows.json @@ -4,7 +4,8 @@ "version": "34.0.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Nextcloud' AND publisher = 'Nextcloud GmbH';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Nextcloud' AND publisher = 'Nextcloud GmbH' AND version_compare(version, '34.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Nextcloud' AND publisher = 'Nextcloud GmbH' AND version_compare(version, '34.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'nextcloud.exe');" }, "installer_url": "https://github.com/nextcloud-releases/desktop/releases/download/v34.0.1/Nextcloud-34.0.1-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/nightfall/darwin.json b/ee/maintained-apps/outputs/nightfall/darwin.json index 58f9feb008b..cbf416c99ca 100644 --- a/ee/maintained-apps/outputs/nightfall/darwin.json +++ b/ee/maintained-apps/outputs/nightfall/darwin.json @@ -4,7 +4,8 @@ "version": "3.1.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.ryanthomson.Nightfall';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.ryanthomson.Nightfall' AND version_compare(bundle_short_version, '3.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.ryanthomson.Nightfall' AND version_compare(bundle_short_version, '3.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.ryanthomson.Nightfall');" }, "installer_url": "https://github.com/r-thomson/Nightfall/releases/download/v3.1.0/Nightfall.dmg", "install_script_ref": "773240fb", diff --git a/ee/maintained-apps/outputs/nitro-pdf-pro/darwin.json b/ee/maintained-apps/outputs/nitro-pdf-pro/darwin.json index 0778c73f67a..c52c80ce87a 100644 --- a/ee/maintained-apps/outputs/nitro-pdf-pro/darwin.json +++ b/ee/maintained-apps/outputs/nitro-pdf-pro/darwin.json @@ -4,7 +4,8 @@ "version": "26.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.gonitro.NitroPDFPro';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gonitro.NitroPDFPro' AND version_compare(bundle_short_version, '26.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gonitro.NitroPDFPro' AND version_compare(bundle_short_version, '26.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.gonitro.NitroPDFPro');" }, "installer_url": "https://downloads.gonitro.com/macos/Nitro%20PDF%20Pro_26.0.dmg", "install_script_ref": "7692e9a9", diff --git a/ee/maintained-apps/outputs/nodejs/windows.json b/ee/maintained-apps/outputs/nodejs/windows.json index 25eb6b5d8f4..fb9c621b22d 100644 --- a/ee/maintained-apps/outputs/nodejs/windows.json +++ b/ee/maintained-apps/outputs/nodejs/windows.json @@ -4,7 +4,8 @@ "version": "26.7.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Node.js' AND publisher = 'Node.js Foundation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Node.js' AND publisher = 'Node.js Foundation' AND version_compare(version, '26.7.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Node.js' AND publisher = 'Node.js Foundation' AND version_compare(version, '26.7.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'node.exe');" }, "installer_url": "https://nodejs.org/dist/v26.7.0/node-v26.7.0-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/nordlayer/darwin.json b/ee/maintained-apps/outputs/nordlayer/darwin.json index ea0e1e4a634..62c54ef5766 100644 --- a/ee/maintained-apps/outputs/nordlayer/darwin.json +++ b/ee/maintained-apps/outputs/nordlayer/darwin.json @@ -4,7 +4,8 @@ "version": "3.11.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordvpn.macos.teams';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordvpn.macos.teams' AND version_compare(bundle_short_version, '3.11.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordvpn.macos.teams' AND version_compare(bundle_short_version, '3.11.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.nordvpn.macos.teams');" }, "installer_url": "https://downloads.nordlayer.com/mac/latest/NordLayer_v3.11.0.pkg", "install_script_ref": "15df00ae", diff --git a/ee/maintained-apps/outputs/nordpass/darwin.json b/ee/maintained-apps/outputs/nordpass/darwin.json index 75c24cf1e1f..509d756f875 100644 --- a/ee/maintained-apps/outputs/nordpass/darwin.json +++ b/ee/maintained-apps/outputs/nordpass/darwin.json @@ -4,7 +4,8 @@ "version": "7.9.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordsec.nordpass';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordsec.nordpass' AND version_compare(bundle_short_version, '7.9.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordsec.nordpass' AND version_compare(bundle_short_version, '7.9.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.nordsec.nordpass');" }, "installer_url": "https://downloads.npass.app/mac/arm/NordPass.dmg", "install_script_ref": "001e7928", diff --git a/ee/maintained-apps/outputs/nordpass/windows.json b/ee/maintained-apps/outputs/nordpass/windows.json index 19293ce9c6e..e617806bf03 100644 --- a/ee/maintained-apps/outputs/nordpass/windows.json +++ b/ee/maintained-apps/outputs/nordpass/windows.json @@ -4,7 +4,8 @@ "version": "7.9.4", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'NordPass' AND publisher = 'NordPass Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'NordPass' AND publisher = 'NordPass Team' AND version_compare(version, '7.9.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'NordPass' AND publisher = 'NordPass Team' AND version_compare(version, '7.9.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'nordpass.exe');" }, "installer_url": "https://downloads.npass.app/windows/NordPassSetup.exe", "install_script_ref": "17ae065a", diff --git a/ee/maintained-apps/outputs/nordvpn/darwin.json b/ee/maintained-apps/outputs/nordvpn/darwin.json index f65274a4f68..7693d70b7c3 100644 --- a/ee/maintained-apps/outputs/nordvpn/darwin.json +++ b/ee/maintained-apps/outputs/nordvpn/darwin.json @@ -4,7 +4,8 @@ "version": "10.8.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordvpn.macos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordvpn.macos' AND version_compare(bundle_short_version, '10.8.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordvpn.macos' AND version_compare(bundle_short_version, '10.8.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.nordvpn.macos');" }, "installer_url": "https://downloads.nordcdn.com/apps/macos/generic/NordVPN-OpenVPN/10.8.1/NordVPN.pkg", "install_script_ref": "7ddb9cb2", diff --git a/ee/maintained-apps/outputs/nordvpn/windows.json b/ee/maintained-apps/outputs/nordvpn/windows.json index 317cfde1760..f8a060572c0 100644 --- a/ee/maintained-apps/outputs/nordvpn/windows.json +++ b/ee/maintained-apps/outputs/nordvpn/windows.json @@ -4,7 +4,8 @@ "version": "8.8.3.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'NordVPN %' AND publisher = 'Nord Security';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'NordVPN %' AND publisher = 'Nord Security' AND version_compare(version, '8.8.3.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'NordVPN %' AND publisher = 'Nord Security' AND version_compare(version, '8.8.3.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'nordvpn.exe');" }, "installer_url": "https://downloads.nordcdn.com/apps/windows/NordVPN/8.8.3.0/NordVPNInstall.exe", "install_script_ref": "61026ed8", diff --git a/ee/maintained-apps/outputs/nosql-workbench/darwin.json b/ee/maintained-apps/outputs/nosql-workbench/darwin.json index d1d492baf50..f7e3971892a 100644 --- a/ee/maintained-apps/outputs/nosql-workbench/darwin.json +++ b/ee/maintained-apps/outputs/nosql-workbench/darwin.json @@ -4,7 +4,8 @@ "version": "3.20.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.dynamodb.workbench';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dynamodb.workbench' AND version_compare(bundle_short_version, '3.20.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dynamodb.workbench' AND version_compare(bundle_short_version, '3.20.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.dynamodb.workbench');" }, "installer_url": "https://nosql-workbench.s3.amazonaws.com/NoSQL%20Workbench-mac-arm64-3.20.3.dmg", "install_script_ref": "91c20bf6", diff --git a/ee/maintained-apps/outputs/nosql-workbench/windows.json b/ee/maintained-apps/outputs/nosql-workbench/windows.json index 65bfb618b0f..29abe5789b3 100644 --- a/ee/maintained-apps/outputs/nosql-workbench/windows.json +++ b/ee/maintained-apps/outputs/nosql-workbench/windows.json @@ -4,7 +4,8 @@ "version": "3.20.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'NoSQL Workbench' AND publisher = 'DynamoDB Developer Experience';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'NoSQL Workbench' AND publisher = 'DynamoDB Developer Experience' AND version_compare(version, '3.20.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'NoSQL Workbench' AND publisher = 'DynamoDB Developer Experience' AND version_compare(version, '3.20.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'nosql workbench.exe');" }, "installer_url": "https://dy9cqqaswpltd.cloudfront.net/NoSQL%20Workbench-win-3.20.3.exe", "install_script_ref": "1aa3b9df", diff --git a/ee/maintained-apps/outputs/notchnook/darwin.json b/ee/maintained-apps/outputs/notchnook/darwin.json index bc71c4539ce..5866173cd86 100644 --- a/ee/maintained-apps/outputs/notchnook/darwin.json +++ b/ee/maintained-apps/outputs/notchnook/darwin.json @@ -4,7 +4,8 @@ "version": "1.6.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'lo.cafe.NotchNook';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'lo.cafe.NotchNook' AND version_compare(bundle_short_version, '1.6.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'lo.cafe.NotchNook' AND version_compare(bundle_short_version, '1.6.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'lo.cafe.NotchNook');" }, "installer_url": "https://lo.cafe/notchnook-files/NotchNook-1.6.2.zip", "install_script_ref": "53f16462", diff --git a/ee/maintained-apps/outputs/notepad++/windows.json b/ee/maintained-apps/outputs/notepad++/windows.json index afd1a3540fb..ad4b48e3345 100644 --- a/ee/maintained-apps/outputs/notepad++/windows.json +++ b/ee/maintained-apps/outputs/notepad++/windows.json @@ -4,7 +4,8 @@ "version": "8.9.7", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Notepad++' AND publisher = 'Notepad++ Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Notepad++' AND publisher = 'Notepad++ Team' AND version_compare(version, '8.9.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Notepad++' AND publisher = 'Notepad++ Team' AND version_compare(version, '8.9.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'notepad++.exe');" }, "installer_url": "https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v8.9.7/npp.8.9.7.Installer.x64.exe", "install_script_ref": "46c6fee6", diff --git a/ee/maintained-apps/outputs/notepadexe/darwin.json b/ee/maintained-apps/outputs/notepadexe/darwin.json index f3a7e7304d9..29e76e1751f 100644 --- a/ee/maintained-apps/outputs/notepadexe/darwin.json +++ b/ee/maintained-apps/outputs/notepadexe/darwin.json @@ -4,7 +4,8 @@ "version": "1.5.12", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'best.swift.Notepad';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'best.swift.Notepad' AND version_compare(bundle_short_version, '1.5.12') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'best.swift.Notepad' AND version_compare(bundle_short_version, '1.5.12') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'best.swift.Notepad');" }, "installer_url": "https://github.com/notepadhq/notepadexe-public/releases/download/1.5.12/Notepad.zip", "install_script_ref": "7bdbf044", diff --git a/ee/maintained-apps/outputs/notesnook/darwin.json b/ee/maintained-apps/outputs/notesnook/darwin.json index adca1355476..52490548d46 100644 --- a/ee/maintained-apps/outputs/notesnook/darwin.json +++ b/ee/maintained-apps/outputs/notesnook/darwin.json @@ -4,7 +4,8 @@ "version": "3.4.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.streetwriters.notesnook';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.streetwriters.notesnook' AND version_compare(bundle_short_version, '3.4.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.streetwriters.notesnook' AND version_compare(bundle_short_version, '3.4.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.streetwriters.notesnook');" }, "installer_url": "https://github.com/streetwriters/notesnook/releases/download/v3.4.5/notesnook_mac_arm64.dmg", "install_script_ref": "61e13773", diff --git a/ee/maintained-apps/outputs/notesnook/windows.json b/ee/maintained-apps/outputs/notesnook/windows.json index 0ede961d556..ce0523ef85e 100644 --- a/ee/maintained-apps/outputs/notesnook/windows.json +++ b/ee/maintained-apps/outputs/notesnook/windows.json @@ -4,7 +4,8 @@ "version": "3.4.5", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Notesnook %' AND publisher = 'Streetwriters';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Notesnook %' AND publisher = 'Streetwriters' AND version_compare(version, '3.4.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Notesnook %' AND publisher = 'Streetwriters' AND version_compare(version, '3.4.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'notesnook.exe');" }, "installer_url": "https://github.com/streetwriters/notesnook/releases/download/v3.4.5/notesnook_win_x64.exe", "install_script_ref": "fae91a29", diff --git a/ee/maintained-apps/outputs/notesollama/darwin.json b/ee/maintained-apps/outputs/notesollama/darwin.json index 6e3d4e1f157..a7f88d26c19 100644 --- a/ee/maintained-apps/outputs/notesollama/darwin.json +++ b/ee/maintained-apps/outputs/notesollama/darwin.json @@ -4,7 +4,8 @@ "version": "0.2.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.smallest.NotesOllama';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.smallest.NotesOllama' AND version_compare(bundle_short_version, '0.2.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.smallest.NotesOllama' AND version_compare(bundle_short_version, '0.2.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.smallest.NotesOllama');" }, "installer_url": "https://smallest.app/notesollama/dist/NotesOllama-0.2.6.zip", "install_script_ref": "7d32031a", diff --git a/ee/maintained-apps/outputs/notion-calendar/darwin.json b/ee/maintained-apps/outputs/notion-calendar/darwin.json index 7bdcfddb565..7772788965e 100644 --- a/ee/maintained-apps/outputs/notion-calendar/darwin.json +++ b/ee/maintained-apps/outputs/notion-calendar/darwin.json @@ -4,7 +4,8 @@ "version": "1.139.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.cron.electron';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cron.electron' AND version_compare(bundle_short_version, '1.139.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cron.electron' AND version_compare(bundle_short_version, '1.139.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.cron.electron');" }, "installer_url": "https://calendar-desktop-release.notion-static.com/Notion%20Calendar-darwin-arm64-1.139.0.zip", "install_script_ref": "2aee7a7f", diff --git a/ee/maintained-apps/outputs/notion-calendar/windows.json b/ee/maintained-apps/outputs/notion-calendar/windows.json index ba2b0d53756..ff7ce52dc9a 100644 --- a/ee/maintained-apps/outputs/notion-calendar/windows.json +++ b/ee/maintained-apps/outputs/notion-calendar/windows.json @@ -4,7 +4,8 @@ "version": "1.133.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Notion Calendar' AND publisher = 'Notion Labs, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Notion Calendar' AND publisher = 'Notion Labs, Inc.' AND version_compare(version, '1.133.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Notion Calendar' AND publisher = 'Notion Labs, Inc.' AND version_compare(version, '1.133.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('cron.exe','notion calendar.exe'));" }, "installer_url": "https://calendar-desktop-release.notion-static.com/Notion%20Calendar%20Setup%201.133.0.exe", "install_script_ref": "2dc3186c", diff --git a/ee/maintained-apps/outputs/notion/darwin.json b/ee/maintained-apps/outputs/notion/darwin.json index b29e638f06d..1ccef5a85ac 100644 --- a/ee/maintained-apps/outputs/notion/darwin.json +++ b/ee/maintained-apps/outputs/notion/darwin.json @@ -4,7 +4,8 @@ "version": "7.29.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'notion.id';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'notion.id' AND version_compare(bundle_short_version, '7.29.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'notion.id' AND version_compare(bundle_short_version, '7.29.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'notion.id');" }, "installer_url": "https://desktop-release.notion-static.com/Notion-7.29.0-arm64.dmg", "install_script_ref": "48cf3d91", diff --git a/ee/maintained-apps/outputs/notion/windows.json b/ee/maintained-apps/outputs/notion/windows.json index 0ec270bf1e3..ed8d46eba02 100644 --- a/ee/maintained-apps/outputs/notion/windows.json +++ b/ee/maintained-apps/outputs/notion/windows.json @@ -4,7 +4,8 @@ "version": "7.29.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Notion %' AND publisher = 'Notion Labs, Inc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Notion %' AND publisher = 'Notion Labs, Inc' AND version_compare(version, '7.29.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Notion %' AND publisher = 'Notion Labs, Inc' AND version_compare(version, '7.29.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'notion.exe');" }, "installer_url": "https://desktop-release.notion-static.com/Notion%20Setup%207.29.0.exe", "install_script_ref": "0803ad8c", diff --git a/ee/maintained-apps/outputs/noun-project/darwin.json b/ee/maintained-apps/outputs/noun-project/darwin.json index dbaea821948..8e5bfb7284d 100644 --- a/ee/maintained-apps/outputs/noun-project/darwin.json +++ b/ee/maintained-apps/outputs/noun-project/darwin.json @@ -4,7 +4,8 @@ "version": "2.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.thenounproject.Noun-Project';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.thenounproject.Noun-Project' AND version_compare(bundle_short_version, '2.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.thenounproject.Noun-Project' AND version_compare(bundle_short_version, '2.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.thenounproject.Noun-Project');" }, "installer_url": "https://nounproject.s3.amazonaws.com/mac/NounProject.dmg", "install_script_ref": "c75d2969", diff --git a/ee/maintained-apps/outputs/nova/darwin.json b/ee/maintained-apps/outputs/nova/darwin.json index 6974899382d..90ce2de1591 100644 --- a/ee/maintained-apps/outputs/nova/darwin.json +++ b/ee/maintained-apps/outputs/nova/darwin.json @@ -4,7 +4,8 @@ "version": "14.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.panic.Nova';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.panic.Nova' AND version_compare(bundle_short_version, '14.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.panic.Nova' AND version_compare(bundle_short_version, '14.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.panic.Nova');" }, "installer_url": "https://panic.com/download/nova/Nova%2014.1.zip", "install_script_ref": "608eec9a", diff --git a/ee/maintained-apps/outputs/novabench/darwin.json b/ee/maintained-apps/outputs/novabench/darwin.json index b144723a2bd..e1eb5e5050d 100644 --- a/ee/maintained-apps/outputs/novabench/darwin.json +++ b/ee/maintained-apps/outputs/novabench/darwin.json @@ -4,7 +4,8 @@ "version": "6.1.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.novabench.client';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.novabench.client' AND version_compare(bundle_short_version, '6.1.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.novabench.client' AND version_compare(bundle_short_version, '6.1.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.novabench.client');" }, "installer_url": "https://novabench.com/files/novabench.dmg", "install_script_ref": "3eea3e15", diff --git a/ee/maintained-apps/outputs/nucleo/darwin.json b/ee/maintained-apps/outputs/nucleo/darwin.json index 6ddec7a716d..45ca648350e 100644 --- a/ee/maintained-apps/outputs/nucleo/darwin.json +++ b/ee/maintained-apps/outputs/nucleo/darwin.json @@ -4,7 +4,8 @@ "version": "4.2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'co.ambercreative.nucleo';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.ambercreative.nucleo' AND version_compare(bundle_short_version, '4.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.ambercreative.nucleo' AND version_compare(bundle_short_version, '4.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'co.ambercreative.nucleo');" }, "installer_url": "https://downloads.nucleoapp.com/mac-silicon/Nucleo_4.2.0.zip", "install_script_ref": "95dcc47c", diff --git a/ee/maintained-apps/outputs/nudge/darwin.json b/ee/maintained-apps/outputs/nudge/darwin.json index decf478226e..432fb61c9e5 100644 --- a/ee/maintained-apps/outputs/nudge/darwin.json +++ b/ee/maintained-apps/outputs/nudge/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.3.81860", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.macadmins.Nudge';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.macadmins.Nudge' AND version_compare(bundle_short_version, '2.1.3.81860') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.macadmins.Nudge' AND version_compare(bundle_short_version, '2.1.3.81860') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.github.macadmins.Nudge');" }, "installer_url": "https://github.com/macadmins/nudge/releases/download/v2.1.3.81860/Nudge-2.1.3.81860.pkg", "install_script_ref": "aa291dac", diff --git a/ee/maintained-apps/outputs/numi/darwin.json b/ee/maintained-apps/outputs/numi/darwin.json index b2c9e49a74c..023fbb6cf64 100644 --- a/ee/maintained-apps/outputs/numi/darwin.json +++ b/ee/maintained-apps/outputs/numi/darwin.json @@ -4,7 +4,8 @@ "version": "3.32.721", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.dmitrynikolaev.numi';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dmitrynikolaev.numi' AND version_compare(bundle_short_version, '3.32.721') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dmitrynikolaev.numi' AND version_compare(bundle_short_version, '3.32.721') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.dmitrynikolaev.numi');" }, "installer_url": "https://s3.numi.app/updates/3.32.721/Numi.dmg", "install_script_ref": "e6809ef0", diff --git a/ee/maintained-apps/outputs/nvda/windows.json b/ee/maintained-apps/outputs/nvda/windows.json index 32a74514c14..ffc3c4fcdac 100644 --- a/ee/maintained-apps/outputs/nvda/windows.json +++ b/ee/maintained-apps/outputs/nvda/windows.json @@ -4,7 +4,8 @@ "version": "2026.1.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'NVDA %' AND publisher = 'NV Access';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'NVDA %' AND publisher = 'NV Access' AND version_compare(version, '2026.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'NVDA %' AND publisher = 'NV Access' AND version_compare(version, '2026.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'nvda.exe');" }, "installer_url": "https://download.nvaccess.org/releases/2026.1.1/nvda_2026.1.1.exe", "install_script_ref": "25f7bd4d", diff --git a/ee/maintained-apps/outputs/nvidia-geforce-now/darwin.json b/ee/maintained-apps/outputs/nvidia-geforce-now/darwin.json index ff323d5c875..36263097282 100644 --- a/ee/maintained-apps/outputs/nvidia-geforce-now/darwin.json +++ b/ee/maintained-apps/outputs/nvidia-geforce-now/darwin.json @@ -4,7 +4,8 @@ "version": "2.0.87.131", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nvidia.gfnpc.mall';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nvidia.gfnpc.mall' AND version_compare(bundle_short_version, '2.0.87.131') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nvidia.gfnpc.mall' AND version_compare(bundle_short_version, '2.0.87.131') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.nvidia.gfnpc.mall');" }, "installer_url": "https://download.nvidia.com/gfnpc/GeForceNOW-release.dmg", "install_script_ref": "88b8bf1c", diff --git a/ee/maintained-apps/outputs/obs/darwin.json b/ee/maintained-apps/outputs/obs/darwin.json index 4c144c6b9d2..9c4b97b468f 100644 --- a/ee/maintained-apps/outputs/obs/darwin.json +++ b/ee/maintained-apps/outputs/obs/darwin.json @@ -4,7 +4,8 @@ "version": "32.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.obsproject.obs-studio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.obsproject.obs-studio' AND version_compare(bundle_short_version, '32.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.obsproject.obs-studio' AND version_compare(bundle_short_version, '32.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.obsproject.obs-studio');" }, "installer_url": "https://cdn-fastly.obsproject.com/downloads/obs-studio-32.2.1-macos-apple.dmg", "install_script_ref": "c9491f35", diff --git a/ee/maintained-apps/outputs/obs/windows.json b/ee/maintained-apps/outputs/obs/windows.json index 324d3e439cb..4e6ea4801cb 100644 --- a/ee/maintained-apps/outputs/obs/windows.json +++ b/ee/maintained-apps/outputs/obs/windows.json @@ -4,7 +4,8 @@ "version": "32.2.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'OBS Studio' AND publisher = 'OBS Project';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'OBS Studio' AND publisher = 'OBS Project' AND version_compare(version, '32.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'OBS Studio' AND publisher = 'OBS Project' AND version_compare(version, '32.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('obs32.exe','obs64.exe'));" }, "installer_url": "https://github.com/obsproject/obs-studio/releases/download/32.2.1/OBS-Studio-32.2.1-Windows-x64-Installer.exe", "install_script_ref": "8a919fae", diff --git a/ee/maintained-apps/outputs/obsidian/darwin.json b/ee/maintained-apps/outputs/obsidian/darwin.json index 539ebcc35e5..90d8b2b70e4 100644 --- a/ee/maintained-apps/outputs/obsidian/darwin.json +++ b/ee/maintained-apps/outputs/obsidian/darwin.json @@ -4,7 +4,8 @@ "version": "1.13.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'md.obsidian';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'md.obsidian' AND version_compare(bundle_short_version, '1.13.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'md.obsidian' AND version_compare(bundle_short_version, '1.13.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'md.obsidian');" }, "installer_url": "https://github.com/obsidianmd/obsidian-releases/releases/download/v1.13.4/Obsidian-1.13.4.dmg", "install_script_ref": "2a90e12f", diff --git a/ee/maintained-apps/outputs/obsidian/windows.json b/ee/maintained-apps/outputs/obsidian/windows.json index 4049c4c3536..fe482b8da1a 100644 --- a/ee/maintained-apps/outputs/obsidian/windows.json +++ b/ee/maintained-apps/outputs/obsidian/windows.json @@ -4,7 +4,8 @@ "version": "1.13.4", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Obsidian %' AND publisher = 'Obsidian';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Obsidian %' AND publisher = 'Obsidian' AND version_compare(version, '1.13.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Obsidian %' AND publisher = 'Obsidian' AND version_compare(version, '1.13.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'obsidian.exe');" }, "installer_url": "https://github.com/obsidianmd/obsidian-releases/releases/download/v1.13.4/Obsidian-1.13.4.exe", "install_script_ref": "b9f2d8ad", diff --git a/ee/maintained-apps/outputs/ocenaudio/darwin.json b/ee/maintained-apps/outputs/ocenaudio/darwin.json index b758f6bccbd..d0bae018bb2 100644 --- a/ee/maintained-apps/outputs/ocenaudio/darwin.json +++ b/ee/maintained-apps/outputs/ocenaudio/darwin.json @@ -4,7 +4,8 @@ "version": "3.20.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ocenaudio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ocenaudio' AND version_compare(bundle_short_version, '3.20.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ocenaudio' AND version_compare(bundle_short_version, '3.20.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ocenaudio');" }, "installer_url": "https://www.ocenaudio.com/downloads/index.php/ocenaudio_universal.dmg", "install_script_ref": "4cced93a", diff --git a/ee/maintained-apps/outputs/ocenaudio/windows.json b/ee/maintained-apps/outputs/ocenaudio/windows.json index a124d40371d..fd79baa7ab9 100644 --- a/ee/maintained-apps/outputs/ocenaudio/windows.json +++ b/ee/maintained-apps/outputs/ocenaudio/windows.json @@ -4,7 +4,8 @@ "version": "3.20.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'ocenaudio' AND publisher = 'Ocenaudio Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ocenaudio' AND publisher = 'Ocenaudio Team' AND version_compare(version, '3.20.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ocenaudio' AND publisher = 'Ocenaudio Team' AND version_compare(version, '3.20.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'ocenaudio.exe');" }, "installer_url": "https://www.ocenaudio.com/downloads/index.php/ocenaudio_windows64.exe", "install_script_ref": "ebf8794b", diff --git a/ee/maintained-apps/outputs/ok-json/darwin.json b/ee/maintained-apps/outputs/ok-json/darwin.json index 313516f4950..e3d2c325512 100644 --- a/ee/maintained-apps/outputs/ok-json/darwin.json +++ b/ee/maintained-apps/outputs/ok-json/darwin.json @@ -4,7 +4,8 @@ "version": "2.10.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.shinystone.OKJSON';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.shinystone.OKJSON' AND version_compare(bundle_short_version, '2.10.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.shinystone.OKJSON' AND version_compare(bundle_short_version, '2.10.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.shinystone.OKJSON');" }, "installer_url": "https://okjson.app/download/okjson-latest.zip", "install_script_ref": "4f7c5083", diff --git a/ee/maintained-apps/outputs/okta-advanced-server-access/darwin.json b/ee/maintained-apps/outputs/okta-advanced-server-access/darwin.json index 3d06aefbddf..e96a765d7ae 100644 --- a/ee/maintained-apps/outputs/okta-advanced-server-access/darwin.json +++ b/ee/maintained-apps/outputs/okta-advanced-server-access/darwin.json @@ -4,7 +4,8 @@ "version": "1.109.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.scaleft.ScaleFT';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.scaleft.ScaleFT' AND version_compare(bundle_short_version, '1.109.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.scaleft.ScaleFT' AND version_compare(bundle_short_version, '1.109.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.scaleft.ScaleFT');" }, "installer_url": "https://dist.scaleft.com/repos/macos/stable/all/macos-client/v1.109.0/ScaleFT-1.109.0.pkg", "install_script_ref": "cb761294", diff --git a/ee/maintained-apps/outputs/okta-verify/darwin.json b/ee/maintained-apps/outputs/okta-verify/darwin.json index 260f3d5dbfd..d234ffbb8bd 100644 --- a/ee/maintained-apps/outputs/okta-verify/darwin.json +++ b/ee/maintained-apps/outputs/okta-verify/darwin.json @@ -4,7 +4,8 @@ "version": "9.67.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.okta.mobile';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.okta.mobile' AND version_compare(bundle_short_version, '9.67.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.okta.mobile' AND version_compare(bundle_short_version, '9.67.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.okta.mobile');" }, "installer_url": "https://okta.okta.com/artifacts/OKTA_VERIFY_MACOS/9.67.1/OktaVerify-9.67.1-6374-c501c62.pkg", "install_script_ref": "379a35a1", diff --git a/ee/maintained-apps/outputs/okta-verify/windows.json b/ee/maintained-apps/outputs/okta-verify/windows.json index 54204c31f20..8fb6bec6363 100644 --- a/ee/maintained-apps/outputs/okta-verify/windows.json +++ b/ee/maintained-apps/outputs/okta-verify/windows.json @@ -4,7 +4,8 @@ "version": "6.10.2.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Okta Verify' AND publisher = 'Okta, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Okta Verify' AND publisher = 'Okta, Inc.' AND version_compare(version, '6.10.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Okta Verify' AND publisher = 'Okta, Inc.' AND version_compare(version, '6.10.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'oktaverify.exe');" }, "installer_url": "https://okta.okta.com/artifacts/WINDOWS_OKTA_VERIFY/6.10.2.0/OktaVerifySetup-6.10.2.0-de20e9b.exe", "install_script_ref": "b1554868", diff --git a/ee/maintained-apps/outputs/ollama/darwin.json b/ee/maintained-apps/outputs/ollama/darwin.json index 7600307f24a..a4fc18272a9 100644 --- a/ee/maintained-apps/outputs/ollama/darwin.json +++ b/ee/maintained-apps/outputs/ollama/darwin.json @@ -4,7 +4,8 @@ "version": "0.32.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.ollama';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.ollama' AND version_compare(bundle_short_version, '0.32.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.ollama' AND version_compare(bundle_short_version, '0.32.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.ollama');" }, "installer_url": "https://github.com/ollama/ollama/releases/download/v0.32.6/Ollama-darwin.zip", "install_script_ref": "dd889e18", diff --git a/ee/maintained-apps/outputs/ollama/windows.json b/ee/maintained-apps/outputs/ollama/windows.json index 80ce27db433..bb8949e38fd 100644 --- a/ee/maintained-apps/outputs/ollama/windows.json +++ b/ee/maintained-apps/outputs/ollama/windows.json @@ -4,7 +4,8 @@ "version": "0.32.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Ollama' AND publisher = 'Ollama';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Ollama' AND publisher = 'Ollama' AND version_compare(version, '0.32.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Ollama' AND publisher = 'Ollama' AND version_compare(version, '0.32.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('ollama.exe','ollama app.exe'));" }, "installer_url": "https://github.com/ollama/ollama/releases/download/v0.32.6/OllamaSetup.exe", "install_script_ref": "e14c71ee", diff --git a/ee/maintained-apps/outputs/omnidisksweeper/darwin.json b/ee/maintained-apps/outputs/omnidisksweeper/darwin.json index d8c52e5e71e..2510bf0fa39 100644 --- a/ee/maintained-apps/outputs/omnidisksweeper/darwin.json +++ b/ee/maintained-apps/outputs/omnidisksweeper/darwin.json @@ -4,7 +4,8 @@ "version": "1.16", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnigroup.OmniDiskSweeper';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnigroup.OmniDiskSweeper' AND version_compare(bundle_short_version, '1.16') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnigroup.OmniDiskSweeper' AND version_compare(bundle_short_version, '1.16') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.omnigroup.OmniDiskSweeper');" }, "installer_url": "https://downloads.omnigroup.com/software/macOS/11/OmniDiskSweeper-1.16.dmg", "install_script_ref": "139f9567", diff --git a/ee/maintained-apps/outputs/omnifocus/darwin.json b/ee/maintained-apps/outputs/omnifocus/darwin.json index 183ef34e25a..73b5a79a6bc 100644 --- a/ee/maintained-apps/outputs/omnifocus/darwin.json +++ b/ee/maintained-apps/outputs/omnifocus/darwin.json @@ -4,7 +4,8 @@ "version": "4.8.13", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnigroup.OmniFocus4';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnigroup.OmniFocus4' AND version_compare(bundle_short_version, '4.8.13') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnigroup.OmniFocus4' AND version_compare(bundle_short_version, '4.8.13') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.omnigroup.OmniFocus4');" }, "installer_url": "https://downloads.omnigroup.com/software/macOS/14/OmniFocus-4.8.13.dmg", "install_script_ref": "ff7fc14c", diff --git a/ee/maintained-apps/outputs/omnigraffle/darwin.json b/ee/maintained-apps/outputs/omnigraffle/darwin.json index 8eb5c6e443a..f0ce5122d84 100644 --- a/ee/maintained-apps/outputs/omnigraffle/darwin.json +++ b/ee/maintained-apps/outputs/omnigraffle/darwin.json @@ -4,7 +4,8 @@ "version": "7.25.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnigroup.OmniGraffle7';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnigroup.OmniGraffle7' AND version_compare(bundle_short_version, '7.25.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnigroup.OmniGraffle7' AND version_compare(bundle_short_version, '7.25.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.omnigroup.OmniGraffle7');" }, "installer_url": "https://downloads.omnigroup.com/software/macOS/12/OmniGraffle-7.25.3.dmg", "install_script_ref": "778f9d9a", diff --git a/ee/maintained-apps/outputs/omnioutliner/darwin.json b/ee/maintained-apps/outputs/omnioutliner/darwin.json index cbd93049bc9..2218d5b4d2f 100644 --- a/ee/maintained-apps/outputs/omnioutliner/darwin.json +++ b/ee/maintained-apps/outputs/omnioutliner/darwin.json @@ -4,7 +4,8 @@ "version": "6.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnigroup.OmniOutliner6';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnigroup.OmniOutliner6' AND version_compare(bundle_short_version, '6.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnigroup.OmniOutliner6' AND version_compare(bundle_short_version, '6.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.omnigroup.OmniOutliner6');" }, "installer_url": "https://downloads.omnigroup.com/software/macOS/15/OmniOutliner-6.2.1.dmg", "install_script_ref": "50306366", diff --git a/ee/maintained-apps/outputs/omniplan/darwin.json b/ee/maintained-apps/outputs/omniplan/darwin.json index 64a42d47bfa..724913ef040 100644 --- a/ee/maintained-apps/outputs/omniplan/darwin.json +++ b/ee/maintained-apps/outputs/omniplan/darwin.json @@ -4,7 +4,8 @@ "version": "4.10.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnigroup.OmniPlan4';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnigroup.OmniPlan4' AND version_compare(bundle_short_version, '4.10.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnigroup.OmniPlan4' AND version_compare(bundle_short_version, '4.10.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.omnigroup.OmniPlan4');" }, "installer_url": "https://downloads.omnigroup.com/software/macOS/12/OmniPlan-4.10.3.dmg", "install_script_ref": "1d9cbf31", diff --git a/ee/maintained-apps/outputs/omnissa-horizon-client/darwin.json b/ee/maintained-apps/outputs/omnissa-horizon-client/darwin.json index 77bb36c9db3..3f8377fc03e 100644 --- a/ee/maintained-apps/outputs/omnissa-horizon-client/darwin.json +++ b/ee/maintained-apps/outputs/omnissa-horizon-client/darwin.json @@ -4,7 +4,8 @@ "version": "8.16.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnissa.horizon.client.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnissa.horizon.client.mac' AND version_compare(bundle_short_version, '8.16.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.omnissa.horizon.client.mac' AND version_compare(bundle_short_version, '8.16.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.omnissa.horizon.client.mac');" }, "installer_url": "https://download3.omnissa.com/software/CART26FQ2_MAC_2506/Omnissa-Horizon-Client-2506-8.16.0-16536825094.dmg", "install_script_ref": "bc7a1a69", diff --git a/ee/maintained-apps/outputs/omnissa-horizon-client/windows.json b/ee/maintained-apps/outputs/omnissa-horizon-client/windows.json index 4936ede53fc..7804aa2246f 100644 --- a/ee/maintained-apps/outputs/omnissa-horizon-client/windows.json +++ b/ee/maintained-apps/outputs/omnissa-horizon-client/windows.json @@ -4,7 +4,8 @@ "version": "8.18.0.51429", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Omnissa Horizon Client' AND publisher = 'Omnissa, LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Omnissa Horizon Client' AND publisher = 'Omnissa, LLC' AND version_compare(version, '8.18.0.51429') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Omnissa Horizon Client' AND publisher = 'Omnissa, LLC' AND version_compare(version, '8.18.0.51429') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'omnissa horizon client.exe');" }, "installer_url": "https://download3.omnissa.com/software/CART27FQ1_WIN_2603/Omnissa-Horizon-Client-2603-8.18.0-24230927696.exe", "install_script_ref": "8bdcbfb2", diff --git a/ee/maintained-apps/outputs/one-switch/darwin.json b/ee/maintained-apps/outputs/one-switch/darwin.json index 06e51f59072..5031c3d770f 100644 --- a/ee/maintained-apps/outputs/one-switch/darwin.json +++ b/ee/maintained-apps/outputs/one-switch/darwin.json @@ -4,7 +4,8 @@ "version": "1.35.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'studio.fireball.OneSwitch';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'studio.fireball.OneSwitch' AND version_compare(bundle_short_version, '1.35.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'studio.fireball.OneSwitch' AND version_compare(bundle_short_version, '1.35.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'studio.fireball.OneSwitch');" }, "installer_url": "https://fireball.studio/media/uploads/files/OneSwitchOfficial-440.dmg", "install_script_ref": "b8b4aa1a", diff --git a/ee/maintained-apps/outputs/onedrive/darwin.json b/ee/maintained-apps/outputs/onedrive/darwin.json index 2f153f48c06..fee3ed6c6fe 100644 --- a/ee/maintained-apps/outputs/onedrive/darwin.json +++ b/ee/maintained-apps/outputs/onedrive/darwin.json @@ -4,7 +4,8 @@ "version": "26.119.0622.0003", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.OneDrive';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.OneDrive' AND version_compare(bundle_short_version, '26.119.0622.0003') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.OneDrive' AND version_compare(bundle_short_version, '26.119.0622.0003') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.microsoft.OneDrive');" }, "installer_url": "https://oneclient.sfx.ms/Mac/Installers/26.119.0622.0003/universal/OneDrive.pkg", "install_script_ref": "dce2d064", diff --git a/ee/maintained-apps/outputs/onedrive/windows.json b/ee/maintained-apps/outputs/onedrive/windows.json index 39e96c3baf1..bc6ccd031f9 100644 --- a/ee/maintained-apps/outputs/onedrive/windows.json +++ b/ee/maintained-apps/outputs/onedrive/windows.json @@ -4,10 +4,11 @@ "version": "26.129.0706.0004", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Microsoft OneDrive' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft OneDrive' AND publisher = 'Microsoft Corporation' AND version_compare(version, '26.129.0706.0004') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft OneDrive' AND publisher = 'Microsoft Corporation' AND version_compare(version, '26.129.0706.0004') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) LIKE 'onedrive%');" }, "installer_url": "https://oneclient.sfx.ms/Win/Installers/26.129.0706.0004/amd64/OneDriveSetup.exe", - "install_script_ref": "ab0b56ab", + "install_script_ref": "6e4f072f", "uninstall_script_ref": "374be511", "sha256": "8fa27c88c31666457837794c64237d5b2216ca96c8f03ca154dc8dc2d9979578", "default_categories": [ @@ -17,6 +18,6 @@ ], "refs": { "374be511": "# Fleet runs this uninstall script as SYSTEM (machine scope).\n# Match against the registry DisplayName for OneDrive.\n$softwareName = \"Microsoft OneDrive\"\n\n# It is recommended to use exact software name here if possible to avoid\n# uninstalling unintended software.\n$softwareNameLike = \"$softwareName\"\n\n# OneDriveSetup.exe uninstalls with /uninstall (and /allusers for machine-wide\n# installs). Used only if the registered UninstallString carries no flags.\n$defaultArgs = \"/uninstall /allusers\"\n\n# A machine-wide OneDrive registers under HKLM; also check WOW6432Node since the\n# installer is 32-bit.\n$paths = @(\n 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*',\n 'HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'\n)\n\n$exitCode = 0\n\ntry {\n\n[array]$uninstallKeys = Get-ChildItem `\n -Path $paths `\n -ErrorAction SilentlyContinue |\n ForEach-Object { Get-ItemProperty $_.PSPath }\n\n$foundUninstaller = $false\nforeach ($key in $uninstallKeys) {\n if ($key.DisplayName -like $softwareNameLike) {\n $foundUninstaller = $true\n\n # Prefer QuietUninstallString when present; it already includes silent flags.\n $useQuiet = [bool]$key.QuietUninstallString\n $uninstallCommand = if ($useQuiet) {\n $key.QuietUninstallString\n } else {\n $key.UninstallString\n }\n\n if ([string]::IsNullOrWhiteSpace($uninstallCommand)) {\n Throw \"No UninstallString found for '$($key.DisplayName)'.\"\n }\n\n # Parse the UninstallString defensively. It comes in three shapes:\n # 1. \"C:\\Program Files\\Microsoft OneDrive\\...\\OneDriveSetup.exe\" /uninstall (quoted)\n # 2. C:\\Program Files\\Microsoft OneDrive\\...\\OneDriveSetup.exe /uninstall (unquoted, may contain spaces)\n # 3. MsiExec.exe /X{GUID} (bare token)\n if ($uninstallCommand -match '^\\s*\"([^\"]+)\"\\s*(.*)$') {\n $exe = $matches[1]\n $args = $matches[2].Trim()\n } elseif ($uninstallCommand -match '(?i)^\\s*(.+?\\.exe)\\s*(.*)$') {\n $exe = $matches[1]\n $args = $matches[2].Trim()\n } else {\n $uninstallCommand -match '^\\s*(\\S+)\\s*(.*)$' | Out-Null\n $exe = $matches[1]\n $args = $matches[2].Trim()\n }\n\n # If we fell back to the raw UninstallString (no quiet variant), ensure the\n # uninstall runs unattended and all-users.\n if (-not $useQuiet -and ($args -notmatch '(?i)/uninstall')) {\n $args = \"$args $defaultArgs\".Trim()\n }\n\n Write-Host \"Uninstall command: $exe\"\n Write-Host \"Uninstall args: $args\"\n\n $processOptions = @{\n FilePath = $exe\n PassThru = $true\n Wait = $true\n }\n if ($args -ne '') {\n $processOptions.ArgumentList = $args\n }\n\n $process = Start-Process @processOptions\n $exitCode = $process.ExitCode\n Write-Host \"Uninstall exit code: $exitCode\"\n break\n }\n}\n\nif (-not $foundUninstaller) {\n Write-Host \"Uninstaller for '$softwareName' not found.\"\n $exitCode = 1\n}\n\n} catch {\n Write-Host \"Error: $_\"\n $exitCode = 1\n}\n\nExit $exitCode\n", - "ab0b56ab": "# Learn more about .exe install scripts:\n# http://fleetdm.com/learn-more-about/exe-install-scripts\n\n$exeFilePath = \"${env:INSTALLER_PATH}\"\n\ntry {\n\n# OneDriveSetup.exe performs a per-machine install with \"/allusers /silent\"\n# (switches verified against the winget InstallerSwitches Custom: /allusers and\n# silentinstallhq.com). The catch: OneDriveSetup.exe spawns several child\n# processes and starts the resident OneDrive.exe, so a plain Start-Process -Wait\n# can wait indefinitely and hit the CI step timeout. Instead, start the\n# installer, then poll for the per-machine install to land (registry uninstall\n# key + the all-users binary) and return success as soon as it appears.\n\n$process = Start-Process -FilePath \"$exeFilePath\" -ArgumentList \"/allusers /silent\" -PassThru\n\n# Per-machine OneDrive registers an uninstall key and drops OneDrive.exe under\n# Program Files (x86) (or Program Files on x86 OS).\n$uninstallKey = \"HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OneDriveSetup.exe\"\n$exePaths = @(\n \"$env:ProgramFiles\\Microsoft OneDrive\\OneDrive.exe\",\n \"${env:ProgramFiles(x86)}\\Microsoft OneDrive\\OneDrive.exe\"\n)\n\n$timeoutSeconds = 240\n$deadline = (Get-Date).AddSeconds($timeoutSeconds)\n$installed = $false\n\nwhile ((Get-Date) -lt $deadline) {\n $exeExists = $false\n foreach ($p in $exePaths) {\n if ($p -and (Test-Path $p)) { $exeExists = $true; break }\n }\n if ((Test-Path $uninstallKey) -or $exeExists) {\n $installed = $true\n break\n }\n # If the top-level setup process exited, capture its code and stop polling.\n if ($process.HasExited) { break }\n Start-Sleep -Seconds 5\n}\n\n# Final check in case the setup process exited right before the loop bailed.\nif (-not $installed) {\n $exeExists = $false\n foreach ($p in $exePaths) {\n if ($p -and (Test-Path $p)) { $exeExists = $true; break }\n }\n if ((Test-Path $uninstallKey) -or $exeExists) { $installed = $true }\n}\n\nif ($installed) {\n Write-Host \"OneDrive per-machine install detected.\"\n Exit 0\n}\n\nif ($process.HasExited) {\n $exitCode = $process.ExitCode\n Write-Host \"OneDriveSetup exited with code: $exitCode\"\n if ($exitCode -eq 0 -or $exitCode -eq 3010 -or $exitCode -eq 1641) { Exit 0 }\n Exit $exitCode\n}\n\nWrite-Host \"Timed out waiting for OneDrive install to complete.\"\nExit 1\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n" + "6e4f072f": "# Learn more about .exe install scripts:\n# http://fleetdm.com/learn-more-about/exe-install-scripts\n\n$exeFilePath = \"${env:INSTALLER_PATH}\"\n\ntry {\n\n# OneDriveSetup.exe performs a per-machine install with \"/allusers /silent\"\n# (switches verified against the winget InstallerSwitches Custom: /allusers and\n# silentinstallhq.com). The catch: OneDriveSetup.exe spawns several child\n# processes and starts the resident OneDrive.exe, so a plain Start-Process -Wait\n# can wait indefinitely and hit the CI step timeout. Instead, start the\n# installer and poll for the per-machine ARP (uninstall) registry entry.\n#\n# The ARP entry is the completion signal — not files on disk. The installer\n# drops OneDrive.exe under Program Files well before it registers the\n# uninstall key, and the uninstall key (DisplayName/DisplayVersion) is what\n# osquery's programs table — and therefore Fleet's detection — reads. Waiting\n# on the binary races detection. Modern x64 OneDrive registers in the native\n# hive; older builds used WOW6432Node, so check both. Registration is done by\n# child processes, so keep polling to the deadline even after the top-level\n# setup process exits.\n\n$process = Start-Process -FilePath \"$exeFilePath\" -ArgumentList \"/allusers /silent\" -PassThru\n\n$uninstallKeys = @(\n \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OneDriveSetup.exe\",\n \"HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OneDriveSetup.exe\"\n)\n\nfunction Test-OneDriveRegistered {\n foreach ($key in $uninstallKeys) {\n if (Test-Path $key) {\n $entry = Get-ItemProperty -Path $key -ErrorAction SilentlyContinue\n if ($entry -and $entry.DisplayName -and $entry.DisplayVersion) {\n return $true\n }\n }\n }\n return $false\n}\n\n$timeoutSeconds = 240\n$deadline = (Get-Date).AddSeconds($timeoutSeconds)\n$installed = $false\n\nwhile ((Get-Date) -lt $deadline) {\n if (Test-OneDriveRegistered) {\n $installed = $true\n break\n }\n Start-Sleep -Seconds 5\n}\n\nif ($installed) {\n Write-Host \"OneDrive per-machine install registered.\"\n # Give the setup process a moment to exit so the installer file isn't locked.\n if (-not $process.HasExited) {\n Wait-Process -Id $process.Id -Timeout 60 -ErrorAction SilentlyContinue\n }\n Exit 0\n}\n\nif ($process.HasExited) {\n $exitCode = $process.ExitCode\n Write-Host \"OneDriveSetup exited with code: $exitCode, but no per-machine registry entry was found.\"\n if ($exitCode -ne 0 -and $exitCode -ne 3010 -and $exitCode -ne 1641) { Exit $exitCode }\n Exit 1\n}\n\nWrite-Host \"Timed out waiting for OneDrive install to complete.\"\nExit 1\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n" } } diff --git a/ee/maintained-apps/outputs/onionshare/darwin.json b/ee/maintained-apps/outputs/onionshare/darwin.json index 5ec8f5689f4..f05fd816545 100644 --- a/ee/maintained-apps/outputs/onionshare/darwin.json +++ b/ee/maintained-apps/outputs/onionshare/darwin.json @@ -4,7 +4,8 @@ "version": "2.6.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.onionshare.onionshare';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.onionshare.onionshare' AND version_compare(bundle_short_version, '2.6.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.onionshare.onionshare' AND version_compare(bundle_short_version, '2.6.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.onionshare.onionshare');" }, "installer_url": "https://onionshare.org/dist/2.6.5/OnionShare-2.6.5.dmg", "install_script_ref": "76634617", diff --git a/ee/maintained-apps/outputs/only-switch/darwin.json b/ee/maintained-apps/outputs/only-switch/darwin.json index ae416118755..f02854bae24 100644 --- a/ee/maintained-apps/outputs/only-switch/darwin.json +++ b/ee/maintained-apps/outputs/only-switch/darwin.json @@ -4,7 +4,8 @@ "version": "2.7.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'jacklandrin.OnlySwitch';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'jacklandrin.OnlySwitch' AND version_compare(bundle_short_version, '2.7.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'jacklandrin.OnlySwitch' AND version_compare(bundle_short_version, '2.7.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'jacklandrin.OnlySwitch');" }, "installer_url": "https://github.com/jacklandrin/OnlySwitch/releases/download/release_2.7.2/OnlySwitch.dmg", "install_script_ref": "5550134f", diff --git a/ee/maintained-apps/outputs/onlyoffice/darwin.json b/ee/maintained-apps/outputs/onlyoffice/darwin.json index e127f3b919d..b55ecf69ad9 100644 --- a/ee/maintained-apps/outputs/onlyoffice/darwin.json +++ b/ee/maintained-apps/outputs/onlyoffice/darwin.json @@ -4,7 +4,8 @@ "version": "9.4.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'asc.onlyoffice.editors-helper-renderer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'asc.onlyoffice.editors-helper-renderer' AND version_compare(bundle_short_version, '9.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'asc.onlyoffice.editors-helper-renderer' AND version_compare(bundle_short_version, '9.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'asc.onlyoffice.editors-helper-renderer');" }, "installer_url": "https://github.com/ONLYOFFICE/DesktopEditors/releases/download/v9.4.0/ONLYOFFICE-arm.dmg", "install_script_ref": "7d337ca3", diff --git a/ee/maintained-apps/outputs/opal-composer/darwin.json b/ee/maintained-apps/outputs/opal-composer/darwin.json index 6bdec66a3b0..404bcf1539b 100644 --- a/ee/maintained-apps/outputs/opal-composer/darwin.json +++ b/ee/maintained-apps/outputs/opal-composer/darwin.json @@ -4,7 +4,8 @@ "version": "2.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.opalcamera.Opal.v2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.opalcamera.Opal.v2' AND version_compare(bundle_short_version, '2.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.opalcamera.Opal.v2' AND version_compare(bundle_short_version, '2.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.opalcamera.Opal.v2');" }, "installer_url": "https://updates.opal.camera/release/Opal_Composer_2.0.0_24.dmg", "install_script_ref": "d5ee2f12", diff --git a/ee/maintained-apps/outputs/openaudible/darwin.json b/ee/maintained-apps/outputs/openaudible/darwin.json index 212681a6bd9..a128fea0053 100644 --- a/ee/maintained-apps/outputs/openaudible/darwin.json +++ b/ee/maintained-apps/outputs/openaudible/darwin.json @@ -4,7 +4,8 @@ "version": "4.8.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.openaudible.openaudible';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.openaudible.openaudible' AND version_compare(bundle_short_version, '4.8.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.openaudible.openaudible' AND version_compare(bundle_short_version, '4.8.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.openaudible.openaudible');" }, "installer_url": "https://github.com/openaudible/openaudible/releases/download/v4.8.7/OpenAudible_4.8.7.dmg", "install_script_ref": "843c34d8", diff --git a/ee/maintained-apps/outputs/openboard/darwin.json b/ee/maintained-apps/outputs/openboard/darwin.json index 50daae7602c..90a27aaae32 100644 --- a/ee/maintained-apps/outputs/openboard/darwin.json +++ b/ee/maintained-apps/outputs/openboard/darwin.json @@ -4,7 +4,8 @@ "version": "1.7.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.oe-f.OpenBoard';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.oe-f.OpenBoard' AND version_compare(bundle_short_version, '1.7.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.oe-f.OpenBoard' AND version_compare(bundle_short_version, '1.7.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.oe-f.OpenBoard');" }, "installer_url": "https://github.com/OpenBoard-org/OpenBoard/releases/download/v1.7.7/OpenBoard-1.7.7.dmg", "install_script_ref": "6066e91a", diff --git a/ee/maintained-apps/outputs/opencloud/darwin.json b/ee/maintained-apps/outputs/opencloud/darwin.json index 5b0db867002..9667c2b4116 100644 --- a/ee/maintained-apps/outputs/opencloud/darwin.json +++ b/ee/maintained-apps/outputs/opencloud/darwin.json @@ -4,7 +4,8 @@ "version": "3.0.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'eu.opencloud.desktopclient';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'eu.opencloud.desktopclient' AND version_compare(bundle_short_version, '3.0.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'eu.opencloud.desktopclient' AND version_compare(bundle_short_version, '3.0.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'eu.opencloud.desktopclient');" }, "installer_url": "https://github.com/opencloud-eu/desktop/releases/download/v3.0.3/OpenCloud_Desktop-v3.0.3-macos-clang-arm64.pkg", "install_script_ref": "e6846fa3", diff --git a/ee/maintained-apps/outputs/opencode-desktop/darwin.json b/ee/maintained-apps/outputs/opencode-desktop/darwin.json index ce085dd1f16..6db709b65bb 100644 --- a/ee/maintained-apps/outputs/opencode-desktop/darwin.json +++ b/ee/maintained-apps/outputs/opencode-desktop/darwin.json @@ -4,7 +4,8 @@ "version": "1.18.15", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ai.opencode.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ai.opencode.desktop' AND version_compare(bundle_short_version, '1.18.15') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ai.opencode.desktop' AND version_compare(bundle_short_version, '1.18.15') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'ai.opencode.desktop');" }, "installer_url": "https://github.com/anomalyco/opencode/releases/download/v1.18.15/opencode-desktop-mac-arm64.dmg", "install_script_ref": "d2ce7b1a", diff --git a/ee/maintained-apps/outputs/openinterminal/darwin.json b/ee/maintained-apps/outputs/openinterminal/darwin.json index 3d491dcf88b..5b383ade45e 100644 --- a/ee/maintained-apps/outputs/openinterminal/darwin.json +++ b/ee/maintained-apps/outputs/openinterminal/darwin.json @@ -4,7 +4,8 @@ "version": "2.3.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'wang.jianing.app.OpenInTerminal';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'wang.jianing.app.OpenInTerminal' AND version_compare(bundle_short_version, '2.3.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'wang.jianing.app.OpenInTerminal' AND version_compare(bundle_short_version, '2.3.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'wang.jianing.app.OpenInTerminal');" }, "installer_url": "https://github.com/Ji4n1ng/OpenInTerminal/releases/download/v2.3.9/OpenInTerminal.zip", "install_script_ref": "da99a413", diff --git a/ee/maintained-apps/outputs/openlens/darwin.json b/ee/maintained-apps/outputs/openlens/darwin.json index 57df6c5e694..6301c3f9463 100644 --- a/ee/maintained-apps/outputs/openlens/darwin.json +++ b/ee/maintained-apps/outputs/openlens/darwin.json @@ -4,7 +4,8 @@ "version": "6.5.2-366", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.open-lens';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.open-lens' AND version_compare(bundle_short_version, '6.5.2-366') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.open-lens' AND version_compare(bundle_short_version, '6.5.2-366') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.open-lens');" }, "installer_url": "https://github.com/MuhammedKalkan/OpenLens/releases/download/v6.5.2-366/OpenLens-6.5.2-366-arm64.dmg", "install_script_ref": "591c65e5", diff --git a/ee/maintained-apps/outputs/openmtp/darwin.json b/ee/maintained-apps/outputs/openmtp/darwin.json index 489471abcce..d5bb8eb8909 100644 --- a/ee/maintained-apps/outputs/openmtp/darwin.json +++ b/ee/maintained-apps/outputs/openmtp/darwin.json @@ -4,7 +4,8 @@ "version": "3.2.25", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.ganeshrvel.openmtp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.ganeshrvel.openmtp' AND version_compare(bundle_short_version, '3.2.25') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.ganeshrvel.openmtp' AND version_compare(bundle_short_version, '3.2.25') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.ganeshrvel.openmtp');" }, "installer_url": "https://github.com/ganeshrvel/openmtp/releases/download/v3.2.25/openmtp-3.2.25-mac-arm64.zip", "install_script_ref": "185c2d48", diff --git a/ee/maintained-apps/outputs/openrct2/darwin.json b/ee/maintained-apps/outputs/openrct2/darwin.json index ce8408f6bf5..0e9ade06d13 100644 --- a/ee/maintained-apps/outputs/openrct2/darwin.json +++ b/ee/maintained-apps/outputs/openrct2/darwin.json @@ -4,7 +4,8 @@ "version": "0.5.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.openrct2.OpenRCT2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.openrct2.OpenRCT2' AND version_compare(bundle_short_version, '0.5.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.openrct2.OpenRCT2' AND version_compare(bundle_short_version, '0.5.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.openrct2.OpenRCT2');" }, "installer_url": "https://github.com/OpenRCT2/OpenRCT2/releases/download/v0.5.4/OpenRCT2-v0.5.4-macos-universal.zip", "install_script_ref": "8ded53e4", diff --git a/ee/maintained-apps/outputs/openrefine/darwin.json b/ee/maintained-apps/outputs/openrefine/darwin.json index 7c80462f0c8..81ac63f4a3b 100644 --- a/ee/maintained-apps/outputs/openrefine/darwin.json +++ b/ee/maintained-apps/outputs/openrefine/darwin.json @@ -4,7 +4,8 @@ "version": "3.10.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.refine.Refine';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.refine.Refine' AND version_compare(bundle_short_version, '3.10.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.refine.Refine' AND version_compare(bundle_short_version, '3.10.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.google.refine.Refine');" }, "installer_url": "https://github.com/OpenRefine/OpenRefine/releases/download/3.10.1/openrefine-mac-3.10.1.dmg", "install_script_ref": "99dd79b2", diff --git a/ee/maintained-apps/outputs/openrefine/windows.json b/ee/maintained-apps/outputs/openrefine/windows.json index 2375edcf112..dee7400c336 100644 --- a/ee/maintained-apps/outputs/openrefine/windows.json +++ b/ee/maintained-apps/outputs/openrefine/windows.json @@ -4,7 +4,8 @@ "version": "3.10.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'OpenRefine' AND publisher = 'OpenRefine';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'OpenRefine' AND publisher = 'OpenRefine' AND version_compare(version, '3.10.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'OpenRefine' AND publisher = 'OpenRefine' AND version_compare(version, '3.10.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'openrefine.exe');" }, "installer_url": "https://github.com/OpenRefine/OpenRefine/releases/download/3.10.1/openrefine-win-with-java-installer-3.10.1.exe", "install_script_ref": "6aafa56b", diff --git a/ee/maintained-apps/outputs/opentoonz/darwin.json b/ee/maintained-apps/outputs/opentoonz/darwin.json index 1d09a72389a..a9b6eb94913 100644 --- a/ee/maintained-apps/outputs/opentoonz/darwin.json +++ b/ee/maintained-apps/outputs/opentoonz/darwin.json @@ -4,7 +4,8 @@ "version": "1.8.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.github.opentoonz.OpenToonz';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.github.opentoonz.OpenToonz' AND version_compare(bundle_short_version, '1.8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.github.opentoonz.OpenToonz' AND version_compare(bundle_short_version, '1.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.github.opentoonz.OpenToonz');" }, "installer_url": "https://github.com/opentoonz/opentoonz/releases/download/v1.8.0/OpenToonz.pkg", "install_script_ref": "606c05cf", diff --git a/ee/maintained-apps/outputs/openvpn-connect/darwin.json b/ee/maintained-apps/outputs/openvpn-connect/darwin.json index 1967236e9ce..19ba7a77c80 100644 --- a/ee/maintained-apps/outputs/openvpn-connect/darwin.json +++ b/ee/maintained-apps/outputs/openvpn-connect/darwin.json @@ -4,7 +4,8 @@ "version": "3.8.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.openvpn.client.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.openvpn.client.app' AND version_compare(bundle_short_version, '3.8.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.openvpn.client.app' AND version_compare(bundle_short_version, '3.8.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.openvpn.client.app');" }, "installer_url": "https://swupdate.openvpn.net/downloads/connect/openvpn-connect-3.8.2.6009_signed.dmg", "install_script_ref": "2ebecc60", diff --git a/ee/maintained-apps/outputs/openvpn-connect/windows.json b/ee/maintained-apps/outputs/openvpn-connect/windows.json index f4810667b7f..73728cdad8d 100644 --- a/ee/maintained-apps/outputs/openvpn-connect/windows.json +++ b/ee/maintained-apps/outputs/openvpn-connect/windows.json @@ -4,7 +4,8 @@ "version": "3.9.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'OpenVPN Connect %' AND publisher = 'OpenVPN Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'OpenVPN Connect %' AND publisher = 'OpenVPN Inc.' AND version_compare(version, '3.9.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'OpenVPN Connect %' AND publisher = 'OpenVPN Inc.' AND version_compare(version, '3.9.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'openvpn connect.exe');" }, "installer_url": "https://packages.openvpn.net/connect/v3/openvpn-connect-3.9.0.5008_signed.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/opera/darwin.json b/ee/maintained-apps/outputs/opera/darwin.json index 2b24f6a3a56..14ab6057c61 100644 --- a/ee/maintained-apps/outputs/opera/darwin.json +++ b/ee/maintained-apps/outputs/opera/darwin.json @@ -4,7 +4,8 @@ "version": "134.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.operasoftware.Opera';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.operasoftware.Opera' AND version_compare(bundle_short_version, '134.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.operasoftware.Opera' AND version_compare(bundle_short_version, '134.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.operasoftware.Opera');" }, "installer_url": "https://get.geo.opera.com/pub/opera/desktop/134.0.5954.46/mac/Opera_134.0.5954.46_Setup.dmg", "install_script_ref": "f2f3d814", diff --git a/ee/maintained-apps/outputs/optimus-player/darwin.json b/ee/maintained-apps/outputs/optimus-player/darwin.json index 7521d036803..d023344e2e7 100644 --- a/ee/maintained-apps/outputs/optimus-player/darwin.json +++ b/ee/maintained-apps/outputs/optimus-player/darwin.json @@ -4,7 +4,8 @@ "version": "1.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'mo.darren.optimus.player.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'mo.darren.optimus.player.mac' AND version_compare(bundle_short_version, '1.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'mo.darren.optimus.player.mac' AND version_compare(bundle_short_version, '1.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'mo.darren.optimus.player.mac');" }, "installer_url": "https://download.optimusplayer.com/Optimus%20Player%201.5.dmg", "install_script_ref": "fc0c930c", diff --git a/ee/maintained-apps/outputs/orbstack/darwin.json b/ee/maintained-apps/outputs/orbstack/darwin.json index 213bcd5d0d6..f9c7ce2c697 100644 --- a/ee/maintained-apps/outputs/orbstack/darwin.json +++ b/ee/maintained-apps/outputs/orbstack/darwin.json @@ -4,7 +4,8 @@ "version": "2.2.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kdrag0n.MacVirt';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kdrag0n.MacVirt' AND version_compare(bundle_short_version, '2.2.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kdrag0n.MacVirt' AND version_compare(bundle_short_version, '2.2.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'dev.kdrag0n.MacVirt');" }, "installer_url": "https://cdn-updates.orbstack.dev/arm64/OrbStack_v2.2.3_20963_arm64.dmg", "install_script_ref": "01247e9f", diff --git a/ee/maintained-apps/outputs/origami-studio/darwin.json b/ee/maintained-apps/outputs/origami-studio/darwin.json index 7cbae0189f6..e6a08b03a25 100644 --- a/ee/maintained-apps/outputs/origami-studio/darwin.json +++ b/ee/maintained-apps/outputs/origami-studio/darwin.json @@ -4,7 +4,8 @@ "version": "225.0.0.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.facebook.Origami-Studio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.facebook.Origami-Studio' AND version_compare(bundle_short_version, '225.0.0.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.facebook.Origami-Studio' AND version_compare(bundle_short_version, '225.0.0.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.facebook.Origami-Studio');" }, "installer_url": "https://facebook.com/designtools/origami/", "install_script_ref": "9214a7f5", diff --git a/ee/maintained-apps/outputs/p4v/darwin.json b/ee/maintained-apps/outputs/p4v/darwin.json index 097bdddccee..b23885ee5de 100644 --- a/ee/maintained-apps/outputs/p4v/darwin.json +++ b/ee/maintained-apps/outputs/p4v/darwin.json @@ -4,7 +4,8 @@ "version": "2026.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.perforce.p4v';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.perforce.p4v' AND version_compare(bundle_short_version, '2026.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.perforce.p4v' AND version_compare(bundle_short_version, '2026.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.perforce.p4v');" }, "installer_url": "https://filehost.perforce.com/perforce/r26.2/bin.macosx12u/P4V.dmg", "install_script_ref": "3604c875", diff --git a/ee/maintained-apps/outputs/p4v/windows.json b/ee/maintained-apps/outputs/p4v/windows.json index 11062faccf2..ce6bac275c7 100644 --- a/ee/maintained-apps/outputs/p4v/windows.json +++ b/ee/maintained-apps/outputs/p4v/windows.json @@ -4,7 +4,8 @@ "version": "242.62.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'P4 Apps' AND publisher = 'Perforce Software';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'P4 Apps' AND publisher = 'Perforce Software' AND version_compare(version, '242.62.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'P4 Apps' AND publisher = 'Perforce Software' AND version_compare(version, '242.62.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'p4v.exe');" }, "installer_url": "https://filehost.perforce.com/perforce/r26.2/bin.ntx64/p4vinst64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/pacifist/darwin.json b/ee/maintained-apps/outputs/pacifist/darwin.json index 8a40bf52f58..b9f9ee9d4a4 100644 --- a/ee/maintained-apps/outputs/pacifist/darwin.json +++ b/ee/maintained-apps/outputs/pacifist/darwin.json @@ -4,7 +4,8 @@ "version": "4.1.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.charlessoft.pacifist';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.charlessoft.pacifist' AND version_compare(bundle_short_version, '4.1.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.charlessoft.pacifist' AND version_compare(bundle_short_version, '4.1.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.charlessoft.pacifist');" }, "installer_url": "https://www.charlessoft.com/pacifist_download/Pacifist_4.1.4.dmg", "install_script_ref": "80ba126d", diff --git a/ee/maintained-apps/outputs/paint-dot-net/windows.json b/ee/maintained-apps/outputs/paint-dot-net/windows.json index 77f62611104..9ca5eaa89e8 100644 --- a/ee/maintained-apps/outputs/paint-dot-net/windows.json +++ b/ee/maintained-apps/outputs/paint-dot-net/windows.json @@ -4,7 +4,8 @@ "version": "5.1.12", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Paint.NET' AND publisher = 'dotPDN LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Paint.NET' AND publisher = 'dotPDN LLC' AND version_compare(version, '5.1.12') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Paint.NET' AND publisher = 'dotPDN LLC' AND version_compare(version, '5.1.12') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'paint.net.exe');" }, "installer_url": "https://github.com/paintdotnet/release/releases/download/v5.1.12/paint.net.5.1.12.install.x64.zip", "install_script_ref": "1dd07f15", diff --git a/ee/maintained-apps/outputs/pale-moon/darwin.json b/ee/maintained-apps/outputs/pale-moon/darwin.json index 57892d6149a..3a0f85cabce 100644 --- a/ee/maintained-apps/outputs/pale-moon/darwin.json +++ b/ee/maintained-apps/outputs/pale-moon/darwin.json @@ -4,7 +4,8 @@ "version": "34.3.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.pale moon';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.pale moon' AND version_compare(bundle_short_version, '34.3.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.pale moon' AND version_compare(bundle_short_version, '34.3.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.mozilla.pale moon');" }, "installer_url": "https://rm-us.palemoon.org/release/palemoon-34.3.2.arm64.dmg", "install_script_ref": "cde456c6", diff --git a/ee/maintained-apps/outputs/pale-moon/windows.json b/ee/maintained-apps/outputs/pale-moon/windows.json index 2da5ce2efb0..2362bd23721 100644 --- a/ee/maintained-apps/outputs/pale-moon/windows.json +++ b/ee/maintained-apps/outputs/pale-moon/windows.json @@ -4,7 +4,8 @@ "version": "34.3.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Pale Moon' AND publisher = 'Moonchild Productions';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Pale Moon' AND publisher = 'Moonchild Productions' AND version_compare(version, '34.3.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Pale Moon' AND publisher = 'Moonchild Productions' AND version_compare(version, '34.3.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'palemoon.exe');" }, "installer_url": "https://rm-eu.palemoon.org/release/palemoon-34.3.2.win64.installer.exe", "install_script_ref": "f9371692", diff --git a/ee/maintained-apps/outputs/paletro/darwin.json b/ee/maintained-apps/outputs/paletro/darwin.json index 6b0d8663663..2a15d8a255e 100644 --- a/ee/maintained-apps/outputs/paletro/darwin.json +++ b/ee/maintained-apps/outputs/paletro/darwin.json @@ -4,7 +4,8 @@ "version": "1.11.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.appmakes.Paletro';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.appmakes.Paletro' AND version_compare(bundle_short_version, '1.11.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.appmakes.Paletro' AND version_compare(bundle_short_version, '1.11.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.appmakes.Paletro');" }, "installer_url": "https://appmakes.io/paletro/download/Paletro-1.11.0.dmg", "install_script_ref": "16627afe", diff --git a/ee/maintained-apps/outputs/parallels/darwin.json b/ee/maintained-apps/outputs/parallels/darwin.json index 441f5e1156f..b8a4546b1a4 100644 --- a/ee/maintained-apps/outputs/parallels/darwin.json +++ b/ee/maintained-apps/outputs/parallels/darwin.json @@ -4,7 +4,8 @@ "version": "26.4.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.parallels.desktop.console';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.parallels.desktop.console' AND version_compare(bundle_short_version, '26.4.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.parallels.desktop.console' AND version_compare(bundle_short_version, '26.4.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.parallels.desktop.console');" }, "installer_url": "https://download.parallels.com/desktop/v26/26.4.1-57516/ParallelsDesktop-26.4.1-57516.dmg", "install_script_ref": "fda51c5d", diff --git a/ee/maintained-apps/outputs/pastebot/darwin.json b/ee/maintained-apps/outputs/pastebot/darwin.json index c2715f0e78b..3b5725066f2 100644 --- a/ee/maintained-apps/outputs/pastebot/darwin.json +++ b/ee/maintained-apps/outputs/pastebot/darwin.json @@ -4,7 +4,8 @@ "version": "3.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.tapbots.Pastebot2Mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tapbots.Pastebot2Mac' AND version_compare(bundle_short_version, '3.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tapbots.Pastebot2Mac' AND version_compare(bundle_short_version, '3.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.tapbots.Pastebot2Mac');" }, "installer_url": "https://tapbots.net/pastebot3/Pastebot.30000.dmg", "install_script_ref": "0c5e941b", diff --git a/ee/maintained-apps/outputs/pcoipclient/darwin.json b/ee/maintained-apps/outputs/pcoipclient/darwin.json index bc8473d7c07..fc94f78cc4c 100644 --- a/ee/maintained-apps/outputs/pcoipclient/darwin.json +++ b/ee/maintained-apps/outputs/pcoipclient/darwin.json @@ -4,7 +4,8 @@ "version": "26.01.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.teradici.swiftclient';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.teradici.swiftclient' AND version_compare(bundle_short_version, '26.01.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.teradici.swiftclient' AND version_compare(bundle_short_version, '26.01.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.teradici.swiftclient');" }, "installer_url": "https://dl.anyware.hp.com/DeAdBCiUYInHcSTy/pcoip-client/raw/names/pcoip-client-dmg/versions/26.01.2/pcoip-client_26.01.2.dmg", "install_script_ref": "3918f173", diff --git a/ee/maintained-apps/outputs/pd/darwin.json b/ee/maintained-apps/outputs/pd/darwin.json index 23bf4ffcf85..eb2e78583ef 100644 --- a/ee/maintained-apps/outputs/pd/darwin.json +++ b/ee/maintained-apps/outputs/pd/darwin.json @@ -4,7 +4,8 @@ "version": "0.56.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.puredata.pd.pd-gui';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.puredata.pd.pd-gui' AND version_compare(bundle_short_version, '0.56.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.puredata.pd.pd-gui' AND version_compare(bundle_short_version, '0.56.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.puredata.pd.pd-gui');" }, "installer_url": "https://msp.ucsd.edu/Software/pd-0.56-5.macos.zip", "install_script_ref": "2498acb1", diff --git a/ee/maintained-apps/outputs/pdf-expert/darwin.json b/ee/maintained-apps/outputs/pdf-expert/darwin.json index 431468eb2d8..7dcb044d38e 100644 --- a/ee/maintained-apps/outputs/pdf-expert/darwin.json +++ b/ee/maintained-apps/outputs/pdf-expert/darwin.json @@ -4,7 +4,8 @@ "version": "3.12", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.readdle.PDFExpert-Mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.readdle.PDFExpert-Mac' AND version_compare(bundle_short_version, '3.12') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.readdle.PDFExpert-Mac' AND version_compare(bundle_short_version, '3.12') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.readdle.PDFExpert-Mac');" }, "installer_url": "https://downloads.pdfexpert.com/pem3/versions/1168/PDFExpert.zip", "install_script_ref": "e1cf6e1d", diff --git a/ee/maintained-apps/outputs/pdf-pals/darwin.json b/ee/maintained-apps/outputs/pdf-pals/darwin.json index 5417f015af0..c3fa6846167 100644 --- a/ee/maintained-apps/outputs/pdf-pals/darwin.json +++ b/ee/maintained-apps/outputs/pdf-pals/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'co.podzim.PDFPals';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.podzim.PDFPals' AND version_compare(bundle_short_version, '1.9.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.podzim.PDFPals' AND version_compare(bundle_short_version, '1.9.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'co.podzim.PDFPals');" }, "installer_url": "https://download.pdfpals.com/releases/PDFPals-1.9.0.dmg", "install_script_ref": "6a692db5", diff --git a/ee/maintained-apps/outputs/pdfsam-basic/darwin.json b/ee/maintained-apps/outputs/pdfsam-basic/darwin.json index 249d0bb1ec9..127abe83cab 100644 --- a/ee/maintained-apps/outputs/pdfsam-basic/darwin.json +++ b/ee/maintained-apps/outputs/pdfsam-basic/darwin.json @@ -4,7 +4,8 @@ "version": "6.0.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.pdfsam.modules';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.pdfsam.modules' AND version_compare(bundle_short_version, '6.0.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.pdfsam.modules' AND version_compare(bundle_short_version, '6.0.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.pdfsam.modules');" }, "installer_url": "https://github.com/torakiki/pdfsam/releases/download/v6.0.5/pdfsam-basic-6.0.5-macos-arm64.dmg", "install_script_ref": "86d9663b", diff --git a/ee/maintained-apps/outputs/pdfsam-basic/windows.json b/ee/maintained-apps/outputs/pdfsam-basic/windows.json index cc867b47ce8..e6a159b9aab 100644 --- a/ee/maintained-apps/outputs/pdfsam-basic/windows.json +++ b/ee/maintained-apps/outputs/pdfsam-basic/windows.json @@ -4,7 +4,8 @@ "version": "6.0.5.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'PDFsam Basic' AND publisher = 'Sober Lemur S.r.l.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'PDFsam Basic' AND publisher = 'Sober Lemur S.r.l.' AND version_compare(version, '6.0.5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'PDFsam Basic' AND publisher = 'Sober Lemur S.r.l.' AND version_compare(version, '6.0.5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'pdfsam basic.exe');" }, "installer_url": "https://github.com/torakiki/pdfsam/releases/download/v6.0.5/pdfsam-basic-6.0.5-windows-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/pearcleaner/darwin.json b/ee/maintained-apps/outputs/pearcleaner/darwin.json index c5baac92b5b..37c93e28da4 100644 --- a/ee/maintained-apps/outputs/pearcleaner/darwin.json +++ b/ee/maintained-apps/outputs/pearcleaner/darwin.json @@ -4,7 +4,8 @@ "version": "5.4.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.alienator88.Pearcleaner';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.alienator88.Pearcleaner' AND version_compare(bundle_short_version, '5.4.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.alienator88.Pearcleaner' AND version_compare(bundle_short_version, '5.4.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.alienator88.Pearcleaner');" }, "installer_url": "https://github.com/alienator88/Pearcleaner/releases/download/5.4.3/Pearcleaner-arm.zip", "install_script_ref": "baed4462", diff --git a/ee/maintained-apps/outputs/pgadmin4/darwin.json b/ee/maintained-apps/outputs/pgadmin4/darwin.json index d5b908ec47f..2197f0b0a71 100644 --- a/ee/maintained-apps/outputs/pgadmin4/darwin.json +++ b/ee/maintained-apps/outputs/pgadmin4/darwin.json @@ -4,7 +4,8 @@ "version": "9.17", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.pgadmin.pgadmin4';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.pgadmin.pgadmin4' AND version_compare(bundle_short_version, '9.17') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.pgadmin.pgadmin4' AND version_compare(bundle_short_version, '9.17') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.pgadmin.pgadmin4');" }, "installer_url": "https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v9.17/macos/pgadmin4-9.17-arm64.dmg", "install_script_ref": "d04370f3", diff --git a/ee/maintained-apps/outputs/pgadmin4/windows.json b/ee/maintained-apps/outputs/pgadmin4/windows.json index e4313d439ae..cb0ffc69e8e 100644 --- a/ee/maintained-apps/outputs/pgadmin4/windows.json +++ b/ee/maintained-apps/outputs/pgadmin4/windows.json @@ -4,7 +4,8 @@ "version": "9.17", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'pgAdmin 4 %' AND publisher = 'The pgAdmin Development Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'pgAdmin 4 %' AND publisher = 'The pgAdmin Development Team' AND version_compare(version, '9.17') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'pgAdmin 4 %' AND publisher = 'The pgAdmin Development Team' AND version_compare(version, '9.17') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'pgadmin4.exe');" }, "installer_url": "https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v9.17/windows/pgadmin4-9.17-x64.exe", "install_script_ref": "632aa4d1", diff --git a/ee/maintained-apps/outputs/phoenix-slides/darwin.json b/ee/maintained-apps/outputs/phoenix-slides/darwin.json index 2559508590b..726371b5c4c 100644 --- a/ee/maintained-apps/outputs/phoenix-slides/darwin.json +++ b/ee/maintained-apps/outputs/phoenix-slides/darwin.json @@ -4,7 +4,8 @@ "version": "1.6.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.blyt.phoenixslides';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.blyt.phoenixslides' AND version_compare(bundle_short_version, '1.6.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.blyt.phoenixslides' AND version_compare(bundle_short_version, '1.6.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.blyt.phoenixslides');" }, "installer_url": "https://github.com/gobbledegook/creevey/releases/download/v1.6.2/phoenix-slides-162.dmg", "install_script_ref": "f51919b4", diff --git a/ee/maintained-apps/outputs/photosrevive/darwin.json b/ee/maintained-apps/outputs/photosrevive/darwin.json index 804a0c5d3ff..975d9a6ddf6 100644 --- a/ee/maintained-apps/outputs/photosrevive/darwin.json +++ b/ee/maintained-apps/outputs/photosrevive/darwin.json @@ -4,7 +4,8 @@ "version": "2.2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jeremyvizzini.photosrevive-paddle';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jeremyvizzini.photosrevive-paddle' AND version_compare(bundle_short_version, '2.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jeremyvizzini.photosrevive-paddle' AND version_compare(bundle_short_version, '2.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jeremyvizzini.photosrevive-paddle');" }, "installer_url": "https://neededapps.com/appcasts/photosrevive/versions/2.2.0", "install_script_ref": "19cc434a", diff --git a/ee/maintained-apps/outputs/photostickies/darwin.json b/ee/maintained-apps/outputs/photostickies/darwin.json index 4e6bc5d948b..0db9bae0cbd 100644 --- a/ee/maintained-apps/outputs/photostickies/darwin.json +++ b/ee/maintained-apps/outputs/photostickies/darwin.json @@ -4,7 +4,8 @@ "version": "6.0.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.grunenberg.PhotoStickies';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.grunenberg.PhotoStickies' AND version_compare(bundle_short_version, '6.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.grunenberg.PhotoStickies' AND version_compare(bundle_short_version, '6.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.grunenberg.PhotoStickies');" }, "installer_url": "https://download.devontechnologies.com/download/freeware/photostickies/6.0.1/PhotoStickies.app.zip", "install_script_ref": "c1ddbf2c", diff --git a/ee/maintained-apps/outputs/phpstorm/darwin.json b/ee/maintained-apps/outputs/phpstorm/darwin.json index fd6ec2fda41..ec6af2e7435 100644 --- a/ee/maintained-apps/outputs/phpstorm/darwin.json +++ b/ee/maintained-apps/outputs/phpstorm/darwin.json @@ -4,7 +4,8 @@ "version": "2026.2.0.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.PhpStorm';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.PhpStorm' AND version_compare(bundle_short_version, '2026.2.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.PhpStorm' AND version_compare(bundle_short_version, '2026.2.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jetbrains.PhpStorm');" }, "installer_url": "https://download.jetbrains.com/webide/PhpStorm-2026.2.0.1-aarch64.dmg", "install_script_ref": "fc06193f", diff --git a/ee/maintained-apps/outputs/phpstorm/windows.json b/ee/maintained-apps/outputs/phpstorm/windows.json index 6d36c4e3918..557a36bc3c1 100644 --- a/ee/maintained-apps/outputs/phpstorm/windows.json +++ b/ee/maintained-apps/outputs/phpstorm/windows.json @@ -4,7 +4,8 @@ "version": "2026.2.0.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'PhpStorm %' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'PhpStorm %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.8665.325') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'PhpStorm %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.8665.325') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('phpstorm.exe','phpstorm64.exe'));" }, "installer_url": "https://download.jetbrains.com/webide/PhpStorm-2026.2.0.1.exe", "install_script_ref": "ea27a84f", diff --git a/ee/maintained-apps/outputs/pibar/darwin.json b/ee/maintained-apps/outputs/pibar/darwin.json index 1cd0ce2ac8d..d22232dbfb6 100644 --- a/ee/maintained-apps/outputs/pibar/darwin.json +++ b/ee/maintained-apps/outputs/pibar/darwin.json @@ -4,7 +4,8 @@ "version": "1.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.amiantos.PiBar';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.amiantos.PiBar' AND version_compare(bundle_short_version, '1.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.amiantos.PiBar' AND version_compare(bundle_short_version, '1.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.amiantos.PiBar');" }, "installer_url": "https://amiantos.s3.amazonaws.com/PiBar-1.2.1.zip", "install_script_ref": "95106400", diff --git a/ee/maintained-apps/outputs/picview/darwin.json b/ee/maintained-apps/outputs/picview/darwin.json index a491697c3d7..14361f15934 100644 --- a/ee/maintained-apps/outputs/picview/darwin.json +++ b/ee/maintained-apps/outputs/picview/darwin.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "5.0.1", + "version": "5.0.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ruben2776.picview';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ruben2776.picview' AND version_compare(bundle_short_version, '5.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ruben2776.picview' AND version_compare(bundle_short_version, '5.0.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ruben2776.picview');" }, - "installer_url": "https://github.com/Ruben2776/PicView/releases/download/5.0.1/PicView-5.0.1-macOS-arm64.dmg", + "installer_url": "https://github.com/Ruben2776/PicView/releases/download/5.0.2/PicView-5.0.2-macOS-arm64.dmg", "install_script_ref": "51eb5fcf", "uninstall_script_ref": "48e04b56", - "sha256": "41652d998f08b715b9d529537d752a30752e47f548e5ea144f727dd7d7507da3", + "sha256": "07627e63fc66bccf01be1d4ee0a40f288f77e305f70e04135f1a21d7c5153b46", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/piezo/darwin.json b/ee/maintained-apps/outputs/piezo/darwin.json index fbd7d5f88ef..b72b31d82ef 100644 --- a/ee/maintained-apps/outputs/piezo/darwin.json +++ b/ee/maintained-apps/outputs/piezo/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.Piezo';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.Piezo' AND version_compare(bundle_short_version, '1.9.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.Piezo' AND version_compare(bundle_short_version, '1.9.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.rogueamoeba.Piezo');" }, "installer_url": "https://cdn.rogueamoeba.com/piezo/download/Piezo.zip", "install_script_ref": "600e9ed5", diff --git a/ee/maintained-apps/outputs/pika/darwin.json b/ee/maintained-apps/outputs/pika/darwin.json index 13a42b99139..b93305ca672 100644 --- a/ee/maintained-apps/outputs/pika/darwin.json +++ b/ee/maintained-apps/outputs/pika/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.superhighfives.Pika';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.superhighfives.Pika' AND version_compare(bundle_short_version, '1.9.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.superhighfives.Pika' AND version_compare(bundle_short_version, '1.9.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.superhighfives.Pika');" }, "installer_url": "https://github.com/superhighfives/pika/releases/download/1.9.0/Pika-1.9.0.dmg", "install_script_ref": "e2e67208", diff --git a/ee/maintained-apps/outputs/piphero/darwin.json b/ee/maintained-apps/outputs/piphero/darwin.json index 1543c8995ac..88d9b1436e6 100644 --- a/ee/maintained-apps/outputs/piphero/darwin.json +++ b/ee/maintained-apps/outputs/piphero/darwin.json @@ -4,7 +4,8 @@ "version": "1.2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.piphero.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.piphero.app' AND version_compare(bundle_short_version, '1.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.piphero.app' AND version_compare(bundle_short_version, '1.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.piphero.app');" }, "installer_url": "https://github.com/pipheroapp/downloads/releases/download/v1.2.0/PiPHero-1.2.0-mac-arm64.dmg", "install_script_ref": "0f286e28", diff --git a/ee/maintained-apps/outputs/pixelsnap/darwin.json b/ee/maintained-apps/outputs/pixelsnap/darwin.json index b2af8bd7ce1..02e7b56e67a 100644 --- a/ee/maintained-apps/outputs/pixelsnap/darwin.json +++ b/ee/maintained-apps/outputs/pixelsnap/darwin.json @@ -4,7 +4,8 @@ "version": "2.6.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'pl.maketheweb.pixelsnap2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'pl.maketheweb.pixelsnap2' AND version_compare(bundle_short_version, '2.6.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'pl.maketheweb.pixelsnap2' AND version_compare(bundle_short_version, '2.6.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'pl.maketheweb.pixelsnap2');" }, "installer_url": "https://updates.getpixelsnap.com/v2/PixelSnap-2-2.6.4.dmg", "install_script_ref": "510e3804", diff --git a/ee/maintained-apps/outputs/plantronics-hub/windows.json b/ee/maintained-apps/outputs/plantronics-hub/windows.json index 25080a5ceb3..089f59e0e2e 100644 --- a/ee/maintained-apps/outputs/plantronics-hub/windows.json +++ b/ee/maintained-apps/outputs/plantronics-hub/windows.json @@ -4,7 +4,8 @@ "version": "3.25.54307.37251", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Plantronics Hub %' AND publisher = 'Plantronics';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Plantronics Hub %' AND publisher = 'Plantronics' AND version_compare(version, '3.25.54307.37251') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Plantronics Hub %' AND publisher = 'Plantronics' AND version_compare(version, '3.25.54307.37251') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'plthub.exe');" }, "installer_url": "https://downloads.poly.com/headsets/PlantronicsHubInstaller.exe", "install_script_ref": "1a5ce2ca", diff --git a/ee/maintained-apps/outputs/platypus/darwin.json b/ee/maintained-apps/outputs/platypus/darwin.json index 6eebb13c22a..5aeece0ea44 100644 --- a/ee/maintained-apps/outputs/platypus/darwin.json +++ b/ee/maintained-apps/outputs/platypus/darwin.json @@ -4,7 +4,8 @@ "version": "5.5.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.sveinbjorn.Platypus';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sveinbjorn.Platypus' AND version_compare(bundle_short_version, '5.5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sveinbjorn.Platypus' AND version_compare(bundle_short_version, '5.5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.sveinbjorn.Platypus');" }, "installer_url": "https://sveinbjorn.org/files/software/platypus/platypus5.5.0.zip", "install_script_ref": "48998854", diff --git a/ee/maintained-apps/outputs/plex-htpc/darwin.json b/ee/maintained-apps/outputs/plex-htpc/darwin.json index 31426ad20e9..10e7598c0b5 100644 --- a/ee/maintained-apps/outputs/plex-htpc/darwin.json +++ b/ee/maintained-apps/outputs/plex-htpc/darwin.json @@ -4,7 +4,8 @@ "version": "1.71.1.346", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'tv.plex.htpc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'tv.plex.htpc' AND version_compare(bundle_short_version, '1.71.1.346') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'tv.plex.htpc' AND version_compare(bundle_short_version, '1.71.1.346') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'tv.plex.htpc');" }, "installer_url": "https://downloads.plex.tv/htpc/1.71.1.346-f62ce923/macos/PlexHTPC-1.71.1.346-f62ce923-universal.zip", "install_script_ref": "fee4b87b", diff --git a/ee/maintained-apps/outputs/plex-media-server/darwin.json b/ee/maintained-apps/outputs/plex-media-server/darwin.json index 27123cd6055..185f3435874 100644 --- a/ee/maintained-apps/outputs/plex-media-server/darwin.json +++ b/ee/maintained-apps/outputs/plex-media-server/darwin.json @@ -4,7 +4,8 @@ "version": "1.43.3.10861", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.plexapp.plexmediaserver';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.plexapp.plexmediaserver' AND version_compare(bundle_short_version, '1.43.3.10861') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.plexapp.plexmediaserver' AND version_compare(bundle_short_version, '1.43.3.10861') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.plexapp.plexmediaserver');" }, "installer_url": "https://downloads.plex.tv/plex-media-server-new/1.43.3.10861-07dfddaeb/macos/PlexMediaServer-1.43.3.10861-07dfddaeb-universal.zip", "install_script_ref": "87eb0241", diff --git a/ee/maintained-apps/outputs/plex/darwin.json b/ee/maintained-apps/outputs/plex/darwin.json index d932f5905ff..6611f9eee4b 100644 --- a/ee/maintained-apps/outputs/plex/darwin.json +++ b/ee/maintained-apps/outputs/plex/darwin.json @@ -4,7 +4,8 @@ "version": "1.112.0.359", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'tv.plex.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'tv.plex.desktop' AND version_compare(bundle_short_version, '1.112.0.359') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'tv.plex.desktop' AND version_compare(bundle_short_version, '1.112.0.359') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'tv.plex.desktop');" }, "installer_url": "https://downloads.plex.tv/plex-desktop/1.112.0.359-0d79a49f/macos/Plex-1.112.0.359-0d79a49f-universal.zip", "install_script_ref": "d6aef39f", diff --git a/ee/maintained-apps/outputs/plistedit-pro/darwin.json b/ee/maintained-apps/outputs/plistedit-pro/darwin.json index e51814ed641..bc872f5b80c 100644 --- a/ee/maintained-apps/outputs/plistedit-pro/darwin.json +++ b/ee/maintained-apps/outputs/plistedit-pro/darwin.json @@ -4,7 +4,8 @@ "version": "1.10.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.fatcatsoftware.pledpro';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fatcatsoftware.pledpro' AND version_compare(bundle_short_version, '1.10.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fatcatsoftware.pledpro' AND version_compare(bundle_short_version, '1.10.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.fatcatsoftware.pledpro');" }, "installer_url": "https://www.fatcatsoftware.com/plisteditpro/downloads/PlistEditPro_1100.zip", "install_script_ref": "81c3a330", diff --git a/ee/maintained-apps/outputs/plugdata/darwin.json b/ee/maintained-apps/outputs/plugdata/darwin.json index 6543eac10dc..a157856f239 100644 --- a/ee/maintained-apps/outputs/plugdata/darwin.json +++ b/ee/maintained-apps/outputs/plugdata/darwin.json @@ -4,7 +4,8 @@ "version": "0.9.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.plugdata.plugdata';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.plugdata.plugdata' AND version_compare(bundle_short_version, '0.9.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.plugdata.plugdata' AND version_compare(bundle_short_version, '0.9.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.plugdata.plugdata');" }, "installer_url": "https://github.com/plugdata-team/plugdata/releases/download/v0.9.3/plugdata-macOS-Universal.pkg", "install_script_ref": "cc6684ee", diff --git a/ee/maintained-apps/outputs/podman-desktop/darwin.json b/ee/maintained-apps/outputs/podman-desktop/darwin.json index 5ef8fda0164..4a417151f1c 100644 --- a/ee/maintained-apps/outputs/podman-desktop/darwin.json +++ b/ee/maintained-apps/outputs/podman-desktop/darwin.json @@ -4,7 +4,8 @@ "version": "1.29.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.podmandesktop.PodmanDesktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.podmandesktop.PodmanDesktop' AND version_compare(bundle_short_version, '1.29.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.podmandesktop.PodmanDesktop' AND version_compare(bundle_short_version, '1.29.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.podmandesktop.PodmanDesktop');" }, "installer_url": "https://github.com/containers/podman-desktop/releases/download/v1.29.1/podman-desktop-1.29.1-arm64.dmg", "install_script_ref": "e5a669f0", diff --git a/ee/maintained-apps/outputs/podman-desktop/windows.json b/ee/maintained-apps/outputs/podman-desktop/windows.json index 8a5a971574b..3a2efc96f7e 100644 --- a/ee/maintained-apps/outputs/podman-desktop/windows.json +++ b/ee/maintained-apps/outputs/podman-desktop/windows.json @@ -4,7 +4,8 @@ "version": "1.29.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Podman Desktop %' AND publisher = 'Podman Desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Podman Desktop %' AND publisher = 'Podman Desktop' AND version_compare(version, '1.29.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Podman Desktop %' AND publisher = 'Podman Desktop' AND version_compare(version, '1.29.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'podman desktop.exe');" }, "installer_url": "https://github.com/containers/podman-desktop/releases/download/v1.29.1/podman-desktop-1.29.1-setup-x64.exe", "install_script_ref": "a1a2e133", diff --git a/ee/maintained-apps/outputs/popchar/darwin.json b/ee/maintained-apps/outputs/popchar/darwin.json index 02d734506be..4d663098a86 100644 --- a/ee/maintained-apps/outputs/popchar/darwin.json +++ b/ee/maintained-apps/outputs/popchar/darwin.json @@ -4,7 +4,8 @@ "version": "10.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.macility.popchar3';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.macility.popchar3' AND version_compare(bundle_short_version, '10.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.macility.popchar3' AND version_compare(bundle_short_version, '10.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.macility.popchar3');" }, "installer_url": "https://www.ergonis.com/downloads/products/popcharx/PopCharX105-Install.dmg", "install_script_ref": "b03bbe49", diff --git a/ee/maintained-apps/outputs/popclip/darwin.json b/ee/maintained-apps/outputs/popclip/darwin.json index 978a542eda0..6deadf69fde 100644 --- a/ee/maintained-apps/outputs/popclip/darwin.json +++ b/ee/maintained-apps/outputs/popclip/darwin.json @@ -4,7 +4,8 @@ "version": "2026.7.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.pilotmoon.popclip';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.pilotmoon.popclip' AND version_compare(bundle_short_version, '2026.7.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.pilotmoon.popclip' AND version_compare(bundle_short_version, '2026.7.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.pilotmoon.popclip');" }, "installer_url": "https://pilotmoon.com/downloads/PopClip-2026.7.1.zip", "install_script_ref": "3bbf2467", diff --git a/ee/maintained-apps/outputs/popsql/darwin.json b/ee/maintained-apps/outputs/popsql/darwin.json index 158a465b61a..08897d1a730 100644 --- a/ee/maintained-apps/outputs/popsql/darwin.json +++ b/ee/maintained-apps/outputs/popsql/darwin.json @@ -4,7 +4,8 @@ "version": "1.0.135", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.electron.popsql';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.electron.popsql' AND version_compare(bundle_short_version, '1.0.135') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.electron.popsql' AND version_compare(bundle_short_version, '1.0.135') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.electron.popsql');" }, "installer_url": "https://popsql-releases.s3.amazonaws.com/mac/PopSQL-1.0.135-arm64.dmg", "install_script_ref": "54469286", diff --git a/ee/maintained-apps/outputs/portfolioperformance/darwin.json b/ee/maintained-apps/outputs/portfolioperformance/darwin.json index 5569ec77c54..9caca82fd08 100644 --- a/ee/maintained-apps/outputs/portfolioperformance/darwin.json +++ b/ee/maintained-apps/outputs/portfolioperformance/darwin.json @@ -4,7 +4,8 @@ "version": "0.86.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'name.abuchen.portfolio.distro.product';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'name.abuchen.portfolio.distro.product' AND version_compare(bundle_short_version, '0.86.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'name.abuchen.portfolio.distro.product' AND version_compare(bundle_short_version, '0.86.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'name.abuchen.portfolio.distro.product');" }, "installer_url": "https://github.com/buchen/portfolio/releases/download/0.86.1/PortfolioPerformance-0.86.1-aarch64.dmg", "install_script_ref": "1155f82f", diff --git a/ee/maintained-apps/outputs/portfolioperformance/windows.json b/ee/maintained-apps/outputs/portfolioperformance/windows.json index c6e52e37475..a796345e809 100644 --- a/ee/maintained-apps/outputs/portfolioperformance/windows.json +++ b/ee/maintained-apps/outputs/portfolioperformance/windows.json @@ -4,7 +4,8 @@ "version": "0.86.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Portfolio Performance' AND publisher = 'Andreas Buchen';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Portfolio Performance' AND publisher = 'Andreas Buchen' AND version_compare(version, '0.86.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Portfolio Performance' AND publisher = 'Andreas Buchen' AND version_compare(version, '0.86.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'portfolioperformance.exe');" }, "installer_url": "https://github.com/portfolio-performance/portfolio/releases/download/0.86.0/PortfolioPerformance-0.86.0-setup.exe", "install_script_ref": "efa25f6a", diff --git a/ee/maintained-apps/outputs/postgres-app/darwin.json b/ee/maintained-apps/outputs/postgres-app/darwin.json index a2fbbca3d2e..c9c9a07350f 100644 --- a/ee/maintained-apps/outputs/postgres-app/darwin.json +++ b/ee/maintained-apps/outputs/postgres-app/darwin.json @@ -4,7 +4,8 @@ "version": "2.9.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.postgresapp.Postgres2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.postgresapp.Postgres2' AND version_compare(bundle_short_version, '2.9.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.postgresapp.Postgres2' AND version_compare(bundle_short_version, '2.9.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.postgresapp.Postgres2');" }, "installer_url": "https://github.com/PostgresApp/PostgresApp/releases/download/v2.9.5/Postgres-2.9.5-14-15-16-17-18.dmg", "install_script_ref": "193869de", diff --git a/ee/maintained-apps/outputs/postgresql-15/windows.json b/ee/maintained-apps/outputs/postgresql-15/windows.json index 119588eab08..ebd76fa3c97 100644 --- a/ee/maintained-apps/outputs/postgresql-15/windows.json +++ b/ee/maintained-apps/outputs/postgresql-15/windows.json @@ -4,7 +4,8 @@ "version": "15.18-2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'PostgreSQL 15' AND publisher = 'PostgreSQL Global Development Group';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'PostgreSQL 15' AND publisher = 'PostgreSQL Global Development Group' AND version_compare(version, '15.18-2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'PostgreSQL 15' AND publisher = 'PostgreSQL Global Development Group' AND version_compare(version, '15.18-2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'postgresql 15.exe');" }, "installer_url": "https://get.enterprisedb.com/postgresql/postgresql-15.18-2-windows-x64.exe", "install_script_ref": "de54a369", diff --git a/ee/maintained-apps/outputs/postgresql-16/windows.json b/ee/maintained-apps/outputs/postgresql-16/windows.json index 94b30bf216a..b3cdec8df7e 100644 --- a/ee/maintained-apps/outputs/postgresql-16/windows.json +++ b/ee/maintained-apps/outputs/postgresql-16/windows.json @@ -4,7 +4,8 @@ "version": "16.14-2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'PostgreSQL 16' AND publisher = 'PostgreSQL Global Development Group';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'PostgreSQL 16' AND publisher = 'PostgreSQL Global Development Group' AND version_compare(version, '16.14-2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'PostgreSQL 16' AND publisher = 'PostgreSQL Global Development Group' AND version_compare(version, '16.14-2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'postgresql 16.exe');" }, "installer_url": "https://get.enterprisedb.com/postgresql/postgresql-16.14-2-windows-x64.exe", "install_script_ref": "df91c112", diff --git a/ee/maintained-apps/outputs/postgresql-17/windows.json b/ee/maintained-apps/outputs/postgresql-17/windows.json index 3d60efa61d0..be29e266994 100644 --- a/ee/maintained-apps/outputs/postgresql-17/windows.json +++ b/ee/maintained-apps/outputs/postgresql-17/windows.json @@ -4,7 +4,8 @@ "version": "17.10-2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'PostgreSQL 17' AND publisher = 'PostgreSQL Global Development Group';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'PostgreSQL 17' AND publisher = 'PostgreSQL Global Development Group' AND version_compare(version, '17.10-2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'PostgreSQL 17' AND publisher = 'PostgreSQL Global Development Group' AND version_compare(version, '17.10-2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'postgresql 17.exe');" }, "installer_url": "https://get.enterprisedb.com/postgresql/postgresql-17.10-2-windows-x64.exe", "install_script_ref": "a335a7d0", diff --git a/ee/maintained-apps/outputs/postgresql-18/windows.json b/ee/maintained-apps/outputs/postgresql-18/windows.json index fb86a97bcba..dc8bccb9d48 100644 --- a/ee/maintained-apps/outputs/postgresql-18/windows.json +++ b/ee/maintained-apps/outputs/postgresql-18/windows.json @@ -4,7 +4,8 @@ "version": "18.4-2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'PostgreSQL 18' AND publisher = 'PostgreSQL Global Development Group';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'PostgreSQL 18' AND publisher = 'PostgreSQL Global Development Group' AND version_compare(version, '18.4-2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'PostgreSQL 18' AND publisher = 'PostgreSQL Global Development Group' AND version_compare(version, '18.4-2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'postgresql 18.exe');" }, "installer_url": "https://get.enterprisedb.com/postgresql/postgresql-18.4-2-windows-x64.exe", "install_script_ref": "bc68ad4d", diff --git a/ee/maintained-apps/outputs/postico/darwin.json b/ee/maintained-apps/outputs/postico/darwin.json index 88b44408222..2193930ec77 100644 --- a/ee/maintained-apps/outputs/postico/darwin.json +++ b/ee/maintained-apps/outputs/postico/darwin.json @@ -4,7 +4,8 @@ "version": "2.3.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'at.eggerapps.Postico';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'at.eggerapps.Postico' AND version_compare(bundle_short_version, '2.3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'at.eggerapps.Postico' AND version_compare(bundle_short_version, '2.3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'at.eggerapps.Postico');" }, "installer_url": "https://downloads.eggerapps.at/postico/postico-9804.dmg", "install_script_ref": "0f1cc857", diff --git a/ee/maintained-apps/outputs/postman/darwin.json b/ee/maintained-apps/outputs/postman/darwin.json index 5ad87f1e860..ab85cba5079 100644 --- a/ee/maintained-apps/outputs/postman/darwin.json +++ b/ee/maintained-apps/outputs/postman/darwin.json @@ -4,7 +4,8 @@ "version": "12.22.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.postmanlabs.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.postmanlabs.mac' AND version_compare(bundle_short_version, '12.22.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.postmanlabs.mac' AND version_compare(bundle_short_version, '12.22.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.postmanlabs.mac');" }, "installer_url": "https://dl.pstmn.io/download/version/12.22.8/osx_arm64", "install_script_ref": "0e85ef74", diff --git a/ee/maintained-apps/outputs/postman/windows.json b/ee/maintained-apps/outputs/postman/windows.json index f27495f44d1..e9ff719557c 100644 --- a/ee/maintained-apps/outputs/postman/windows.json +++ b/ee/maintained-apps/outputs/postman/windows.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "12.22.6", + "version": "12.22.8", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Postman x64 %' AND publisher = 'Postman';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Postman x64 %' AND publisher = 'Postman' AND version_compare(version, '12.22.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Postman x64 %' AND publisher = 'Postman' AND version_compare(version, '12.22.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'postman.exe');" }, - "installer_url": "https://dl.pstmn.io/download/version/12.22.6/windows_64", + "installer_url": "https://dl.pstmn.io/download/version/12.22.8/windows_64", "install_script_ref": "8594f0bc", "uninstall_script_ref": "fd59d029", - "sha256": "376fb319813968b00de6e482ba31a689cde4d7946084578fb681eb7d679e472b", + "sha256": "c3b93a45d2378135135ec9bea99657f39c405b6b218d16a92a94228bf45ac032", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/power-automate/windows.json b/ee/maintained-apps/outputs/power-automate/windows.json index a9b1a58117c..be45eea7336 100644 --- a/ee/maintained-apps/outputs/power-automate/windows.json +++ b/ee/maintained-apps/outputs/power-automate/windows.json @@ -4,7 +4,8 @@ "version": "2.70.00187.26189", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Power Automate for desktop' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Power Automate for desktop' AND publisher = 'Microsoft Corporation' AND version_compare(version, '2.70.00187.26189') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Power Automate for desktop' AND publisher = 'Microsoft Corporation' AND version_compare(version, '2.70.00187.26189') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'pad.console.host.exe');" }, "installer_url": "https://download.microsoft.com/download/06ed2ff0-ec2c-45c5-abef-ea68e9956f2a/Setup.Microsoft.PowerAutomate.exe", "install_script_ref": "20b20659", diff --git a/ee/maintained-apps/outputs/power-bi/windows.json b/ee/maintained-apps/outputs/power-bi/windows.json index 0f159b72d95..53eba549fe5 100644 --- a/ee/maintained-apps/outputs/power-bi/windows.json +++ b/ee/maintained-apps/outputs/power-bi/windows.json @@ -4,7 +4,8 @@ "version": "2.156.951.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Microsoft Power BI Desktop (x64)' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft Power BI Desktop (x64)' AND publisher = 'Microsoft Corporation' AND version_compare(version, '2.156.951.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft Power BI Desktop (x64)' AND publisher = 'Microsoft Corporation' AND version_compare(version, '2.156.951.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'power bi.exe');" }, "installer_url": "https://download.microsoft.com/download/8/8/0/880BCA75-79DD-466A-927D-1ABF1F5454B0/PBIDesktopSetup-2026-07_x64.exe", "install_script_ref": "cc478c11", diff --git a/ee/maintained-apps/outputs/power-monitor/darwin.json b/ee/maintained-apps/outputs/power-monitor/darwin.json index 817d808f2c6..b5670352ef4 100644 --- a/ee/maintained-apps/outputs/power-monitor/darwin.json +++ b/ee/maintained-apps/outputs/power-monitor/darwin.json @@ -4,7 +4,8 @@ "version": "1.3.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'corp.sap.PowerMonitor';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'corp.sap.PowerMonitor' AND version_compare(bundle_short_version, '1.3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'corp.sap.PowerMonitor' AND version_compare(bundle_short_version, '1.3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'corp.sap.PowerMonitor');" }, "installer_url": "https://github.com/SAP/power-monitoring-tool-for-macos/releases/download/1.3.3/PowerMonitor_1.3.3.pkg", "install_script_ref": "fbde846e", diff --git a/ee/maintained-apps/outputs/powerphotos/darwin.json b/ee/maintained-apps/outputs/powerphotos/darwin.json index 77a07a9e6a0..110e4cc96a7 100644 --- a/ee/maintained-apps/outputs/powerphotos/darwin.json +++ b/ee/maintained-apps/outputs/powerphotos/darwin.json @@ -4,7 +4,8 @@ "version": "3.4.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.fatcatsoftware.PowerPhotos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fatcatsoftware.PowerPhotos' AND version_compare(bundle_short_version, '3.4.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fatcatsoftware.PowerPhotos' AND version_compare(bundle_short_version, '3.4.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.fatcatsoftware.PowerPhotos');" }, "installer_url": "https://www.fatcatsoftware.com/powerphotos/PowerPhotos.zip", "install_script_ref": "51324247", diff --git a/ee/maintained-apps/outputs/powershell/windows.json b/ee/maintained-apps/outputs/powershell/windows.json index 6b06c48e91c..0465c3cfe92 100644 --- a/ee/maintained-apps/outputs/powershell/windows.json +++ b/ee/maintained-apps/outputs/powershell/windows.json @@ -4,7 +4,8 @@ "version": "7.6.4.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'PowerShell 7-x64' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'PowerShell 7-x64' AND publisher = 'Microsoft Corporation' AND version_compare(version, '7.6.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'PowerShell 7-x64' AND publisher = 'Microsoft Corporation' AND version_compare(version, '7.6.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'pwsh.exe');" }, "installer_url": "https://github.com/PowerShell/PowerShell/releases/download/v7.6.4/PowerShell-7.6.4-win-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/powertoys/windows.json b/ee/maintained-apps/outputs/powertoys/windows.json index b425ce86d02..80459ba1e98 100644 --- a/ee/maintained-apps/outputs/powertoys/windows.json +++ b/ee/maintained-apps/outputs/powertoys/windows.json @@ -4,7 +4,8 @@ "version": "0.100.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'PowerToys %' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'PowerToys %' AND publisher = 'Microsoft Corporation' AND version_compare(version, '0.100.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'PowerToys %' AND publisher = 'Microsoft Corporation' AND version_compare(version, '0.100.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'powertoys.exe');" }, "installer_url": "https://github.com/microsoft/PowerToys/releases/download/v0.100.2/PowerToysSetup-0.100.2-x64.exe", "install_script_ref": "1a5ce2ca", diff --git a/ee/maintained-apps/outputs/pppc-utility/darwin.json b/ee/maintained-apps/outputs/pppc-utility/darwin.json index f43cc91e072..8ed5d4fc5e4 100644 --- a/ee/maintained-apps/outputs/pppc-utility/darwin.json +++ b/ee/maintained-apps/outputs/pppc-utility/darwin.json @@ -4,7 +4,8 @@ "version": "2.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jamf.opensource.pppcutility';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jamf.opensource.pppcutility' AND version_compare(bundle_short_version, '2.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jamf.opensource.pppcutility' AND version_compare(bundle_short_version, '2.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jamf.opensource.pppcutility');" }, "installer_url": "https://github.com/jamf/PPPC-Utility/releases/download/2.0.0/PPPC-Utility.zip", "install_script_ref": "cd14b1f5", diff --git a/ee/maintained-apps/outputs/preform/darwin.json b/ee/maintained-apps/outputs/preform/darwin.json index 09635b5d9d0..45ee2af5d6f 100644 --- a/ee/maintained-apps/outputs/preform/darwin.json +++ b/ee/maintained-apps/outputs/preform/darwin.json @@ -4,7 +4,8 @@ "version": "3.48.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.formlabs.PreForm';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.formlabs.PreForm' AND version_compare(bundle_short_version, '3.48.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.formlabs.PreForm' AND version_compare(bundle_short_version, '3.48.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.formlabs.PreForm');" }, "installer_url": "https://downloads.formlabs.com/PreForm/Release/3.48.0/PreForm_mac_3.48.0_release_releaser_523_98058.dmg", "install_script_ref": "027c913d", diff --git a/ee/maintained-apps/outputs/preform/windows.json b/ee/maintained-apps/outputs/preform/windows.json index b444e87784d..f45e2c6ba18 100644 --- a/ee/maintained-apps/outputs/preform/windows.json +++ b/ee/maintained-apps/outputs/preform/windows.json @@ -4,7 +4,8 @@ "version": "3.60.4.642", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'PreForm' AND publisher = 'Formlabs';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'PreForm' AND publisher = 'Formlabs' AND version_compare(version, '3.60.4.642') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'PreForm' AND publisher = 'Formlabs' AND version_compare(version, '3.60.4.642') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'preform.exe');" }, "installer_url": "https://downloads.formlabs.com/PreForm/Release/3.60.4/PreForm_win_3.60.4_release_releaser_642_127557.exe", "install_script_ref": "84a9966c", diff --git a/ee/maintained-apps/outputs/principle/darwin.json b/ee/maintained-apps/outputs/principle/darwin.json index 5465ad12902..9066c41c370 100644 --- a/ee/maintained-apps/outputs/principle/darwin.json +++ b/ee/maintained-apps/outputs/principle/darwin.json @@ -4,7 +4,8 @@ "version": "6.43", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.danielhooper.principle';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.danielhooper.principle' AND version_compare(bundle_short_version, '6.43') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.danielhooper.principle' AND version_compare(bundle_short_version, '6.43') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.danielhooper.principle');" }, "installer_url": "https://principleformac.com/download/Principle_6_43.zip", "install_script_ref": "7c38de78", diff --git a/ee/maintained-apps/outputs/prism/darwin.json b/ee/maintained-apps/outputs/prism/darwin.json index 46e20c18fa5..65bbb17841e 100644 --- a/ee/maintained-apps/outputs/prism/darwin.json +++ b/ee/maintained-apps/outputs/prism/darwin.json @@ -4,7 +4,8 @@ "version": "11.0.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.GraphPad.Prism.autocomplete';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.GraphPad.Prism.autocomplete' AND version_compare(bundle_short_version, '11.0.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.GraphPad.Prism.autocomplete' AND version_compare(bundle_short_version, '11.0.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.GraphPad.Prism.autocomplete');" }, "installer_url": "https://cdn.graphpad.com/downloads/prism/11/11.0.2/InstallPrism11.dmg", "install_script_ref": "aa6c23b5", diff --git a/ee/maintained-apps/outputs/prisma-browser/darwin.json b/ee/maintained-apps/outputs/prisma-browser/darwin.json index 9041cb133c3..6f9b7b036c5 100644 --- a/ee/maintained-apps/outputs/prisma-browser/darwin.json +++ b/ee/maintained-apps/outputs/prisma-browser/darwin.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "151.19.2.76", + "version": "151.19.4.109", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.talon-sec.Work';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.talon-sec.Work' AND version_compare(bundle_short_version, '151.19.2.76') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.talon-sec.Work' AND version_compare(bundle_short_version, '151.19.4.109') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.talon-sec.Work');" }, - "installer_url": "https://updates.talon-sec.com/releases/Prisma%20Access%20Browser/mac/packaged/universal/Prisma%20Access%20Browser-151.19.2.76-dbaac40e.pkg", + "installer_url": "https://updates.talon-sec.com/releases/Prisma%20Access%20Browser/mac/packaged/universal/Prisma%20Access%20Browser-151.19.4.109-66a0d3f4.pkg", "install_script_ref": "827875fd", "uninstall_script_ref": "ff947f47", - "sha256": "c10ce77946325149654849fa2c01bb11ee0f64de3dcd8b6fe8273975a8332f71", + "sha256": "5d32cca7dc6f394d61096a05e27d225adbcedfefe64a8c7166b8a74e40f9b751", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/prisma-browser/windows.json b/ee/maintained-apps/outputs/prisma-browser/windows.json index 7f1c5a271f4..4e8aa3353b7 100644 --- a/ee/maintained-apps/outputs/prisma-browser/windows.json +++ b/ee/maintained-apps/outputs/prisma-browser/windows.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "151.19.2.76", + "version": "151.19.3.109", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Prisma Access Browser' AND publisher = 'Palo Alto Networks Inc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Prisma Access Browser' AND publisher = 'Palo Alto Networks Inc' AND version_compare(version, '151.19.2.76') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Prisma Access Browser' AND publisher = 'Palo Alto Networks Inc' AND version_compare(version, '151.19.3.109') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'prisma browser.exe');" }, - "installer_url": "https://updates.talon-sec.com/releases/Prisma%20Access%20Browser/win/packaged/x64/crx_signed_o4_stable_prisma_access_browser_installer_151_19_2_76-151.19.2.76-8c93bfa9.msi", + "installer_url": "https://updates.talon-sec.com/releases/Prisma%20Access%20Browser/win/packaged/x64/crx_signed_o4_stable_prisma_access_browser_installer_151_19_3_109-151.19.3.109-6b92bfaa.msi", "install_script_ref": "22e48c46", "uninstall_script_ref": "84194ed8", - "sha256": "ef9ba6adef8536826173e3e2274c8d35121cd64a1a5214ba5ab5e8e318a35ece", + "sha256": "15ca666edfa6dbc686a3745ca2ca1015259c15df8d9c4eba144c7c7623bd1b4b", "default_categories": [ "Browsers" ], diff --git a/ee/maintained-apps/outputs/privileges/darwin.json b/ee/maintained-apps/outputs/privileges/darwin.json index d45a8458c81..2558491365a 100644 --- a/ee/maintained-apps/outputs/privileges/darwin.json +++ b/ee/maintained-apps/outputs/privileges/darwin.json @@ -4,7 +4,8 @@ "version": "2.5.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'corp.sap.privileges';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'corp.sap.privileges' AND version_compare(bundle_short_version, '2.5.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'corp.sap.privileges' AND version_compare(bundle_short_version, '2.5.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'corp.sap.privileges');" }, "installer_url": "https://github.com/SAP/macOS-enterprise-privileges/releases/download/2.5.3/Privileges_2.5.3.pkg", "install_script_ref": "19fb0948", diff --git a/ee/maintained-apps/outputs/prizmo/darwin.json b/ee/maintained-apps/outputs/prizmo/darwin.json index 968423fb8cf..a499bb30966 100644 --- a/ee/maintained-apps/outputs/prizmo/darwin.json +++ b/ee/maintained-apps/outputs/prizmo/darwin.json @@ -4,7 +4,8 @@ "version": "4.7.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.creaceed.prizmo2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.creaceed.prizmo2' AND version_compare(bundle_short_version, '4.7.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.creaceed.prizmo2' AND version_compare(bundle_short_version, '4.7.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.creaceed.prizmo2');" }, "installer_url": "https://creaceed.s3.amazonaws.com/downloads/prizmo4_4.7.1.zip", "install_script_ref": "e33218ab", diff --git a/ee/maintained-apps/outputs/processing/darwin.json b/ee/maintained-apps/outputs/processing/darwin.json index df32b704324..4a329af32b8 100644 --- a/ee/maintained-apps/outputs/processing/darwin.json +++ b/ee/maintained-apps/outputs/processing/darwin.json @@ -4,7 +4,8 @@ "version": "4.5.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.processing.four';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.processing.four' AND version_compare(bundle_short_version, '4.5.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.processing.four' AND version_compare(bundle_short_version, '4.5.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.processing.four');" }, "installer_url": "https://github.com/processing/processing4/releases/download/processing-1434-4.5.6/processing-4.5.6-macos-aarch64.dmg", "install_script_ref": "0d200982", diff --git a/ee/maintained-apps/outputs/processspy/darwin.json b/ee/maintained-apps/outputs/processspy/darwin.json index 4875b7951c3..47813a1ec73 100644 --- a/ee/maintained-apps/outputs/processspy/darwin.json +++ b/ee/maintained-apps/outputs/processspy/darwin.json @@ -4,7 +4,8 @@ "version": "1.14.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.itone.ProcessSpy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.itone.ProcessSpy' AND version_compare(bundle_short_version, '1.14.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.itone.ProcessSpy' AND version_compare(bundle_short_version, '1.14.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.itone.ProcessSpy');" }, "installer_url": "https://process-spy.app/archive/ProcessSpy_1.14.0.dmg", "install_script_ref": "2c9c4502", diff --git a/ee/maintained-apps/outputs/pronotes/darwin.json b/ee/maintained-apps/outputs/pronotes/darwin.json index 97bdf244541..8f86919235d 100644 --- a/ee/maintained-apps/outputs/pronotes/darwin.json +++ b/ee/maintained-apps/outputs/pronotes/darwin.json @@ -4,7 +4,8 @@ "version": "0.7.8.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.dexterleng.ProNotes';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dexterleng.ProNotes' AND version_compare(bundle_short_version, '0.7.8.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dexterleng.ProNotes' AND version_compare(bundle_short_version, '0.7.8.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.dexterleng.ProNotes');" }, "installer_url": "https://assets.pronotes.app/downloads/ProNotes-0.7.8.2.zip", "install_script_ref": "3297c507", diff --git a/ee/maintained-apps/outputs/proton-drive/darwin.json b/ee/maintained-apps/outputs/proton-drive/darwin.json index b60de661ae4..e282abdfdd5 100644 --- a/ee/maintained-apps/outputs/proton-drive/darwin.json +++ b/ee/maintained-apps/outputs/proton-drive/darwin.json @@ -4,7 +4,8 @@ "version": "3.0.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonmail.drive';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonmail.drive' AND version_compare(bundle_short_version, '3.0.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonmail.drive' AND version_compare(bundle_short_version, '3.0.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'ch.protonmail.drive');" }, "installer_url": "https://proton.me/download/drive/macos/3.0.2/ProtonDrive-3.0.2.dmg", "install_script_ref": "c00597c0", diff --git a/ee/maintained-apps/outputs/proton-drive/windows.json b/ee/maintained-apps/outputs/proton-drive/windows.json index 44dbc873d72..525b6d7c72d 100644 --- a/ee/maintained-apps/outputs/proton-drive/windows.json +++ b/ee/maintained-apps/outputs/proton-drive/windows.json @@ -4,7 +4,8 @@ "version": "3.0.4", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Proton Drive' AND publisher = 'Proton AG';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Proton Drive' AND publisher = 'Proton AG' AND version_compare(version, '3.0.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Proton Drive' AND publisher = 'Proton AG' AND version_compare(version, '3.0.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'proton drive.exe');" }, "installer_url": "https://proton.me/download/drive/windows/3.0.4/x64/Proton%20Drive%20Setup%203.0.4.exe", "install_script_ref": "0bff62f0", diff --git a/ee/maintained-apps/outputs/proton-mail-bridge/darwin.json b/ee/maintained-apps/outputs/proton-mail-bridge/darwin.json index 7b6f0f7e6cf..e758d8d120a 100644 --- a/ee/maintained-apps/outputs/proton-mail-bridge/darwin.json +++ b/ee/maintained-apps/outputs/proton-mail-bridge/darwin.json @@ -4,7 +4,8 @@ "version": "3.25.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.protonmail.bridge';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.protonmail.bridge' AND version_compare(bundle_short_version, '3.25.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.protonmail.bridge' AND version_compare(bundle_short_version, '3.25.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.protonmail.bridge');" }, "installer_url": "https://github.com/ProtonMail/proton-bridge/releases/download/v3.25.0/Bridge-Installer.dmg", "install_script_ref": "810c8aa5", diff --git a/ee/maintained-apps/outputs/proton-mail/darwin.json b/ee/maintained-apps/outputs/proton-mail/darwin.json index b9adcf076c0..1e094b12b60 100644 --- a/ee/maintained-apps/outputs/proton-mail/darwin.json +++ b/ee/maintained-apps/outputs/proton-mail/darwin.json @@ -4,7 +4,8 @@ "version": "1.13.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonmail.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonmail.desktop' AND version_compare(bundle_short_version, '1.13.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonmail.desktop' AND version_compare(bundle_short_version, '1.13.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'ch.protonmail.desktop');" }, "installer_url": "https://proton.me/download/mail/macos/1.13.4/ProtonMail-desktop.dmg", "install_script_ref": "1f588a8f", diff --git a/ee/maintained-apps/outputs/proton-meet/darwin.json b/ee/maintained-apps/outputs/proton-meet/darwin.json index 3b0d4328d89..14fff716bb8 100644 --- a/ee/maintained-apps/outputs/proton-meet/darwin.json +++ b/ee/maintained-apps/outputs/proton-meet/darwin.json @@ -4,7 +4,8 @@ "version": "1.0.10", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonmeet.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonmeet.desktop' AND version_compare(bundle_short_version, '1.0.10') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonmeet.desktop' AND version_compare(bundle_short_version, '1.0.10') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'ch.protonmeet.desktop');" }, "installer_url": "https://proton.me/download/meet/macos/1.0.10/ProtonMeet-desktop.dmg", "install_script_ref": "e0dc0340", diff --git a/ee/maintained-apps/outputs/proton-pass/darwin.json b/ee/maintained-apps/outputs/proton-pass/darwin.json index f730505812a..a9d655cfdbb 100644 --- a/ee/maintained-apps/outputs/proton-pass/darwin.json +++ b/ee/maintained-apps/outputs/proton-pass/darwin.json @@ -4,7 +4,8 @@ "version": "1.38.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'me.proton.pass.electron';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'me.proton.pass.electron' AND version_compare(bundle_short_version, '1.38.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'me.proton.pass.electron' AND version_compare(bundle_short_version, '1.38.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'me.proton.pass.electron');" }, "installer_url": "https://proton.me/download/pass/macos/ProtonPass_1.38.1.dmg", "install_script_ref": "60d13e0d", diff --git a/ee/maintained-apps/outputs/protonvpn/darwin.json b/ee/maintained-apps/outputs/protonvpn/darwin.json index 0408324c204..d364706626d 100644 --- a/ee/maintained-apps/outputs/protonvpn/darwin.json +++ b/ee/maintained-apps/outputs/protonvpn/darwin.json @@ -4,7 +4,8 @@ "version": "6.5.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonvpn.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonvpn.mac' AND version_compare(bundle_short_version, '6.5.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonvpn.mac' AND version_compare(bundle_short_version, '6.5.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'ch.protonvpn.mac');" }, "installer_url": "https://vpn.protondownload.com/download/macos/6.5.1/ProtonVPN_mac_v6.5.1.dmg", "install_script_ref": "1297ffa3", diff --git a/ee/maintained-apps/outputs/protonvpn/windows.json b/ee/maintained-apps/outputs/protonvpn/windows.json index 9d91dd1f892..59e2aa49ed8 100644 --- a/ee/maintained-apps/outputs/protonvpn/windows.json +++ b/ee/maintained-apps/outputs/protonvpn/windows.json @@ -4,7 +4,8 @@ "version": "5.1.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Proton VPN %' AND publisher = 'Proton AG';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Proton VPN %' AND publisher = 'Proton AG' AND version_compare(version, '5.1.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Proton VPN %' AND publisher = 'Proton AG' AND version_compare(version, '5.1.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('proton vpn.exe','protonvpn.exe'));" }, "installer_url": "https://vpn.protondownload.com/download/ProtonVPN_v5.1.6_x64.exe", "install_script_ref": "db724da1", diff --git a/ee/maintained-apps/outputs/protopie/darwin.json b/ee/maintained-apps/outputs/protopie/darwin.json index ba926c86a8a..2c6e5a6314f 100644 --- a/ee/maintained-apps/outputs/protopie/darwin.json +++ b/ee/maintained-apps/outputs/protopie/darwin.json @@ -4,7 +4,8 @@ "version": "9.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.protopie';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.protopie' AND version_compare(bundle_short_version, '9.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.protopie' AND version_compare(bundle_short_version, '9.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.protopie');" }, "installer_url": "https://release.protopie.io/ProtoPie-9.0.0-universal.dmg", "install_script_ref": "08060adc", diff --git a/ee/maintained-apps/outputs/protopie/windows.json b/ee/maintained-apps/outputs/protopie/windows.json index 5c16a86329e..5d7996e2e39 100644 --- a/ee/maintained-apps/outputs/protopie/windows.json +++ b/ee/maintained-apps/outputs/protopie/windows.json @@ -4,7 +4,8 @@ "version": "8.3.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'ProtoPie' AND publisher = 'Studio XID, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ProtoPie' AND publisher = 'Studio XID, Inc.' AND version_compare(version, '8.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ProtoPie' AND publisher = 'Studio XID, Inc.' AND version_compare(version, '8.3.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'protopie.exe');" }, "installer_url": "https://release.protopie.io/ProtoPie-8.3.1-x64-Setup.exe", "install_script_ref": "9421f99b", diff --git a/ee/maintained-apps/outputs/proxifier/darwin.json b/ee/maintained-apps/outputs/proxifier/darwin.json index ecbbdb0f147..6e53799f82e 100644 --- a/ee/maintained-apps/outputs/proxifier/darwin.json +++ b/ee/maintained-apps/outputs/proxifier/darwin.json @@ -4,7 +4,8 @@ "version": "3.15", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.initex.proxifier.v3.macos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.initex.proxifier.v3.macos' AND version_compare(bundle_short_version, '3.15') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.initex.proxifier.v3.macos' AND version_compare(bundle_short_version, '3.15') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.initex.proxifier.v3.macos');" }, "installer_url": "https://www.proxifier.com/download/ProxifierMac.dmg", "install_script_ref": "2318bbb2", diff --git a/ee/maintained-apps/outputs/proxifier/windows.json b/ee/maintained-apps/outputs/proxifier/windows.json index a4c9ac9aab8..3245d692d29 100644 --- a/ee/maintained-apps/outputs/proxifier/windows.json +++ b/ee/maintained-apps/outputs/proxifier/windows.json @@ -4,7 +4,8 @@ "version": "4.14", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Proxifier' AND publisher = 'VentoByte SL';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Proxifier' AND publisher = 'VentoByte SL' AND version_compare(version, '4.14') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Proxifier' AND publisher = 'VentoByte SL' AND version_compare(version, '4.14') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'proxifier.exe');" }, "installer_url": "https://www.proxifier.com/download/ProxifierSetup.exe", "install_script_ref": "9a226383", diff --git a/ee/maintained-apps/outputs/proxyman/darwin.json b/ee/maintained-apps/outputs/proxyman/darwin.json index 1dcf191b3ae..7d92a43c470 100644 --- a/ee/maintained-apps/outputs/proxyman/darwin.json +++ b/ee/maintained-apps/outputs/proxyman/darwin.json @@ -4,7 +4,8 @@ "version": "6.14.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.proxyman.NSProxy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.proxyman.NSProxy' AND version_compare(bundle_short_version, '6.14.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.proxyman.NSProxy' AND version_compare(bundle_short_version, '6.14.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.proxyman.NSProxy');" }, "installer_url": "https://download.proxyman.com/61400/Proxyman_6.14.0.dmg", "install_script_ref": "abd123e6", diff --git a/ee/maintained-apps/outputs/proxyman/windows.json b/ee/maintained-apps/outputs/proxyman/windows.json index 95626fb5eaa..5b8bdf82054 100644 --- a/ee/maintained-apps/outputs/proxyman/windows.json +++ b/ee/maintained-apps/outputs/proxyman/windows.json @@ -4,7 +4,8 @@ "version": "3.16.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Proxyman' AND publisher = 'Proxyman LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Proxyman' AND publisher = 'Proxyman LLC' AND version_compare(version, '3.16.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Proxyman' AND publisher = 'Proxyman LLC' AND version_compare(version, '3.16.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'proxyman.exe');" }, "installer_url": "https://assets.proxyman.com/windows/3.16.1/build/Proxyman%20Setup%203.16.1.exe", "install_script_ref": "46c673e8", diff --git a/ee/maintained-apps/outputs/pulsar/darwin.json b/ee/maintained-apps/outputs/pulsar/darwin.json index 23d9e933575..db526903fa6 100644 --- a/ee/maintained-apps/outputs/pulsar/darwin.json +++ b/ee/maintained-apps/outputs/pulsar/darwin.json @@ -4,7 +4,8 @@ "version": "1.132.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.pulsar-edit.pulsar';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.pulsar-edit.pulsar' AND version_compare(bundle_short_version, '1.132.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.pulsar-edit.pulsar' AND version_compare(bundle_short_version, '1.132.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'dev.pulsar-edit.pulsar');" }, "installer_url": "https://github.com/pulsar-edit/pulsar/releases/download/v1.132.1/Silicon.Mac.Pulsar-1.132.1-arm64.dmg", "install_script_ref": "e035cef2", diff --git a/ee/maintained-apps/outputs/purevpn/darwin.json b/ee/maintained-apps/outputs/purevpn/darwin.json index cf06fe95a1f..b8b576c870b 100644 --- a/ee/maintained-apps/outputs/purevpn/darwin.json +++ b/ee/maintained-apps/outputs/purevpn/darwin.json @@ -4,7 +4,8 @@ "version": "9.45.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.purevpn.app.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.purevpn.app.mac' AND version_compare(bundle_short_version, '9.45.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.purevpn.app.mac' AND version_compare(bundle_short_version, '9.45.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.purevpn.app.mac');" }, "installer_url": "https://dzglif4kkvz04.cloudfront.net/mac-2.0/packages/Production/PureVPN.pkg", "install_script_ref": "f260cb3c", diff --git a/ee/maintained-apps/outputs/putty/windows.json b/ee/maintained-apps/outputs/putty/windows.json index e47ee518cb3..8f7811811b7 100644 --- a/ee/maintained-apps/outputs/putty/windows.json +++ b/ee/maintained-apps/outputs/putty/windows.json @@ -4,7 +4,8 @@ "version": "0.84.0.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'PuTTY release %' AND publisher = 'Simon Tatham';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'PuTTY release %' AND publisher = 'Simon Tatham' AND version_compare(version, '0.84.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'PuTTY release %' AND publisher = 'Simon Tatham' AND version_compare(version, '0.84.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'putty.exe');" }, "installer_url": "https://the.earth.li/~sgtatham/putty/0.84/w64/putty-64bit-0.84-installer.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/pycharm-ce/darwin.json b/ee/maintained-apps/outputs/pycharm-ce/darwin.json index de004f8670e..16c75ea1f8d 100644 --- a/ee/maintained-apps/outputs/pycharm-ce/darwin.json +++ b/ee/maintained-apps/outputs/pycharm-ce/darwin.json @@ -4,7 +4,8 @@ "version": "2025.2.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.pycharm.ce';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.pycharm.ce' AND version_compare(bundle_short_version, '2025.2.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.pycharm.ce' AND version_compare(bundle_short_version, '2025.2.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jetbrains.pycharm.ce');" }, "installer_url": "https://download.jetbrains.com/python/pycharm-community-2025.2.5-aarch64.dmg", "install_script_ref": "145cc485", diff --git a/ee/maintained-apps/outputs/pycharm-ce/windows.json b/ee/maintained-apps/outputs/pycharm-ce/windows.json index a9862144dcc..d6c4e3f4cc8 100644 --- a/ee/maintained-apps/outputs/pycharm-ce/windows.json +++ b/ee/maintained-apps/outputs/pycharm-ce/windows.json @@ -4,7 +4,8 @@ "version": "2025.2.6.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'PyCharm Community Edition %' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'PyCharm Community Edition %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '252.28539.58') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'PyCharm Community Edition %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '252.28539.58') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('pycharm.exe','pycharm64.exe'));" }, "installer_url": "https://download.jetbrains.com/python/pycharm-community-2025.2.6.1.exe", "install_script_ref": "94c332f4", diff --git a/ee/maintained-apps/outputs/pycharm/darwin.json b/ee/maintained-apps/outputs/pycharm/darwin.json index 591cf19b48d..8cde022555b 100644 --- a/ee/maintained-apps/outputs/pycharm/darwin.json +++ b/ee/maintained-apps/outputs/pycharm/darwin.json @@ -4,7 +4,8 @@ "version": "2026.2.0.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.pycharm';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.pycharm' AND version_compare(bundle_short_version, '2026.2.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.pycharm' AND version_compare(bundle_short_version, '2026.2.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jetbrains.pycharm');" }, "installer_url": "https://download.jetbrains.com/python/pycharm-professional-2026.2.0.1-aarch64.dmg", "install_script_ref": "67d6ef10", diff --git a/ee/maintained-apps/outputs/pycharm/windows.json b/ee/maintained-apps/outputs/pycharm/windows.json index 27c99f1efac..4907b169601 100644 --- a/ee/maintained-apps/outputs/pycharm/windows.json +++ b/ee/maintained-apps/outputs/pycharm/windows.json @@ -4,7 +4,8 @@ "version": "2024.3.6.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'PyCharm %' AND name NOT LIKE 'PyCharm Community Edition%' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'PyCharm %' AND name NOT LIKE 'PyCharm Community Edition%' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '243.26574.109') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'PyCharm %' AND name NOT LIKE 'PyCharm Community Edition%' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '243.26574.109') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('pycharm.exe','pycharm64.exe'));" }, "installer_url": "https://download.jetbrains.com/python/pycharm-professional-2024.3.6.1.exe", "install_script_ref": "60d9c96b", diff --git a/ee/maintained-apps/outputs/python-3.13/windows.json b/ee/maintained-apps/outputs/python-3.13/windows.json index a130fae7bba..4b0293dba94 100644 --- a/ee/maintained-apps/outputs/python-3.13/windows.json +++ b/ee/maintained-apps/outputs/python-3.13/windows.json @@ -4,7 +4,8 @@ "version": "3.13.14", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Python 3.13.% (64-bit)' AND publisher = 'Python Software Foundation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Python 3.13.% (64-bit)' AND publisher = 'Python Software Foundation' AND version_compare(version, '3.13.14150.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Python 3.13.% (64-bit)' AND publisher = 'Python Software Foundation' AND version_compare(version, '3.13.14150.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'python 3.13.exe');" }, "installer_url": "https://www.python.org/ftp/python/3.13.14/python-3.13.14-amd64.exe", "install_script_ref": "8272e48d", diff --git a/ee/maintained-apps/outputs/python-3.14/windows.json b/ee/maintained-apps/outputs/python-3.14/windows.json index 28d4f4781f4..515bb1f4b15 100644 --- a/ee/maintained-apps/outputs/python-3.14/windows.json +++ b/ee/maintained-apps/outputs/python-3.14/windows.json @@ -4,7 +4,8 @@ "version": "3.14.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Python 3.14.% (64-bit)' AND publisher = 'Python Software Foundation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Python 3.14.% (64-bit)' AND publisher = 'Python Software Foundation' AND version_compare(version, '3.14.6150.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Python 3.14.% (64-bit)' AND publisher = 'Python Software Foundation' AND version_compare(version, '3.14.6150.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'python 3.14.exe');" }, "installer_url": "https://www.python.org/ftp/python/3.14.6/python-3.14.6-amd64.exe", "install_script_ref": "8272e48d", diff --git a/ee/maintained-apps/outputs/qemu/windows.json b/ee/maintained-apps/outputs/qemu/windows.json index 8e52c49c623..d71f3869ef6 100644 --- a/ee/maintained-apps/outputs/qemu/windows.json +++ b/ee/maintained-apps/outputs/qemu/windows.json @@ -4,7 +4,8 @@ "version": "11.0.50", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'QEMU';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'QEMU' AND version_compare(version, '11.0.50') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'QEMU' AND version_compare(version, '11.0.50') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'qemu.exe');" }, "installer_url": "https://qemu.weilnetz.de/w64/2026/qemu-w64-setup-20260501.exe", "install_script_ref": "3e305bc7", diff --git a/ee/maintained-apps/outputs/qlab/darwin.json b/ee/maintained-apps/outputs/qlab/darwin.json index 3e846f8b32a..fd16307284a 100644 --- a/ee/maintained-apps/outputs/qlab/darwin.json +++ b/ee/maintained-apps/outputs/qlab/darwin.json @@ -4,7 +4,8 @@ "version": "5.6.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.figure53.QLab.5';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.figure53.QLab.5' AND version_compare(bundle_short_version, '5.6.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.figure53.QLab.5' AND version_compare(bundle_short_version, '5.6.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.figure53.QLab.5');" }, "installer_url": "https://qlab.app/downloads/archive/QLab-5.6.3.zip", "install_script_ref": "2f037fca", diff --git a/ee/maintained-apps/outputs/qlmarkdown/darwin.json b/ee/maintained-apps/outputs/qlmarkdown/darwin.json index defee0a36e2..78e8d8dd516 100644 --- a/ee/maintained-apps/outputs/qlmarkdown/darwin.json +++ b/ee/maintained-apps/outputs/qlmarkdown/darwin.json @@ -4,7 +4,8 @@ "version": "1.5.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.sbarex.QLMarkdown';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sbarex.QLMarkdown' AND version_compare(bundle_short_version, '1.5.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sbarex.QLMarkdown' AND version_compare(bundle_short_version, '1.5.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.sbarex.QLMarkdown');" }, "installer_url": "https://github.com/sbarex/QLMarkdown/releases/download/1.5.2/QLMarkdown.zip", "install_script_ref": "7c9742c4", diff --git a/ee/maintained-apps/outputs/qspace-pro/darwin.json b/ee/maintained-apps/outputs/qspace-pro/darwin.json index 8b8ff71c076..9b58e4eacd3 100644 --- a/ee/maintained-apps/outputs/qspace-pro/darwin.json +++ b/ee/maintained-apps/outputs/qspace-pro/darwin.json @@ -4,7 +4,8 @@ "version": "6.3.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jinghaoshe.qspace.pro';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jinghaoshe.qspace.pro' AND version_compare(bundle_short_version, '6.3.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jinghaoshe.qspace.pro' AND version_compare(bundle_short_version, '6.3.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jinghaoshe.qspace.pro');" }, "installer_url": "https://cdn.awehunt.com/qs/rel/QSpace%20Pro_V6.3.2.dmg", "install_script_ref": "f70b8259", diff --git a/ee/maintained-apps/outputs/quip/darwin.json b/ee/maintained-apps/outputs/quip/darwin.json index 77426cd5d10..85a63bd7c4e 100644 --- a/ee/maintained-apps/outputs/quip/darwin.json +++ b/ee/maintained-apps/outputs/quip/darwin.json @@ -4,7 +4,8 @@ "version": "9.59.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.quip.Desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.quip.Desktop' AND version_compare(bundle_short_version, '9.59.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.quip.Desktop' AND version_compare(bundle_short_version, '9.59.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.quip.Desktop');" }, "installer_url": "https://quip-clients.com/macosx_9.59.0.dmg", "install_script_ref": "6f965660", diff --git a/ee/maintained-apps/outputs/qview/darwin.json b/ee/maintained-apps/outputs/qview/darwin.json index 62a8ffbfd2c..594d04f337b 100644 --- a/ee/maintained-apps/outputs/qview/darwin.json +++ b/ee/maintained-apps/outputs/qview/darwin.json @@ -4,7 +4,8 @@ "version": "7.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.interversehq.qView';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.interversehq.qView' AND version_compare(bundle_short_version, '7.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.interversehq.qView' AND version_compare(bundle_short_version, '7.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.interversehq.qView');" }, "installer_url": "https://github.com/jurplel/qView/releases/download/7.1/qView-7.1.dmg", "install_script_ref": "fe5fab0d", diff --git a/ee/maintained-apps/outputs/r/windows.json b/ee/maintained-apps/outputs/r/windows.json index b34decde1ce..0645e2b406f 100644 --- a/ee/maintained-apps/outputs/r/windows.json +++ b/ee/maintained-apps/outputs/r/windows.json @@ -4,7 +4,8 @@ "version": "4.6.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'R for Windows %' AND publisher = 'R Core Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'R for Windows %' AND publisher = 'R Core Team' AND version_compare(version, '4.6.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'R for Windows %' AND publisher = 'R Core Team' AND version_compare(version, '4.6.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'r for windows.exe');" }, "installer_url": "https://cloud.r-project.org/bin/windows/base/old/4.6.1/R-4.6.1-win.exe", "install_script_ref": "1c98e2a1", diff --git a/ee/maintained-apps/outputs/radio-silence/darwin.json b/ee/maintained-apps/outputs/radio-silence/darwin.json index 76ad1496fef..18c06071460 100644 --- a/ee/maintained-apps/outputs/radio-silence/darwin.json +++ b/ee/maintained-apps/outputs/radio-silence/darwin.json @@ -4,7 +4,8 @@ "version": "3.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.radiosilenceapp.client';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.radiosilenceapp.client' AND version_compare(bundle_short_version, '3.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.radiosilenceapp.client' AND version_compare(bundle_short_version, '3.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.radiosilenceapp.client');" }, "installer_url": "https://radiosilenceapp.com/downloads/Radio_Silence_3.4.pkg", "install_script_ref": "c12bbd05", diff --git a/ee/maintained-apps/outputs/raindropio/darwin.json b/ee/maintained-apps/outputs/raindropio/darwin.json index cc68ae9b764..de5478eebfa 100644 --- a/ee/maintained-apps/outputs/raindropio/darwin.json +++ b/ee/maintained-apps/outputs/raindropio/darwin.json @@ -4,7 +4,8 @@ "version": "5.7.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.raindrop.macapp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.raindrop.macapp' AND version_compare(bundle_short_version, '5.7.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.raindrop.macapp' AND version_compare(bundle_short_version, '5.7.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.raindrop.macapp');" }, "installer_url": "https://github.com/raindropio/desktop/releases/download/v5.7.9/Raindrop-arm64.dmg", "install_script_ref": "03d67c53", diff --git a/ee/maintained-apps/outputs/rancher/darwin.json b/ee/maintained-apps/outputs/rancher/darwin.json index 02d23a8503e..3052dfd50ff 100644 --- a/ee/maintained-apps/outputs/rancher/darwin.json +++ b/ee/maintained-apps/outputs/rancher/darwin.json @@ -4,7 +4,8 @@ "version": "1.24.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.rancherdesktop.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.rancherdesktop.app' AND version_compare(bundle_short_version, '1.24.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.rancherdesktop.app' AND version_compare(bundle_short_version, '1.24.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.rancherdesktop.app');" }, "installer_url": "https://github.com/rancher-sandbox/rancher-desktop/releases/download/v1.24.0/Rancher.Desktop-1.24.0.aarch64.dmg", "install_script_ref": "a93a874e", diff --git a/ee/maintained-apps/outputs/rancher/windows.json b/ee/maintained-apps/outputs/rancher/windows.json index 5e6dd10afcf..cb3ff721ef6 100644 --- a/ee/maintained-apps/outputs/rancher/windows.json +++ b/ee/maintained-apps/outputs/rancher/windows.json @@ -4,7 +4,8 @@ "version": "1.24.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Rancher Desktop' AND publisher = 'SUSE';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Rancher Desktop' AND publisher = 'SUSE' AND version_compare(version, '1.24.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Rancher Desktop' AND publisher = 'SUSE' AND version_compare(version, '1.24.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'rancher desktop.exe');" }, "installer_url": "https://github.com/rancher-sandbox/rancher-desktop/releases/download/v1.24.0/Rancher.Desktop.Setup.1.24.0.msi", "install_script_ref": "5189ac09", diff --git a/ee/maintained-apps/outputs/rapidapi/darwin.json b/ee/maintained-apps/outputs/rapidapi/darwin.json index 0262b670a28..c14eb434279 100644 --- a/ee/maintained-apps/outputs/rapidapi/darwin.json +++ b/ee/maintained-apps/outputs/rapidapi/darwin.json @@ -4,7 +4,8 @@ "version": "4.5.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.luckymarmot.Paw';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.luckymarmot.Paw' AND version_compare(bundle_short_version, '4.5.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.luckymarmot.Paw' AND version_compare(bundle_short_version, '4.5.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.luckymarmot.Paw');" }, "installer_url": "https://cdn-builds.paw.cloud/paw/RapidAPI-4.5.5.zip", "install_script_ref": "334e19fa", diff --git a/ee/maintained-apps/outputs/rapidweaver/darwin.json b/ee/maintained-apps/outputs/rapidweaver/darwin.json index e25ec3d37aa..079cf3ccd0c 100644 --- a/ee/maintained-apps/outputs/rapidweaver/darwin.json +++ b/ee/maintained-apps/outputs/rapidweaver/darwin.json @@ -4,7 +4,8 @@ "version": "9.6.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.realmacsoftware.rapidweaver8';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.realmacsoftware.rapidweaver8' AND version_compare(bundle_short_version, '9.6.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.realmacsoftware.rapidweaver8' AND version_compare(bundle_short_version, '9.6.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.realmacsoftware.rapidweaver8');" }, "installer_url": "https://dl.devant.io/v1/3c53887f-427a-4af7-9144-ee16178c62f4/21159/RapidWeaver.zip", "install_script_ref": "a088c8df", diff --git a/ee/maintained-apps/outputs/raycast/darwin.json b/ee/maintained-apps/outputs/raycast/darwin.json index 8970cc0f7a8..b5b520bb770 100644 --- a/ee/maintained-apps/outputs/raycast/darwin.json +++ b/ee/maintained-apps/outputs/raycast/darwin.json @@ -4,7 +4,8 @@ "version": "1.104.24", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.raycast.macos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.raycast.macos' AND version_compare(bundle_short_version, '1.104.24') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.raycast.macos' AND version_compare(bundle_short_version, '1.104.24') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.raycast.macos');" }, "installer_url": "https://releases.raycast.com/releases/1.104.24/download?build=arm", "install_script_ref": "f52a81be", diff --git a/ee/maintained-apps/outputs/readest/darwin.json b/ee/maintained-apps/outputs/readest/darwin.json index 86b4aaeeb4b..42dde386ee5 100644 --- a/ee/maintained-apps/outputs/readest/darwin.json +++ b/ee/maintained-apps/outputs/readest/darwin.json @@ -4,7 +4,8 @@ "version": "0.11.20", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.bilingify.readest';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bilingify.readest' AND version_compare(bundle_short_version, '0.11.20') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bilingify.readest' AND version_compare(bundle_short_version, '0.11.20') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.bilingify.readest');" }, "installer_url": "https://github.com/readest/readest/releases/download/v0.11.20/Readest_0.11.20_universal.dmg", "install_script_ref": "a12ed682", diff --git a/ee/maintained-apps/outputs/readest/windows.json b/ee/maintained-apps/outputs/readest/windows.json index 439d5c56089..de438c9d81b 100644 --- a/ee/maintained-apps/outputs/readest/windows.json +++ b/ee/maintained-apps/outputs/readest/windows.json @@ -4,7 +4,8 @@ "version": "0.11.20", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Readest' AND publisher = 'bilingify';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Readest' AND publisher = 'bilingify' AND version_compare(version, '0.11.20') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Readest' AND publisher = 'bilingify' AND version_compare(version, '0.11.20') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'readest.exe');" }, "installer_url": "https://github.com/readest/readest/releases/download/v0.11.20/Readest_0.11.20_x64-setup.exe", "install_script_ref": "2b4dd196", diff --git a/ee/maintained-apps/outputs/reaper/darwin.json b/ee/maintained-apps/outputs/reaper/darwin.json index ab818931ade..7395665d21a 100644 --- a/ee/maintained-apps/outputs/reaper/darwin.json +++ b/ee/maintained-apps/outputs/reaper/darwin.json @@ -4,7 +4,8 @@ "version": "7.78", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.cockos.reaper';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cockos.reaper' AND version_compare(bundle_short_version, '7.78') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cockos.reaper' AND version_compare(bundle_short_version, '7.78') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.cockos.reaper');" }, "installer_url": "https://dlcf.reaper.fm/7.x/reaper778_universal.dmg", "install_script_ref": "41b48d5d", diff --git a/ee/maintained-apps/outputs/reaper/windows.json b/ee/maintained-apps/outputs/reaper/windows.json index ad1e035c0d4..5866ee32a22 100644 --- a/ee/maintained-apps/outputs/reaper/windows.json +++ b/ee/maintained-apps/outputs/reaper/windows.json @@ -4,7 +4,8 @@ "version": "7.78", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'REAPER' AND publisher = 'Cockos Incorporated';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'REAPER' AND publisher = 'Cockos Incorporated' AND version_compare(version, '7.78') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'REAPER' AND publisher = 'Cockos Incorporated' AND version_compare(version, '7.78') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'reaper.exe');" }, "installer_url": "https://www.reaper.fm/files/7.x/reaper778_x64-install.exe", "install_script_ref": "8fd3787f", diff --git a/ee/maintained-apps/outputs/recents/darwin.json b/ee/maintained-apps/outputs/recents/darwin.json index cfe6a552519..78417955e10 100644 --- a/ee/maintained-apps/outputs/recents/darwin.json +++ b/ee/maintained-apps/outputs/recents/darwin.json @@ -4,7 +4,8 @@ "version": "2.5.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lapier.Recents';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lapier.Recents' AND version_compare(bundle_short_version, '2.5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lapier.Recents' AND version_compare(bundle_short_version, '2.5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.lapier.Recents');" }, "installer_url": "https://recentsapp.com/releases/Recents_2.5.0.dmg", "install_script_ref": "7e237d12", diff --git a/ee/maintained-apps/outputs/rectangle-pro/darwin.json b/ee/maintained-apps/outputs/rectangle-pro/darwin.json index 470aacce1b3..42f22338ae2 100644 --- a/ee/maintained-apps/outputs/rectangle-pro/darwin.json +++ b/ee/maintained-apps/outputs/rectangle-pro/darwin.json @@ -4,7 +4,8 @@ "version": "3.82", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.Hookshot';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.Hookshot' AND version_compare(bundle_short_version, '3.82') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.Hookshot' AND version_compare(bundle_short_version, '3.82') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.knollsoft.Hookshot');" }, "installer_url": "https://rectangleapp.com/pro/downloads/Rectangle%20Pro%203.82.dmg", "install_script_ref": "10bd873b", diff --git a/ee/maintained-apps/outputs/rectangle/darwin.json b/ee/maintained-apps/outputs/rectangle/darwin.json index 00903ba424c..44703b9dab5 100644 --- a/ee/maintained-apps/outputs/rectangle/darwin.json +++ b/ee/maintained-apps/outputs/rectangle/darwin.json @@ -4,7 +4,8 @@ "version": "0.98", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.Rectangle';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.Rectangle' AND version_compare(bundle_short_version, '0.98') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.Rectangle' AND version_compare(bundle_short_version, '0.98') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.knollsoft.Rectangle');" }, "installer_url": "https://github.com/rxhanson/Rectangle/releases/download/v0.98/Rectangle0.98.dmg", "install_script_ref": "aba57348", diff --git a/ee/maintained-apps/outputs/recut/darwin.json b/ee/maintained-apps/outputs/recut/darwin.json index 263a2de85af..f56ddee9b5c 100644 --- a/ee/maintained-apps/outputs/recut/darwin.json +++ b/ee/maintained-apps/outputs/recut/darwin.json @@ -4,7 +4,8 @@ "version": "4.4.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.tinywins.recut';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tinywins.recut' AND version_compare(bundle_short_version, '4.4.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tinywins.recut' AND version_compare(bundle_short_version, '4.4.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.tinywins.recut');" }, "installer_url": "https://updates.getrecut.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTI0LCJwdXIiOiJibG9iX2lkIn19--a60e46fe8adaf5abc2a811fd2b8dfab13e7c4289/Recut_4.4.8_universal.dmg", "install_script_ref": "acd212c0", diff --git a/ee/maintained-apps/outputs/redcine-x-pro/darwin.json b/ee/maintained-apps/outputs/redcine-x-pro/darwin.json index 6cc5e58b395..74886c25c49 100644 --- a/ee/maintained-apps/outputs/redcine-x-pro/darwin.json +++ b/ee/maintained-apps/outputs/redcine-x-pro/darwin.json @@ -4,7 +4,8 @@ "version": "65.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.red.RED-Tether';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.red.RED-Tether' AND version_compare(bundle_short_version, '65.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.red.RED-Tether' AND version_compare(bundle_short_version, '65.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.red.RED-Tether');" }, "installer_url": "https://downloads.red.com/software/rcx/mac/release/65.2.1/REDCINE-X_PRO_Build_65.2.1.pkg", "install_script_ref": "a7efc3a3", diff --git a/ee/maintained-apps/outputs/redis-pro/darwin.json b/ee/maintained-apps/outputs/redis-pro/darwin.json index d14a95d03f7..0bcf2b21700 100644 --- a/ee/maintained-apps/outputs/redis-pro/darwin.json +++ b/ee/maintained-apps/outputs/redis-pro/darwin.json @@ -4,7 +4,8 @@ "version": "3.1.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.cmushroom.redis-pro';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cmushroom.redis-pro' AND version_compare(bundle_short_version, '3.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cmushroom.redis-pro' AND version_compare(bundle_short_version, '3.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.cmushroom.redis-pro');" }, "installer_url": "https://github.com/cmushroom/redis-pro/releases/download/3.1.0/redis-pro.dmg", "install_script_ref": "b9e828ad", diff --git a/ee/maintained-apps/outputs/reflector/darwin.json b/ee/maintained-apps/outputs/reflector/darwin.json index 30062c9642f..15aa77abe6f 100644 --- a/ee/maintained-apps/outputs/reflector/darwin.json +++ b/ee/maintained-apps/outputs/reflector/darwin.json @@ -4,7 +4,8 @@ "version": "4.1.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.squirrels.Reflector-4';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.squirrels.Reflector-4' AND version_compare(bundle_short_version, '4.1.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.squirrels.Reflector-4' AND version_compare(bundle_short_version, '4.1.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.squirrels.Reflector-4');" }, "installer_url": "https://download.airsquirrels.com/Reflector4/Mac/Reflector-4.1.2.dmg", "install_script_ref": "dd262bc1", diff --git a/ee/maintained-apps/outputs/reflector/windows.json b/ee/maintained-apps/outputs/reflector/windows.json index 062bd62a3b6..19ca750c1c9 100644 --- a/ee/maintained-apps/outputs/reflector/windows.json +++ b/ee/maintained-apps/outputs/reflector/windows.json @@ -4,7 +4,8 @@ "version": "4.1.2.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Reflector 4' AND publisher = 'Squirrels';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Reflector 4' AND publisher = 'Squirrels' AND version_compare(version, '4.1.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Reflector 4' AND publisher = 'Squirrels' AND version_compare(version, '4.1.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'reflector.exe');" }, "installer_url": "https://download.airsquirrels.com/Reflector4/Windows/Reflector-4.1.2-64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/reminders-menubar/darwin.json b/ee/maintained-apps/outputs/reminders-menubar/darwin.json index 5cf8770b4e0..e5767067d23 100644 --- a/ee/maintained-apps/outputs/reminders-menubar/darwin.json +++ b/ee/maintained-apps/outputs/reminders-menubar/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'br.com.damascenorafael.reminders-menubar';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'br.com.damascenorafael.reminders-menubar' AND version_compare(bundle_short_version, '2.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'br.com.damascenorafael.reminders-menubar' AND version_compare(bundle_short_version, '2.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'br.com.damascenorafael.reminders-menubar');" }, "installer_url": "https://github.com/DamascenoRafael/reminders-menubar/releases/download/v2.1.1/reminders-menubar.zip", "install_script_ref": "0a98896b", diff --git a/ee/maintained-apps/outputs/remote-buddy/darwin.json b/ee/maintained-apps/outputs/remote-buddy/darwin.json index 4c3cbe4fba8..05b5559cfbf 100644 --- a/ee/maintained-apps/outputs/remote-buddy/darwin.json +++ b/ee/maintained-apps/outputs/remote-buddy/darwin.json @@ -4,7 +4,8 @@ "version": "2.7.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.iospirit.RemoteBuddy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.iospirit.RemoteBuddy' AND version_compare(bundle_short_version, '2.7.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.iospirit.RemoteBuddy' AND version_compare(bundle_short_version, '2.7.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.iospirit.RemoteBuddy');" }, "installer_url": "https://www.iospirit.com/products/remotebuddy/download/RemoteBuddy.zip", "install_script_ref": "6e585e4a", diff --git a/ee/maintained-apps/outputs/remote-desktop-manager/darwin.json b/ee/maintained-apps/outputs/remote-desktop-manager/darwin.json index 0bcf70795ff..c1756f5aa39 100644 --- a/ee/maintained-apps/outputs/remote-desktop-manager/darwin.json +++ b/ee/maintained-apps/outputs/remote-desktop-manager/darwin.json @@ -4,7 +4,8 @@ "version": "2026.2.4.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.devolutions.remotedesktopmanager';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.devolutions.remotedesktopmanager' AND version_compare(bundle_short_version, '2026.2.4.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.devolutions.remotedesktopmanager' AND version_compare(bundle_short_version, '2026.2.4.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.devolutions.remotedesktopmanager');" }, "installer_url": "https://cdn.devolutions.net/download/Mac/Devolutions.RemoteDesktopManager.Mac.2026.2.4.4.dmg", "install_script_ref": "4ecbe8d3", diff --git a/ee/maintained-apps/outputs/remote-desktop-manager/windows.json b/ee/maintained-apps/outputs/remote-desktop-manager/windows.json index a7b7d117435..fdd6567c178 100644 --- a/ee/maintained-apps/outputs/remote-desktop-manager/windows.json +++ b/ee/maintained-apps/outputs/remote-desktop-manager/windows.json @@ -4,7 +4,8 @@ "version": "2026.2.17.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Remote Desktop Manager' AND publisher = 'Devolutions inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Remote Desktop Manager' AND publisher = 'Devolutions inc.' AND version_compare(version, '2026.2.17.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Remote Desktop Manager' AND publisher = 'Devolutions inc.' AND version_compare(version, '2026.2.17.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'remote desktop manager.exe');" }, "installer_url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.win-x64.2026.2.17.0.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/reqable/darwin.json b/ee/maintained-apps/outputs/reqable/darwin.json index 8aa99e21ff1..c59e5c23e40 100644 --- a/ee/maintained-apps/outputs/reqable/darwin.json +++ b/ee/maintained-apps/outputs/reqable/darwin.json @@ -4,7 +4,8 @@ "version": "3.2.17", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.reqable.macosx';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.reqable.macosx' AND version_compare(bundle_short_version, '3.2.17') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.reqable.macosx' AND version_compare(bundle_short_version, '3.2.17') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.reqable.macosx');" }, "installer_url": "https://github.com/reqable/reqable-app/releases/download/3.2.17/reqable-app-macos-arm64.dmg", "install_script_ref": "81b480f7", diff --git a/ee/maintained-apps/outputs/reqable/windows.json b/ee/maintained-apps/outputs/reqable/windows.json index 721b4fefd68..aa7f16ddaa5 100644 --- a/ee/maintained-apps/outputs/reqable/windows.json +++ b/ee/maintained-apps/outputs/reqable/windows.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "3.2.20", + "version": "3.2.21", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Reqable' AND publisher = 'Reqqable Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Reqable' AND publisher = 'Reqqable Inc.' AND version_compare(version, '3.2.20') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Reqable' AND publisher = 'Reqqable Inc.' AND version_compare(version, '3.2.21') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'reqable.exe');" }, - "installer_url": "https://github.com/reqable/reqable-app/releases/download/3.2.20/reqable-app-windows-x86_64.exe", + "installer_url": "https://github.com/reqable/reqable-app/releases/download/3.2.21/reqable-app-windows-x86_64.exe", "install_script_ref": "d2ffec58", "uninstall_script_ref": "b33fc442", - "sha256": "35b6de46f7cfcd9e83fe4516e5ede9ff7d13592c065c043b5c28164ac328b595", + "sha256": "7b74c09b1f8cc263eae4019f6d2df000af05c79f3249ff9e8b834ab0df606c9a", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/requestly/darwin.json b/ee/maintained-apps/outputs/requestly/darwin.json index 39846b26490..f98741ef606 100644 --- a/ee/maintained-apps/outputs/requestly/darwin.json +++ b/ee/maintained-apps/outputs/requestly/darwin.json @@ -4,7 +4,8 @@ "version": "26.6.29", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.requestly.beta';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.requestly.beta' AND version_compare(bundle_short_version, '26.6.29') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.requestly.beta' AND version_compare(bundle_short_version, '26.6.29') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.requestly.beta');" }, "installer_url": "https://github.com/requestly/requestly-desktop-app/releases/download/v26.6.29/Requestly-26.6.29-arm64.dmg", "install_script_ref": "7c2c08d8", diff --git a/ee/maintained-apps/outputs/requestly/windows.json b/ee/maintained-apps/outputs/requestly/windows.json index 0e2d5e8307b..464523d412e 100644 --- a/ee/maintained-apps/outputs/requestly/windows.json +++ b/ee/maintained-apps/outputs/requestly/windows.json @@ -4,7 +4,8 @@ "version": "26.3.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Requestly %' AND publisher = 'BrowserStack Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Requestly %' AND publisher = 'BrowserStack Inc.' AND version_compare(version, '26.3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Requestly %' AND publisher = 'BrowserStack Inc.' AND version_compare(version, '26.3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'requestly.exe');" }, "installer_url": "https://github.com/requestly/requestly-desktop-app/releases/download/v26.3.3/Requestly-Setup-26.3.3.exe", "install_script_ref": "2b4dd196", diff --git a/ee/maintained-apps/outputs/resharper/windows.json b/ee/maintained-apps/outputs/resharper/windows.json index 40350109d1e..7a4cdfbf99e 100644 --- a/ee/maintained-apps/outputs/resharper/windows.json +++ b/ee/maintained-apps/outputs/resharper/windows.json @@ -4,10 +4,11 @@ "version": "2026.2.0.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'JetBrains ReSharper%' AND name NOT LIKE 'JetBrains ReSharper C++%' AND name NOT LIKE 'JetBrains ReSharper SDK%' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'JetBrains ReSharper%' AND name NOT LIKE 'JetBrains ReSharper C++%' AND name NOT LIKE 'JetBrains ReSharper SDK%' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '2026.2.0.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'JetBrains ReSharper%' AND name NOT LIKE 'JetBrains ReSharper C++%' AND name NOT LIKE 'JetBrains ReSharper SDK%' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '2026.2.0.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'resharper.exe');" }, "installer_url": "https://download.jetbrains.com/resharper/dotUltimate.2026.2.0.2/JetBrains.ReSharper.2026.2.0.2.web.exe", - "install_script_ref": "97fe5e08", + "install_script_ref": "a53fa150", "uninstall_script_ref": "78b5f38c", "sha256": "a34ea0d4878cc88bd726ba5e1ce024fb4e62225fb76e2869c3b8ee1891a2c25b", "default_categories": [ @@ -17,6 +18,6 @@ ], "refs": { "78b5f38c": "# Removes JetBrains ReSharper via its registry uninstall entries. ReSharper\n# registers one per Visual Studio instance, so every match is removed, and the\n# JetBrains uninstaller takes /Silent=True rather than the NSIS /S.\n# https://resharper-support.jetbrains.com/hc/en-us/articles/207241485\n\n$softwareNameLike = \"JetBrains ReSharper*\"\n$publisherLike = \"*JetBrains*\"\n\n$paths = @(\n 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall',\n 'HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall'\n)\n\n$exitCode = 0\n\ntry {\n\n[array]$uninstallKeys = Get-ChildItem `\n -Path $paths `\n -ErrorAction SilentlyContinue |\n ForEach-Object { Get-ItemProperty $_.PSPath -ErrorAction SilentlyContinue }\n\n# ReSharper C++ and the ReSharper SDK are separate products.\n[array]$selected = $uninstallKeys | Where-Object {\n $_.DisplayName -and\n $_.DisplayName -like $softwareNameLike -and\n $_.DisplayName -notlike 'JetBrains ReSharper C++*' -and\n $_.DisplayName -notlike 'JetBrains ReSharper SDK*' -and\n $_.Publisher -like $publisherLike -and\n $_.UninstallString\n}\n\nif ($selected.Count -eq 0) {\n Write-Host \"Uninstall entry not found for $softwareNameLike; nothing to do.\"\n Exit 0\n}\n\nStop-Process -Name \"devenv\" -Force -ErrorAction SilentlyContinue\nStop-Process -Name \"JetBrains.Etw.Collector.Host\" -Force -ErrorAction SilentlyContinue\nStop-Process -Name \"JetBrains.Platform.Satellite\" -Force -ErrorAction SilentlyContinue\n\nforeach ($entry in $selected) {\n $uninstallCommand = $entry.UninstallString\n\n # JetBrains stores unquoted paths that contain spaces.\n $exePath = \"\"\n $existingArgs = \"\"\n if ($uninstallCommand -match '^\\s*\"([^\"]+)\"\\s*(.*)$') {\n $exePath = $matches[1]\n $existingArgs = $matches[2].Trim()\n } elseif ($uninstallCommand -match '(?i)^\\s*(.+?\\.exe)\\s*(.*)$') {\n $exePath = $matches[1]\n $existingArgs = $matches[2].Trim()\n } elseif ($uninstallCommand -match '^\\s*(\\S+)\\s*(.*)$') {\n $exePath = $matches[1]\n $existingArgs = $matches[2].Trim()\n } else {\n Write-Host \"Could not parse uninstall string: $uninstallCommand\"\n $exitCode = 1\n continue\n }\n\n if ($existingArgs -notmatch '(?i)/Silent=') {\n $existingArgs = (\"$existingArgs /Silent=True\").Trim()\n }\n\n Write-Host \"Selected entry DisplayName: $($entry.DisplayName)\"\n Write-Host \"Uninstall command: $exePath\"\n Write-Host \"Uninstall args: $existingArgs\"\n\n $processOptions = @{\n FilePath = $exePath\n PassThru = $true\n Wait = $true\n }\n\n if ($existingArgs -ne '') {\n $processOptions.ArgumentList = $existingArgs\n }\n\n $process = Start-Process @processOptions\n Write-Host \"Uninstall exit code: $($process.ExitCode)\"\n if ($process.ExitCode -ne 0) {\n $exitCode = $process.ExitCode\n }\n}\n\nExit $exitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n", - "97fe5e08": "# Learn more about .exe install scripts:\n# http://fleetdm.com/learn-more-about/exe-install-scripts\n#\n# ReSharper is a Visual Studio extension installed by a web bootstrapper.\n# /PerMachine=True keeps it out of the SYSTEM profile, /SkipEtwService=True avoids\n# an unavoidable UAC prompt, /VsVersion picks the VS instances to integrate into.\n# https://resharper-support.jetbrains.com/hc/en-us/articles/207241485\n\n$exeFilePath = \"${env:INSTALLER_PATH}\"\n\n# Under production's 1 hour cap; the wait below also gives up early.\n$registryTimeoutSeconds = 3300\n\n$uninstallPaths = @(\n 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall',\n 'HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall'\n)\n\nfunction Get-ReSharperEntries {\n Get-ChildItem -Path $uninstallPaths -ErrorAction SilentlyContinue |\n ForEach-Object { Get-ItemProperty $_.PSPath -ErrorAction SilentlyContinue } |\n Where-Object {\n $_.DisplayName -like 'JetBrains ReSharper*' -and\n $_.DisplayName -notlike 'JetBrains ReSharper C++*' -and\n $_.DisplayName -notlike 'JetBrains ReSharper SDK*' -and\n $_.Publisher -like '*JetBrains*'\n }\n}\n\ntry {\n\n$vsWhere = Join-Path ${env:ProgramFiles(x86)} 'Microsoft Visual Studio\\Installer\\vswhere.exe'\nif (-not (Test-Path $vsWhere)) {\n Write-Host \"Visual Studio Installer not found at $vsWhere.\"\n Write-Host \"ReSharper is a Visual Studio extension and cannot be installed without Visual Studio.\"\n Exit 1\n}\n\n$installationVersions = & $vsWhere -all -prerelease -products '*' -property installationVersion 2>$null\n$vsMajors = @(\n $installationVersions |\n Where-Object { $_ -match '^\\d+' } |\n ForEach-Object { [int](($_ -split '\\.')[0]) } |\n Sort-Object -Unique -Descending\n)\n\nif ($vsMajors.Count -eq 0) {\n Write-Host \"No Visual Studio instances were reported by vswhere.\"\n Write-Host \"ReSharper is a Visual Studio extension and cannot be installed without Visual Studio.\"\n Exit 1\n}\n\n$vsVersions = ($vsMajors | ForEach-Object { \"$_.0\" }) -join ';'\nWrite-Host \"Visual Studio instances detected: $vsVersions\"\n\n$logFile = Join-Path $env:TEMP 'resharper-install.log'\n\n$processOptions = @{\n FilePath = \"$exeFilePath\"\n ArgumentList = \"/Silent=True /PerMachine=True /SkipEtwService=True /VsVersion=$vsVersions /LogFile=`\"$logFile`\"\"\n PassThru = $true\n Wait = $true\n}\n\n$process = Start-Process @processOptions\n$exitCode = $process.ExitCode\nWrite-Host \"Installer exit code: $exitCode\"\n\n# The bootstrapper can outlive its own exit code, so poll for the uninstall\n# registry entry (what osquery reports). The installer process is sampled at both\n# ends of the interval so neither one starting nor one exiting mid-sleep is\n# mistaken for nothing left to wait for.\n$deadline = (Get-Date).AddSeconds($registryTimeoutSeconds)\n$entries = @(Get-ReSharperEntries)\nwhile ($entries.Count -eq 0 -and (Get-Date) -lt $deadline) {\n $installerWasRunning = @(Get-Process -Name 'JetBrains.Platform.Installer*' -ErrorAction SilentlyContinue).Count -gt 0\n Start-Sleep -Seconds 10\n $entries = @(Get-ReSharperEntries)\n $installerIsRunning = @(Get-Process -Name 'JetBrains.Platform.Installer*' -ErrorAction SilentlyContinue).Count -gt 0\n if ($entries.Count -eq 0 -and -not $installerWasRunning -and -not $installerIsRunning) { break }\n}\n\nif ($entries.Count -eq 0) {\n Write-Host \"The ReSharper uninstall registry entry did not appear.\"\n if (Test-Path $logFile) {\n Write-Host \"--- last 50 lines of $logFile ---\"\n Get-Content $logFile -Tail 50 | ForEach-Object { Write-Host $_ }\n }\n if ($exitCode -eq 0) { Exit 1 }\n Exit $exitCode\n}\n\nforeach ($entry in $entries) {\n Write-Host \"Installed: DisplayName='$($entry.DisplayName)' DisplayVersion='$($entry.DisplayVersion)' Publisher='$($entry.Publisher)'\"\n}\n\nExit $exitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n" + "a53fa150": "# Learn more about .exe install scripts:\n# http://fleetdm.com/learn-more-about/exe-install-scripts\n#\n# ReSharper is a Visual Studio extension installed by a web bootstrapper.\n# /PerMachine=True keeps it out of the SYSTEM profile, /SkipEtwService=True avoids\n# an unavoidable UAC prompt, /VsVersion picks the VS instances to integrate into.\n# https://resharper-support.jetbrains.com/hc/en-us/articles/207241485\n\n$exeFilePath = \"${env:INSTALLER_PATH}\"\n\n$registryTimeoutSeconds = 3300\n\n$uninstallPaths = @(\n 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall',\n 'HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall'\n)\n\nfunction Get-ReSharperEntries {\n Get-ChildItem -Path $uninstallPaths -ErrorAction SilentlyContinue |\n ForEach-Object { Get-ItemProperty $_.PSPath -ErrorAction SilentlyContinue } |\n Where-Object {\n $_.DisplayName -like 'JetBrains ReSharper*' -and\n $_.DisplayName -notlike 'JetBrains ReSharper C++*' -and\n $_.DisplayName -notlike 'JetBrains ReSharper SDK*' -and\n $_.Publisher -like '*JetBrains*'\n }\n}\n\ntry {\n\n$vsWhere = Join-Path ${env:ProgramFiles(x86)} 'Microsoft Visual Studio\\Installer\\vswhere.exe'\nif (-not (Test-Path $vsWhere)) {\n Write-Host \"Visual Studio Installer not found at $vsWhere.\"\n Write-Host \"ReSharper is a Visual Studio extension and cannot be installed without Visual Studio.\"\n Exit 1\n}\n\n$installationVersions = & $vsWhere -all -prerelease -products '*' -property installationVersion 2>$null\n$vsMajors = @(\n $installationVersions |\n Where-Object { $_ -match '^\\d+' } |\n ForEach-Object { [int](($_ -split '\\.')[0]) } |\n Sort-Object -Unique -Descending\n)\n\nif ($vsMajors.Count -eq 0) {\n Write-Host \"No Visual Studio instances were reported by vswhere.\"\n Write-Host \"ReSharper is a Visual Studio extension and cannot be installed without Visual Studio.\"\n Exit 1\n}\n\n$vsVersions = ($vsMajors | ForEach-Object { \"$_.0\" }) -join ';'\nWrite-Host \"Visual Studio instances detected: $vsVersions\"\n\n$logFile = Join-Path $env:TEMP 'resharper-install.log'\n\n$processOptions = @{\n FilePath = \"$exeFilePath\"\n ArgumentList = \"/Silent=True /PerMachine=True /SkipEtwService=True /VsVersion=$vsVersions /LogFile=`\"$logFile`\"\"\n PassThru = $true\n Wait = $true\n}\n\n$process = Start-Process @processOptions\n$exitCode = $process.ExitCode\nWrite-Host \"Installer exit code: $exitCode\"\n\n$deadline = (Get-Date).AddSeconds($registryTimeoutSeconds)\n$entries = @(Get-ReSharperEntries)\nwhile ($entries.Count -eq 0 -and (Get-Date) -lt $deadline) {\n $installerWasRunning = @(Get-Process -Name 'JetBrains.Platform.Installer*' -ErrorAction SilentlyContinue).Count -gt 0\n Start-Sleep -Seconds 10\n $entries = @(Get-ReSharperEntries)\n $installerIsRunning = @(Get-Process -Name 'JetBrains.Platform.Installer*' -ErrorAction SilentlyContinue).Count -gt 0\n if ($entries.Count -eq 0 -and -not $installerWasRunning -and -not $installerIsRunning) { break }\n}\n\nif ($entries.Count -eq 0) {\n Write-Host \"The ReSharper uninstall registry entry did not appear.\"\n if (Test-Path $logFile) {\n Write-Host \"--- last 50 lines of $logFile ---\"\n Get-Content $logFile -Tail 50 | ForEach-Object { Write-Host $_ }\n }\n if ($exitCode -eq 0) { Exit 1 }\n Exit $exitCode\n}\n\nforeach ($entry in $entries) {\n Write-Host \"Installed: DisplayName='$($entry.DisplayName)' DisplayVersion='$($entry.DisplayVersion)' Publisher='$($entry.Publisher)'\"\n}\n\nExit $exitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n" } } diff --git a/ee/maintained-apps/outputs/retcon/darwin.json b/ee/maintained-apps/outputs/retcon/darwin.json index 48696f916d4..cf9a0f8dcc0 100644 --- a/ee/maintained-apps/outputs/retcon/darwin.json +++ b/ee/maintained-apps/outputs/retcon/darwin.json @@ -4,7 +4,8 @@ "version": "1.6.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'garden.lemon.Retcon';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'garden.lemon.Retcon' AND version_compare(bundle_short_version, '1.6.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'garden.lemon.Retcon' AND version_compare(bundle_short_version, '1.6.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'garden.lemon.Retcon');" }, "installer_url": "https://downloads.lemon.garden/retcon/retcon-1.6.2.dmg", "install_script_ref": "a7fff0b3", diff --git a/ee/maintained-apps/outputs/retroarch/darwin.json b/ee/maintained-apps/outputs/retroarch/darwin.json index 8d2518c6d50..cb23a93cd2a 100644 --- a/ee/maintained-apps/outputs/retroarch/darwin.json +++ b/ee/maintained-apps/outputs/retroarch/darwin.json @@ -4,7 +4,8 @@ "version": "1.22.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.libretro.RetroArch';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.libretro.RetroArch' AND version_compare(bundle_short_version, '1.22.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.libretro.RetroArch' AND version_compare(bundle_short_version, '1.22.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.libretro.RetroArch');" }, "installer_url": "https://buildbot.libretro.com/stable/1.22.2/apple/osx/x86_64/RetroArch.dmg", "install_script_ref": "28da0107", diff --git a/ee/maintained-apps/outputs/retroarch/windows.json b/ee/maintained-apps/outputs/retroarch/windows.json index 751ca50f01f..eb5b69ed867 100644 --- a/ee/maintained-apps/outputs/retroarch/windows.json +++ b/ee/maintained-apps/outputs/retroarch/windows.json @@ -4,7 +4,8 @@ "version": "1.22.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'RetroArch' AND publisher = 'Libretro';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'RetroArch' AND publisher = 'Libretro' AND version_compare(version, '1.22.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'RetroArch' AND publisher = 'Libretro' AND version_compare(version, '1.22.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'retroarch.exe');" }, "installer_url": "https://buildbot.libretro.com/stable/1.22.2/windows/x86_64/RetroArch-Win64-setup.exe", "install_script_ref": "2b4dd196", diff --git a/ee/maintained-apps/outputs/retrobatch/darwin.json b/ee/maintained-apps/outputs/retrobatch/darwin.json index efb00df121e..89b0083750f 100644 --- a/ee/maintained-apps/outputs/retrobatch/darwin.json +++ b/ee/maintained-apps/outputs/retrobatch/darwin.json @@ -4,7 +4,8 @@ "version": "2.3.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.flyingmeat.Retrobatch';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.flyingmeat.Retrobatch' AND version_compare(bundle_short_version, '2.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.flyingmeat.Retrobatch' AND version_compare(bundle_short_version, '2.3.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.flyingmeat.Retrobatch');" }, "installer_url": "https://flyingmeat.com/download/Retrobatch-2.3.1.zip", "install_script_ref": "24543d98", diff --git a/ee/maintained-apps/outputs/rewritebar/darwin.json b/ee/maintained-apps/outputs/rewritebar/darwin.json index 98040b46e86..945d8c55870 100644 --- a/ee/maintained-apps/outputs/rewritebar/darwin.json +++ b/ee/maintained-apps/outputs/rewritebar/darwin.json @@ -4,7 +4,8 @@ "version": "2.31.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.m91michel.rewritebar';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.m91michel.rewritebar' AND version_compare(bundle_short_version, '2.31.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.m91michel.rewritebar' AND version_compare(bundle_short_version, '2.31.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.m91michel.rewritebar');" }, "installer_url": "https://rewritebar.com/download/v2.31.0.zip", "install_script_ref": "9638de12", diff --git a/ee/maintained-apps/outputs/rider/darwin.json b/ee/maintained-apps/outputs/rider/darwin.json index 660055cf74d..f3bc73d5a5c 100644 --- a/ee/maintained-apps/outputs/rider/darwin.json +++ b/ee/maintained-apps/outputs/rider/darwin.json @@ -4,7 +4,8 @@ "version": "2026.2.0.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.rider';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.rider' AND version_compare(bundle_short_version, '2026.2.0.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.rider' AND version_compare(bundle_short_version, '2026.2.0.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jetbrains.rider');" }, "installer_url": "https://download.jetbrains.com/rider/JetBrains.Rider-2026.2.0.2-aarch64.dmg", "install_script_ref": "23493a85", diff --git a/ee/maintained-apps/outputs/rider/windows.json b/ee/maintained-apps/outputs/rider/windows.json index a8bae167852..a90df4f52f5 100644 --- a/ee/maintained-apps/outputs/rider/windows.json +++ b/ee/maintained-apps/outputs/rider/windows.json @@ -4,7 +4,8 @@ "version": "2026.2.0.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'JetBrains Rider %' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'JetBrains Rider %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.8665.400') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'JetBrains Rider %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.8665.400') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('rider.exe','rider64.exe'));" }, "installer_url": "https://download.jetbrains.com/rider/JetBrains.Rider-2026.2.0.2.exe", "install_script_ref": "d65fe1de", diff --git a/ee/maintained-apps/outputs/rightfont/darwin.json b/ee/maintained-apps/outputs/rightfont/darwin.json index 27d151e0cbc..0a15097fadc 100644 --- a/ee/maintained-apps/outputs/rightfont/darwin.json +++ b/ee/maintained-apps/outputs/rightfont/darwin.json @@ -4,7 +4,8 @@ "version": "10.1.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.rightfontapp.RightFont5';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rightfontapp.RightFont5' AND version_compare(bundle_short_version, '10.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rightfontapp.RightFont5' AND version_compare(bundle_short_version, '10.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.rightfontapp.RightFont5');" }, "installer_url": "https://rightfontapp.com/update/rightfont.zip", "install_script_ref": "99cc3428", diff --git a/ee/maintained-apps/outputs/rive/darwin.json b/ee/maintained-apps/outputs/rive/darwin.json index 2690c5c133e..18ec7553956 100644 --- a/ee/maintained-apps/outputs/rive/darwin.json +++ b/ee/maintained-apps/outputs/rive/darwin.json @@ -4,7 +4,8 @@ "version": "0.8.5390", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.rive.editor';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.rive.editor' AND version_compare(bundle_short_version, '0.8.5390') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.rive.editor' AND version_compare(bundle_short_version, '0.8.5390') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.rive.editor');" }, "installer_url": "https://releases.rive.app/macos/0.8.5390/Rive.dmg", "install_script_ref": "9555d3e0", diff --git a/ee/maintained-apps/outputs/rize/darwin.json b/ee/maintained-apps/outputs/rize/darwin.json index 5cff1a636bc..d208d907fc3 100644 --- a/ee/maintained-apps/outputs/rize/darwin.json +++ b/ee/maintained-apps/outputs/rize/darwin.json @@ -4,7 +4,8 @@ "version": "3.0.26", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.rize';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.rize' AND version_compare(bundle_short_version, '3.0.26') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.rize' AND version_compare(bundle_short_version, '3.0.26') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.rize');" }, "installer_url": "https://github.com/rize-io/lua/releases/download/v3.0.26/Rize-3.0.26-arm64.dmg", "install_script_ref": "24fc8184", diff --git a/ee/maintained-apps/outputs/robofont/darwin.json b/ee/maintained-apps/outputs/robofont/darwin.json index 0980a9e948c..7cb5ba711f3 100644 --- a/ee/maintained-apps/outputs/robofont/darwin.json +++ b/ee/maintained-apps/outputs/robofont/darwin.json @@ -4,7 +4,8 @@ "version": "4.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.typemytype.robofont4';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.typemytype.robofont4' AND version_compare(bundle_short_version, '4.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.typemytype.robofont4' AND version_compare(bundle_short_version, '4.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.typemytype.robofont4');" }, "installer_url": "https://static.typemytype.com/robofont/versionHistory/RoboFont_4.6_2602231550.dmg", "install_script_ref": "195f69c6", diff --git a/ee/maintained-apps/outputs/roboform/darwin.json b/ee/maintained-apps/outputs/roboform/darwin.json index f0ce6e25e69..fef92aeb3c4 100644 --- a/ee/maintained-apps/outputs/roboform/darwin.json +++ b/ee/maintained-apps/outputs/roboform/darwin.json @@ -4,7 +4,8 @@ "version": "9.9.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.SiberSystems.RoboForm';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.SiberSystems.RoboForm' AND version_compare(bundle_short_version, '9.9.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.SiberSystems.RoboForm' AND version_compare(bundle_short_version, '9.9.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.SiberSystems.RoboForm');" }, "installer_url": "https://www.roboform.com/dist/roboform-mac-v9.dmg", "install_script_ref": "693e98d7", diff --git a/ee/maintained-apps/outputs/rocket-chat/darwin.json b/ee/maintained-apps/outputs/rocket-chat/darwin.json index ddf8e4e3f0c..969d8963d21 100644 --- a/ee/maintained-apps/outputs/rocket-chat/darwin.json +++ b/ee/maintained-apps/outputs/rocket-chat/darwin.json @@ -4,7 +4,8 @@ "version": "4.15.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'chat.rocket';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'chat.rocket' AND version_compare(bundle_short_version, '4.15.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'chat.rocket' AND version_compare(bundle_short_version, '4.15.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'chat.rocket');" }, "installer_url": "https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/4.15.6/rocketchat-4.15.6-mac.dmg", "install_script_ref": "56506355", diff --git a/ee/maintained-apps/outputs/rocket-typist/darwin.json b/ee/maintained-apps/outputs/rocket-typist/darwin.json index c65c0a427d2..ea81d977a9e 100644 --- a/ee/maintained-apps/outputs/rocket-typist/darwin.json +++ b/ee/maintained-apps/outputs/rocket-typist/darwin.json @@ -4,7 +4,8 @@ "version": "3.3.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.witt-software.Rocket-Typist-3';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.witt-software.Rocket-Typist-3' AND version_compare(bundle_short_version, '3.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.witt-software.Rocket-Typist-3' AND version_compare(bundle_short_version, '3.3.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.witt-software.Rocket-Typist-3');" }, "installer_url": "https://witt-software.com/downloads/rockettypist/Rocket%20Typist.dmg", "install_script_ref": "ad4eafde", diff --git a/ee/maintained-apps/outputs/rocket/darwin.json b/ee/maintained-apps/outputs/rocket/darwin.json index fcc0597bae6..c884cf4aa67 100644 --- a/ee/maintained-apps/outputs/rocket/darwin.json +++ b/ee/maintained-apps/outputs/rocket/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.matthewpalmer.Rocket';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.matthewpalmer.Rocket' AND version_compare(bundle_short_version, '1.9.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.matthewpalmer.Rocket' AND version_compare(bundle_short_version, '1.9.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.matthewpalmer.Rocket');" }, "installer_url": "https://macrelease.matthewpalmer.net/distribution/appcasts/Rocket-88.dmg", "install_script_ref": "90babca3", diff --git a/ee/maintained-apps/outputs/rocketman-choices-packager/darwin.json b/ee/maintained-apps/outputs/rocketman-choices-packager/darwin.json index ebdbd837196..c15b63a14cc 100644 --- a/ee/maintained-apps/outputs/rocketman-choices-packager/darwin.json +++ b/ee/maintained-apps/outputs/rocketman-choices-packager/darwin.json @@ -4,7 +4,8 @@ "version": "1.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'tech.rocketman.ChoicesPackager';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'tech.rocketman.ChoicesPackager' AND version_compare(bundle_short_version, '1.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'tech.rocketman.ChoicesPackager' AND version_compare(bundle_short_version, '1.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'tech.rocketman.ChoicesPackager');" }, "installer_url": "https://github.com/Rocketman-Tech/Rocketman-Choices-Packager/releases/download/v1.0.0/Rocketman-Choices-Packager-v1.0.0.pkg", "install_script_ref": "1cbc3c78", diff --git a/ee/maintained-apps/outputs/royal-tsx/darwin.json b/ee/maintained-apps/outputs/royal-tsx/darwin.json index d95cb2e19cd..bb2eac5e464 100644 --- a/ee/maintained-apps/outputs/royal-tsx/darwin.json +++ b/ee/maintained-apps/outputs/royal-tsx/darwin.json @@ -4,7 +4,8 @@ "version": "6.4.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lemonmojo.RoyalTSX.App';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lemonmojo.RoyalTSX.App' AND version_compare(bundle_short_version, '6.4.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lemonmojo.RoyalTSX.App' AND version_compare(bundle_short_version, '6.4.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.lemonmojo.RoyalTSX.App');" }, "installer_url": "https://royaltsx-v6.royalapps.com/updates/royaltsx_6.4.3.1000.dmg", "install_script_ref": "be412b9a", diff --git a/ee/maintained-apps/outputs/royal-tsx/windows.json b/ee/maintained-apps/outputs/royal-tsx/windows.json index 650c00c25df..3364cbf872a 100644 --- a/ee/maintained-apps/outputs/royal-tsx/windows.json +++ b/ee/maintained-apps/outputs/royal-tsx/windows.json @@ -4,7 +4,8 @@ "version": "7.4.50721.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Royal TS V7' AND publisher = 'Royal Apps GmbH';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Royal TS V7' AND publisher = 'Royal Apps GmbH' AND version_compare(version, '7.4.50721.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Royal TS V7' AND publisher = 'Royal Apps GmbH' AND version_compare(version, '7.4.50721.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'royal tsx.exe');" }, "installer_url": "https://download.royalapps.com/royalts/royaltsinstaller_7.04.50721.0_x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/rstudio/windows.json b/ee/maintained-apps/outputs/rstudio/windows.json index 10c8fc40265..92a7e56b220 100644 --- a/ee/maintained-apps/outputs/rstudio/windows.json +++ b/ee/maintained-apps/outputs/rstudio/windows.json @@ -4,7 +4,8 @@ "version": "2026.07.1+147", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'RStudio' AND publisher = 'Posit Software';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'RStudio' AND publisher = 'Posit Software' AND version_compare(version, '2026.07.1+147') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'RStudio' AND publisher = 'Posit Software' AND version_compare(version, '2026.07.1+147') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('rgui.exe','rsession.exe','rstudio.exe'));" }, "installer_url": "https://download1.rstudio.org/electron/windows/RStudio-2026.07.1-147.exe", "install_script_ref": "85f22f37", diff --git a/ee/maintained-apps/outputs/rsyncui/darwin.json b/ee/maintained-apps/outputs/rsyncui/darwin.json index 145713c550f..5eda756519d 100644 --- a/ee/maintained-apps/outputs/rsyncui/darwin.json +++ b/ee/maintained-apps/outputs/rsyncui/darwin.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "3.0.2", + "version": "3.0.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'no.blogspot.RsyncUI';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'no.blogspot.RsyncUI' AND version_compare(bundle_short_version, '3.0.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'no.blogspot.RsyncUI' AND version_compare(bundle_short_version, '3.0.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'no.blogspot.RsyncUI');" }, - "installer_url": "https://github.com/rsyncOSX/RsyncUI/releases/download/v3.0.2/RsyncUI.3.0.2.dmg", + "installer_url": "https://github.com/rsyncOSX/RsyncUI/releases/download/v3.0.3/RsyncUI.3.0.3.dmg", "install_script_ref": "1130510a", "uninstall_script_ref": "71459de0", - "sha256": "21f40b2c389be6530a53a2a6a2b981f6c76a73d84492cbe2909519f9bdb885b4", + "sha256": "4269916fb8603bc7b3c399debdc81e1805747a930c18287d9944d32eb2ce2598", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/rtools/windows.json b/ee/maintained-apps/outputs/rtools/windows.json index 1e0f88199d5..778b3691913 100644 --- a/ee/maintained-apps/outputs/rtools/windows.json +++ b/ee/maintained-apps/outputs/rtools/windows.json @@ -4,7 +4,8 @@ "version": "4.5.6768", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Rtools %' AND publisher = 'The R Foundation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Rtools %' AND publisher = 'The R Foundation' AND version_compare(version, '4.5.6768') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Rtools %' AND publisher = 'The R Foundation' AND version_compare(version, '4.5.6768') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'rtools.exe');" }, "installer_url": "https://cloud.r-project.org/bin/windows/Rtools/rtools45/files/rtools45-6768-6492.exe", "install_script_ref": "38f938a7", diff --git a/ee/maintained-apps/outputs/rubymine/darwin.json b/ee/maintained-apps/outputs/rubymine/darwin.json index 4fe1bb22f14..6c83698cd7a 100644 --- a/ee/maintained-apps/outputs/rubymine/darwin.json +++ b/ee/maintained-apps/outputs/rubymine/darwin.json @@ -4,7 +4,8 @@ "version": "2026.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.rubymine';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.rubymine' AND version_compare(bundle_short_version, '2026.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.rubymine' AND version_compare(bundle_short_version, '2026.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jetbrains.rubymine');" }, "installer_url": "https://download.jetbrains.com/ruby/RubyMine-2026.2-aarch64.dmg", "install_script_ref": "ae9bd1f2", diff --git a/ee/maintained-apps/outputs/rubymine/windows.json b/ee/maintained-apps/outputs/rubymine/windows.json index 02ce712bb4b..388e59e8bf5 100644 --- a/ee/maintained-apps/outputs/rubymine/windows.json +++ b/ee/maintained-apps/outputs/rubymine/windows.json @@ -4,7 +4,8 @@ "version": "2026.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'RubyMine %' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'RubyMine %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.8665.308') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'RubyMine %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.8665.308') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('rubymine.exe','rubymine64.exe'));" }, "installer_url": "https://download.jetbrains.com/ruby/RubyMine-2026.2.exe", "install_script_ref": "a737b660", diff --git a/ee/maintained-apps/outputs/runjs/darwin.json b/ee/maintained-apps/outputs/runjs/darwin.json index 6704f08f1e4..13d62c7d8f2 100644 --- a/ee/maintained-apps/outputs/runjs/darwin.json +++ b/ee/maintained-apps/outputs/runjs/darwin.json @@ -4,7 +4,8 @@ "version": "4.1.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'me.lukehaas.runjs';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'me.lukehaas.runjs' AND version_compare(bundle_short_version, '4.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'me.lukehaas.runjs' AND version_compare(bundle_short_version, '4.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'me.lukehaas.runjs');" }, "installer_url": "https://github.com/lukehaas/RunJS/releases/download/v4.1.0/RunJS-4.1.0-universal.dmg", "install_script_ref": "0583b2a1", diff --git a/ee/maintained-apps/outputs/rustdesk/darwin.json b/ee/maintained-apps/outputs/rustdesk/darwin.json index 3484eaf8a2a..ac9a02fb24c 100644 --- a/ee/maintained-apps/outputs/rustdesk/darwin.json +++ b/ee/maintained-apps/outputs/rustdesk/darwin.json @@ -4,7 +4,8 @@ "version": "1.4.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.carriez.rustdesk';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.carriez.rustdesk' AND version_compare(bundle_short_version, '1.4.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.carriez.rustdesk' AND version_compare(bundle_short_version, '1.4.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.carriez.rustdesk');" }, "installer_url": "https://github.com/rustdesk/rustdesk/releases/download/1.4.9/rustdesk-1.4.9-aarch64.dmg", "install_script_ref": "55ce26a4", diff --git a/ee/maintained-apps/outputs/rustrover/darwin.json b/ee/maintained-apps/outputs/rustrover/darwin.json index ac37ede5d48..9a22dcfe738 100644 --- a/ee/maintained-apps/outputs/rustrover/darwin.json +++ b/ee/maintained-apps/outputs/rustrover/darwin.json @@ -4,7 +4,8 @@ "version": "2026.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.rustrover';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.rustrover' AND version_compare(bundle_short_version, '2026.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.rustrover' AND version_compare(bundle_short_version, '2026.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jetbrains.rustrover');" }, "installer_url": "https://download.jetbrains.com/rustrover/RustRover-2026.2.1-aarch64.dmg", "install_script_ref": "60ccf7c0", diff --git a/ee/maintained-apps/outputs/rustrover/windows.json b/ee/maintained-apps/outputs/rustrover/windows.json index d0e46c7bdf8..83d53a5bf05 100644 --- a/ee/maintained-apps/outputs/rustrover/windows.json +++ b/ee/maintained-apps/outputs/rustrover/windows.json @@ -4,7 +4,8 @@ "version": "2026.2.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'RustRover %' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'RustRover %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.9437.161') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'RustRover %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.9437.161') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('rustrover.exe','rustrover64.exe'));" }, "installer_url": "https://download.jetbrains.com/rustrover/RustRover-2026.2.1.exe", "install_script_ref": "02283015", diff --git a/ee/maintained-apps/outputs/sabnzbd/darwin.json b/ee/maintained-apps/outputs/sabnzbd/darwin.json index 3fcf756b72a..f9e419d633e 100644 --- a/ee/maintained-apps/outputs/sabnzbd/darwin.json +++ b/ee/maintained-apps/outputs/sabnzbd/darwin.json @@ -4,7 +4,8 @@ "version": "5.0.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.sabnzbd.sabnzbd';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sabnzbd.sabnzbd' AND version_compare(bundle_short_version, '5.0.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sabnzbd.sabnzbd' AND version_compare(bundle_short_version, '5.0.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.sabnzbd.sabnzbd');" }, "installer_url": "https://github.com/sabnzbd/sabnzbd/releases/download/5.0.4/SABnzbd-5.0.4-macos.dmg", "install_script_ref": "cef073f6", diff --git a/ee/maintained-apps/outputs/safe-exam-browser/darwin.json b/ee/maintained-apps/outputs/safe-exam-browser/darwin.json index 5978c7233fe..da1b0f928f3 100644 --- a/ee/maintained-apps/outputs/safe-exam-browser/darwin.json +++ b/ee/maintained-apps/outputs/safe-exam-browser/darwin.json @@ -4,7 +4,8 @@ "version": "3.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.safeexambrowser.SafeExamBrowser';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.safeexambrowser.SafeExamBrowser' AND version_compare(bundle_short_version, '3.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.safeexambrowser.SafeExamBrowser' AND version_compare(bundle_short_version, '3.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.safeexambrowser.SafeExamBrowser');" }, "installer_url": "https://github.com/SafeExamBrowser/seb-mac/releases/download/3.7/SafeExamBrowser-3.7.dmg", "install_script_ref": "f02d7147", diff --git a/ee/maintained-apps/outputs/safe-exam-browser/windows.json b/ee/maintained-apps/outputs/safe-exam-browser/windows.json index 716d1d23350..115f597e29d 100644 --- a/ee/maintained-apps/outputs/safe-exam-browser/windows.json +++ b/ee/maintained-apps/outputs/safe-exam-browser/windows.json @@ -4,7 +4,8 @@ "version": "3.10.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Safe Exam Browser' AND publisher = 'ETH Zürich';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Safe Exam Browser' AND publisher = 'ETH Zürich' AND version_compare(version, '3.10.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Safe Exam Browser' AND publisher = 'ETH Zürich' AND version_compare(version, '3.10.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'safe exam browser.exe');" }, "installer_url": "https://github.com/SafeExamBrowser/seb-win-refactoring/releases/download/v3.10.1/SEB_3.10.1.864_SetupBundle.exe", "install_script_ref": "a088aa3d", diff --git a/ee/maintained-apps/outputs/sanesidebuttons/darwin.json b/ee/maintained-apps/outputs/sanesidebuttons/darwin.json index e00f7f0f5be..cecf169621a 100644 --- a/ee/maintained-apps/outputs/sanesidebuttons/darwin.json +++ b/ee/maintained-apps/outputs/sanesidebuttons/darwin.json @@ -4,7 +4,8 @@ "version": "1.4.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.janhuelsmann.sanesidebuttons';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.janhuelsmann.sanesidebuttons' AND version_compare(bundle_short_version, '1.4.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.janhuelsmann.sanesidebuttons' AND version_compare(bundle_short_version, '1.4.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.janhuelsmann.sanesidebuttons');" }, "installer_url": "https://github.com/thealpa/SaneSideButtons/releases/download/1.4.1/SaneSideButtons.dmg", "install_script_ref": "18c1bb65", diff --git a/ee/maintained-apps/outputs/santa/darwin.json b/ee/maintained-apps/outputs/santa/darwin.json index cd2c6ad62f3..64685b4232e 100644 --- a/ee/maintained-apps/outputs/santa/darwin.json +++ b/ee/maintained-apps/outputs/santa/darwin.json @@ -4,7 +4,8 @@ "version": "2026.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.northpolesec.santa';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.northpolesec.santa' AND version_compare(bundle_short_version, '2026.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.northpolesec.santa' AND version_compare(bundle_short_version, '2026.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.northpolesec.santa');" }, "installer_url": "https://github.com/northpolesec/santa/releases/download/2026.7/santa-2026.7.dmg", "install_script_ref": "a542a793", diff --git a/ee/maintained-apps/outputs/sc-menu/darwin.json b/ee/maintained-apps/outputs/sc-menu/darwin.json index f1fa91a4f38..f757bc2ff1c 100644 --- a/ee/maintained-apps/outputs/sc-menu/darwin.json +++ b/ee/maintained-apps/outputs/sc-menu/darwin.json @@ -4,7 +4,8 @@ "version": "2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ttinc.sc-menu';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ttinc.sc-menu' AND version_compare(bundle_short_version, '2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ttinc.sc-menu' AND version_compare(bundle_short_version, '2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ttinc.sc-menu');" }, "installer_url": "https://github.com/boberito/sc_menu/releases/download/2.1/SC_Menu.dmg", "install_script_ref": "0e06672b", diff --git a/ee/maintained-apps/outputs/scratch/darwin.json b/ee/maintained-apps/outputs/scratch/darwin.json index 1570959aa7e..f1c99fb0b97 100644 --- a/ee/maintained-apps/outputs/scratch/darwin.json +++ b/ee/maintained-apps/outputs/scratch/darwin.json @@ -4,7 +4,8 @@ "version": "3.32.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'edu.mit.scratch.scratch-desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'edu.mit.scratch.scratch-desktop' AND version_compare(bundle_short_version, '3.32.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'edu.mit.scratch.scratch-desktop' AND version_compare(bundle_short_version, '3.32.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'edu.mit.scratch.scratch-desktop');" }, "installer_url": "https://downloads.scratch.mit.edu/desktop/Scratch%203.32.0.dmg", "install_script_ref": "cf2699f4", diff --git a/ee/maintained-apps/outputs/screen-studio/darwin.json b/ee/maintained-apps/outputs/screen-studio/darwin.json index c28deb2cec8..862c8e82693 100644 --- a/ee/maintained-apps/outputs/screen-studio/darwin.json +++ b/ee/maintained-apps/outputs/screen-studio/darwin.json @@ -4,7 +4,8 @@ "version": "3.7.5-4595", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.timpler.screenstudio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.timpler.screenstudio' AND version_compare(bundle_short_version, '3.7.5-4595') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.timpler.screenstudio' AND version_compare(bundle_short_version, '3.7.5-4595') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.timpler.screenstudio');" }, "installer_url": "https://screenstudioassets.com/releases/3.7.5-4595/Screen%20Studio-3.7.5-4595-arm64-mac.zip", "install_script_ref": "6a998537", diff --git a/ee/maintained-apps/outputs/screenflick/darwin.json b/ee/maintained-apps/outputs/screenflick/darwin.json index d8bcd730e44..282cf977d3e 100644 --- a/ee/maintained-apps/outputs/screenflick/darwin.json +++ b/ee/maintained-apps/outputs/screenflick/darwin.json @@ -4,7 +4,8 @@ "version": "3.3.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.araeliumgroup.screenflick';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.araeliumgroup.screenflick' AND version_compare(bundle_short_version, '3.3.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.araeliumgroup.screenflick' AND version_compare(bundle_short_version, '3.3.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.araeliumgroup.screenflick');" }, "installer_url": "https://store.araelium.com/screenflick/downloads/versions/Screenflick3.3.2.zip", "install_script_ref": "8b696f48", diff --git a/ee/maintained-apps/outputs/screenflow/darwin.json b/ee/maintained-apps/outputs/screenflow/darwin.json index 299de63ed37..bffa2f5c460 100644 --- a/ee/maintained-apps/outputs/screenflow/darwin.json +++ b/ee/maintained-apps/outputs/screenflow/darwin.json @@ -4,7 +4,8 @@ "version": "10.5.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.telestream.screenflow.globallibrary';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.telestream.screenflow.globallibrary' AND version_compare(bundle_short_version, '10.5.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.telestream.screenflow.globallibrary' AND version_compare(bundle_short_version, '10.5.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.telestream.screenflow.globallibrary');" }, "installer_url": "https://www.telestream.net/download-files/screenflow/10-5/ScreenFlow-10.5.2.dmg", "install_script_ref": "397645f7", diff --git a/ee/maintained-apps/outputs/screenfocus/darwin.json b/ee/maintained-apps/outputs/screenfocus/darwin.json index 38a34dfd338..5eb57bc1427 100644 --- a/ee/maintained-apps/outputs/screenfocus/darwin.json +++ b/ee/maintained-apps/outputs/screenfocus/darwin.json @@ -4,7 +4,8 @@ "version": "1.1.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.apptorium.ScreenFocus-dm';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apptorium.ScreenFocus-dm' AND version_compare(bundle_short_version, '1.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apptorium.ScreenFocus-dm' AND version_compare(bundle_short_version, '1.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.apptorium.ScreenFocus-dm');" }, "installer_url": "https://www.apptorium.com/public/products/screenfocus/releases/ScreenFocus-1.1.1.zip", "install_script_ref": "c1ed671a", diff --git a/ee/maintained-apps/outputs/scribe/windows.json b/ee/maintained-apps/outputs/scribe/windows.json index 5bc7b5da4d4..90fcf09b52b 100644 --- a/ee/maintained-apps/outputs/scribe/windows.json +++ b/ee/maintained-apps/outputs/scribe/windows.json @@ -4,7 +4,8 @@ "version": "6.8.4.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Scribe' AND publisher = 'Colony Labs, Inc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Scribe' AND publisher = 'Colony Labs, Inc' AND version_compare(version, '6.8.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Scribe' AND publisher = 'Colony Labs, Inc' AND version_compare(version, '6.8.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'scribe.exe');" }, "installer_url": "https://colony-labs-public.s3.us-east-2.amazonaws.com/Scribe_6.8.4.msi", "install_script_ref": "cf2d0de4", diff --git a/ee/maintained-apps/outputs/scribus/darwin.json b/ee/maintained-apps/outputs/scribus/darwin.json index 7ab9e23e30d..4340d7a5f65 100644 --- a/ee/maintained-apps/outputs/scribus/darwin.json +++ b/ee/maintained-apps/outputs/scribus/darwin.json @@ -4,7 +4,8 @@ "version": "1.6.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.scribus';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.scribus' AND version_compare(bundle_short_version, '1.6.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.scribus' AND version_compare(bundle_short_version, '1.6.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.scribus');" }, "installer_url": "https://downloads.sourceforge.net/scribus/scribus/1.6.6/scribus-1.6.6-arm64.dmg", "install_script_ref": "6635cf0d", diff --git a/ee/maintained-apps/outputs/scrivener/darwin.json b/ee/maintained-apps/outputs/scrivener/darwin.json index 43ef5ff4717..33e3d0569d5 100644 --- a/ee/maintained-apps/outputs/scrivener/darwin.json +++ b/ee/maintained-apps/outputs/scrivener/darwin.json @@ -4,7 +4,8 @@ "version": "3.5.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.literatureandlatte.scrivener3';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.literatureandlatte.scrivener3' AND version_compare(bundle_short_version, '3.5.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.literatureandlatte.scrivener3' AND version_compare(bundle_short_version, '3.5.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.literatureandlatte.scrivener3');" }, "installer_url": "https://scrivener.s3.amazonaws.com/mac_updates/Scrivener_11_17487.zip", "install_script_ref": "6986beaa", diff --git a/ee/maintained-apps/outputs/scrivener/windows.json b/ee/maintained-apps/outputs/scrivener/windows.json index 645f3f9f77a..ddd84caf8ee 100644 --- a/ee/maintained-apps/outputs/scrivener/windows.json +++ b/ee/maintained-apps/outputs/scrivener/windows.json @@ -4,7 +4,8 @@ "version": "3.1.6.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Scrivener' AND publisher = 'Literature and Latte';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Scrivener' AND publisher = 'Literature and Latte' AND version_compare(version, '3.1.6.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Scrivener' AND publisher = 'Literature and Latte' AND version_compare(version, '3.1.6.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'scrivener.exe');" }, "installer_url": "https://www.literatureandlatte.com/downloads/win-legacy/Scrivener-3160-installer.exe", "install_script_ref": "d73c982c", diff --git a/ee/maintained-apps/outputs/secretive/darwin.json b/ee/maintained-apps/outputs/secretive/darwin.json index cf71078139d..ab495194d06 100644 --- a/ee/maintained-apps/outputs/secretive/darwin.json +++ b/ee/maintained-apps/outputs/secretive/darwin.json @@ -4,7 +4,8 @@ "version": "3.0.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.maxgoedjen.Secretive.Host';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.maxgoedjen.Secretive.Host' AND version_compare(bundle_short_version, '3.0.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.maxgoedjen.Secretive.Host' AND version_compare(bundle_short_version, '3.0.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.maxgoedjen.Secretive.Host');" }, "installer_url": "https://github.com/maxgoedjen/secretive/releases/download/v3.0.4/Secretive.zip", "install_script_ref": "6427d337", diff --git a/ee/maintained-apps/outputs/securesafe/darwin.json b/ee/maintained-apps/outputs/securesafe/darwin.json index b2c8af74afa..60f4986846a 100644 --- a/ee/maintained-apps/outputs/securesafe/darwin.json +++ b/ee/maintained-apps/outputs/securesafe/darwin.json @@ -4,7 +4,8 @@ "version": "2.25.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.dswiss.securesafe.sync';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dswiss.securesafe.sync' AND version_compare(bundle_short_version, '2.25.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dswiss.securesafe.sync' AND version_compare(bundle_short_version, '2.25.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.dswiss.securesafe.sync');" }, "installer_url": "https://app.securesafe.com/app/download/securesafe-2.25.0.pkg", "install_script_ref": "94dba7f0", diff --git a/ee/maintained-apps/outputs/selfcontrol/darwin.json b/ee/maintained-apps/outputs/selfcontrol/darwin.json index b38e4f2d8d9..8e1df4cffc9 100644 --- a/ee/maintained-apps/outputs/selfcontrol/darwin.json +++ b/ee/maintained-apps/outputs/selfcontrol/darwin.json @@ -4,7 +4,8 @@ "version": "4.0.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.eyebeam.SelfControl';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.eyebeam.SelfControl' AND version_compare(bundle_short_version, '4.0.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.eyebeam.SelfControl' AND version_compare(bundle_short_version, '4.0.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.eyebeam.SelfControl');" }, "installer_url": "https://downloads.selfcontrolapp.com/SelfControl-4.0.2.zip", "install_script_ref": "e662166e", diff --git a/ee/maintained-apps/outputs/sensei/darwin.json b/ee/maintained-apps/outputs/sensei/darwin.json index bc3eb54708b..988b42dc91d 100644 --- a/ee/maintained-apps/outputs/sensei/darwin.json +++ b/ee/maintained-apps/outputs/sensei/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.cindori.Sensei';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.cindori.Sensei' AND version_compare(bundle_short_version, '2.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.cindori.Sensei' AND version_compare(bundle_short_version, '2.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.cindori.Sensei');" }, "installer_url": "https://cdn.cindori.com/apps/sensei/updates/2.1.1-138/Sensei.dmg", "install_script_ref": "be5b7d2a", diff --git a/ee/maintained-apps/outputs/sequel-ace/darwin.json b/ee/maintained-apps/outputs/sequel-ace/darwin.json index 2668232253a..3104ea730f8 100644 --- a/ee/maintained-apps/outputs/sequel-ace/darwin.json +++ b/ee/maintained-apps/outputs/sequel-ace/darwin.json @@ -4,7 +4,8 @@ "version": "5.3.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sequelace.SequelAce';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sequelace.SequelAce' AND version_compare(bundle_short_version, '5.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sequelace.SequelAce' AND version_compare(bundle_short_version, '5.3.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sequelace.SequelAce');" }, "installer_url": "https://github.com/Sequel-Ace/Sequel-Ace/releases/download/production/5.3.1-20104/Sequel-Ace-5.3.1.zip", "install_script_ref": "a676e59f", diff --git a/ee/maintained-apps/outputs/session/darwin.json b/ee/maintained-apps/outputs/session/darwin.json index 1de8406c3a1..e63ee1a22bb 100644 --- a/ee/maintained-apps/outputs/session/darwin.json +++ b/ee/maintained-apps/outputs/session/darwin.json @@ -4,7 +4,8 @@ "version": "1.18.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.loki-project.messenger-desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.loki-project.messenger-desktop' AND version_compare(bundle_short_version, '1.18.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.loki-project.messenger-desktop' AND version_compare(bundle_short_version, '1.18.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.loki-project.messenger-desktop');" }, "installer_url": "https://github.com/session-foundation/session-desktop/releases/download/v1.18.1/session-desktop-mac-arm64-1.18.1.dmg", "install_script_ref": "d6dac4c0", diff --git a/ee/maintained-apps/outputs/setapp/darwin.json b/ee/maintained-apps/outputs/setapp/darwin.json index e446cdf4751..0d36e909ea2 100644 --- a/ee/maintained-apps/outputs/setapp/darwin.json +++ b/ee/maintained-apps/outputs/setapp/darwin.json @@ -4,7 +4,8 @@ "version": "3.54.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.setapp.DesktopClient.SetappAgent';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.setapp.DesktopClient.SetappAgent' AND version_compare(bundle_short_version, '3.54.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.setapp.DesktopClient.SetappAgent' AND version_compare(bundle_short_version, '3.54.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.setapp.DesktopClient.SetappAgent');" }, "installer_url": "https://dl.devmate.com/com.setapp.DesktopClient/155/1785848113/Setapp-155.zip", "install_script_ref": "eb0dc2d0", diff --git a/ee/maintained-apps/outputs/sf-symbols/darwin.json b/ee/maintained-apps/outputs/sf-symbols/darwin.json index 2839a7e639b..19be5943101 100644 --- a/ee/maintained-apps/outputs/sf-symbols/darwin.json +++ b/ee/maintained-apps/outputs/sf-symbols/darwin.json @@ -4,7 +4,8 @@ "version": "8.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.apple.SFSymbols';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apple.SFSymbols' AND version_compare(bundle_short_version, '8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apple.SFSymbols' AND version_compare(bundle_short_version, '8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.apple.SFSymbols');" }, "installer_url": "https://devimages-cdn.apple.com/design/resources/download/SF-Symbols-8.dmg", "install_script_ref": "04f0c9b1", diff --git a/ee/maintained-apps/outputs/shapr3d/darwin.json b/ee/maintained-apps/outputs/shapr3d/darwin.json index 0c039fcb403..61a561e260c 100644 --- a/ee/maintained-apps/outputs/shapr3d/darwin.json +++ b/ee/maintained-apps/outputs/shapr3d/darwin.json @@ -4,7 +4,8 @@ "version": "26.141.0.11474", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.shapr3d.shapr';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.shapr3d.shapr' AND version_compare(bundle_short_version, '26.141.0.11474') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.shapr3d.shapr' AND version_compare(bundle_short_version, '26.141.0.11474') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.shapr3d.shapr');" }, "installer_url": "https://download.shapr3d.com/mac/Shapr3D-26.141.0.11474.dmg", "install_script_ref": "aa7e3fbc", diff --git a/ee/maintained-apps/outputs/sharefile/darwin.json b/ee/maintained-apps/outputs/sharefile/darwin.json index bde6ea50bf0..ac49099e994 100644 --- a/ee/maintained-apps/outputs/sharefile/darwin.json +++ b/ee/maintained-apps/outputs/sharefile/darwin.json @@ -4,7 +4,8 @@ "version": "26.04.20", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.citrixfiles.ens.service';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.citrixfiles.ens.service' AND version_compare(bundle_short_version, '26.04.20') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.citrixfiles.ens.service' AND version_compare(bundle_short_version, '26.04.20') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.citrixfiles.ens.service');" }, "installer_url": "https://dl.sharefile.com/sfmac/ShareFile%20v26.04.20%20(20p795).dmg", "install_script_ref": "8d1fd500", diff --git a/ee/maintained-apps/outputs/sharefile/windows.json b/ee/maintained-apps/outputs/sharefile/windows.json index 6b983fbedbf..ccaabffd96e 100644 --- a/ee/maintained-apps/outputs/sharefile/windows.json +++ b/ee/maintained-apps/outputs/sharefile/windows.json @@ -4,7 +4,8 @@ "version": "25.9.2.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'ShareFile For Windows' AND publisher = 'ShareFile';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ShareFile For Windows' AND publisher = 'ShareFile' AND version_compare(version, '25.9.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ShareFile For Windows' AND publisher = 'ShareFile' AND version_compare(version, '25.9.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'sharefile.exe');" }, "installer_url": "https://dl.sharefile.com/sfwin-msi/ShareFileForWindows_x64_v25.9.2.0.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/shift/darwin.json b/ee/maintained-apps/outputs/shift/darwin.json index 6da3aa35f4f..297e81ab8f0 100644 --- a/ee/maintained-apps/outputs/shift/darwin.json +++ b/ee/maintained-apps/outputs/shift/darwin.json @@ -4,7 +4,8 @@ "version": "9.6.7.1268", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.rdbrck.shift';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rdbrck.shift' AND version_compare(bundle_short_version, '9.6.7.1268') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rdbrck.shift' AND version_compare(bundle_short_version, '9.6.7.1268') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.rdbrck.shift');" }, "installer_url": "https://updates.tryshift.com/v9.6.7/stable/shift-v9.6.7.1268-stable-arm64.dmg", "install_script_ref": "526e5310", diff --git a/ee/maintained-apps/outputs/shift/windows.json b/ee/maintained-apps/outputs/shift/windows.json index 5cbd74657c8..659f3d7e016 100644 --- a/ee/maintained-apps/outputs/shift/windows.json +++ b/ee/maintained-apps/outputs/shift/windows.json @@ -4,7 +4,8 @@ "version": "9.6.7.1268", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Shift' AND publisher = 'Shift Technologies, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Shift' AND publisher = 'Shift Technologies, Inc.' AND version_compare(version, '9.6.7.1268') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Shift' AND publisher = 'Shift Technologies, Inc.' AND version_compare(version, '9.6.7.1268') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'shift.exe');" }, "installer_url": "https://updates.tryshift.com/v9.6.7/stable/shift-v9.6.7.1268-stable-x64.exe", "install_script_ref": "fbf50bbc", diff --git a/ee/maintained-apps/outputs/shifty/darwin.json b/ee/maintained-apps/outputs/shifty/darwin.json index c12f45d0a59..ea69a2cdc8e 100644 --- a/ee/maintained-apps/outputs/shifty/darwin.json +++ b/ee/maintained-apps/outputs/shifty/darwin.json @@ -4,7 +4,8 @@ "version": "1.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.natethompson.Shifty';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.natethompson.Shifty' AND version_compare(bundle_short_version, '1.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.natethompson.Shifty' AND version_compare(bundle_short_version, '1.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.natethompson.Shifty');" }, "installer_url": "https://github.com/thompsonate/Shifty/releases/download/v1.2/Shifty-1.2.zip", "install_script_ref": "e573f1fa", diff --git a/ee/maintained-apps/outputs/shortcat/darwin.json b/ee/maintained-apps/outputs/shortcat/darwin.json index ce1d082aed5..9f6984f8510 100644 --- a/ee/maintained-apps/outputs/shortcat/darwin.json +++ b/ee/maintained-apps/outputs/shortcat/darwin.json @@ -4,7 +4,8 @@ "version": "0.12.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sproutcube.Shortcat';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sproutcube.Shortcat' AND version_compare(bundle_short_version, '0.12.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sproutcube.Shortcat' AND version_compare(bundle_short_version, '0.12.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sproutcube.Shortcat');" }, "installer_url": "https://files.shortcat.app/releases/v0.12.2/Shortcat.zip", "install_script_ref": "3f590cb4", diff --git a/ee/maintained-apps/outputs/shotcut/darwin.json b/ee/maintained-apps/outputs/shotcut/darwin.json index 01e862ce8fe..c37442cca1a 100644 --- a/ee/maintained-apps/outputs/shotcut/darwin.json +++ b/ee/maintained-apps/outputs/shotcut/darwin.json @@ -4,7 +4,8 @@ "version": "26.8.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.meltytech.Shotcut';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.meltytech.Shotcut' AND version_compare(bundle_short_version, '26.8.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.meltytech.Shotcut' AND version_compare(bundle_short_version, '26.8.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.meltytech.Shotcut');" }, "installer_url": "https://github.com/mltframework/shotcut/releases/download/v26.8.1/shotcut-macos-26.8.1.dmg", "install_script_ref": "569ddb04", diff --git a/ee/maintained-apps/outputs/shotcut/windows.json b/ee/maintained-apps/outputs/shotcut/windows.json index 6673603d9bd..fa69b0ac857 100644 --- a/ee/maintained-apps/outputs/shotcut/windows.json +++ b/ee/maintained-apps/outputs/shotcut/windows.json @@ -4,7 +4,8 @@ "version": "26.8.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Shotcut' AND publisher = 'Meltytech';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Shotcut' AND publisher = 'Meltytech' AND version_compare(version, '26.8.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Shotcut' AND publisher = 'Meltytech' AND version_compare(version, '26.8.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'shotcut.exe');" }, "installer_url": "https://github.com/mltframework/shotcut/releases/download/v26.8.1/shotcut-win64-26.8.1.exe", "install_script_ref": "fbf50bbc", diff --git a/ee/maintained-apps/outputs/shottr/darwin.json b/ee/maintained-apps/outputs/shottr/darwin.json index 540fee83b59..08a84fdfe8e 100644 --- a/ee/maintained-apps/outputs/shottr/darwin.json +++ b/ee/maintained-apps/outputs/shottr/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'cc.ffitch.shottr';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'cc.ffitch.shottr' AND version_compare(bundle_short_version, '1.9.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'cc.ffitch.shottr' AND version_compare(bundle_short_version, '1.9.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'cc.ffitch.shottr');" }, "installer_url": "https://shottr.cc/dl/Shottr-1.9.1.dmg", "install_script_ref": "769e4c94", diff --git a/ee/maintained-apps/outputs/sidenotes/darwin.json b/ee/maintained-apps/outputs/sidenotes/darwin.json index 0915f9a8bee..def0456cade 100644 --- a/ee/maintained-apps/outputs/sidenotes/darwin.json +++ b/ee/maintained-apps/outputs/sidenotes/darwin.json @@ -4,7 +4,8 @@ "version": "1.6.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.apptorium.SideNotes-paddle';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apptorium.SideNotes-paddle' AND version_compare(bundle_short_version, '1.6.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apptorium.SideNotes-paddle' AND version_compare(bundle_short_version, '1.6.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.apptorium.SideNotes-paddle');" }, "installer_url": "https://www.apptorium.com/public/products/sidenotes/releases/SideNotes-1.6.3.zip", "install_script_ref": "1d0975cd", diff --git a/ee/maintained-apps/outputs/sigmaos/darwin.json b/ee/maintained-apps/outputs/sigmaos/darwin.json index 18432e02c76..dd9b53e5c2f 100644 --- a/ee/maintained-apps/outputs/sigmaos/darwin.json +++ b/ee/maintained-apps/outputs/sigmaos/darwin.json @@ -4,7 +4,8 @@ "version": "1.19.0.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sigmaos.sigmaos.macos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sigmaos.sigmaos.macos' AND version_compare(bundle_short_version, '1.19.0.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sigmaos.sigmaos.macos' AND version_compare(bundle_short_version, '1.19.0.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sigmaos.sigmaos.macos');" }, "installer_url": "https://releases.sigmaos.com/SigmaOS-1.19.0.4.dmg", "install_script_ref": "e0791e0b", diff --git a/ee/maintained-apps/outputs/signal/darwin.json b/ee/maintained-apps/outputs/signal/darwin.json index b3761e1de7f..bff9cf08a53 100644 --- a/ee/maintained-apps/outputs/signal/darwin.json +++ b/ee/maintained-apps/outputs/signal/darwin.json @@ -4,7 +4,8 @@ "version": "8.22.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.whispersystems.signal-desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.whispersystems.signal-desktop' AND version_compare(bundle_short_version, '8.22.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.whispersystems.signal-desktop' AND version_compare(bundle_short_version, '8.22.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.whispersystems.signal-desktop');" }, "installer_url": "https://updates.signal.org/desktop/signal-desktop-mac-arm64-8.22.0.zip", "install_script_ref": "07386872", diff --git a/ee/maintained-apps/outputs/signal/windows.json b/ee/maintained-apps/outputs/signal/windows.json index 484c19f5ca8..0239d2a1be9 100644 --- a/ee/maintained-apps/outputs/signal/windows.json +++ b/ee/maintained-apps/outputs/signal/windows.json @@ -4,7 +4,8 @@ "version": "8.22.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Signal' AND publisher = 'Signal Messenger, LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Signal' AND publisher = 'Signal Messenger, LLC' AND version_compare(version, '8.22.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Signal' AND publisher = 'Signal Messenger, LLC' AND version_compare(version, '8.22.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'signal.exe');" }, "installer_url": "https://updates.signal.org/desktop/signal-desktop-win-8.22.0.exe", "install_script_ref": "06366bfb", diff --git a/ee/maintained-apps/outputs/simple-comic/darwin.json b/ee/maintained-apps/outputs/simple-comic/darwin.json index f4a04800a53..6d4183f179a 100644 --- a/ee/maintained-apps/outputs/simple-comic/darwin.json +++ b/ee/maintained-apps/outputs/simple-comic/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ToWatchList.SimpleComic';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ToWatchList.SimpleComic' AND version_compare(bundle_short_version, '1.9.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ToWatchList.SimpleComic' AND version_compare(bundle_short_version, '1.9.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ToWatchList.SimpleComic');" }, "installer_url": "https://github.com/MaddTheSane/Simple-Comic/releases/download/App-Store-1.9.9/Simple.Comic.1.9.9.zip", "install_script_ref": "cd02745a", diff --git a/ee/maintained-apps/outputs/sirimote/darwin.json b/ee/maintained-apps/outputs/sirimote/darwin.json index ad9f8b358b7..afbb17d7950 100644 --- a/ee/maintained-apps/outputs/sirimote/darwin.json +++ b/ee/maintained-apps/outputs/sirimote/darwin.json @@ -4,7 +4,8 @@ "version": "1.4.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'at.EternalStorms.SiriMote-nonappstore';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'at.EternalStorms.SiriMote-nonappstore' AND version_compare(bundle_short_version, '1.4.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'at.EternalStorms.SiriMote-nonappstore' AND version_compare(bundle_short_version, '1.4.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'at.EternalStorms.SiriMote-nonappstore');" }, "installer_url": "https://eternalstorms.at/sirimote/SiriMote.zip", "install_script_ref": "0f15d673", diff --git a/ee/maintained-apps/outputs/sketch/darwin.json b/ee/maintained-apps/outputs/sketch/darwin.json index 9145037b561..dd21dd2e5ff 100644 --- a/ee/maintained-apps/outputs/sketch/darwin.json +++ b/ee/maintained-apps/outputs/sketch/darwin.json @@ -4,7 +4,8 @@ "version": "2026.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.bohemiancoding.sketch3';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bohemiancoding.sketch3' AND version_compare(bundle_short_version, '2026.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bohemiancoding.sketch3' AND version_compare(bundle_short_version, '2026.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.bohemiancoding.sketch3');" }, "installer_url": "https://download.sketch.com/sketch-2026.2.1-231087.zip", "install_script_ref": "d674f21b", diff --git a/ee/maintained-apps/outputs/slab/darwin.json b/ee/maintained-apps/outputs/slab/darwin.json index c6f2088c008..c5ffdb7a935 100644 --- a/ee/maintained-apps/outputs/slab/darwin.json +++ b/ee/maintained-apps/outputs/slab/darwin.json @@ -4,7 +4,8 @@ "version": "1.7.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.slab.slab';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.slab.slab' AND version_compare(bundle_short_version, '1.7.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.slab.slab' AND version_compare(bundle_short_version, '1.7.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.slab.slab');" }, "installer_url": "https://github.com/slab/desktop-releases/releases/download/v1.7.2/Slab-1.7.2-darwin-arm64.dmg", "install_script_ref": "c0fce97d", diff --git a/ee/maintained-apps/outputs/slack/darwin.json b/ee/maintained-apps/outputs/slack/darwin.json index 0899c8e79d8..3a965817eff 100644 --- a/ee/maintained-apps/outputs/slack/darwin.json +++ b/ee/maintained-apps/outputs/slack/darwin.json @@ -4,7 +4,8 @@ "version": "4.51.180", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.tinyspeck.slackmacgap';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tinyspeck.slackmacgap' AND version_compare(bundle_short_version, '4.51.180') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tinyspeck.slackmacgap' AND version_compare(bundle_short_version, '4.51.180') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.tinyspeck.slackmacgap');" }, "installer_url": "https://slack.com/api/desktop.latestRelease?redirect=1&variant=pkg&arch=universal", "install_script_ref": "92608bef", diff --git a/ee/maintained-apps/outputs/slack/windows.json b/ee/maintained-apps/outputs/slack/windows.json index 34a548e5cc8..bcd42509512 100644 --- a/ee/maintained-apps/outputs/slack/windows.json +++ b/ee/maintained-apps/outputs/slack/windows.json @@ -4,7 +4,8 @@ "version": "4.51.180", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Slack' AND publisher = 'Slack Technologies Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Slack' AND publisher = 'Slack Technologies Inc.' AND version_compare(version, '4.51.180') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Slack' AND publisher = 'Slack Technologies Inc.' AND version_compare(version, '4.51.180') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'slack.exe');" }, "installer_url": "https://downloads.slack-edge.com/desktop-releases/windows/x64/4.51.180/Slack.msix", "install_script_ref": "8b41f934", diff --git a/ee/maintained-apps/outputs/slicer/darwin.json b/ee/maintained-apps/outputs/slicer/darwin.json index 899fa9bb75b..17a107eb0fd 100644 --- a/ee/maintained-apps/outputs/slicer/darwin.json +++ b/ee/maintained-apps/outputs/slicer/darwin.json @@ -4,7 +4,8 @@ "version": "5.12.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.slicer.slicer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.slicer.slicer' AND version_compare(bundle_short_version, '5.12.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.slicer.slicer' AND version_compare(bundle_short_version, '5.12.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.slicer.slicer');" }, "installer_url": "https://slicer-packages.kitware.com/api/v1/item/6a61a0b02eb3d967f032af6c/download", "install_script_ref": "df696ec2", diff --git a/ee/maintained-apps/outputs/slidepad/darwin.json b/ee/maintained-apps/outputs/slidepad/darwin.json index 603c871bc76..a801b506075 100644 --- a/ee/maintained-apps/outputs/slidepad/darwin.json +++ b/ee/maintained-apps/outputs/slidepad/darwin.json @@ -4,7 +4,8 @@ "version": "1.6.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.slidepad.slidepad';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.slidepad.slidepad' AND version_compare(bundle_short_version, '1.6.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.slidepad.slidepad' AND version_compare(bundle_short_version, '1.6.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.slidepad.slidepad');" }, "installer_url": "https://f002.backblazeb2.com/file/Slidepad/Slidepad_1_6_2.zip", "install_script_ref": "31df38a6", diff --git a/ee/maintained-apps/outputs/sloth/darwin.json b/ee/maintained-apps/outputs/sloth/darwin.json index 190b0abcb21..5e75028e17f 100644 --- a/ee/maintained-apps/outputs/sloth/darwin.json +++ b/ee/maintained-apps/outputs/sloth/darwin.json @@ -4,7 +4,8 @@ "version": "3.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.sveinbjorn.Sloth';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sveinbjorn.Sloth' AND version_compare(bundle_short_version, '3.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sveinbjorn.Sloth' AND version_compare(bundle_short_version, '3.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.sveinbjorn.Sloth');" }, "installer_url": "https://sveinbjorn.org/files/software/sloth/sloth-3.6.zip", "install_script_ref": "76ac7637", diff --git a/ee/maintained-apps/outputs/smallstepagent/darwin.json b/ee/maintained-apps/outputs/smallstepagent/darwin.json index 6ecc27e8038..495786276be 100644 --- a/ee/maintained-apps/outputs/smallstepagent/darwin.json +++ b/ee/maintained-apps/outputs/smallstepagent/darwin.json @@ -4,7 +4,8 @@ "version": "v0.68.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.smallstep.Agent';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.smallstep.Agent' AND version_compare(bundle_short_version, 'v0.68.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.smallstep.Agent' AND version_compare(bundle_short_version, 'v0.68.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.smallstep.Agent');" }, "installer_url": "https://packages.smallstep.com/stable/step-agent/darwin/0.68.0/step-agent_0.68.0.pkg", "install_script_ref": "448d993d", diff --git a/ee/maintained-apps/outputs/smartsheet/darwin.json b/ee/maintained-apps/outputs/smartsheet/darwin.json index 08ffb3417fd..ba82685d8bf 100644 --- a/ee/maintained-apps/outputs/smartsheet/darwin.json +++ b/ee/maintained-apps/outputs/smartsheet/darwin.json @@ -4,7 +4,8 @@ "version": "1.0.54", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.smartsheet.desktopapp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.smartsheet.desktopapp' AND version_compare(bundle_short_version, '1.0.54') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.smartsheet.desktopapp' AND version_compare(bundle_short_version, '1.0.54') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.smartsheet.desktopapp');" }, "installer_url": "https://builds.desktopapp.smartsheet.com/public/darwin/Smartsheet-setup.dmg", "install_script_ref": "c9c4c582", diff --git a/ee/maintained-apps/outputs/smartsheet/windows.json b/ee/maintained-apps/outputs/smartsheet/windows.json index 1bd315344a9..772610ed870 100644 --- a/ee/maintained-apps/outputs/smartsheet/windows.json +++ b/ee/maintained-apps/outputs/smartsheet/windows.json @@ -4,7 +4,8 @@ "version": "1.0.54", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Smartsheet' AND publisher = 'Smartsheet';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Smartsheet' AND publisher = 'Smartsheet' AND version_compare(version, '1.0.54') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Smartsheet' AND publisher = 'Smartsheet' AND version_compare(version, '1.0.54') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'smartsheet.exe');" }, "installer_url": "https://builds.desktopapp.smartsheet.com/public/win32/Smartsheet-setup.exe", "install_script_ref": "45257f64", diff --git a/ee/maintained-apps/outputs/smartsvn/darwin.json b/ee/maintained-apps/outputs/smartsvn/darwin.json index f05503e3ea1..f865f7a0b01 100644 --- a/ee/maintained-apps/outputs/smartsvn/darwin.json +++ b/ee/maintained-apps/outputs/smartsvn/darwin.json @@ -4,7 +4,8 @@ "version": "14.5.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.syntevo.smartsvn';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.syntevo.smartsvn' AND version_compare(bundle_short_version, '14.5.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.syntevo.smartsvn' AND version_compare(bundle_short_version, '14.5.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.syntevo.smartsvn');" }, "installer_url": "https://www.smartsvn.com/downloads/smartsvn/smartsvn-aarch64-14_5_1.dmg", "install_script_ref": "9c16a5df", diff --git a/ee/maintained-apps/outputs/smoothscroll/darwin.json b/ee/maintained-apps/outputs/smoothscroll/darwin.json index 602abbe37e4..769329b13b7 100644 --- a/ee/maintained-apps/outputs/smoothscroll/darwin.json +++ b/ee/maintained-apps/outputs/smoothscroll/darwin.json @@ -4,7 +4,8 @@ "version": "1.7.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.galambalazs.SmoothScroll';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.galambalazs.SmoothScroll' AND version_compare(bundle_short_version, '1.7.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.galambalazs.SmoothScroll' AND version_compare(bundle_short_version, '1.7.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.galambalazs.SmoothScroll');" }, "installer_url": "https://www.smoothscroll.net/mac/download/SmoothScroll.app.zip", "install_script_ref": "c3b82010", diff --git a/ee/maintained-apps/outputs/smultron/darwin.json b/ee/maintained-apps/outputs/smultron/darwin.json index 1e975cb1a92..29236b801c9 100644 --- a/ee/maintained-apps/outputs/smultron/darwin.json +++ b/ee/maintained-apps/outputs/smultron/darwin.json @@ -4,7 +4,8 @@ "version": "14.4.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.peterborgapps.Smultron14';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.peterborgapps.Smultron14' AND version_compare(bundle_short_version, '14.4.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.peterborgapps.Smultron14' AND version_compare(bundle_short_version, '14.4.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.peterborgapps.Smultron14');" }, "installer_url": "https://www.peterborgapps.com/downloads/Smultron14.zip", "install_script_ref": "25a6cc12", diff --git a/ee/maintained-apps/outputs/snagit/darwin.json b/ee/maintained-apps/outputs/snagit/darwin.json index a49d9fa7424..98c4782efb7 100644 --- a/ee/maintained-apps/outputs/snagit/darwin.json +++ b/ee/maintained-apps/outputs/snagit/darwin.json @@ -4,7 +4,8 @@ "version": "2026.3.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.TechSmith.Snagit';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.TechSmith.Snagit' AND version_compare(bundle_short_version, '2026.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.TechSmith.Snagit' AND version_compare(bundle_short_version, '2026.3.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.TechSmith.Snagit');" }, "installer_url": "https://download.techsmith.com/snagitmac/releases/2026.3.1/snagit.dmg", "install_script_ref": "8831f4b5", diff --git a/ee/maintained-apps/outputs/snagit/windows.json b/ee/maintained-apps/outputs/snagit/windows.json index 99865ecb499..6eb59d980e8 100644 --- a/ee/maintained-apps/outputs/snagit/windows.json +++ b/ee/maintained-apps/outputs/snagit/windows.json @@ -4,7 +4,8 @@ "version": "26.2.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Snagit 2026' AND publisher = 'TechSmith Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Snagit 2026' AND publisher = 'TechSmith Corporation' AND version_compare(version, '26.2.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Snagit 2026' AND publisher = 'TechSmith Corporation' AND version_compare(version, '26.2.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'snagit.exe');" }, "installer_url": "https://download.techsmith.com/snagit/releases/2622/snagit.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/snapmotion/darwin.json b/ee/maintained-apps/outputs/snapmotion/darwin.json index f5105bf1c7a..a8d8475703b 100644 --- a/ee/maintained-apps/outputs/snapmotion/darwin.json +++ b/ee/maintained-apps/outputs/snapmotion/darwin.json @@ -4,7 +4,8 @@ "version": "5.3.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jeremyvizzini.snapmotion-paddle';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jeremyvizzini.snapmotion-paddle' AND version_compare(bundle_short_version, '5.3.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jeremyvizzini.snapmotion-paddle' AND version_compare(bundle_short_version, '5.3.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jeremyvizzini.snapmotion-paddle');" }, "installer_url": "https://neededapps.com/appcasts/snapmotion/versions/5.3.0", "install_script_ref": "ac8248d8", diff --git a/ee/maintained-apps/outputs/snowflake-snowsql/darwin.json b/ee/maintained-apps/outputs/snowflake-snowsql/darwin.json index 40db9acd633..2fd25a71561 100644 --- a/ee/maintained-apps/outputs/snowflake-snowsql/darwin.json +++ b/ee/maintained-apps/outputs/snowflake-snowsql/darwin.json @@ -4,7 +4,8 @@ "version": "1.5.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.snowflake.snowsql';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.snowflake.snowsql' AND version_compare(bundle_short_version, '1.5.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.snowflake.snowsql' AND version_compare(bundle_short_version, '1.5.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.snowflake.snowsql');" }, "installer_url": "https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/1.5/darwin_arm64/snowsql-1.5.1-darwin_arm64.pkg", "install_script_ref": "c81cbff5", diff --git a/ee/maintained-apps/outputs/sococo/darwin.json b/ee/maintained-apps/outputs/sococo/darwin.json index 5da7c892301..fcc757d72ca 100644 --- a/ee/maintained-apps/outputs/sococo/darwin.json +++ b/ee/maintained-apps/outputs/sococo/darwin.json @@ -4,7 +4,8 @@ "version": "6.12.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.sococo';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.sococo' AND version_compare(bundle_short_version, '6.12.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.sococo' AND version_compare(bundle_short_version, '6.12.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.sococo');" }, "installer_url": "https://s.sococo.com/rs/client/mac/sococo-client-mac.dmg", "install_script_ref": "0b0af25c", diff --git a/ee/maintained-apps/outputs/sonic-visualiser/darwin.json b/ee/maintained-apps/outputs/sonic-visualiser/darwin.json index 0dd023fbabc..5ba0e9a1565 100644 --- a/ee/maintained-apps/outputs/sonic-visualiser/darwin.json +++ b/ee/maintained-apps/outputs/sonic-visualiser/darwin.json @@ -4,7 +4,8 @@ "version": "5.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.sonicvisualiser.SonicVisualiser';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sonicvisualiser.SonicVisualiser' AND version_compare(bundle_short_version, '5.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sonicvisualiser.SonicVisualiser' AND version_compare(bundle_short_version, '5.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.sonicvisualiser.SonicVisualiser');" }, "installer_url": "https://github.com/sonic-visualiser/sonic-visualiser/releases/download/sv_v5.2.1/Sonic.Visualiser.5.2.1.dmg", "install_script_ref": "225e260f", diff --git a/ee/maintained-apps/outputs/sonicwall-netextender/windows.json b/ee/maintained-apps/outputs/sonicwall-netextender/windows.json index 82e5d4febde..d12b1d89931 100644 --- a/ee/maintained-apps/outputs/sonicwall-netextender/windows.json +++ b/ee/maintained-apps/outputs/sonicwall-netextender/windows.json @@ -4,7 +4,8 @@ "version": "10.3.5", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'SonicWall NetExtender' AND publisher = 'SonicWall Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'SonicWall NetExtender' AND publisher = 'SonicWall Inc.' AND version_compare(version, '10.3.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'SonicWall NetExtender' AND publisher = 'SonicWall Inc.' AND version_compare(version, '10.3.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'sonicwall netextender.exe');" }, "installer_url": "https://software.sonicwall.com/NetExtender/NetExtender-x64-10.3.5.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/sonobus/darwin.json b/ee/maintained-apps/outputs/sonobus/darwin.json index 3bd991d01a7..eb2db3a1407 100644 --- a/ee/maintained-apps/outputs/sonobus/darwin.json +++ b/ee/maintained-apps/outputs/sonobus/darwin.json @@ -4,7 +4,8 @@ "version": "1.7.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.Sonosaurus.SonoBus';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.Sonosaurus.SonoBus' AND version_compare(bundle_short_version, '1.7.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.Sonosaurus.SonoBus' AND version_compare(bundle_short_version, '1.7.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.Sonosaurus.SonoBus');" }, "installer_url": "https://sonobus.net/releases/sonobus-1.7.2-mac.dmg", "install_script_ref": "824e6883", diff --git a/ee/maintained-apps/outputs/sonos/darwin.json b/ee/maintained-apps/outputs/sonos/darwin.json index d64fe4418cc..7c54e41b272 100644 --- a/ee/maintained-apps/outputs/sonos/darwin.json +++ b/ee/maintained-apps/outputs/sonos/darwin.json @@ -4,7 +4,8 @@ "version": "90.0.77070", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sonos.macController2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sonos.macController2' AND version_compare(bundle_version, '90.0.77070') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sonos.macController2' AND version_compare(bundle_version, '90.0.77070') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sonos.macController2');" }, "installer_url": "https://update-software.sonos.com/software/rT0797IawE/Sonos_90.0-77070.dmg", "install_script_ref": "91cbf6f9", diff --git a/ee/maintained-apps/outputs/sonos/windows.json b/ee/maintained-apps/outputs/sonos/windows.json index c7f9f097e7c..8687e51b8c4 100644 --- a/ee/maintained-apps/outputs/sonos/windows.json +++ b/ee/maintained-apps/outputs/sonos/windows.json @@ -4,7 +4,8 @@ "version": "90.0.77070", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Sonos%' AND publisher = 'Sonos, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Sonos%' AND publisher = 'Sonos, Inc.' AND version_compare(version, '90.0.77070') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Sonos%' AND publisher = 'Sonos, Inc.' AND version_compare(version, '90.0.77070') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'sonos.exe');" }, "installer_url": "https://update-software.sonos.com/software/rT0797IawE/Sonos_90.0-77070.exe", "install_script_ref": "109fa54d", diff --git a/ee/maintained-apps/outputs/sony-ps-remote-play/darwin.json b/ee/maintained-apps/outputs/sony-ps-remote-play/darwin.json index ee9fc173d4d..d6455f582b8 100644 --- a/ee/maintained-apps/outputs/sony-ps-remote-play/darwin.json +++ b/ee/maintained-apps/outputs/sony-ps-remote-play/darwin.json @@ -4,7 +4,8 @@ "version": "9.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.playstation.RemotePlay';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.playstation.RemotePlay' AND version_compare(bundle_short_version, '9.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.playstation.RemotePlay' AND version_compare(bundle_short_version, '9.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.playstation.RemotePlay');" }, "installer_url": "https://remoteplay.dl.playstation.net/remoteplay/module/mac/RemotePlayInstaller.pkg", "install_script_ref": "cf8f7a9b", diff --git a/ee/maintained-apps/outputs/soulver/darwin.json b/ee/maintained-apps/outputs/soulver/darwin.json index 650e7d9bcd3..bab338dc1f6 100644 --- a/ee/maintained-apps/outputs/soulver/darwin.json +++ b/ee/maintained-apps/outputs/soulver/darwin.json @@ -4,7 +4,8 @@ "version": "3.16.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.soulver.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.soulver.mac' AND version_compare(bundle_short_version, '3.16.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.soulver.mac' AND version_compare(bundle_short_version, '3.16.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.soulver.mac');" }, "installer_url": "https://soulver.app/mac/sparkle/soulver-3.16.3-541.zip", "install_script_ref": "ad7c4a09", diff --git a/ee/maintained-apps/outputs/sound-control/darwin.json b/ee/maintained-apps/outputs/sound-control/darwin.json index 181af2617a1..b9e46f9e986 100644 --- a/ee/maintained-apps/outputs/sound-control/darwin.json +++ b/ee/maintained-apps/outputs/sound-control/darwin.json @@ -4,7 +4,8 @@ "version": "3.3.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.staticz.SoundControl';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.staticz.SoundControl' AND version_compare(bundle_short_version, '3.3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.staticz.SoundControl' AND version_compare(bundle_short_version, '3.3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.staticz.SoundControl');" }, "installer_url": "https://s3.amazonaws.com/staticz.net/downloads/soundcontrol/SoundControl_3.3.3.dmg", "install_script_ref": "38e884b0", diff --git a/ee/maintained-apps/outputs/sound-siphon/darwin.json b/ee/maintained-apps/outputs/sound-siphon/darwin.json index 66b185ad589..7f8d09d5e1b 100644 --- a/ee/maintained-apps/outputs/sound-siphon/darwin.json +++ b/ee/maintained-apps/outputs/sound-siphon/darwin.json @@ -4,7 +4,8 @@ "version": "3.8.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.staticz.SoundSiphon3';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.staticz.SoundSiphon3' AND version_compare(bundle_short_version, '3.8.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.staticz.SoundSiphon3' AND version_compare(bundle_short_version, '3.8.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.staticz.SoundSiphon3');" }, "installer_url": "https://staticz.com/download/1837/", "install_script_ref": "efee3d1a", diff --git a/ee/maintained-apps/outputs/soundanchor/darwin.json b/ee/maintained-apps/outputs/soundanchor/darwin.json index 2006be23f76..1d6ac68109f 100644 --- a/ee/maintained-apps/outputs/soundanchor/darwin.json +++ b/ee/maintained-apps/outputs/soundanchor/darwin.json @@ -4,7 +4,8 @@ "version": "1.8.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'me.kopiro.soundanchor';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'me.kopiro.soundanchor' AND version_compare(bundle_short_version, '1.8.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'me.kopiro.soundanchor' AND version_compare(bundle_short_version, '1.8.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'me.kopiro.soundanchor');" }, "installer_url": "https://cdn.kopiro.me/soundanchor/soundanchor-1.8.2.dmg", "install_script_ref": "166ddbfe", diff --git a/ee/maintained-apps/outputs/soundsource/darwin.json b/ee/maintained-apps/outputs/soundsource/darwin.json index 7a4b4137e9a..1706a2c6352 100644 --- a/ee/maintained-apps/outputs/soundsource/darwin.json +++ b/ee/maintained-apps/outputs/soundsource/darwin.json @@ -4,7 +4,8 @@ "version": "6.1.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.soundsource';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.soundsource' AND version_compare(bundle_short_version, '6.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.rogueamoeba.soundsource' AND version_compare(bundle_short_version, '6.1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.rogueamoeba.soundsource');" }, "installer_url": "https://cdn.rogueamoeba.com/soundsource/download/SoundSource.zip", "install_script_ref": "6aab5ef5", diff --git a/ee/maintained-apps/outputs/sourcetree/darwin.json b/ee/maintained-apps/outputs/sourcetree/darwin.json index 3cf3b662085..22cfe6ca214 100644 --- a/ee/maintained-apps/outputs/sourcetree/darwin.json +++ b/ee/maintained-apps/outputs/sourcetree/darwin.json @@ -4,7 +4,8 @@ "version": "4.2.19", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.torusknot.SourceTreeNotMAS';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.torusknot.SourceTreeNotMAS' AND version_compare(bundle_short_version, '4.2.19') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.torusknot.SourceTreeNotMAS' AND version_compare(bundle_short_version, '4.2.19') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.torusknot.SourceTreeNotMAS');" }, "installer_url": "https://product-downloads.atlassian.com/software/sourcetree/ga/Sourcetree_4.2.19_317.zip", "install_script_ref": "332762ec", diff --git a/ee/maintained-apps/outputs/sourcetree/windows.json b/ee/maintained-apps/outputs/sourcetree/windows.json index 065d706a54f..a7adc091dea 100644 --- a/ee/maintained-apps/outputs/sourcetree/windows.json +++ b/ee/maintained-apps/outputs/sourcetree/windows.json @@ -4,7 +4,8 @@ "version": "3.4.31", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Sourcetree Enterprise' AND publisher = 'Atlassian';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Sourcetree Enterprise' AND publisher = 'Atlassian' AND version_compare(version, '3.4.31') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Sourcetree Enterprise' AND publisher = 'Atlassian' AND version_compare(version, '3.4.31') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'sourcetree.exe');" }, "installer_url": "https://product-downloads.atlassian.com/software/sourcetree/windows/ga/SourcetreeEnterpriseSetup_3.4.31.msi", "install_script_ref": "e23ea804", diff --git a/ee/maintained-apps/outputs/spamsieve/darwin.json b/ee/maintained-apps/outputs/spamsieve/darwin.json index 14df9bb15ad..d1fe7966cbb 100644 --- a/ee/maintained-apps/outputs/spamsieve/darwin.json +++ b/ee/maintained-apps/outputs/spamsieve/darwin.json @@ -4,7 +4,8 @@ "version": "3.3.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.c-command.SpamSieve';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.c-command.SpamSieve' AND version_compare(bundle_short_version, '3.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.c-command.SpamSieve' AND version_compare(bundle_short_version, '3.3.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.c-command.SpamSieve');" }, "installer_url": "https://c-command.com/downloads/SpamSieve-3.3.1.dmg", "install_script_ref": "bf1af365", diff --git a/ee/maintained-apps/outputs/spectra-app/darwin.json b/ee/maintained-apps/outputs/spectra-app/darwin.json index 43a60dcfe7b..99b8fc61b9a 100644 --- a/ee/maintained-apps/outputs/spectra-app/darwin.json +++ b/ee/maintained-apps/outputs/spectra-app/darwin.json @@ -4,7 +4,8 @@ "version": "2.3.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.spectra.dev';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.spectra.dev' AND version_compare(bundle_short_version, '2.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.spectra.dev' AND version_compare(bundle_short_version, '2.3.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.spectra.dev');" }, "installer_url": "https://github.com/kaochenlong/spectra-app/releases/download/v2.3.1/Spectra_2.3.1_aarch64.dmg", "install_script_ref": "00cc37ca", diff --git a/ee/maintained-apps/outputs/spitfire-audio/darwin.json b/ee/maintained-apps/outputs/spitfire-audio/darwin.json index b4c6da1b9b0..db0b14be2a0 100644 --- a/ee/maintained-apps/outputs/spitfire-audio/darwin.json +++ b/ee/maintained-apps/outputs/spitfire-audio/darwin.json @@ -4,7 +4,8 @@ "version": "3.4.17", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.spitfireaudio.spitfireaudio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.spitfireaudio.spitfireaudio' AND version_compare(bundle_short_version, '3.4.17') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.spitfireaudio.spitfireaudio' AND version_compare(bundle_short_version, '3.4.17') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.spitfireaudio.spitfireaudio');" }, "installer_url": "https://d1t3zg51rvnesz.cloudfront.net/p/files/lm/1770184800/mac/SpitfireAudio.Mac-3.4.17.dmg", "install_script_ref": "725ec0ee", diff --git a/ee/maintained-apps/outputs/splashtop-business/darwin.json b/ee/maintained-apps/outputs/splashtop-business/darwin.json index 0e31f0e9850..7ade345ace5 100644 --- a/ee/maintained-apps/outputs/splashtop-business/darwin.json +++ b/ee/maintained-apps/outputs/splashtop-business/darwin.json @@ -4,7 +4,8 @@ "version": "3.8.4.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.splashtop.stb.macosx';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.splashtop.stb.macosx' AND version_compare(bundle_short_version, '3.8.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.splashtop.stb.macosx' AND version_compare(bundle_short_version, '3.8.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.splashtop.stb.macosx');" }, "installer_url": "https://d17kmd0va0f0mp.cloudfront.net/macclient/STB/Splashtop_Business_Mac_INSTALLER_v3.8.4.0.dmg", "install_script_ref": "c7fac759", diff --git a/ee/maintained-apps/outputs/splashtop-streamer/darwin.json b/ee/maintained-apps/outputs/splashtop-streamer/darwin.json index 268c5cd9820..d454c656544 100644 --- a/ee/maintained-apps/outputs/splashtop-streamer/darwin.json +++ b/ee/maintained-apps/outputs/splashtop-streamer/darwin.json @@ -4,7 +4,8 @@ "version": "3.8.4.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.splashtop.Splashtop-Streamer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.splashtop.Splashtop-Streamer' AND version_compare(bundle_short_version, '3.8.4.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.splashtop.Splashtop-Streamer' AND version_compare(bundle_short_version, '3.8.4.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.splashtop.Splashtop-Streamer');" }, "installer_url": "https://d17kmd0va0f0mp.cloudfront.net/mac/Splashtop_Streamer_Mac_INSTALLER_v3.8.4.2.dmg", "install_script_ref": "6aba2633", diff --git a/ee/maintained-apps/outputs/splice/darwin.json b/ee/maintained-apps/outputs/splice/darwin.json index 14c2ea6c94b..19edb1308d6 100644 --- a/ee/maintained-apps/outputs/splice/darwin.json +++ b/ee/maintained-apps/outputs/splice/darwin.json @@ -4,7 +4,8 @@ "version": "5.4.12", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.splice.Splice';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.splice.Splice' AND version_compare(bundle_short_version, '5.4.12') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.splice.Splice' AND version_compare(bundle_short_version, '5.4.12') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.splice.Splice');" }, "installer_url": "https://desktop.splice.com/conveyor/stable/splice-5.4.12-mac-aarch64.zip", "install_script_ref": "7e24f428", diff --git a/ee/maintained-apps/outputs/spokenly/darwin.json b/ee/maintained-apps/outputs/spokenly/darwin.json index 033a4448963..221c61bd5de 100644 --- a/ee/maintained-apps/outputs/spokenly/darwin.json +++ b/ee/maintained-apps/outputs/spokenly/darwin.json @@ -4,7 +4,8 @@ "version": "2.27.13", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.spokenly';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.spokenly' AND version_compare(bundle_short_version, '2.27.13') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.spokenly' AND version_compare(bundle_short_version, '2.27.13') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.spokenly');" }, "installer_url": "https://cdn.spokenly.app/releases/macos/Spokenly-2.27.13.dmg", "install_script_ref": "11a51e11", diff --git a/ee/maintained-apps/outputs/spotify/darwin.json b/ee/maintained-apps/outputs/spotify/darwin.json index f72f2f8297c..e8e5cc1c126 100644 --- a/ee/maintained-apps/outputs/spotify/darwin.json +++ b/ee/maintained-apps/outputs/spotify/darwin.json @@ -4,7 +4,8 @@ "version": "1.2.95.453", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.spotify.client';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.spotify.client' AND version_compare(bundle_short_version, '1.2.95.453') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.spotify.client' AND version_compare(bundle_short_version, '1.2.95.453') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.spotify.client');" }, "installer_url": "https://download.scdn.co/SpotifyARM64.dmg", "install_script_ref": "b3966e25", diff --git a/ee/maintained-apps/outputs/spotify/windows.json b/ee/maintained-apps/outputs/spotify/windows.json index e658b24f772..e86bffae71b 100644 --- a/ee/maintained-apps/outputs/spotify/windows.json +++ b/ee/maintained-apps/outputs/spotify/windows.json @@ -4,7 +4,8 @@ "version": "1.2.95.453.g0eeebbed", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Spotify' AND publisher = 'Spotify AB';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Spotify' AND publisher = 'Spotify AB' AND version_compare(version, '1.2.95.453.g0eeebbed') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Spotify' AND publisher = 'Spotify AB' AND version_compare(version, '1.2.95.453.g0eeebbed') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('spotify.exe','spotifywebhelper.exe'));" }, "installer_url": "https://download.scdn.co/SpotifyFullSetupX64.exe", "install_script_ref": "7e4727ac", diff --git a/ee/maintained-apps/outputs/spyder/darwin.json b/ee/maintained-apps/outputs/spyder/darwin.json index 040a6b7a6bc..a1b6b36dd96 100644 --- a/ee/maintained-apps/outputs/spyder/darwin.json +++ b/ee/maintained-apps/outputs/spyder/darwin.json @@ -4,7 +4,8 @@ "version": "6.1.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.spyder-ide.Spyder-6';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.spyder-ide.Spyder-6' AND version_compare(bundle_short_version, '6.1.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.spyder-ide.Spyder-6' AND version_compare(bundle_short_version, '6.1.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.spyder-ide.Spyder-6');" }, "installer_url": "https://github.com/spyder-ide/spyder/releases/download/v6.1.6/Spyder-macOS-arm64.pkg", "install_script_ref": "5e2f99cb", diff --git a/ee/maintained-apps/outputs/spyder/windows.json b/ee/maintained-apps/outputs/spyder/windows.json index 9a22fc37a1e..d174da7c779 100644 --- a/ee/maintained-apps/outputs/spyder/windows.json +++ b/ee/maintained-apps/outputs/spyder/windows.json @@ -4,7 +4,8 @@ "version": "6.1.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Spyder %' AND publisher = 'Spyder-IDE';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Spyder %' AND publisher = 'Spyder-IDE' AND version_compare(version, '6.1.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Spyder %' AND publisher = 'Spyder-IDE' AND version_compare(version, '6.1.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'spyder.exe');" }, "installer_url": "https://github.com/spyder-ide/spyder/releases/download/v6.1.6/Spyder-Windows-x86_64.exe", "install_script_ref": "6831586d", diff --git a/ee/maintained-apps/outputs/sql-server-management-studio/windows.json b/ee/maintained-apps/outputs/sql-server-management-studio/windows.json index 0d6b340b72f..5d8e1cf66f5 100644 --- a/ee/maintained-apps/outputs/sql-server-management-studio/windows.json +++ b/ee/maintained-apps/outputs/sql-server-management-studio/windows.json @@ -4,7 +4,8 @@ "version": "22.8.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'SQL Server Management Studio 22';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'SQL Server Management Studio 22' AND version_compare(version, '22.8.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'SQL Server Management Studio 22' AND version_compare(version, '22.8.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'sql server management studio.exe');" }, "installer_url": "https://download.visualstudio.microsoft.com/download/pr/58aec969-7d60-47ab-a001-285ca0c69097/48e041e0c0733e22d9035a085cfea82370c9ca1dc0dcc8f8d2717453f8b5e35f/vs_SSMS.exe", "install_script_ref": "660f158a", diff --git a/ee/maintained-apps/outputs/sqlectron/darwin.json b/ee/maintained-apps/outputs/sqlectron/darwin.json index 46225893b57..2078db49237 100644 --- a/ee/maintained-apps/outputs/sqlectron/darwin.json +++ b/ee/maintained-apps/outputs/sqlectron/darwin.json @@ -4,7 +4,8 @@ "version": "1.39.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.sqlectron.gui';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sqlectron.gui' AND version_compare(bundle_short_version, '1.39.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sqlectron.gui' AND version_compare(bundle_short_version, '1.39.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.sqlectron.gui');" }, "installer_url": "https://github.com/sqlectron/sqlectron-gui/releases/download/v1.39.0/sqlectron-1.39.0-arm64.dmg", "install_script_ref": "6a61a109", diff --git a/ee/maintained-apps/outputs/sqlectron/windows.json b/ee/maintained-apps/outputs/sqlectron/windows.json index 88d2b476c05..c887343864a 100644 --- a/ee/maintained-apps/outputs/sqlectron/windows.json +++ b/ee/maintained-apps/outputs/sqlectron/windows.json @@ -4,7 +4,8 @@ "version": "1.38.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'sqlectron' AND publisher = 'The Sqlectron Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'sqlectron' AND publisher = 'The Sqlectron Team' AND version_compare(version, '1.38.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'sqlectron' AND publisher = 'The Sqlectron Team' AND version_compare(version, '1.38.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'sqlectron.exe');" }, "installer_url": "https://github.com/sqlectron/sqlectron-gui/releases/download/v1.38.0/sqlectron-Setup-1.38.0.exe", "install_script_ref": "45257f64", diff --git a/ee/maintained-apps/outputs/sqlpro-for-mssql/darwin.json b/ee/maintained-apps/outputs/sqlpro-for-mssql/darwin.json index 3b1ebb3bf57..ea93b9bac5c 100644 --- a/ee/maintained-apps/outputs/sqlpro-for-mssql/darwin.json +++ b/ee/maintained-apps/outputs/sqlpro-for-mssql/darwin.json @@ -4,7 +4,8 @@ "version": "2026.173", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankinsoft.osx.tinysqlstudio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankinsoft.osx.tinysqlstudio' AND version_compare(bundle_short_version, '2026.173') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankinsoft.osx.tinysqlstudio' AND version_compare(bundle_short_version, '2026.173') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hankinsoft.osx.tinysqlstudio');" }, "installer_url": "https://d3fwkemdw8spx3.cloudfront.net/mssql/SQLProMSSQL.2026.173.app.zip", "install_script_ref": "84dff611", diff --git a/ee/maintained-apps/outputs/sqlpro-for-mysql/darwin.json b/ee/maintained-apps/outputs/sqlpro-for-mysql/darwin.json index 49b92437d5f..845d99cc984 100644 --- a/ee/maintained-apps/outputs/sqlpro-for-mysql/darwin.json +++ b/ee/maintained-apps/outputs/sqlpro-for-mysql/darwin.json @@ -4,7 +4,8 @@ "version": "2026.173", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankinsoft.osx.mysql';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankinsoft.osx.mysql' AND version_compare(bundle_short_version, '2026.173') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankinsoft.osx.mysql' AND version_compare(bundle_short_version, '2026.173') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hankinsoft.osx.mysql');" }, "installer_url": "https://d3fwkemdw8spx3.cloudfront.net/mysql/SQLProMySQL.2026.173.app.zip", "install_script_ref": "335ab740", diff --git a/ee/maintained-apps/outputs/sqlpro-for-postgres/darwin.json b/ee/maintained-apps/outputs/sqlpro-for-postgres/darwin.json index 1f8acc5d871..82e82d3edbf 100644 --- a/ee/maintained-apps/outputs/sqlpro-for-postgres/darwin.json +++ b/ee/maintained-apps/outputs/sqlpro-for-postgres/darwin.json @@ -4,7 +4,8 @@ "version": "2026.87", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankinsoft.osx.SQLProPostgres';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankinsoft.osx.SQLProPostgres' AND version_compare(bundle_short_version, '2026.87') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankinsoft.osx.SQLProPostgres' AND version_compare(bundle_short_version, '2026.87') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hankinsoft.osx.SQLProPostgres');" }, "installer_url": "https://d3fwkemdw8spx3.cloudfront.net/postgres/SQLProPostgres.2026.87.app.zip", "install_script_ref": "d3880107", diff --git a/ee/maintained-apps/outputs/sqlpro-for-sqlite/darwin.json b/ee/maintained-apps/outputs/sqlpro-for-sqlite/darwin.json index e68d9f01d3d..fd8c363adce 100644 --- a/ee/maintained-apps/outputs/sqlpro-for-sqlite/darwin.json +++ b/ee/maintained-apps/outputs/sqlpro-for-sqlite/darwin.json @@ -4,7 +4,8 @@ "version": "2026.85", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankinsoft.osx.sqliteprofessional';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankinsoft.osx.sqliteprofessional' AND version_compare(bundle_short_version, '2026.85') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankinsoft.osx.sqliteprofessional' AND version_compare(bundle_short_version, '2026.85') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hankinsoft.osx.sqliteprofessional');" }, "installer_url": "https://d3fwkemdw8spx3.cloudfront.net/sqlite/SQLProSQLite.2026.85.app.zip", "install_script_ref": "ade83fc9", diff --git a/ee/maintained-apps/outputs/sqlpro-studio/darwin.json b/ee/maintained-apps/outputs/sqlpro-studio/darwin.json index fc7e713ed9a..b65819f4022 100644 --- a/ee/maintained-apps/outputs/sqlpro-studio/darwin.json +++ b/ee/maintained-apps/outputs/sqlpro-studio/darwin.json @@ -4,7 +4,8 @@ "version": "2026.87", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankinsoft.osx.sqlprostudio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankinsoft.osx.sqlprostudio' AND version_compare(bundle_short_version, '2026.87') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hankinsoft.osx.sqlprostudio' AND version_compare(bundle_short_version, '2026.87') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hankinsoft.osx.sqlprostudio');" }, "installer_url": "https://d3fwkemdw8spx3.cloudfront.net/studio/SQLProStudio.2026.87.app.zip", "install_script_ref": "5a9c7efe", diff --git a/ee/maintained-apps/outputs/squash/darwin.json b/ee/maintained-apps/outputs/squash/darwin.json index 0059423f369..d436234742d 100644 --- a/ee/maintained-apps/outputs/squash/darwin.json +++ b/ee/maintained-apps/outputs/squash/darwin.json @@ -4,7 +4,8 @@ "version": "3.3.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.realmacsoftware.squash3';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.realmacsoftware.squash3' AND version_compare(bundle_short_version, '3.3.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.realmacsoftware.squash3' AND version_compare(bundle_short_version, '3.3.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.realmacsoftware.squash3');" }, "installer_url": "https://dl.devant-cdn.io/v1/app/4ad73d1f-7ab7-4f7f-b9df-8d2d906ef718/Squash-913.zip/Squash.zip", "install_script_ref": "b9242614", diff --git a/ee/maintained-apps/outputs/ssh-config-editor/darwin.json b/ee/maintained-apps/outputs/ssh-config-editor/darwin.json index 7d0affc20f2..26c010084bc 100644 --- a/ee/maintained-apps/outputs/ssh-config-editor/darwin.json +++ b/ee/maintained-apps/outputs/ssh-config-editor/darwin.json @@ -4,7 +4,8 @@ "version": "2.6.11", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.hejki.osx.sshce';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.hejki.osx.sshce' AND version_compare(bundle_short_version, '2.6.11') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.hejki.osx.sshce' AND version_compare(bundle_short_version, '2.6.11') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.hejki.osx.sshce');" }, "installer_url": "https://hejki.org/download/ssheditor/SSHConfigEditor-112.dmg", "install_script_ref": "d834bc49", diff --git a/ee/maintained-apps/outputs/standard-notes/darwin.json b/ee/maintained-apps/outputs/standard-notes/darwin.json index c396d005324..7456696c276 100644 --- a/ee/maintained-apps/outputs/standard-notes/darwin.json +++ b/ee/maintained-apps/outputs/standard-notes/darwin.json @@ -4,7 +4,8 @@ "version": "3.201.21", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.standardnotes.standardnotes';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.standardnotes.standardnotes' AND version_compare(bundle_short_version, '3.201.21') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.standardnotes.standardnotes' AND version_compare(bundle_short_version, '3.201.21') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.standardnotes.standardnotes');" }, "installer_url": "https://github.com/standardnotes/app/releases/download/%40standardnotes%2Fdesktop%403.201.21/standard-notes-3.201.21-mac-arm64.zip", "install_script_ref": "ebbcc8bc", diff --git a/ee/maintained-apps/outputs/standard-notes/windows.json b/ee/maintained-apps/outputs/standard-notes/windows.json index cd600b4d91f..83c6180deda 100644 --- a/ee/maintained-apps/outputs/standard-notes/windows.json +++ b/ee/maintained-apps/outputs/standard-notes/windows.json @@ -4,7 +4,8 @@ "version": "3.201.21", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Standard Notes %' AND publisher = 'Standard Notes';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Standard Notes %' AND publisher = 'Standard Notes' AND version_compare(version, '3.201.21') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Standard Notes %' AND publisher = 'Standard Notes' AND version_compare(version, '3.201.21') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'standard notes.exe');" }, "installer_url": "https://github.com/standardnotes/app/releases/download/@standardnotes/desktop@3.201.21/standard-notes-3.201.21-win-x64.exe", "install_script_ref": "45257f64", diff --git a/ee/maintained-apps/outputs/staruml/darwin.json b/ee/maintained-apps/outputs/staruml/darwin.json index 8c0519c8b23..5de0dfbcf6e 100644 --- a/ee/maintained-apps/outputs/staruml/darwin.json +++ b/ee/maintained-apps/outputs/staruml/darwin.json @@ -4,7 +4,8 @@ "version": "6.3.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.staruml.staruml';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.staruml.staruml' AND version_compare(bundle_short_version, '6.3.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.staruml.staruml' AND version_compare(bundle_short_version, '6.3.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.staruml.staruml');" }, "installer_url": "https://files.staruml.io/releases-v6/StarUML-6.3.4-arm64.dmg", "install_script_ref": "02f91885", diff --git a/ee/maintained-apps/outputs/stats/darwin.json b/ee/maintained-apps/outputs/stats/darwin.json index 9957c96465a..097e14239fa 100644 --- a/ee/maintained-apps/outputs/stats/darwin.json +++ b/ee/maintained-apps/outputs/stats/darwin.json @@ -4,7 +4,8 @@ "version": "3.0.10", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'eu.exelban.Stats';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'eu.exelban.Stats' AND version_compare(bundle_short_version, '3.0.10') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'eu.exelban.Stats' AND version_compare(bundle_short_version, '3.0.10') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'eu.exelban.Stats');" }, "installer_url": "https://github.com/exelban/stats/releases/download/v3.0.10/Stats.dmg", "install_script_ref": "f0bd0f4d", diff --git a/ee/maintained-apps/outputs/steam/darwin.json b/ee/maintained-apps/outputs/steam/darwin.json index 2f2c8460bc0..e9354653243 100644 --- a/ee/maintained-apps/outputs/steam/darwin.json +++ b/ee/maintained-apps/outputs/steam/darwin.json @@ -4,7 +4,8 @@ "version": "6.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.valvesoftware.steam';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.valvesoftware.steam' AND version_compare(bundle_version, '6.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.valvesoftware.steam' AND version_compare(bundle_version, '6.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.valvesoftware.steam');" }, "installer_url": "https://cdn.cloudflare.steamstatic.com/client/installer/steam.dmg", "install_script_ref": "45a6174b", diff --git a/ee/maintained-apps/outputs/steam/windows.json b/ee/maintained-apps/outputs/steam/windows.json index 78283286952..1aab06bff0b 100644 --- a/ee/maintained-apps/outputs/steam/windows.json +++ b/ee/maintained-apps/outputs/steam/windows.json @@ -4,7 +4,8 @@ "version": "2.10.91.91", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Steam' AND publisher = 'Valve Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Steam' AND publisher = 'Valve Corporation' AND version_compare(version, '2.10.91.91') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Steam' AND publisher = 'Valve Corporation' AND version_compare(version, '2.10.91.91') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'steam.exe');" }, "installer_url": "https://cdn.akamai.steamstatic.com/client/installer/SteamSetup.exe", "install_script_ref": "abd50ee4", diff --git a/ee/maintained-apps/outputs/steermouse/darwin.json b/ee/maintained-apps/outputs/steermouse/darwin.json index aa7f91b9505..836f688f0b6 100644 --- a/ee/maintained-apps/outputs/steermouse/darwin.json +++ b/ee/maintained-apps/outputs/steermouse/darwin.json @@ -4,7 +4,8 @@ "version": "5.7.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'jp.plentycom.app.SteerMouse';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'jp.plentycom.app.SteerMouse' AND version_compare(bundle_short_version, '5.7.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'jp.plentycom.app.SteerMouse' AND version_compare(bundle_short_version, '5.7.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'jp.plentycom.app.SteerMouse');" }, "installer_url": "https://plentycom.jp/ctrl/files_sm/SteerMouse5.7.8.dmg", "install_script_ref": "47511c6c", diff --git a/ee/maintained-apps/outputs/stellarium/darwin.json b/ee/maintained-apps/outputs/stellarium/darwin.json index 331eab4e8e3..21a1020ca26 100644 --- a/ee/maintained-apps/outputs/stellarium/darwin.json +++ b/ee/maintained-apps/outputs/stellarium/darwin.json @@ -4,7 +4,8 @@ "version": "26.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.stellarium.Stellarium';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.stellarium.Stellarium' AND version_compare(bundle_short_version, '26.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.stellarium.Stellarium' AND version_compare(bundle_short_version, '26.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.stellarium.Stellarium');" }, "installer_url": "https://github.com/Stellarium/stellarium/releases/download/v26.2/Stellarium-26.2-qt6-macOS.zip", "install_script_ref": "8e27f43a", diff --git a/ee/maintained-apps/outputs/stillcolor/darwin.json b/ee/maintained-apps/outputs/stillcolor/darwin.json index 09de403d3f9..2f8d21f7adb 100644 --- a/ee/maintained-apps/outputs/stillcolor/darwin.json +++ b/ee/maintained-apps/outputs/stillcolor/darwin.json @@ -4,7 +4,8 @@ "version": "1.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.makkuk.Stillcolor';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.makkuk.Stillcolor' AND version_compare(bundle_short_version, '1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.makkuk.Stillcolor' AND version_compare(bundle_short_version, '1.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.makkuk.Stillcolor');" }, "installer_url": "https://github.com/aiaf/Stillcolor/releases/download/v1.1/Stillcolor-v1.1.zip", "install_script_ref": "507ca053", diff --git a/ee/maintained-apps/outputs/stretchly/darwin.json b/ee/maintained-apps/outputs/stretchly/darwin.json index 588bba824c0..128f8261d35 100644 --- a/ee/maintained-apps/outputs/stretchly/darwin.json +++ b/ee/maintained-apps/outputs/stretchly/darwin.json @@ -4,7 +4,8 @@ "version": "1.22.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.hovancik.stretchly';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.hovancik.stretchly' AND version_compare(bundle_short_version, '1.22.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.hovancik.stretchly' AND version_compare(bundle_short_version, '1.22.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.hovancik.stretchly');" }, "installer_url": "https://github.com/hovancik/stretchly/releases/download/v1.22.0/stretchly-1.22.0-arm64.dmg", "install_script_ref": "b676d2d0", diff --git a/ee/maintained-apps/outputs/stretchly/windows.json b/ee/maintained-apps/outputs/stretchly/windows.json index 3db592271f8..38e85e83123 100644 --- a/ee/maintained-apps/outputs/stretchly/windows.json +++ b/ee/maintained-apps/outputs/stretchly/windows.json @@ -4,7 +4,8 @@ "version": "1.22.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Stretchly %' AND publisher = 'Jan Hovancik';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Stretchly %' AND publisher = 'Jan Hovancik' AND version_compare(version, '1.22.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Stretchly %' AND publisher = 'Jan Hovancik' AND version_compare(version, '1.22.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'stretchly.exe');" }, "installer_url": "https://github.com/hovancik/stretchly/releases/download/v1.22.0/Stretchly-Setup-1.22.0.exe", "install_script_ref": "45257f64", diff --git a/ee/maintained-apps/outputs/sublime-merge/darwin.json b/ee/maintained-apps/outputs/sublime-merge/darwin.json index 509babaa4f1..67f23f09973 100644 --- a/ee/maintained-apps/outputs/sublime-merge/darwin.json +++ b/ee/maintained-apps/outputs/sublime-merge/darwin.json @@ -4,7 +4,8 @@ "version": "Build 2125", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sublimemerge';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sublimemerge' AND version_compare(bundle_short_version, 'Build 2125') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sublimemerge' AND version_compare(bundle_short_version, 'Build 2125') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sublimemerge');" }, "installer_url": "https://download.sublimetext.com/sublime_merge_build_2125_mac.zip", "install_script_ref": "75ca39c9", diff --git a/ee/maintained-apps/outputs/sublime-text/darwin.json b/ee/maintained-apps/outputs/sublime-text/darwin.json index 987fb549e9b..1ad1732edca 100644 --- a/ee/maintained-apps/outputs/sublime-text/darwin.json +++ b/ee/maintained-apps/outputs/sublime-text/darwin.json @@ -4,7 +4,8 @@ "version": "Build 4200", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sublimetext.4';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sublimetext.4' AND version_compare(bundle_short_version, 'Build 4200') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sublimetext.4' AND version_compare(bundle_short_version, 'Build 4200') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sublimetext.4');" }, "installer_url": "https://download.sublimetext.com/sublime_text_build_4200_mac.zip", "install_script_ref": "ba905969", diff --git a/ee/maintained-apps/outputs/sublime-text/windows.json b/ee/maintained-apps/outputs/sublime-text/windows.json index 7f3a8fa5fe7..c9cc17e083f 100644 --- a/ee/maintained-apps/outputs/sublime-text/windows.json +++ b/ee/maintained-apps/outputs/sublime-text/windows.json @@ -4,7 +4,8 @@ "version": "4.0.0.420000", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Sublime Text' AND publisher = 'Sublime HQ Pty Ltd';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Sublime Text' AND publisher = 'Sublime HQ Pty Ltd' AND version_compare(version, '4.0.0.420000') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Sublime Text' AND publisher = 'Sublime HQ Pty Ltd' AND version_compare(version, '4.0.0.420000') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'sublime_text.exe');" }, "installer_url": "https://download.sublimetext.com/sublime_text_build_4200_x64_setup.exe", "install_script_ref": "ab680647", diff --git a/ee/maintained-apps/outputs/super-productivity/darwin.json b/ee/maintained-apps/outputs/super-productivity/darwin.json index a68a24f4074..f53d1fbde4b 100644 --- a/ee/maintained-apps/outputs/super-productivity/darwin.json +++ b/ee/maintained-apps/outputs/super-productivity/darwin.json @@ -4,7 +4,8 @@ "version": "18.16.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.super-productivity.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.super-productivity.app' AND version_compare(bundle_short_version, '18.16.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.super-productivity.app' AND version_compare(bundle_short_version, '18.16.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.super-productivity.app');" }, "installer_url": "https://github.com/super-productivity/super-productivity/releases/download/v18.16.0/superProductivity-arm64.dmg", "install_script_ref": "a24d4602", diff --git a/ee/maintained-apps/outputs/supercollider/darwin.json b/ee/maintained-apps/outputs/supercollider/darwin.json index 32bd0a4f717..e5e67fb33c5 100644 --- a/ee/maintained-apps/outputs/supercollider/darwin.json +++ b/ee/maintained-apps/outputs/supercollider/darwin.json @@ -4,7 +4,8 @@ "version": "3.14.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.sourceforge.supercollider';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.sourceforge.supercollider' AND version_compare(bundle_short_version, '3.14.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.sourceforge.supercollider' AND version_compare(bundle_short_version, '3.14.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.sourceforge.supercollider');" }, "installer_url": "https://github.com/supercollider/supercollider/releases/download/Version-3.14.1/SuperCollider-3.14.1-macOS-universal.dmg", "install_script_ref": "f0105dc0", diff --git a/ee/maintained-apps/outputs/supercollider/windows.json b/ee/maintained-apps/outputs/supercollider/windows.json index f78931c0aad..8ca5aea3e8f 100644 --- a/ee/maintained-apps/outputs/supercollider/windows.json +++ b/ee/maintained-apps/outputs/supercollider/windows.json @@ -4,7 +4,8 @@ "version": "3.14.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'SuperCollider' AND publisher = 'SuperCollider Community';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'SuperCollider' AND publisher = 'SuperCollider Community' AND version_compare(version, '3.14.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'SuperCollider' AND publisher = 'SuperCollider Community' AND version_compare(version, '3.14.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'supercollider.exe');" }, "installer_url": "https://github.com/supercollider/supercollider/releases/download/Version-3.14.1/SuperCollider-3.14.1_Release-x64-VS-426edf6.exe", "install_script_ref": "45257f64", diff --git a/ee/maintained-apps/outputs/superhuman/darwin.json b/ee/maintained-apps/outputs/superhuman/darwin.json index 3f367179a20..adc45fe2dda 100644 --- a/ee/maintained-apps/outputs/superhuman/darwin.json +++ b/ee/maintained-apps/outputs/superhuman/darwin.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "1041.0.28", + "version": "1041.0.29", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.superhuman.mail';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.superhuman.mail' AND version_compare(bundle_short_version, '1041.0.28') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.superhuman.mail' AND version_compare(bundle_short_version, '1041.0.29') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.superhuman.mail');" }, - "installer_url": "https://storage.googleapis.com/download.superhuman.com/supertron-update/Superhuman-1041.0.28-arm64-latest-mac.zip", + "installer_url": "https://storage.googleapis.com/download.superhuman.com/supertron-update/Superhuman-1041.0.29-arm64-latest-mac.zip", "install_script_ref": "7e74bd96", "uninstall_script_ref": "1809183d", - "sha256": "3aeb556eee900474ff86e3f35fa6c7b042bc1008c73b3ec5d9f34672bf17b080", + "sha256": "b4c2582da79eb9a6aa09bc362a8cc966a888e64cbe7996ca6c614625ec89e461", "default_categories": [ "Communication" ] diff --git a/ee/maintained-apps/outputs/superkey/darwin.json b/ee/maintained-apps/outputs/superkey/darwin.json index 446c8d12b20..06cffecf4fd 100644 --- a/ee/maintained-apps/outputs/superkey/darwin.json +++ b/ee/maintained-apps/outputs/superkey/darwin.json @@ -4,7 +4,8 @@ "version": "1.66", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.Superkey';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.Superkey' AND version_compare(bundle_short_version, '1.66') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.knollsoft.Superkey' AND version_compare(bundle_short_version, '1.66') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.knollsoft.Superkey');" }, "installer_url": "https://superkey.app/downloads/Superkey1.66.dmg", "install_script_ref": "0ae2e49b", diff --git a/ee/maintained-apps/outputs/superwhisper/darwin.json b/ee/maintained-apps/outputs/superwhisper/darwin.json index 39702746ef3..1e775ccfc55 100644 --- a/ee/maintained-apps/outputs/superwhisper/darwin.json +++ b/ee/maintained-apps/outputs/superwhisper/darwin.json @@ -4,7 +4,8 @@ "version": "2.17.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.superduper.superwhisper';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.superduper.superwhisper' AND version_compare(bundle_short_version, '2.17.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.superduper.superwhisper' AND version_compare(bundle_short_version, '2.17.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.superduper.superwhisper');" }, "installer_url": "https://builds.superwhisper.com/v2.17.2/superwhisper.zip", "install_script_ref": "8f427eb4", diff --git a/ee/maintained-apps/outputs/supportcompanion/darwin.json b/ee/maintained-apps/outputs/supportcompanion/darwin.json index 5efdace1943..2d6612b2c94 100644 --- a/ee/maintained-apps/outputs/supportcompanion/darwin.json +++ b/ee/maintained-apps/outputs/supportcompanion/darwin.json @@ -4,7 +4,8 @@ "version": "2.3.1.81039", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.macadmins.SupportCompanion';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.macadmins.SupportCompanion' AND version_compare(bundle_short_version, '2.3.1.81039') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.macadmins.SupportCompanion' AND version_compare(bundle_short_version, '2.3.1.81039') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.github.macadmins.SupportCompanion');" }, "installer_url": "https://github.com/macadmins/SupportCompanion/releases/download/v2.3.1.81039/SupportCompanion-2.3.1.81039.pkg", "install_script_ref": "30035b0e", diff --git a/ee/maintained-apps/outputs/surfshark/darwin.json b/ee/maintained-apps/outputs/surfshark/darwin.json index f0aa30a934e..16445b9c980 100644 --- a/ee/maintained-apps/outputs/surfshark/darwin.json +++ b/ee/maintained-apps/outputs/surfshark/darwin.json @@ -4,7 +4,8 @@ "version": "4.28.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.surfshark.vpnclient.macos.direct';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.surfshark.vpnclient.macos.direct' AND version_compare(bundle_short_version, '4.28.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.surfshark.vpnclient.macos.direct' AND version_compare(bundle_short_version, '4.28.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.surfshark.vpnclient.macos.direct');" }, "installer_url": "https://downloads.surfshark.com/macOS/stable/4.28.1/4373/Surfshark.dmg", "install_script_ref": "d4776102", diff --git a/ee/maintained-apps/outputs/surge/darwin.json b/ee/maintained-apps/outputs/surge/darwin.json index c1e7be44d48..10cab19b463 100644 --- a/ee/maintained-apps/outputs/surge/darwin.json +++ b/ee/maintained-apps/outputs/surge/darwin.json @@ -1,15 +1,16 @@ { "versions": [ { - "version": "6.7.0", + "version": "6.8.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nssurge.surge-mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nssurge.surge-mac' AND version_compare(bundle_short_version, '6.7.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nssurge.surge-mac' AND version_compare(bundle_short_version, '6.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.nssurge.surge-mac');" }, - "installer_url": "https://dl.nssurge.com/mac/v6/Surge-6.7.0-11730-0a67faa98116f98471bc09b946def542.zip", + "installer_url": "https://dl.nssurge.com/mac/v6/Surge-6.8.0-11990-f036c2c1b04dd8ce81d8aec114ccfdcf.zip", "install_script_ref": "591d4936", "uninstall_script_ref": "73bb9941", - "sha256": "1bd02385a7232551f4ea62c48cc834e7a46a2fde01d69fe328e10639113ee331", + "sha256": "fa4391417cca53a1efba5c67944af28c28445ac314c1bdf53d99c0314863e125", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/suspicious-package/darwin.json b/ee/maintained-apps/outputs/suspicious-package/darwin.json index 4e3a67b14bd..20212e08d5e 100644 --- a/ee/maintained-apps/outputs/suspicious-package/darwin.json +++ b/ee/maintained-apps/outputs/suspicious-package/darwin.json @@ -4,7 +4,8 @@ "version": "4.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.SuspiciousPackageApp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.SuspiciousPackageApp' AND version_compare(bundle_short_version, '4.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.SuspiciousPackageApp' AND version_compare(bundle_short_version, '4.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mothersruin.SuspiciousPackageApp');" }, "installer_url": "https://www.mothersruin.com/software/archives/SuspiciousPackage-4.7.dmg", "install_script_ref": "0cdf9027", diff --git a/ee/maintained-apps/outputs/swiftbar/darwin.json b/ee/maintained-apps/outputs/swiftbar/darwin.json index bea6d4c0b12..d81662cbb48 100644 --- a/ee/maintained-apps/outputs/swiftbar/darwin.json +++ b/ee/maintained-apps/outputs/swiftbar/darwin.json @@ -4,7 +4,8 @@ "version": "2.0.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ameba.SwiftBar';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ameba.SwiftBar' AND version_compare(bundle_short_version, '2.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ameba.SwiftBar' AND version_compare(bundle_short_version, '2.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ameba.SwiftBar');" }, "installer_url": "https://github.com/swiftbar/SwiftBar/releases/download/v2.0.1/SwiftBar.v2.0.1.b536.zip", "install_script_ref": "3c4a3d83", diff --git a/ee/maintained-apps/outputs/swiftdialog/darwin.json b/ee/maintained-apps/outputs/swiftdialog/darwin.json index 12337691023..2e6a64ebe76 100644 --- a/ee/maintained-apps/outputs/swiftdialog/darwin.json +++ b/ee/maintained-apps/outputs/swiftdialog/darwin.json @@ -4,7 +4,8 @@ "version": "3.1.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'au.csiro.dialog' AND path != '/opt/orbit/bin/swiftDialog/macos/stable/Dialog.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'au.csiro.dialog' AND path != '/opt/orbit/bin/swiftDialog/macos/stable/Dialog.app' AND version_compare(bundle_short_version, '3.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'au.csiro.dialog' AND path != '/opt/orbit/bin/swiftDialog/macos/stable/Dialog.app' AND version_compare(bundle_short_version, '3.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'au.csiro.dialog');" }, "installer_url": "https://github.com/swiftDialog/swiftDialog/releases/download/v3.1.0/dialog-3.1.0-4994.pkg", "install_script_ref": "8bd8ae52", diff --git a/ee/maintained-apps/outputs/swifty/darwin.json b/ee/maintained-apps/outputs/swifty/darwin.json index 104553ec322..06057542335 100644 --- a/ee/maintained-apps/outputs/swifty/darwin.json +++ b/ee/maintained-apps/outputs/swifty/darwin.json @@ -4,7 +4,8 @@ "version": "0.6.13", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.swifty';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.swifty' AND version_compare(bundle_short_version, '0.6.13') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.swifty' AND version_compare(bundle_short_version, '0.6.13') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.swifty');" }, "installer_url": "https://github.com/swiftyapp/swifty/releases/download/v0.6.13/Swifty-0.6.13.dmg", "install_script_ref": "1772c8fe", diff --git a/ee/maintained-apps/outputs/swish/darwin.json b/ee/maintained-apps/outputs/swish/darwin.json index 2ced02df5a4..ff1e359c156 100644 --- a/ee/maintained-apps/outputs/swish/darwin.json +++ b/ee/maintained-apps/outputs/swish/darwin.json @@ -4,7 +4,8 @@ "version": "1.13.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'co.highlyopinionated.swish';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.highlyopinionated.swish' AND version_compare(bundle_short_version, '1.13.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.highlyopinionated.swish' AND version_compare(bundle_short_version, '1.13.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'co.highlyopinionated.swish');" }, "installer_url": "https://github.com/chrenn/swish-dl/releases/download/1.13.2/Swish.dmg", "install_script_ref": "511b5d0f", diff --git a/ee/maintained-apps/outputs/sync/darwin.json b/ee/maintained-apps/outputs/sync/darwin.json index 033fb0e27f5..00dd898e519 100644 --- a/ee/maintained-apps/outputs/sync/darwin.json +++ b/ee/maintained-apps/outputs/sync/darwin.json @@ -4,7 +4,8 @@ "version": "2.2.61", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sync.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sync.desktop' AND version_compare(bundle_short_version, '2.2.61') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sync.desktop' AND version_compare(bundle_short_version, '2.2.61') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sync.desktop');" }, "installer_url": "https://www10.sync.com/download/apple/Sync-2.2.61.dmg", "install_script_ref": "6caa9cd1", diff --git a/ee/maintained-apps/outputs/syncmate/darwin.json b/ee/maintained-apps/outputs/syncmate/darwin.json index a5c64a4da33..963ceb48d28 100644 --- a/ee/maintained-apps/outputs/syncmate/darwin.json +++ b/ee/maintained-apps/outputs/syncmate/darwin.json @@ -4,7 +4,8 @@ "version": "8.10.575", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.eltima.SyncMate.com.eltima.SyncMateService';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.eltima.SyncMate.com.eltima.SyncMateService' AND version_compare(bundle_short_version, '8.10.575') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.eltima.SyncMate.com.eltima.SyncMateService' AND version_compare(bundle_short_version, '8.10.575') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.eltima.SyncMate.com.eltima.SyncMateService');" }, "installer_url": "https://cdn.electronic.us/products/syncmate/mac/update/SyncMate_8.10.575.zip", "install_script_ref": "7cea8136", diff --git a/ee/maintained-apps/outputs/syncovery/darwin.json b/ee/maintained-apps/outputs/syncovery/darwin.json index e52cc6e4ffb..e65d272377e 100644 --- a/ee/maintained-apps/outputs/syncovery/darwin.json +++ b/ee/maintained-apps/outputs/syncovery/darwin.json @@ -4,7 +4,8 @@ "version": "11.16.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.company.Syncovery';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.company.Syncovery' AND version_compare(bundle_short_version, '11.16.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.company.Syncovery' AND version_compare(bundle_short_version, '11.16.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.company.Syncovery');" }, "installer_url": "https://www.syncovery.com/release/SyncoveryMac11.16.0-Apple.dmg", "install_script_ref": "2ad0e63a", diff --git a/ee/maintained-apps/outputs/syncthing-app/darwin.json b/ee/maintained-apps/outputs/syncthing-app/darwin.json index 10f5bef2216..b42ea17d57d 100644 --- a/ee/maintained-apps/outputs/syncthing-app/darwin.json +++ b/ee/maintained-apps/outputs/syncthing-app/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.2-1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.xor-gate.syncthing-macosx';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.xor-gate.syncthing-macosx' AND version_compare(bundle_short_version, '2.1.2-1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.github.xor-gate.syncthing-macosx' AND version_compare(bundle_short_version, '2.1.2-1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.github.xor-gate.syncthing-macosx');" }, "installer_url": "https://github.com/syncthing/syncthing-macos/releases/download/v2.1.2-1/Syncthing-2.1.2-1.dmg", "install_script_ref": "dd933ca0", diff --git a/ee/maintained-apps/outputs/syntax-highlight/darwin.json b/ee/maintained-apps/outputs/syntax-highlight/darwin.json index 87444cf3832..80a4bbd77f8 100644 --- a/ee/maintained-apps/outputs/syntax-highlight/darwin.json +++ b/ee/maintained-apps/outputs/syntax-highlight/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.30", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.sbarex.SourceCodeSyntaxHighlight';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sbarex.SourceCodeSyntaxHighlight' AND version_compare(bundle_short_version, '2.1.30') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sbarex.SourceCodeSyntaxHighlight' AND version_compare(bundle_short_version, '2.1.30') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.sbarex.SourceCodeSyntaxHighlight');" }, "installer_url": "https://github.com/sbarex/SourceCodeSyntaxHighlight/releases/download/2.1.30/Syntax.Highlight.zip", "install_script_ref": "4e446e0f", diff --git a/ee/maintained-apps/outputs/tabby/darwin.json b/ee/maintained-apps/outputs/tabby/darwin.json index 9c78ea5f069..8de36db38f4 100644 --- a/ee/maintained-apps/outputs/tabby/darwin.json +++ b/ee/maintained-apps/outputs/tabby/darwin.json @@ -4,7 +4,8 @@ "version": "1.0.235", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.tabby';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.tabby' AND version_compare(bundle_short_version, '1.0.235') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.tabby' AND version_compare(bundle_short_version, '1.0.235') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.tabby');" }, "installer_url": "https://github.com/Eugeny/tabby/releases/download/v1.0.235/tabby-1.0.235-macos-arm64.zip", "install_script_ref": "4aeb220e", diff --git a/ee/maintained-apps/outputs/tableau-desktop/windows.json b/ee/maintained-apps/outputs/tableau-desktop/windows.json index 57b8c415490..18fef979829 100644 --- a/ee/maintained-apps/outputs/tableau-desktop/windows.json +++ b/ee/maintained-apps/outputs/tableau-desktop/windows.json @@ -4,7 +4,8 @@ "version": "24.3.965", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Tableau 20%' AND publisher = 'Tableau Software, LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Tableau 20%' AND publisher = 'Tableau Software, LLC' AND version_compare(version, '24.3.965') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Tableau 20%' AND publisher = 'Tableau Software, LLC' AND version_compare(version, '24.3.965') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'tableau desktop.exe');" }, "installer_url": "https://downloads.tableau.com/esdalt/2024.3.4/TableauDesktop-64bit-2024-3-4.exe", "install_script_ref": "e460cb4a", diff --git a/ee/maintained-apps/outputs/tableau-prep/darwin.json b/ee/maintained-apps/outputs/tableau-prep/darwin.json index dcec7e67e21..c171b952f3f 100644 --- a/ee/maintained-apps/outputs/tableau-prep/darwin.json +++ b/ee/maintained-apps/outputs/tableau-prep/darwin.json @@ -4,7 +4,8 @@ "version": "2026.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.tableau.Tableau-Prep-tableau-2026-1';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tableau.Tableau-Prep-tableau-2026-1' AND version_compare(bundle_short_version, '2026.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tableau.Tableau-Prep-tableau-2026-1' AND version_compare(bundle_short_version, '2026.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.tableau.Tableau-Prep-tableau-2026-1');" }, "installer_url": "https://downloads.tableau.com/esdalt/tableau_prep/2026.2.1/TableauPrep-2026-2-1-arm64.dmg", "install_script_ref": "bb1a979c", diff --git a/ee/maintained-apps/outputs/tableau/darwin.json b/ee/maintained-apps/outputs/tableau/darwin.json index aa94bb6c9cb..94c98b77407 100644 --- a/ee/maintained-apps/outputs/tableau/darwin.json +++ b/ee/maintained-apps/outputs/tableau/darwin.json @@ -4,7 +4,8 @@ "version": "2026.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.tableausoftware.Desktop.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tableausoftware.Desktop.app' AND version_compare(bundle_short_version, '2026.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tableausoftware.Desktop.app' AND version_compare(bundle_short_version, '2026.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.tableausoftware.Desktop.app');" }, "installer_url": "https://downloads.tableau.com/esdalt/2026.2.1/TableauDesktop-2026-2-1-arm64.dmg", "install_script_ref": "85765397", diff --git a/ee/maintained-apps/outputs/tableplus/darwin.json b/ee/maintained-apps/outputs/tableplus/darwin.json index 9bdbe6cbdf9..3dc44d62ccf 100644 --- a/ee/maintained-apps/outputs/tableplus/darwin.json +++ b/ee/maintained-apps/outputs/tableplus/darwin.json @@ -4,7 +4,8 @@ "version": "26.8.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.tinyapp.TablePlus';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tinyapp.TablePlus' AND version_compare(bundle_short_version, '26.8.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tinyapp.TablePlus' AND version_compare(bundle_short_version, '26.8.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.tinyapp.TablePlus');" }, "installer_url": "https://files.tableplus.com/macos/752/TablePlus.dmg", "install_script_ref": "b7b75762", diff --git a/ee/maintained-apps/outputs/tableplus/windows.json b/ee/maintained-apps/outputs/tableplus/windows.json index 37d5ffdf31d..6c038206fb6 100644 --- a/ee/maintained-apps/outputs/tableplus/windows.json +++ b/ee/maintained-apps/outputs/tableplus/windows.json @@ -4,7 +4,8 @@ "version": "26.8.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'TablePlus%' AND publisher = 'TablePlus, Inc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'TablePlus%' AND publisher = 'TablePlus, Inc' AND version_compare(version, '26.8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'TablePlus%' AND publisher = 'TablePlus, Inc' AND version_compare(version, '26.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'tableplus.exe');" }, "installer_url": "https://files.tableplus.com/windows/26.8.0/TablePlusSetup.exe", "install_script_ref": "052dc935", diff --git a/ee/maintained-apps/outputs/tabtab/darwin.json b/ee/maintained-apps/outputs/tabtab/darwin.json index e8ec17014b1..7005885ee20 100644 --- a/ee/maintained-apps/outputs/tabtab/darwin.json +++ b/ee/maintained-apps/outputs/tabtab/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'riccqi.TabTab';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'riccqi.TabTab' AND version_compare(bundle_short_version, '2.1.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'riccqi.TabTab' AND version_compare(bundle_short_version, '2.1.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'riccqi.TabTab');" }, "installer_url": "https://github.com/riccqi/TabTabApp/releases/download/prod/tabtab.dmg", "install_script_ref": "e3113bb3", diff --git a/ee/maintained-apps/outputs/tailscale-app/darwin.json b/ee/maintained-apps/outputs/tailscale-app/darwin.json index 1f1829f8e59..78f7e18a80e 100644 --- a/ee/maintained-apps/outputs/tailscale-app/darwin.json +++ b/ee/maintained-apps/outputs/tailscale-app/darwin.json @@ -4,7 +4,8 @@ "version": "1.102.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.tailscale.ipn.macsys';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.tailscale.ipn.macsys' AND version_compare(bundle_short_version, '1.102.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.tailscale.ipn.macsys' AND version_compare(bundle_short_version, '1.102.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.tailscale.ipn.macsys');" }, "installer_url": "https://pkgs.tailscale.com/stable/Tailscale-1.102.2-macos.pkg", "install_script_ref": "639320d3", diff --git a/ee/maintained-apps/outputs/tailscale/windows.json b/ee/maintained-apps/outputs/tailscale/windows.json index 7d9a945313a..7edf01d9879 100644 --- a/ee/maintained-apps/outputs/tailscale/windows.json +++ b/ee/maintained-apps/outputs/tailscale/windows.json @@ -4,7 +4,8 @@ "version": "1.102.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Tailscale' AND publisher = 'Tailscale Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Tailscale' AND publisher = 'Tailscale Inc.' AND version_compare(version, '1.102.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Tailscale' AND publisher = 'Tailscale Inc.' AND version_compare(version, '1.102.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'tailscale.exe');" }, "installer_url": "https://pkgs.tailscale.com/stable/tailscale-setup-1.102.2-amd64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/taskade/darwin.json b/ee/maintained-apps/outputs/taskade/darwin.json index fd88b08c74f..616a19b12d9 100644 --- a/ee/maintained-apps/outputs/taskade/darwin.json +++ b/ee/maintained-apps/outputs/taskade/darwin.json @@ -4,7 +4,8 @@ "version": "4.6.14", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.taskade';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.taskade' AND version_compare(bundle_short_version, '4.6.14') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.taskade' AND version_compare(bundle_short_version, '4.6.14') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.taskade');" }, "installer_url": "https://apps.taskade.com/updates/Taskade-4.6.14-universal.dmg", "install_script_ref": "edb48cd4", diff --git a/ee/maintained-apps/outputs/taskbar/darwin.json b/ee/maintained-apps/outputs/taskbar/darwin.json index 39ab51dfa2b..92eeeed9c34 100644 --- a/ee/maintained-apps/outputs/taskbar/darwin.json +++ b/ee/maintained-apps/outputs/taskbar/darwin.json @@ -4,7 +4,8 @@ "version": "1.6.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.fpfxtknjju.wbgcdolfev';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fpfxtknjju.wbgcdolfev' AND version_compare(bundle_short_version, '1.6.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fpfxtknjju.wbgcdolfev' AND version_compare(bundle_short_version, '1.6.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.fpfxtknjju.wbgcdolfev');" }, "installer_url": "https://lawand.io/wp-content/uploads/2026/05/taskbar-1.6.1.zip", "install_script_ref": "454970ba", diff --git a/ee/maintained-apps/outputs/teacode/darwin.json b/ee/maintained-apps/outputs/teacode/darwin.json index bf696016eed..8a998f89bb7 100644 --- a/ee/maintained-apps/outputs/teacode/darwin.json +++ b/ee/maintained-apps/outputs/teacode/darwin.json @@ -4,7 +4,8 @@ "version": "1.1.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.apptorium.TeaCode-dm';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apptorium.TeaCode-dm' AND version_compare(bundle_short_version, '1.1.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apptorium.TeaCode-dm' AND version_compare(bundle_short_version, '1.1.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.apptorium.TeaCode-dm');" }, "installer_url": "https://www.apptorium.com/public/products/teacode/releases/TeaCode-1.1.3.zip", "install_script_ref": "51d86005", diff --git a/ee/maintained-apps/outputs/teamviewer-host/windows.json b/ee/maintained-apps/outputs/teamviewer-host/windows.json index c0617fe8c36..8d1a0f57489 100644 --- a/ee/maintained-apps/outputs/teamviewer-host/windows.json +++ b/ee/maintained-apps/outputs/teamviewer-host/windows.json @@ -4,7 +4,8 @@ "version": "15.80.4", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'TeamViewer Host' AND publisher = 'TeamViewer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'TeamViewer Host' AND publisher = 'TeamViewer' AND version_compare(version, '15.80.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'TeamViewer Host' AND publisher = 'TeamViewer' AND version_compare(version, '15.80.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'teamviewer host.exe');" }, "installer_url": "https://download.teamviewer.com/download/version_15x/TeamViewer_Host_Setup_x64.exe", "install_script_ref": "0c887797", diff --git a/ee/maintained-apps/outputs/teamviewer/darwin.json b/ee/maintained-apps/outputs/teamviewer/darwin.json index 4d9b997d583..d21c1612ca3 100644 --- a/ee/maintained-apps/outputs/teamviewer/darwin.json +++ b/ee/maintained-apps/outputs/teamviewer/darwin.json @@ -4,7 +4,8 @@ "version": "15.80.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.teamviewer.TeamViewer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.teamviewer.TeamViewer' AND version_compare(bundle_short_version, '15.80.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.teamviewer.TeamViewer' AND version_compare(bundle_short_version, '15.80.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.teamviewer.TeamViewer');" }, "installer_url": "https://dl.teamviewer.com/download/version_15x/update/15.80.4/TeamViewer.pkg", "install_script_ref": "c6da4ec6", diff --git a/ee/maintained-apps/outputs/teamviewer/windows.json b/ee/maintained-apps/outputs/teamviewer/windows.json index b8d61473034..e4f3ac02ca1 100644 --- a/ee/maintained-apps/outputs/teamviewer/windows.json +++ b/ee/maintained-apps/outputs/teamviewer/windows.json @@ -4,7 +4,8 @@ "version": "15.80.4", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'TeamViewer' AND publisher = 'TeamViewer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'TeamViewer' AND publisher = 'TeamViewer' AND version_compare(version, '15.80.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'TeamViewer' AND publisher = 'TeamViewer' AND version_compare(version, '15.80.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'teamviewer.exe');" }, "installer_url": "https://download.teamviewer.com/download/version_15x/TeamViewer_Setup_x64_15.80.4.exe", "install_script_ref": "45f422bf", diff --git a/ee/maintained-apps/outputs/telegram/darwin.json b/ee/maintained-apps/outputs/telegram/darwin.json index b19ecd7db5f..206ef1f8226 100644 --- a/ee/maintained-apps/outputs/telegram/darwin.json +++ b/ee/maintained-apps/outputs/telegram/darwin.json @@ -4,7 +4,8 @@ "version": "12.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ru.keepcoder.Telegram';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ru.keepcoder.Telegram' AND version_compare(bundle_short_version, '12.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ru.keepcoder.Telegram' AND version_compare(bundle_short_version, '12.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'ru.keepcoder.Telegram');" }, "installer_url": "https://osx.telegram.org/updates/Telegram-12.9.282555.app.zip", "install_script_ref": "53a37daf", diff --git a/ee/maintained-apps/outputs/telegram/windows.json b/ee/maintained-apps/outputs/telegram/windows.json index 5af7533462f..6e834bd5128 100644 --- a/ee/maintained-apps/outputs/telegram/windows.json +++ b/ee/maintained-apps/outputs/telegram/windows.json @@ -4,7 +4,8 @@ "version": "7.0.9", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Telegram Desktop' AND publisher = 'Telegram FZ-LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Telegram Desktop' AND publisher = 'Telegram FZ-LLC' AND version_compare(version, '7.0.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Telegram Desktop' AND publisher = 'Telegram FZ-LLC' AND version_compare(version, '7.0.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'telegram.exe');" }, "installer_url": "https://github.com/telegramdesktop/tdesktop/releases/download/v7.0.9/tsetup-x64.7.0.9.exe", "install_script_ref": "0b88a95e", diff --git a/ee/maintained-apps/outputs/teleport-connect/darwin.json b/ee/maintained-apps/outputs/teleport-connect/darwin.json index eff680fb50f..c7a28f95a31 100644 --- a/ee/maintained-apps/outputs/teleport-connect/darwin.json +++ b/ee/maintained-apps/outputs/teleport-connect/darwin.json @@ -4,7 +4,8 @@ "version": "18.10.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'gravitational.teleport.connect';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'gravitational.teleport.connect' AND version_compare(bundle_short_version, '18.10.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'gravitational.teleport.connect' AND version_compare(bundle_short_version, '18.10.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'gravitational.teleport.connect');" }, "installer_url": "https://cdn.teleport.dev/Teleport%20Connect-18.10.3.dmg", "install_script_ref": "91382f33", diff --git a/ee/maintained-apps/outputs/teleport-connect/windows.json b/ee/maintained-apps/outputs/teleport-connect/windows.json index b22c44c6218..361ff4ddafe 100644 --- a/ee/maintained-apps/outputs/teleport-connect/windows.json +++ b/ee/maintained-apps/outputs/teleport-connect/windows.json @@ -4,7 +4,8 @@ "version": "18.10.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Teleport Connect %' AND publisher = 'Gravitational, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Teleport Connect %' AND publisher = 'Gravitational, Inc.' AND version_compare(version, '18.10.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Teleport Connect %' AND publisher = 'Gravitational, Inc.' AND version_compare(version, '18.10.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'teleport connect.exe');" }, "installer_url": "https://cdn.teleport.dev/Teleport%20Connect%20Setup-18.10.3.exe", "install_script_ref": "5203db2b", diff --git a/ee/maintained-apps/outputs/teleport-suite/darwin.json b/ee/maintained-apps/outputs/teleport-suite/darwin.json index 7e1ea82c3de..48fbebfca88 100644 --- a/ee/maintained-apps/outputs/teleport-suite/darwin.json +++ b/ee/maintained-apps/outputs/teleport-suite/darwin.json @@ -4,7 +4,8 @@ "version": "18.10.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.gravitational.teleport.tsh';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gravitational.teleport.tsh' AND version_compare(bundle_short_version, '18.10.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gravitational.teleport.tsh' AND version_compare(bundle_short_version, '18.10.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.gravitational.teleport.tsh');" }, "installer_url": "https://cdn.teleport.dev/teleport-18.10.3.pkg", "install_script_ref": "e996f404", diff --git a/ee/maintained-apps/outputs/termius/darwin.json b/ee/maintained-apps/outputs/termius/darwin.json index 908b463fc6d..9c52ffa9818 100644 --- a/ee/maintained-apps/outputs/termius/darwin.json +++ b/ee/maintained-apps/outputs/termius/darwin.json @@ -4,7 +4,8 @@ "version": "9.42.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.termius-dmg.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.termius-dmg.mac' AND version_compare(bundle_short_version, '9.42.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.termius-dmg.mac' AND version_compare(bundle_short_version, '9.42.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.termius-dmg.mac');" }, "installer_url": "https://autoupdate.termius.com/mac-arm64/Termius.dmg", "install_script_ref": "7e35adf4", diff --git a/ee/maintained-apps/outputs/termius/windows.json b/ee/maintained-apps/outputs/termius/windows.json index 764371ec6e1..02b8fada020 100644 --- a/ee/maintained-apps/outputs/termius/windows.json +++ b/ee/maintained-apps/outputs/termius/windows.json @@ -4,7 +4,8 @@ "version": "9.42.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Termius' AND publisher = 'Termius Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Termius' AND publisher = 'Termius Corporation' AND version_compare(version, '9.42.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Termius' AND publisher = 'Termius Corporation' AND version_compare(version, '9.42.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'termius.exe');" }, "installer_url": "https://autoupdate.termius.com/windows/Install%20Termius.exe", "install_script_ref": "df65625a", diff --git a/ee/maintained-apps/outputs/tex-live-utility/darwin.json b/ee/maintained-apps/outputs/tex-live-utility/darwin.json index e68887a357d..f68be48f174 100644 --- a/ee/maintained-apps/outputs/tex-live-utility/darwin.json +++ b/ee/maintained-apps/outputs/tex-live-utility/darwin.json @@ -4,7 +4,8 @@ "version": "1.57", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.googlecode.mactlmgr.tlu';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.googlecode.mactlmgr.tlu' AND version_compare(bundle_short_version, '1.57') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.googlecode.mactlmgr.tlu' AND version_compare(bundle_short_version, '1.57') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.googlecode.mactlmgr.tlu');" }, "installer_url": "https://github.com/amaxwell/tlutility/releases/download/1.57/TeX.Live.Utility.app-1.57.zip", "install_script_ref": "62ed1cb5", diff --git a/ee/maintained-apps/outputs/texshop/darwin.json b/ee/maintained-apps/outputs/texshop/darwin.json index 1b643e7a6be..2609445b039 100644 --- a/ee/maintained-apps/outputs/texshop/darwin.json +++ b/ee/maintained-apps/outputs/texshop/darwin.json @@ -4,7 +4,8 @@ "version": "5.57", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'edu.uo.texshop.tex';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'edu.uo.texshop.tex' AND version_compare(bundle_short_version, '5.57') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'edu.uo.texshop.tex' AND version_compare(bundle_short_version, '5.57') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'edu.uo.texshop.tex');" }, "installer_url": "https://pages.uoregon.edu/koch/texshop/texshop-64/texshop557.zip", "install_script_ref": "5bc23e62", diff --git a/ee/maintained-apps/outputs/textexpander/darwin.json b/ee/maintained-apps/outputs/textexpander/darwin.json index b073216d10c..ce2cd466cbc 100644 --- a/ee/maintained-apps/outputs/textexpander/darwin.json +++ b/ee/maintained-apps/outputs/textexpander/darwin.json @@ -4,7 +4,8 @@ "version": "8.4.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.smileonmymac.textexpander';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.smileonmymac.textexpander' AND version_compare(bundle_short_version, '8.4.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.smileonmymac.textexpander' AND version_compare(bundle_short_version, '8.4.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.smileonmymac.textexpander');" }, "installer_url": "https://cdn.textexpander.com/mac/846.3/TextExpander_8.4.6.dmg", "install_script_ref": "b2126808", diff --git a/ee/maintained-apps/outputs/textexpander/windows.json b/ee/maintained-apps/outputs/textexpander/windows.json index b95726153be..27f5d6a013e 100644 --- a/ee/maintained-apps/outputs/textexpander/windows.json +++ b/ee/maintained-apps/outputs/textexpander/windows.json @@ -4,7 +4,8 @@ "version": "254.8.4.603", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'TextExpander' AND publisher = 'TextExpander, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'TextExpander' AND publisher = 'TextExpander, Inc.' AND version_compare(version, '254.8.4.603') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'TextExpander' AND publisher = 'TextExpander, Inc.' AND version_compare(version, '254.8.4.603') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'textexpander.exe');" }, "installer_url": "https://cdn.textexpander.com/windows/846.3.0/TextExpander_x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/thaw/darwin.json b/ee/maintained-apps/outputs/thaw/darwin.json index 2275d7d5a46..b1bb53c4588 100644 --- a/ee/maintained-apps/outputs/thaw/darwin.json +++ b/ee/maintained-apps/outputs/thaw/darwin.json @@ -4,7 +4,8 @@ "version": "1.2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.stonerl.Thaw';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.stonerl.Thaw' AND version_compare(bundle_short_version, '1.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.stonerl.Thaw' AND version_compare(bundle_short_version, '1.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.stonerl.Thaw');" }, "installer_url": "https://github.com/thaw-app/Thaw/releases/download/1.2.0/Thaw_1.2.0.zip", "install_script_ref": "a88b1c9c", diff --git a/ee/maintained-apps/outputs/the-unarchiver/darwin.json b/ee/maintained-apps/outputs/the-unarchiver/darwin.json index 85df2e7e702..31474dd4499 100644 --- a/ee/maintained-apps/outputs/the-unarchiver/darwin.json +++ b/ee/maintained-apps/outputs/the-unarchiver/darwin.json @@ -4,7 +4,8 @@ "version": "4.3.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'cx.c3.theunarchiver';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'cx.c3.theunarchiver' AND version_compare(bundle_short_version, '4.3.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'cx.c3.theunarchiver' AND version_compare(bundle_short_version, '4.3.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'cx.c3.theunarchiver');" }, "installer_url": "https://dl.devmate.com/com.macpaw.site.theunarchiver/147/1742287964/TheUnarchiver-147.zip", "install_script_ref": "de456029", diff --git a/ee/maintained-apps/outputs/thorium/darwin.json b/ee/maintained-apps/outputs/thorium/darwin.json index 70788b390d7..14dcfddf77f 100644 --- a/ee/maintained-apps/outputs/thorium/darwin.json +++ b/ee/maintained-apps/outputs/thorium/darwin.json @@ -4,7 +4,8 @@ "version": "3.4.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.github.edrlab.thorium';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.github.edrlab.thorium' AND version_compare(bundle_short_version, '3.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.github.edrlab.thorium' AND version_compare(bundle_short_version, '3.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.github.edrlab.thorium');" }, "installer_url": "https://github.com/edrlab/thorium-reader/releases/download/v3.4.0/Thorium-3.4.0-arm64.dmg", "install_script_ref": "d17ada45", diff --git a/ee/maintained-apps/outputs/thorium/windows.json b/ee/maintained-apps/outputs/thorium/windows.json index cee0e34230b..2e01d2c2857 100644 --- a/ee/maintained-apps/outputs/thorium/windows.json +++ b/ee/maintained-apps/outputs/thorium/windows.json @@ -4,7 +4,8 @@ "version": "3.4.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Thorium' AND publisher = 'EDRLab';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Thorium' AND publisher = 'EDRLab' AND version_compare(version, '3.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Thorium' AND publisher = 'EDRLab' AND version_compare(version, '3.4.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'thorium reader.exe');" }, "installer_url": "https://github.com/edrlab/thorium-reader/releases/download/v3.4.0/Thorium.Setup.3.4.0.exe", "install_script_ref": "df65625a", diff --git a/ee/maintained-apps/outputs/threema/darwin.json b/ee/maintained-apps/outputs/threema/darwin.json index bd77621a64c..8c9cec4eeb9 100644 --- a/ee/maintained-apps/outputs/threema/darwin.json +++ b/ee/maintained-apps/outputs/threema/darwin.json @@ -4,7 +4,8 @@ "version": "1.2.50", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'threema-consumer-web';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'threema-consumer-web' AND version_compare(bundle_short_version, '1.2.50') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'threema-consumer-web' AND version_compare(bundle_short_version, '1.2.50') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'threema-consumer-web');" }, "installer_url": "https://releases.threema.ch/web-electron/v1/release/Threema-Latest.dmg", "install_script_ref": "96d77b36", diff --git a/ee/maintained-apps/outputs/thumbsup/darwin.json b/ee/maintained-apps/outputs/thumbsup/darwin.json index 00b66e9ade4..6c149aee2f3 100644 --- a/ee/maintained-apps/outputs/thumbsup/darwin.json +++ b/ee/maintained-apps/outputs/thumbsup/darwin.json @@ -4,7 +4,8 @@ "version": "4.5.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.devon-technologies.ThumbsUp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.devon-technologies.ThumbsUp' AND version_compare(bundle_short_version, '4.5.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.devon-technologies.ThumbsUp' AND version_compare(bundle_short_version, '4.5.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.devon-technologies.ThumbsUp');" }, "installer_url": "https://download.devontechnologies.com/download/freeware/thumbsup/4.5.3/ThumbsUp.app.zip", "install_script_ref": "fe5ff766", diff --git a/ee/maintained-apps/outputs/thunderbird/darwin.json b/ee/maintained-apps/outputs/thunderbird/darwin.json index dba472177ef..2190d1f0484 100644 --- a/ee/maintained-apps/outputs/thunderbird/darwin.json +++ b/ee/maintained-apps/outputs/thunderbird/darwin.json @@ -4,7 +4,8 @@ "version": "153.0.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.thunderbird';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.thunderbird' AND version_compare(bundle_short_version, '153.0.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.thunderbird' AND version_compare(bundle_short_version, '153.0.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.mozilla.thunderbird');" }, "installer_url": "https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/153.0.2/mac/en-US/Thunderbird%20153.0.2.dmg", "install_script_ref": "7ab956d5", diff --git a/ee/maintained-apps/outputs/thunderbird/windows.json b/ee/maintained-apps/outputs/thunderbird/windows.json index f314cba6d58..fabdffacad0 100644 --- a/ee/maintained-apps/outputs/thunderbird/windows.json +++ b/ee/maintained-apps/outputs/thunderbird/windows.json @@ -4,7 +4,8 @@ "version": "153.0.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Mozilla Thunderbird (x64 en-US)' AND publisher = 'Mozilla';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Mozilla Thunderbird (x64 en-US)' AND publisher = 'Mozilla' AND version_compare(version, '153.0.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Mozilla Thunderbird (x64 en-US)' AND publisher = 'Mozilla' AND version_compare(version, '153.0.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'thunderbird.exe');" }, "installer_url": "https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/153.0.2/win64/en-US/Thunderbird%20Setup%20153.0.2.exe", "install_script_ref": "26f2daf8", diff --git a/ee/maintained-apps/outputs/ticktick/darwin.json b/ee/maintained-apps/outputs/ticktick/darwin.json index 9f3db4a3a7b..46ec316847c 100644 --- a/ee/maintained-apps/outputs/ticktick/darwin.json +++ b/ee/maintained-apps/outputs/ticktick/darwin.json @@ -4,7 +4,8 @@ "version": "8.0.75", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.TickTick.task.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.TickTick.task.mac' AND version_compare(bundle_short_version, '8.0.75') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.TickTick.task.mac' AND version_compare(bundle_short_version, '8.0.75') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.TickTick.task.mac');" }, "installer_url": "https://download.ticktick.app/download/mac/TickTick_8.0.75_472.dmg", "install_script_ref": "541567ee", diff --git a/ee/maintained-apps/outputs/tidal/darwin.json b/ee/maintained-apps/outputs/tidal/darwin.json index 00068939647..85dc431a9e3 100644 --- a/ee/maintained-apps/outputs/tidal/darwin.json +++ b/ee/maintained-apps/outputs/tidal/darwin.json @@ -4,7 +4,8 @@ "version": "2.43.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.tidal.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tidal.desktop' AND version_compare(bundle_short_version, '2.43.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tidal.desktop' AND version_compare(bundle_short_version, '2.43.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.tidal.desktop');" }, "installer_url": "https://download.tidal.com/desktop/mac/TIDAL.arm64.2.43.0.zip", "install_script_ref": "a093a296", diff --git a/ee/maintained-apps/outputs/tightvnc/windows.json b/ee/maintained-apps/outputs/tightvnc/windows.json index ddccf3b552c..ffd54fdb78b 100644 --- a/ee/maintained-apps/outputs/tightvnc/windows.json +++ b/ee/maintained-apps/outputs/tightvnc/windows.json @@ -4,7 +4,8 @@ "version": "2.8.88", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'TightVNC' AND publisher = 'GlavSoft LLC.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'TightVNC' AND publisher = 'GlavSoft LLC.' AND version_compare(version, '2.8.88') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'TightVNC' AND publisher = 'GlavSoft LLC.' AND version_compare(version, '2.8.88') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'tightvnc.exe');" }, "installer_url": "https://www.tightvnc.com/download/2.8.88/tightvnc-2.8.88-gpl-setup-64bit.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/tiles/darwin.json b/ee/maintained-apps/outputs/tiles/darwin.json index 37d40729139..20dec995cfb 100644 --- a/ee/maintained-apps/outputs/tiles/darwin.json +++ b/ee/maintained-apps/outputs/tiles/darwin.json @@ -4,7 +4,8 @@ "version": "1.3.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sempliva.Tiles';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sempliva.Tiles' AND version_compare(bundle_short_version, '1.3.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sempliva.Tiles' AND version_compare(bundle_short_version, '1.3.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.sempliva.Tiles');" }, "installer_url": "https://updates.sempliva.com/tiles/Tiles-03b500a8.dmg", "install_script_ref": "8f969ce8", diff --git a/ee/maintained-apps/outputs/timescribe/darwin.json b/ee/maintained-apps/outputs/timescribe/darwin.json index 709f0a28064..3f0a9c265ad 100644 --- a/ee/maintained-apps/outputs/timescribe/darwin.json +++ b/ee/maintained-apps/outputs/timescribe/darwin.json @@ -4,7 +4,8 @@ "version": "1.15.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'de.amplussoftware.timescribe';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'de.amplussoftware.timescribe' AND version_compare(bundle_short_version, '1.15.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'de.amplussoftware.timescribe' AND version_compare(bundle_short_version, '1.15.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'de.amplussoftware.timescribe');" }, "installer_url": "https://github.com/WINBIGFOX/TimeScribe/releases/download/v1.15.0/TimeScribe-1.15.0-arm64.zip", "install_script_ref": "5015178b", diff --git a/ee/maintained-apps/outputs/timing/darwin.json b/ee/maintained-apps/outputs/timing/darwin.json index f02114d8d47..45c0ea992b7 100644 --- a/ee/maintained-apps/outputs/timing/darwin.json +++ b/ee/maintained-apps/outputs/timing/darwin.json @@ -4,7 +4,8 @@ "version": "2026.4.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'info.eurocomp.Timing2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'info.eurocomp.Timing2' AND version_compare(bundle_short_version, '2026.4.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'info.eurocomp.Timing2' AND version_compare(bundle_short_version, '2026.4.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'info.eurocomp.Timing2');" }, "installer_url": "https://updates.timingapp.com/download/Timing-2026.4.1.dmg", "install_script_ref": "1a5e9d7c", diff --git a/ee/maintained-apps/outputs/todoist-app/darwin.json b/ee/maintained-apps/outputs/todoist-app/darwin.json index fc8eb7265e4..914c956b6db 100644 --- a/ee/maintained-apps/outputs/todoist-app/darwin.json +++ b/ee/maintained-apps/outputs/todoist-app/darwin.json @@ -4,7 +4,8 @@ "version": "9.30.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.todoist.mac.Todoist';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.todoist.mac.Todoist' AND version_compare(bundle_short_version, '9.30.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.todoist.mac.Todoist' AND version_compare(bundle_short_version, '9.30.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.todoist.mac.Todoist');" }, "installer_url": "https://electron-dl.todoist.com/mac/Todoist-darwin-9.30.0-arm64-latest.dmg", "install_script_ref": "f59ee413", diff --git a/ee/maintained-apps/outputs/todoist-app/windows.json b/ee/maintained-apps/outputs/todoist-app/windows.json index 12460d6dfa9..091179af157 100644 --- a/ee/maintained-apps/outputs/todoist-app/windows.json +++ b/ee/maintained-apps/outputs/todoist-app/windows.json @@ -4,7 +4,8 @@ "version": "9.30.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Todoist' AND publisher = 'Doist';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Todoist' AND publisher = 'Doist' AND version_compare(version, '9.30.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Todoist' AND publisher = 'Doist' AND version_compare(version, '9.30.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'todoist.exe');" }, "installer_url": "https://electron-dl.todoist.net/windows/Todoist-win32-9.30.0-x64-latest.exe", "install_script_ref": "7ad1f815", diff --git a/ee/maintained-apps/outputs/topaz-gigapixel-ai/darwin.json b/ee/maintained-apps/outputs/topaz-gigapixel-ai/darwin.json index 6c2c59bc5dd..3fe9c0fa3a9 100644 --- a/ee/maintained-apps/outputs/topaz-gigapixel-ai/darwin.json +++ b/ee/maintained-apps/outputs/topaz-gigapixel-ai/darwin.json @@ -4,7 +4,8 @@ "version": "8.4.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.topazlabs.TopazGigapixelAI';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.topazlabs.TopazGigapixelAI' AND version_compare(bundle_short_version, '8.4.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.topazlabs.TopazGigapixelAI' AND version_compare(bundle_short_version, '8.4.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.topazlabs.TopazGigapixelAI');" }, "installer_url": "https://downloads.topazlabs.com/deploy/TopazGigapixelAI/8.4.4/TopazGigapixelAI-8.4.4.pkg", "install_script_ref": "5e0ccbaf", diff --git a/ee/maintained-apps/outputs/topaz-gigapixel-ai/windows.json b/ee/maintained-apps/outputs/topaz-gigapixel-ai/windows.json index 3443bcb829d..bbad1f9ad06 100644 --- a/ee/maintained-apps/outputs/topaz-gigapixel-ai/windows.json +++ b/ee/maintained-apps/outputs/topaz-gigapixel-ai/windows.json @@ -4,7 +4,8 @@ "version": "8.4.4", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Topaz Gigapixel AI' AND publisher = 'Topaz Labs LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Topaz Gigapixel AI' AND publisher = 'Topaz Labs LLC' AND version_compare(version, '8.4.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Topaz Gigapixel AI' AND publisher = 'Topaz Labs LLC' AND version_compare(version, '8.4.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'topaz gigapixel ai.exe');" }, "installer_url": "https://downloads.topazlabs.com/deploy/TopazGigapixelAI/8.4.4/TopazGigapixelAI-8.4.4.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/topaz-photo-ai/darwin.json b/ee/maintained-apps/outputs/topaz-photo-ai/darwin.json index db9b26f14d0..90f5b7b0de9 100644 --- a/ee/maintained-apps/outputs/topaz-photo-ai/darwin.json +++ b/ee/maintained-apps/outputs/topaz-photo-ai/darwin.json @@ -4,7 +4,8 @@ "version": "4.0.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.topazlabs.TopazPhotoAI';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.topazlabs.TopazPhotoAI' AND version_compare(bundle_short_version, '4.0.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.topazlabs.TopazPhotoAI' AND version_compare(bundle_short_version, '4.0.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.topazlabs.TopazPhotoAI');" }, "installer_url": "https://downloads.topazlabs.com/deploy/TopazPhotoAI/4.0.4/TopazPhotoAI-4.0.4.pkg", "install_script_ref": "01973b2a", diff --git a/ee/maintained-apps/outputs/topaz-photo-ai/windows.json b/ee/maintained-apps/outputs/topaz-photo-ai/windows.json index 820d2b5c59b..da5dc4a11ab 100644 --- a/ee/maintained-apps/outputs/topaz-photo-ai/windows.json +++ b/ee/maintained-apps/outputs/topaz-photo-ai/windows.json @@ -4,7 +4,8 @@ "version": "4.0.4", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Topaz Photo AI' AND publisher = 'Topaz Labs LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Topaz Photo AI' AND publisher = 'Topaz Labs LLC' AND version_compare(version, '4.0.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Topaz Photo AI' AND publisher = 'Topaz Labs LLC' AND version_compare(version, '4.0.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'topaz photo ai.exe');" }, "installer_url": "https://downloads.topazlabs.com/deploy/TopazPhotoAI/4.0.4/TopazPhotoAI-4.0.4.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/topaz-video-ai/darwin.json b/ee/maintained-apps/outputs/topaz-video-ai/darwin.json index c6253c9233c..5ae6cd37751 100644 --- a/ee/maintained-apps/outputs/topaz-video-ai/darwin.json +++ b/ee/maintained-apps/outputs/topaz-video-ai/darwin.json @@ -4,7 +4,8 @@ "version": "7.1.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.topazlabs.Topaz-Video-AI';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.topazlabs.Topaz-Video-AI' AND version_compare(bundle_short_version, '7.1.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.topazlabs.Topaz-Video-AI' AND version_compare(bundle_short_version, '7.1.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.topazlabs.Topaz-Video-AI');" }, "installer_url": "https://downloads.topazlabs.com/deploy/TopazVideoAI/7.1.5/TopazVideoAI-7.1.5.pkg", "install_script_ref": "88fe95de", diff --git a/ee/maintained-apps/outputs/topnotch/darwin.json b/ee/maintained-apps/outputs/topnotch/darwin.json index 95838d2c131..a8254b13dae 100644 --- a/ee/maintained-apps/outputs/topnotch/darwin.json +++ b/ee/maintained-apps/outputs/topnotch/darwin.json @@ -4,7 +4,8 @@ "version": "1.3.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'pl.maketheweb.TopNotch';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'pl.maketheweb.TopNotch' AND version_compare(bundle_short_version, '1.3.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'pl.maketheweb.TopNotch' AND version_compare(bundle_short_version, '1.3.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'pl.maketheweb.TopNotch');" }, "installer_url": "https://updates.topnotch.app/TopNotch-1.3.2.dmg", "install_script_ref": "ff85066b", diff --git a/ee/maintained-apps/outputs/tor-browser/darwin.json b/ee/maintained-apps/outputs/tor-browser/darwin.json index 338f4bfd833..a65016005b2 100644 --- a/ee/maintained-apps/outputs/tor-browser/darwin.json +++ b/ee/maintained-apps/outputs/tor-browser/darwin.json @@ -4,7 +4,8 @@ "version": "15.0.19", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.torproject.torbrowser';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.torproject.torbrowser' AND version_compare(bundle_short_version, '15.0.19') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.torproject.torbrowser' AND version_compare(bundle_short_version, '15.0.19') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.torproject.torbrowser');" }, "installer_url": "https://www.torproject.org/dist/torbrowser/15.0.19/tor-browser-macos-15.0.19.dmg", "install_script_ref": "5696723c", diff --git a/ee/maintained-apps/outputs/tortoisegit/windows.json b/ee/maintained-apps/outputs/tortoisegit/windows.json index 37fd34593fd..3c2040801fe 100644 --- a/ee/maintained-apps/outputs/tortoisegit/windows.json +++ b/ee/maintained-apps/outputs/tortoisegit/windows.json @@ -4,7 +4,8 @@ "version": "2.19.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'TortoiseGit %' AND publisher = 'TortoiseGit';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'TortoiseGit %' AND publisher = 'TortoiseGit' AND version_compare(version, '2.19.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'TortoiseGit %' AND publisher = 'TortoiseGit' AND version_compare(version, '2.19.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'tortoisegit.exe');" }, "installer_url": "https://download.tortoisegit.org/tgit/2.19.0.0/TortoiseGit-2.19.1.0-64bit.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/tower/darwin.json b/ee/maintained-apps/outputs/tower/darwin.json index 24669beaa94..b9dc9f5b499 100644 --- a/ee/maintained-apps/outputs/tower/darwin.json +++ b/ee/maintained-apps/outputs/tower/darwin.json @@ -4,7 +4,8 @@ "version": "17.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.fournova.Tower';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fournova.Tower' AND version_compare(bundle_short_version, '17.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fournova.Tower' AND version_compare(bundle_short_version, '17.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.fournova.Tower');" }, "installer_url": "https://www.git-tower.com/apps/tower3-mac/551-751159f7/Tower-17.1-551.zip", "install_script_ref": "aa9bd839", diff --git a/ee/maintained-apps/outputs/tower/windows.json b/ee/maintained-apps/outputs/tower/windows.json index 1038522abe0..25d627bd37e 100644 --- a/ee/maintained-apps/outputs/tower/windows.json +++ b/ee/maintained-apps/outputs/tower/windows.json @@ -4,7 +4,8 @@ "version": "13.1.576", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Tower' AND publisher = 'saas.group';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Tower' AND publisher = 'saas.group' AND version_compare(version, '13.1.576') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Tower' AND publisher = 'saas.group' AND version_compare(version, '13.1.576') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'tower.exe');" }, "installer_url": "https://www.git-tower.com/apps/tower3-win/576-01812649/Tower-13.1.576.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/tradingview/darwin.json b/ee/maintained-apps/outputs/tradingview/darwin.json index 8d98183f402..fe6ee4ad056 100644 --- a/ee/maintained-apps/outputs/tradingview/darwin.json +++ b/ee/maintained-apps/outputs/tradingview/darwin.json @@ -4,7 +4,8 @@ "version": "3.3.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.tradingview.tradingviewapp.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tradingview.tradingviewapp.desktop' AND version_compare(bundle_short_version, '3.3.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tradingview.tradingviewapp.desktop' AND version_compare(bundle_short_version, '3.3.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.tradingview.tradingviewapp.desktop');" }, "installer_url": "https://tvd-packages.tradingview.com/stable/3.3.0/darwin/TradingView.dmg", "install_script_ref": "e324e786", diff --git a/ee/maintained-apps/outputs/transfer/darwin.json b/ee/maintained-apps/outputs/transfer/darwin.json index fc075241cc7..00352785e85 100644 --- a/ee/maintained-apps/outputs/transfer/darwin.json +++ b/ee/maintained-apps/outputs/transfer/darwin.json @@ -4,7 +4,8 @@ "version": "2.4.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.adriangranados.Transfer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adriangranados.Transfer' AND version_compare(bundle_short_version, '2.4.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adriangranados.Transfer' AND version_compare(bundle_short_version, '2.4.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.adriangranados.Transfer');" }, "installer_url": "https://www.intuitibits.com/downloads/Transfer_2.4.3.dmg", "install_script_ref": "c657e3b4", diff --git a/ee/maintained-apps/outputs/transmission/darwin.json b/ee/maintained-apps/outputs/transmission/darwin.json index 8e4825c97e2..572b943c6a5 100644 --- a/ee/maintained-apps/outputs/transmission/darwin.json +++ b/ee/maintained-apps/outputs/transmission/darwin.json @@ -4,7 +4,8 @@ "version": "4.1.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.m0k.transmission';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.m0k.transmission' AND version_compare(bundle_short_version, '4.1.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.m0k.transmission' AND version_compare(bundle_short_version, '4.1.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.m0k.transmission');" }, "installer_url": "https://github.com/transmission/transmission/releases/download/4.1.3/Transmission-4.1.3.dmg", "install_script_ref": "0b9ccc1b", diff --git a/ee/maintained-apps/outputs/transmission/windows.json b/ee/maintained-apps/outputs/transmission/windows.json index a225b716519..60c04cef434 100644 --- a/ee/maintained-apps/outputs/transmission/windows.json +++ b/ee/maintained-apps/outputs/transmission/windows.json @@ -4,7 +4,8 @@ "version": "4.1.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Transmission %' AND publisher = 'Transmission Project';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Transmission %' AND publisher = 'Transmission Project' AND version_compare(version, '4.1.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Transmission %' AND publisher = 'Transmission Project' AND version_compare(version, '4.1.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'transmission.exe');" }, "installer_url": "https://github.com/transmission/transmission/releases/download/4.1.3/transmission-4.1.3-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/transmit/darwin.json b/ee/maintained-apps/outputs/transmit/darwin.json index f5c2e8ea08c..9512d15910b 100644 --- a/ee/maintained-apps/outputs/transmit/darwin.json +++ b/ee/maintained-apps/outputs/transmit/darwin.json @@ -4,7 +4,8 @@ "version": "5.11.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.panic.Transmit';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.panic.Transmit' AND version_compare(bundle_short_version, '5.11.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.panic.Transmit' AND version_compare(bundle_short_version, '5.11.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.panic.Transmit');" }, "installer_url": "https://download-cdn.panic.com/transmit/Transmit%205.11.6.zip", "install_script_ref": "b4cc63fe", diff --git a/ee/maintained-apps/outputs/trex/darwin.json b/ee/maintained-apps/outputs/trex/darwin.json index 499f4d37a41..5bba598f4b8 100644 --- a/ee/maintained-apps/outputs/trex/darwin.json +++ b/ee/maintained-apps/outputs/trex/darwin.json @@ -4,7 +4,8 @@ "version": "2.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ameba.TRex';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ameba.TRex' AND version_compare(bundle_short_version, '2.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ameba.TRex' AND version_compare(bundle_short_version, '2.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.ameba.TRex');" }, "installer_url": "https://github.com/amebalabs/TRex/releases/download/v2.0.0/TRex-2.0.0.zip", "install_script_ref": "9f6e979c", diff --git a/ee/maintained-apps/outputs/trezor-suite/darwin.json b/ee/maintained-apps/outputs/trezor-suite/darwin.json index 435147c2cb1..8e7172a0d9d 100644 --- a/ee/maintained-apps/outputs/trezor-suite/darwin.json +++ b/ee/maintained-apps/outputs/trezor-suite/darwin.json @@ -4,7 +4,8 @@ "version": "26.7.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.trezor.TrezorSuite';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.trezor.TrezorSuite' AND version_compare(bundle_short_version, '26.7.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.trezor.TrezorSuite' AND version_compare(bundle_short_version, '26.7.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.trezor.TrezorSuite');" }, "installer_url": "https://data.trezor.io/suite/releases/desktop/latest/Trezor-Suite-26.7.4-mac-arm64.dmg", "install_script_ref": "3f139099", diff --git a/ee/maintained-apps/outputs/tripmode/darwin.json b/ee/maintained-apps/outputs/tripmode/darwin.json index f6c176c2b68..b6cae959a59 100644 --- a/ee/maintained-apps/outputs/tripmode/darwin.json +++ b/ee/maintained-apps/outputs/tripmode/darwin.json @@ -4,7 +4,8 @@ "version": "3.2.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ch.tripmode.TripMode';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.tripmode.TripMode' AND version_compare(bundle_short_version, '3.2.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.tripmode.TripMode' AND version_compare(bundle_short_version, '3.2.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'ch.tripmode.TripMode');" }, "installer_url": "https://tripmode-updates.ch/app/TripMode-3.2.4-1385.zip", "install_script_ref": "64b1ac22", diff --git a/ee/maintained-apps/outputs/tunnelblick/darwin.json b/ee/maintained-apps/outputs/tunnelblick/darwin.json index dde62297d58..704e8a16d30 100644 --- a/ee/maintained-apps/outputs/tunnelblick/darwin.json +++ b/ee/maintained-apps/outputs/tunnelblick/darwin.json @@ -4,7 +4,8 @@ "version": "8.0.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.tunnelblick.tunnelblick';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.tunnelblick.tunnelblick' AND version_compare(bundle_short_version, '8.0.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.tunnelblick.tunnelblick' AND version_compare(bundle_short_version, '8.0.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.tunnelblick.tunnelblick');" }, "installer_url": "https://tunnelblick.net/iprelease/Tunnelblick_8.0.3_build_6303.dmg", "install_script_ref": "5e3b9b1c", diff --git a/ee/maintained-apps/outputs/tuple/darwin.json b/ee/maintained-apps/outputs/tuple/darwin.json index 65e5d8c46a1..1f185b317b9 100644 --- a/ee/maintained-apps/outputs/tuple/darwin.json +++ b/ee/maintained-apps/outputs/tuple/darwin.json @@ -4,7 +4,8 @@ "version": "3.1.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.tuple.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.tuple.app' AND version_compare(bundle_short_version, '3.1.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.tuple.app' AND version_compare(bundle_short_version, '3.1.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.tuple.app');" }, "installer_url": "https://d32ifkf9k9ezcg.cloudfront.net/production/sparkle/tuple-3.1.3-2026-07-21-7b5d4785db.zip", "install_script_ref": "925a518e", diff --git a/ee/maintained-apps/outputs/twine-app/darwin.json b/ee/maintained-apps/outputs/twine-app/darwin.json index 325e6a2ca82..b1cfeb7edd8 100644 --- a/ee/maintained-apps/outputs/twine-app/darwin.json +++ b/ee/maintained-apps/outputs/twine-app/darwin.json @@ -4,7 +4,8 @@ "version": "2.12.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.twine';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.twine' AND version_compare(bundle_short_version, '2.12.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.twine' AND version_compare(bundle_short_version, '2.12.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.twine');" }, "installer_url": "https://github.com/klembot/twinejs/releases/download/2.12.0/Twine-2.12.0-macOS.dmg", "install_script_ref": "c33abed2", diff --git a/ee/maintained-apps/outputs/twine-app/windows.json b/ee/maintained-apps/outputs/twine-app/windows.json index efc391aac70..21ab09c1049 100644 --- a/ee/maintained-apps/outputs/twine-app/windows.json +++ b/ee/maintained-apps/outputs/twine-app/windows.json @@ -4,7 +4,8 @@ "version": "2.12.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Twine' AND publisher = 'Chris Klimas';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Twine' AND publisher = 'Chris Klimas' AND version_compare(version, '2.12.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Twine' AND publisher = 'Chris Klimas' AND version_compare(version, '2.12.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'twine.exe');" }, "installer_url": "https://github.com/klembot/twinejs/releases/download/2.12.0/Twine-2.12.0-Windows.exe", "install_script_ref": "df65625a", diff --git a/ee/maintained-apps/outputs/twingate/darwin.json b/ee/maintained-apps/outputs/twingate/darwin.json index 0c3cb471e67..78f13e077e9 100644 --- a/ee/maintained-apps/outputs/twingate/darwin.json +++ b/ee/maintained-apps/outputs/twingate/darwin.json @@ -4,7 +4,8 @@ "version": "2026.182", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.twingate.macos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.twingate.macos' AND version_compare(bundle_short_version, '2026.182') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.twingate.macos' AND version_compare(bundle_short_version, '2026.182') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.twingate.macos');" }, "installer_url": "https://binaries.twingate.com/client/macos/2026.182.26057/Twingate.pkg", "install_script_ref": "a6ef7a54", diff --git a/ee/maintained-apps/outputs/twingate/windows.json b/ee/maintained-apps/outputs/twingate/windows.json index e026e468bb7..dc0f33fe66c 100644 --- a/ee/maintained-apps/outputs/twingate/windows.json +++ b/ee/maintained-apps/outputs/twingate/windows.json @@ -4,7 +4,8 @@ "version": "20.26.211.3797", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Twingate' AND publisher = 'Twingate Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Twingate' AND publisher = 'Twingate Inc.' AND version_compare(version, '20.26.211.3797') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Twingate' AND publisher = 'Twingate Inc.' AND version_compare(version, '20.26.211.3797') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'twingate.exe');" }, "installer_url": "https://binaries.twingate.com/client/windows/versions/2026.211.3797/TwingateWindowsInstaller.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/twobird/darwin.json b/ee/maintained-apps/outputs/twobird/darwin.json index ecd6dbb6004..1a83d2785f7 100644 --- a/ee/maintained-apps/outputs/twobird/darwin.json +++ b/ee/maintained-apps/outputs/twobird/darwin.json @@ -4,7 +4,8 @@ "version": "1.0.52", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.gingerlabs.bagel';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gingerlabs.bagel' AND version_compare(bundle_short_version, '1.0.52') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gingerlabs.bagel' AND version_compare(bundle_short_version, '1.0.52') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.gingerlabs.bagel');" }, "installer_url": "https://www.twobird.com/download/mac-arm64", "install_script_ref": "3737392b", diff --git a/ee/maintained-apps/outputs/typeface/darwin.json b/ee/maintained-apps/outputs/typeface/darwin.json index fcdf5201ab4..5a304950e7b 100644 --- a/ee/maintained-apps/outputs/typeface/darwin.json +++ b/ee/maintained-apps/outputs/typeface/darwin.json @@ -4,7 +4,8 @@ "version": "4.4.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.criminalbird.typeface.standalone';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.criminalbird.typeface.standalone' AND version_compare(bundle_short_version, '4.4.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.criminalbird.typeface.standalone' AND version_compare(bundle_short_version, '4.4.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.criminalbird.typeface.standalone');" }, "installer_url": "https://dcdn.typefaceapp.com/Typeface-4.4.1-5153/Typeface-4.4.1-5153.dmg", "install_script_ref": "f9c4f26e", diff --git a/ee/maintained-apps/outputs/typinator/darwin.json b/ee/maintained-apps/outputs/typinator/darwin.json index 4b6ce1689b5..7bbc2fabe96 100644 --- a/ee/maintained-apps/outputs/typinator/darwin.json +++ b/ee/maintained-apps/outputs/typinator/darwin.json @@ -4,7 +4,8 @@ "version": "10.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.macility.typinator2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.macility.typinator2' AND version_compare(bundle_short_version, '10.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.macility.typinator2' AND version_compare(bundle_short_version, '10.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.macility.typinator2');" }, "installer_url": "https://storage.ergonis.com/apps/production/typinator/archive/Typinator_102.dmg", "install_script_ref": "0deb0ae2", diff --git a/ee/maintained-apps/outputs/typora/darwin.json b/ee/maintained-apps/outputs/typora/darwin.json index 92411b7dfb8..38ad5dab3a4 100644 --- a/ee/maintained-apps/outputs/typora/darwin.json +++ b/ee/maintained-apps/outputs/typora/darwin.json @@ -4,7 +4,8 @@ "version": "1.14.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'abnerworks.Typora';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'abnerworks.Typora' AND version_compare(bundle_short_version, '1.14.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'abnerworks.Typora' AND version_compare(bundle_short_version, '1.14.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'abnerworks.Typora');" }, "installer_url": "https://downloads.typora.io/mac/Typora-1.14.9.dmg", "install_script_ref": "163abff2", diff --git a/ee/maintained-apps/outputs/ua-connect/darwin.json b/ee/maintained-apps/outputs/ua-connect/darwin.json index eb9fc5c2d7f..991f52d83d3 100644 --- a/ee/maintained-apps/outputs/ua-connect/darwin.json +++ b/ee/maintained-apps/outputs/ua-connect/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.uaudio.ua-connect';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.uaudio.ua-connect' AND version_compare(bundle_short_version, '1.9.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.uaudio.ua-connect' AND version_compare(bundle_short_version, '1.9.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.uaudio.ua-connect');" }, "installer_url": "https://builds.uaudio.com/apps/UA_Connect/UA_Connect_1_9_5_3743_Mac.dmg", "install_script_ref": "1c649001", diff --git a/ee/maintained-apps/outputs/ukelele/darwin.json b/ee/maintained-apps/outputs/ukelele/darwin.json index 7df99429a4f..538690633af 100644 --- a/ee/maintained-apps/outputs/ukelele/darwin.json +++ b/ee/maintained-apps/outputs/ukelele/darwin.json @@ -4,7 +4,8 @@ "version": "3.6.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.sil.ukelele';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sil.ukelele' AND version_compare(bundle_short_version, '3.6.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.sil.ukelele' AND version_compare(bundle_short_version, '3.6.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.sil.ukelele');" }, "installer_url": "https://software.sil.org/downloads/r/ukelele/Ukelele_3.6.1.dmg", "install_script_ref": "6fe8ba72", diff --git a/ee/maintained-apps/outputs/ultimaker-cura/darwin.json b/ee/maintained-apps/outputs/ultimaker-cura/darwin.json index f2aa6ab5a46..7be08f90781 100644 --- a/ee/maintained-apps/outputs/ultimaker-cura/darwin.json +++ b/ee/maintained-apps/outputs/ultimaker-cura/darwin.json @@ -4,7 +4,8 @@ "version": "5.13.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'nl.ultimaker.cura.dmg';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'nl.ultimaker.cura.dmg' AND version_compare(bundle_short_version, '5.13.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'nl.ultimaker.cura.dmg' AND version_compare(bundle_short_version, '5.13.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'nl.ultimaker.cura.dmg');" }, "installer_url": "https://github.com/Ultimaker/Cura/releases/download/5.13.0/UltiMaker-Cura-5.13.0-macos-ARM64.dmg", "install_script_ref": "37f0921e", diff --git a/ee/maintained-apps/outputs/ultimaker-cura/windows.json b/ee/maintained-apps/outputs/ultimaker-cura/windows.json index a888b40b120..1d8aa18bbc6 100644 --- a/ee/maintained-apps/outputs/ultimaker-cura/windows.json +++ b/ee/maintained-apps/outputs/ultimaker-cura/windows.json @@ -4,7 +4,8 @@ "version": "5.13.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'UltiMaker Cura' AND publisher = 'UltiMaker';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'UltiMaker Cura' AND publisher = 'UltiMaker' AND version_compare(version, '5.13.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'UltiMaker Cura' AND publisher = 'UltiMaker' AND version_compare(version, '5.13.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'ultimaker cura.exe');" }, "installer_url": "https://github.com/Ultimaker/Cura/releases/download/5.13.0/UltiMaker-Cura-5.13.0-win64-X64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/unclutter/darwin.json b/ee/maintained-apps/outputs/unclutter/darwin.json index 1eba3914f9d..1016832848a 100644 --- a/ee/maintained-apps/outputs/unclutter/darwin.json +++ b/ee/maintained-apps/outputs/unclutter/darwin.json @@ -4,7 +4,8 @@ "version": "2.2.18d", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.softwareambience.Unclutter';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.softwareambience.Unclutter' AND version_compare(bundle_short_version, '2.2.18d') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.softwareambience.Unclutter' AND version_compare(bundle_short_version, '2.2.18d') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.softwareambience.Unclutter');" }, "installer_url": "https://unclutterapp.com/files/Unclutter.zip", "install_script_ref": "39329a44", diff --git a/ee/maintained-apps/outputs/unicodechecker/darwin.json b/ee/maintained-apps/outputs/unicodechecker/darwin.json index 3fc963ea4cb..f9673f45dd5 100644 --- a/ee/maintained-apps/outputs/unicodechecker/darwin.json +++ b/ee/maintained-apps/outputs/unicodechecker/darwin.json @@ -4,7 +4,8 @@ "version": "1.25.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.earthlingsoft.UnicodeChecker';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.earthlingsoft.UnicodeChecker' AND version_compare(bundle_short_version, '1.25.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.earthlingsoft.UnicodeChecker' AND version_compare(bundle_short_version, '1.25.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.earthlingsoft.UnicodeChecker');" }, "installer_url": "https://earthlingsoft.net/UnicodeChecker/UnicodeChecker%201.25.1%20(862).zip", "install_script_ref": "efd3e5ea", diff --git a/ee/maintained-apps/outputs/unity-hub/darwin.json b/ee/maintained-apps/outputs/unity-hub/darwin.json index ed45c212101..038f1bd1c66 100644 --- a/ee/maintained-apps/outputs/unity-hub/darwin.json +++ b/ee/maintained-apps/outputs/unity-hub/darwin.json @@ -4,7 +4,8 @@ "version": "3.20.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.unity3d.unityhub';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.unity3d.unityhub' AND version_compare(bundle_short_version, '3.20.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.unity3d.unityhub' AND version_compare(bundle_short_version, '3.20.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.unity3d.unityhub');" }, "installer_url": "https://public-cdn.cloud.unity3d.com/hub/prod/3.20.0/UnityHubSetup-3.20.0-arm64.dmg", "install_script_ref": "f7867145", diff --git a/ee/maintained-apps/outputs/updf/darwin.json b/ee/maintained-apps/outputs/updf/darwin.json index 20370532fe5..57c3808e63d 100644 --- a/ee/maintained-apps/outputs/updf/darwin.json +++ b/ee/maintained-apps/outputs/updf/darwin.json @@ -4,7 +4,8 @@ "version": "2.5.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.superace.updf.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.superace.updf.mac' AND version_compare(bundle_short_version, '2.5.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.superace.updf.mac' AND version_compare(bundle_short_version, '2.5.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.superace.updf.mac');" }, "installer_url": "https://download.updf.com/updf/basic/mac/apple/updf-mac-full.dmg", "install_script_ref": "e32356d5", diff --git a/ee/maintained-apps/outputs/upscayl/darwin.json b/ee/maintained-apps/outputs/upscayl/darwin.json index 6445547c7a4..794ec79f777 100644 --- a/ee/maintained-apps/outputs/upscayl/darwin.json +++ b/ee/maintained-apps/outputs/upscayl/darwin.json @@ -4,7 +4,8 @@ "version": "2.15.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.upscayl.Upscayl';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.upscayl.Upscayl' AND version_compare(bundle_short_version, '2.15.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.upscayl.Upscayl' AND version_compare(bundle_short_version, '2.15.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.upscayl.Upscayl');" }, "installer_url": "https://github.com/upscayl/upscayl/releases/download/v2.15.0/upscayl-2.15.0-mac.dmg", "install_script_ref": "22772430", diff --git a/ee/maintained-apps/outputs/usage-app/darwin.json b/ee/maintained-apps/outputs/usage-app/darwin.json index 7278ce05eb4..d16ea415c6d 100644 --- a/ee/maintained-apps/outputs/usage-app/darwin.json +++ b/ee/maintained-apps/outputs/usage-app/darwin.json @@ -4,7 +4,8 @@ "version": "1.4.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mediaatelier.Usage';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mediaatelier.Usage' AND version_compare(bundle_short_version, '1.4.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mediaatelier.Usage' AND version_compare(bundle_short_version, '1.4.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.mediaatelier.Usage');" }, "installer_url": "https://mediaatelier.com/Usage/Usage_1.4.6.dmg", "install_script_ref": "c4929aa5", diff --git a/ee/maintained-apps/outputs/utm/darwin.json b/ee/maintained-apps/outputs/utm/darwin.json index a0715bfb462..2e7aef038c6 100644 --- a/ee/maintained-apps/outputs/utm/darwin.json +++ b/ee/maintained-apps/outputs/utm/darwin.json @@ -4,7 +4,8 @@ "version": "4.7.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.utmapp.UTM';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.utmapp.UTM' AND version_compare(bundle_short_version, '4.7.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.utmapp.UTM' AND version_compare(bundle_short_version, '4.7.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.utmapp.UTM');" }, "installer_url": "https://github.com/utmapp/UTM/releases/download/v4.7.5/UTM.dmg", "install_script_ref": "25df9561", diff --git a/ee/maintained-apps/outputs/vanilla/darwin.json b/ee/maintained-apps/outputs/vanilla/darwin.json index 86bc9dc7add..750cefa8607 100644 --- a/ee/maintained-apps/outputs/vanilla/darwin.json +++ b/ee/maintained-apps/outputs/vanilla/darwin.json @@ -4,7 +4,8 @@ "version": "2.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.matthewpalmer.Vanilla';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.matthewpalmer.Vanilla' AND version_compare(bundle_short_version, '2.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.matthewpalmer.Vanilla' AND version_compare(bundle_short_version, '2.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.matthewpalmer.Vanilla');" }, "installer_url": "https://macrelease.matthewpalmer.net/distribution/appcasts/Vanilla-61.dmg", "install_script_ref": "c9b28237", diff --git a/ee/maintained-apps/outputs/vc-redist-2013-x64/windows.json b/ee/maintained-apps/outputs/vc-redist-2013-x64/windows.json index 73bf7aa004e..f654ed50a2f 100644 --- a/ee/maintained-apps/outputs/vc-redist-2013-x64/windows.json +++ b/ee/maintained-apps/outputs/vc-redist-2013-x64/windows.json @@ -4,7 +4,8 @@ "version": "12.0.40664.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Microsoft Visual C++ 2013 Redistributable (x64)%' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Microsoft Visual C++ 2013 Redistributable (x64)%' AND publisher = 'Microsoft Corporation' AND version_compare(version, '12.0.40664.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Microsoft Visual C++ 2013 Redistributable (x64)%' AND publisher = 'Microsoft Corporation' AND version_compare(version, '12.0.40664.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'microsoft visual c++ 2013 redistributable (x64).exe');" }, "installer_url": "https://download.visualstudio.microsoft.com/download/pr/10912041/cee5d6bca2ddbcd039da727bf4acb48a/vcredist_x64.exe", "install_script_ref": "65654cc8", diff --git a/ee/maintained-apps/outputs/vc-redist-x64/windows.json b/ee/maintained-apps/outputs/vc-redist-x64/windows.json index e8dae85bbb5..4db82d30a20 100644 --- a/ee/maintained-apps/outputs/vc-redist-x64/windows.json +++ b/ee/maintained-apps/outputs/vc-redist-x64/windows.json @@ -3,8 +3,9 @@ { "version": "14.51.36247.0", "queries": { - "exists": "SELECT 1 FROM programs WHERE name LIKE 'Microsoft Visual C++ 2015-2022 Redistributable (x64)%' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Microsoft Visual C++ 2015-2022 Redistributable (x64)%' AND publisher = 'Microsoft Corporation' AND version_compare(version, '14.51.36247.0') < 0);" + "exists": "SELECT 1 FROM programs WHERE (name LIKE 'Microsoft Visual C++ 2015-2022 Redistributable (x64)%' OR name LIKE 'Microsoft Visual C++ v14 Redistributable (x64)%') AND publisher = 'Microsoft Corporation';", + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE ((name LIKE 'Microsoft Visual C++ 2015-2022 Redistributable (x64)%' OR name LIKE 'Microsoft Visual C++ v14 Redistributable (x64)%') AND publisher = 'Microsoft Corporation') AND version_compare(version, '14.51.36247.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'microsoft visual c++ 2015-2022 redistributable (x64).exe');" }, "installer_url": "https://download.visualstudio.microsoft.com/download/pr/ebdab8e5-1d7b-4d9f-a11b-cbb1720c3b12/843068991DAAA1F73AD9F6239BCE4D0F6A07A51F18C37EA2A867E9BECA71295C/VC_redist.x64.exe", "install_script_ref": "65654cc8", diff --git a/ee/maintained-apps/outputs/vellum/darwin.json b/ee/maintained-apps/outputs/vellum/darwin.json index 2ad422b6fb4..ce14a6fd85a 100644 --- a/ee/maintained-apps/outputs/vellum/darwin.json +++ b/ee/maintained-apps/outputs/vellum/darwin.json @@ -4,7 +4,8 @@ "version": "4.1.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'co.180g.Vellum';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.180g.Vellum' AND version_compare(bundle_short_version, '4.1.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'co.180g.Vellum' AND version_compare(bundle_short_version, '4.1.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'co.180g.Vellum');" }, "installer_url": "https://180g.s3.amazonaws.com/downloads/Vellum-41400.zip", "install_script_ref": "737a7ab5", diff --git a/ee/maintained-apps/outputs/vernier-spectral-analysis/darwin.json b/ee/maintained-apps/outputs/vernier-spectral-analysis/darwin.json index 77403c5fad6..0d8cf5f72e2 100644 --- a/ee/maintained-apps/outputs/vernier-spectral-analysis/darwin.json +++ b/ee/maintained-apps/outputs/vernier-spectral-analysis/darwin.json @@ -4,7 +4,8 @@ "version": "5.1.0-2993", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'Vernier.SpectralAnalysis';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'Vernier.SpectralAnalysis' AND version_compare(bundle_short_version, '5.1.0-2993') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'Vernier.SpectralAnalysis' AND version_compare(bundle_short_version, '5.1.0-2993') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'Vernier.SpectralAnalysis');" }, "installer_url": "https://software-releases.graphicalanalysis.com/sa/mac/release/Vernier-Spectral-Analysis-5.1.0-2993.dmg", "install_script_ref": "56cdf3d2", diff --git a/ee/maintained-apps/outputs/vernier-spectral-analysis/windows.json b/ee/maintained-apps/outputs/vernier-spectral-analysis/windows.json index 4fb753ba581..2cc3e2af5b8 100644 --- a/ee/maintained-apps/outputs/vernier-spectral-analysis/windows.json +++ b/ee/maintained-apps/outputs/vernier-spectral-analysis/windows.json @@ -4,7 +4,8 @@ "version": "5.1.0-2993", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Vernier Spectral Analysis' AND publisher = 'Vernier Software & Technology';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Vernier Spectral Analysis' AND publisher = 'Vernier Software & Technology' AND version_compare(version, '5.1.0-2993') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Vernier Spectral Analysis' AND publisher = 'Vernier Software & Technology' AND version_compare(version, '5.1.0-2993') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'vernier spectral analysis.exe');" }, "installer_url": "https://software-releases.graphicalanalysis.com/sa/win/release/Vernier-Spectral-Analysis-5.1.0-2993.exe", "install_script_ref": "9a0e8623", diff --git a/ee/maintained-apps/outputs/versions/darwin.json b/ee/maintained-apps/outputs/versions/darwin.json index 1ae236ec6d9..8f7f8a010f1 100644 --- a/ee/maintained-apps/outputs/versions/darwin.json +++ b/ee/maintained-apps/outputs/versions/darwin.json @@ -4,7 +4,8 @@ "version": "2.4.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.versionsapp.v2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.versionsapp.v2' AND version_compare(bundle_short_version, '2.4.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.versionsapp.v2' AND version_compare(bundle_short_version, '2.4.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.versionsapp.v2');" }, "installer_url": "https://updates.versionsapp.com/v2/prod/Versions-2.4.5-2042.zip", "install_script_ref": "3fb0cad6", diff --git a/ee/maintained-apps/outputs/via/darwin.json b/ee/maintained-apps/outputs/via/darwin.json index e7a32c6abe2..7c6422f6325 100644 --- a/ee/maintained-apps/outputs/via/darwin.json +++ b/ee/maintained-apps/outputs/via/darwin.json @@ -4,7 +4,8 @@ "version": "3.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.via.configurator';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.via.configurator' AND version_compare(bundle_short_version, '3.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.via.configurator' AND version_compare(bundle_short_version, '3.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.via.configurator');" }, "installer_url": "https://github.com/the-via/releases/releases/download/v3.0.0/via-3.0.0-mac.dmg", "install_script_ref": "83fee993", diff --git a/ee/maintained-apps/outputs/vimcal/darwin.json b/ee/maintained-apps/outputs/vimcal/darwin.json index 49172021460..9adfea13f37 100644 --- a/ee/maintained-apps/outputs/vimcal/darwin.json +++ b/ee/maintained-apps/outputs/vimcal/darwin.json @@ -4,7 +4,8 @@ "version": "1.0.48", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.vimcal.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.vimcal.app' AND version_compare(bundle_short_version, '1.0.48') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.vimcal.app' AND version_compare(bundle_short_version, '1.0.48') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.vimcal.app');" }, "installer_url": "https://vimcal-m1.s3.amazonaws.com/Vimcal-1.0.48-arm64.dmg", "install_script_ref": "bdb3c7d6", diff --git a/ee/maintained-apps/outputs/virtualbox/darwin.json b/ee/maintained-apps/outputs/virtualbox/darwin.json index 794f88a527e..5c5166672af 100644 --- a/ee/maintained-apps/outputs/virtualbox/darwin.json +++ b/ee/maintained-apps/outputs/virtualbox/darwin.json @@ -4,7 +4,8 @@ "version": "7.2.14", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.virtualbox.app.VirtualBox';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.virtualbox.app.VirtualBox' AND version_compare(bundle_short_version, '7.2.14') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.virtualbox.app.VirtualBox' AND version_compare(bundle_short_version, '7.2.14') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.virtualbox.app.VirtualBox');" }, "installer_url": "https://download.virtualbox.org/virtualbox/7.2.14/VirtualBox-7.2.14-174565-macOSArm64.dmg", "install_script_ref": "815ae6bd", diff --git a/ee/maintained-apps/outputs/virtualbox/windows.json b/ee/maintained-apps/outputs/virtualbox/windows.json index 2fa3d7fdd48..496d8a0c904 100644 --- a/ee/maintained-apps/outputs/virtualbox/windows.json +++ b/ee/maintained-apps/outputs/virtualbox/windows.json @@ -4,7 +4,8 @@ "version": "7.2.14", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Oracle VirtualBox %' AND publisher = 'Oracle and/or its affiliates';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Oracle VirtualBox %' AND publisher = 'Oracle and/or its affiliates' AND version_compare(version, '7.2.14') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Oracle VirtualBox %' AND publisher = 'Oracle and/or its affiliates' AND version_compare(version, '7.2.14') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) LIKE 'virtualbox%');" }, "installer_url": "https://download.virtualbox.org/virtualbox/7.2.14/VirtualBox-7.2.14-174565-Win.exe", "install_script_ref": "556130e3", diff --git a/ee/maintained-apps/outputs/virtualbuddy/darwin.json b/ee/maintained-apps/outputs/virtualbuddy/darwin.json index a5ff69f6b76..9aa49dbfdf2 100644 --- a/ee/maintained-apps/outputs/virtualbuddy/darwin.json +++ b/ee/maintained-apps/outputs/virtualbuddy/darwin.json @@ -4,7 +4,8 @@ "version": "2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'codes.rambo.VirtualBuddy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'codes.rambo.VirtualBuddy' AND version_compare(bundle_short_version, '2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'codes.rambo.VirtualBuddy' AND version_compare(bundle_short_version, '2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'codes.rambo.VirtualBuddy');" }, "installer_url": "https://su.virtualbuddy.app/VirtualBuddy_v2.1-325.dmg", "install_script_ref": "e19ccba1", diff --git a/ee/maintained-apps/outputs/viscosity/darwin.json b/ee/maintained-apps/outputs/viscosity/darwin.json index 4e7e49d30c4..e5b50271600 100644 --- a/ee/maintained-apps/outputs/viscosity/darwin.json +++ b/ee/maintained-apps/outputs/viscosity/darwin.json @@ -4,7 +4,8 @@ "version": "1.13.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.viscosityvpn.Viscosity';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.viscosityvpn.Viscosity' AND version_compare(bundle_short_version, '1.13.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.viscosityvpn.Viscosity' AND version_compare(bundle_short_version, '1.13.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.viscosityvpn.Viscosity');" }, "installer_url": "https://swupdate.sparklabs.com/download/mac/release/viscosity/Viscosity%201.13.1.dmg", "install_script_ref": "c1aade9c", diff --git a/ee/maintained-apps/outputs/viscosity/windows.json b/ee/maintained-apps/outputs/viscosity/windows.json index 164e2ef28a4..c819f0a2daa 100644 --- a/ee/maintained-apps/outputs/viscosity/windows.json +++ b/ee/maintained-apps/outputs/viscosity/windows.json @@ -4,7 +4,8 @@ "version": "1.13.1.1884", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Viscosity %' AND publisher = 'SparkLabs Pty Ltd';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Viscosity %' AND publisher = 'SparkLabs Pty Ltd' AND version_compare(version, '1.13.1.1884') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Viscosity %' AND publisher = 'SparkLabs Pty Ltd' AND version_compare(version, '1.13.1.1884') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'viscosity.exe');" }, "installer_url": "https://swupdate.sparklabs.com/download/win/release/viscosity/Viscosity%20Installer%201.13.1.exe", "install_script_ref": "d37a65b5", diff --git a/ee/maintained-apps/outputs/visual-studio-2022-community/windows.json b/ee/maintained-apps/outputs/visual-studio-2022-community/windows.json index 9aac9266822..cdb517b3269 100644 --- a/ee/maintained-apps/outputs/visual-studio-2022-community/windows.json +++ b/ee/maintained-apps/outputs/visual-studio-2022-community/windows.json @@ -4,7 +4,8 @@ "version": "17.14.37", "queries": { "exists": "SELECT 1 FROM programs WHERE (name = 'Visual Studio Community 2022' OR name LIKE 'Visual Studio Community 2022 (%') AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE ((name = 'Visual Studio Community 2022' OR name LIKE 'Visual Studio Community 2022 (%') AND publisher = 'Microsoft Corporation') AND version_compare(version, '17.14.37') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE ((name = 'Visual Studio Community 2022' OR name LIKE 'Visual Studio Community 2022 (%') AND publisher = 'Microsoft Corporation') AND version_compare(version, '17.14.37') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'visual studio community 2022.exe');" }, "installer_url": "https://download.visualstudio.microsoft.com/download/pr/f7f5ecbc-83ca-4cf0-bdb2-aaf70efb6d97/065e93abcaf6a7ea97fa9a43561fc55bd57845d97b0cbf58c9be8cb72ddc1934/vs_Community.exe", "install_script_ref": "1662986f", diff --git a/ee/maintained-apps/outputs/visual-studio-2022-enterprise/windows.json b/ee/maintained-apps/outputs/visual-studio-2022-enterprise/windows.json index f73f036dbfd..69eb4745b0f 100644 --- a/ee/maintained-apps/outputs/visual-studio-2022-enterprise/windows.json +++ b/ee/maintained-apps/outputs/visual-studio-2022-enterprise/windows.json @@ -4,7 +4,8 @@ "version": "17.14.37", "queries": { "exists": "SELECT 1 FROM programs WHERE (name = 'Visual Studio Enterprise 2022' OR name LIKE 'Visual Studio Enterprise 2022 (%') AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE ((name = 'Visual Studio Enterprise 2022' OR name LIKE 'Visual Studio Enterprise 2022 (%') AND publisher = 'Microsoft Corporation') AND version_compare(version, '17.14.37') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE ((name = 'Visual Studio Enterprise 2022' OR name LIKE 'Visual Studio Enterprise 2022 (%') AND publisher = 'Microsoft Corporation') AND version_compare(version, '17.14.37') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'visual studio enterprise 2022.exe');" }, "installer_url": "https://download.visualstudio.microsoft.com/download/pr/f7f5ecbc-83ca-4cf0-bdb2-aaf70efb6d97/2229b67966b6ae32a74599b68acc1d7d88bc21e93fcceb2f8c1c8253b6e92b29/vs_Enterprise.exe", "install_script_ref": "1662986f", diff --git a/ee/maintained-apps/outputs/visual-studio-2022-professional/windows.json b/ee/maintained-apps/outputs/visual-studio-2022-professional/windows.json index a5c476f8135..3f9ceb89568 100644 --- a/ee/maintained-apps/outputs/visual-studio-2022-professional/windows.json +++ b/ee/maintained-apps/outputs/visual-studio-2022-professional/windows.json @@ -4,7 +4,8 @@ "version": "17.14.37", "queries": { "exists": "SELECT 1 FROM programs WHERE (name = 'Visual Studio Professional 2022' OR name LIKE 'Visual Studio Professional 2022 (%') AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE ((name = 'Visual Studio Professional 2022' OR name LIKE 'Visual Studio Professional 2022 (%') AND publisher = 'Microsoft Corporation') AND version_compare(version, '17.14.37') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE ((name = 'Visual Studio Professional 2022' OR name LIKE 'Visual Studio Professional 2022 (%') AND publisher = 'Microsoft Corporation') AND version_compare(version, '17.14.37') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'visual studio professional 2022.exe');" }, "installer_url": "https://download.visualstudio.microsoft.com/download/pr/f7f5ecbc-83ca-4cf0-bdb2-aaf70efb6d97/119dd0785334e307d2df472373f0cdfeb6174c8cc895ae12e9157cfb65527ad0/vs_Professional.exe", "install_script_ref": "1662986f", diff --git a/ee/maintained-apps/outputs/visual-studio-code/darwin.json b/ee/maintained-apps/outputs/visual-studio-code/darwin.json index d12d4b0a009..43cc42933de 100644 --- a/ee/maintained-apps/outputs/visual-studio-code/darwin.json +++ b/ee/maintained-apps/outputs/visual-studio-code/darwin.json @@ -4,7 +4,8 @@ "version": "1.132.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.VSCode';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.VSCode' AND version_compare(bundle_short_version, '1.132.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.VSCode' AND version_compare(bundle_short_version, '1.132.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.microsoft.VSCode');" }, "installer_url": "https://update.code.visualstudio.com/1.132.0/darwin-universal/stable", "install_script_ref": "58ade691", diff --git a/ee/maintained-apps/outputs/visual-studio-code/windows.json b/ee/maintained-apps/outputs/visual-studio-code/windows.json index a23fe40fe47..1c45154a15c 100644 --- a/ee/maintained-apps/outputs/visual-studio-code/windows.json +++ b/ee/maintained-apps/outputs/visual-studio-code/windows.json @@ -4,7 +4,8 @@ "version": "1.130.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Microsoft Visual Studio Code' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft Visual Studio Code' AND publisher = 'Microsoft Corporation' AND version_compare(version, '1.130.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft Visual Studio Code' AND publisher = 'Microsoft Corporation' AND version_compare(version, '1.130.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'code.exe');" }, "installer_url": "https://vscode.download.prss.microsoft.com/dbazure/download/stable/1b6a188127eeaf9194f945eb6eb89a657e93c54c/VSCodeSetup-x64-1.130.0.exe", "install_script_ref": "49122823", diff --git a/ee/maintained-apps/outputs/vivaldi/darwin.json b/ee/maintained-apps/outputs/vivaldi/darwin.json index 86a90b0b574..72b63efaa00 100644 --- a/ee/maintained-apps/outputs/vivaldi/darwin.json +++ b/ee/maintained-apps/outputs/vivaldi/darwin.json @@ -1,12 +1,13 @@ { "versions": [ { - "version": "8.1.4087.61", + "version": "8.1.4087.62", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.vivaldi.Vivaldi';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.vivaldi.Vivaldi' AND version_compare(bundle_short_version, '8.1.4087.61') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.vivaldi.Vivaldi' AND version_compare(bundle_short_version, '8.1.4087.62') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.vivaldi.Vivaldi');" }, - "installer_url": "https://downloads.vivaldi.com/stable/Vivaldi.8.1.4087.61.universal.dmg", + "installer_url": "https://downloads.vivaldi.com/stable/Vivaldi.8.1.4087.62.universal.dmg", "install_script_ref": "cae29ed4", "uninstall_script_ref": "7c1876ca", "sha256": "no_check", diff --git a/ee/maintained-apps/outputs/vivaldi/windows.json b/ee/maintained-apps/outputs/vivaldi/windows.json index 8d713158401..e17ec0000f8 100644 --- a/ee/maintained-apps/outputs/vivaldi/windows.json +++ b/ee/maintained-apps/outputs/vivaldi/windows.json @@ -4,7 +4,8 @@ "version": "8.1.4087.61", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Vivaldi' AND publisher = 'Vivaldi Technologies AS.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Vivaldi' AND publisher = 'Vivaldi Technologies AS.' AND version_compare(version, '8.1.4087.61') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Vivaldi' AND publisher = 'Vivaldi Technologies AS.' AND version_compare(version, '8.1.4087.61') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'vivaldi.exe');" }, "installer_url": "https://downloads.vivaldi.com/stable/Vivaldi.8.1.4087.61.x64.exe", "install_script_ref": "d5d49757", diff --git a/ee/maintained-apps/outputs/vivid-app/darwin.json b/ee/maintained-apps/outputs/vivid-app/darwin.json index c4234947dfd..15d6be21356 100644 --- a/ee/maintained-apps/outputs/vivid-app/darwin.json +++ b/ee/maintained-apps/outputs/vivid-app/darwin.json @@ -4,7 +4,8 @@ "version": "2.18.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.goodsnooze.vivid';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.goodsnooze.vivid' AND version_compare(bundle_short_version, '2.18.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.goodsnooze.vivid' AND version_compare(bundle_short_version, '2.18.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.goodsnooze.vivid');" }, "installer_url": "https://lumen-digital.com/apps/vivid/releases/Vivid2.18.1.zip", "install_script_ref": "eb95e6a3", diff --git a/ee/maintained-apps/outputs/viz/darwin.json b/ee/maintained-apps/outputs/viz/darwin.json index fc0a0a5594e..9ef3cb314a3 100644 --- a/ee/maintained-apps/outputs/viz/darwin.json +++ b/ee/maintained-apps/outputs/viz/darwin.json @@ -4,7 +4,8 @@ "version": "2.3.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.alienator88.Viz';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.alienator88.Viz' AND version_compare(bundle_short_version, '2.3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.alienator88.Viz' AND version_compare(bundle_short_version, '2.3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.alienator88.Viz');" }, "installer_url": "https://github.com/alienator88/Viz/releases/download/2.3.3/Viz.zip", "install_script_ref": "96188e69", diff --git a/ee/maintained-apps/outputs/vlc/darwin.json b/ee/maintained-apps/outputs/vlc/darwin.json index 8226a1c3885..203b06f744c 100644 --- a/ee/maintained-apps/outputs/vlc/darwin.json +++ b/ee/maintained-apps/outputs/vlc/darwin.json @@ -4,7 +4,8 @@ "version": "3.0.23", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.videolan.vlc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.videolan.vlc' AND version_compare(bundle_short_version, '3.0.23') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.videolan.vlc' AND version_compare(bundle_short_version, '3.0.23') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.videolan.vlc');" }, "installer_url": "https://get.videolan.org/vlc/3.0.23/macosx/vlc-3.0.23-arm64.dmg", "install_script_ref": "8ce87ef4", diff --git a/ee/maintained-apps/outputs/vlc/windows.json b/ee/maintained-apps/outputs/vlc/windows.json index 2e3cd0aec11..a5bd6aec6f2 100644 --- a/ee/maintained-apps/outputs/vlc/windows.json +++ b/ee/maintained-apps/outputs/vlc/windows.json @@ -4,7 +4,8 @@ "version": "3.0.23", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'VLC media player' AND publisher = 'VideoLAN';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'VLC media player' AND publisher = 'VideoLAN' AND version_compare(version, '3.0.23') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'VLC media player' AND publisher = 'VideoLAN' AND version_compare(version, '3.0.23') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'vlc media player.exe');" }, "installer_url": "https://download.videolan.org/pub/videolan/vlc/3.0.23/win64/vlc-3.0.23-win64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/vnc-server/darwin.json b/ee/maintained-apps/outputs/vnc-server/darwin.json index 2a548c9e0f1..a16bb585ac7 100644 --- a/ee/maintained-apps/outputs/vnc-server/darwin.json +++ b/ee/maintained-apps/outputs/vnc-server/darwin.json @@ -4,7 +4,8 @@ "version": "7.17.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.realvnc.vncserver';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.realvnc.vncserver' AND version_compare(bundle_short_version, '7.17.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.realvnc.vncserver' AND version_compare(bundle_short_version, '7.17.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.realvnc.vncserver');" }, "installer_url": "https://downloads.realvnc.com/download/file/vnc.files/VNC-Server-7.17.0-MacOSX-universal.pkg", "install_script_ref": "ce8f35c3", diff --git a/ee/maintained-apps/outputs/vnc-server/windows.json b/ee/maintained-apps/outputs/vnc-server/windows.json index 68adc4b9315..f4e6b31e986 100644 --- a/ee/maintained-apps/outputs/vnc-server/windows.json +++ b/ee/maintained-apps/outputs/vnc-server/windows.json @@ -4,7 +4,8 @@ "version": "7.18.0.14", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'RealVNC Server %' AND publisher = 'RealVNC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'RealVNC Server %' AND publisher = 'RealVNC' AND version_compare(version, '7.18.0.14') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'RealVNC Server %' AND publisher = 'RealVNC' AND version_compare(version, '7.18.0.14') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'vnc server.exe');" }, "installer_url": "https://downloads.realvnc.com/download/file/vnc.files/VNC-Server-7.18.0-Windows-msi.zip", "install_script_ref": "8e43d9e2", diff --git a/ee/maintained-apps/outputs/voiceink/darwin.json b/ee/maintained-apps/outputs/voiceink/darwin.json index 2e0f91fb093..a35cc0b2a20 100644 --- a/ee/maintained-apps/outputs/voiceink/darwin.json +++ b/ee/maintained-apps/outputs/voiceink/darwin.json @@ -4,7 +4,8 @@ "version": "2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.prakashjoshipax.VoiceInk';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.prakashjoshipax.VoiceInk' AND version_compare(bundle_short_version, '2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.prakashjoshipax.VoiceInk' AND version_compare(bundle_short_version, '2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.prakashjoshipax.VoiceInk');" }, "installer_url": "https://github.com/Beingpax/VoiceInk/releases/download/v2.1/VoiceInk.dmg", "install_script_ref": "e5610cbe", diff --git a/ee/maintained-apps/outputs/vpn-tracker-365/darwin.json b/ee/maintained-apps/outputs/vpn-tracker-365/darwin.json index 96af3b42be8..bc3d993adb1 100644 --- a/ee/maintained-apps/outputs/vpn-tracker-365/darwin.json +++ b/ee/maintained-apps/outputs/vpn-tracker-365/darwin.json @@ -4,7 +4,8 @@ "version": "26.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.equinux.VPNTracker365';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.equinux.VPNTracker365' AND version_compare(bundle_short_version, '26.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.equinux.VPNTracker365' AND version_compare(bundle_short_version, '26.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.equinux.VPNTracker365');" }, "installer_url": "https://download.equinux.com/files/other/VPN%20Tracker%20365%20-%2026.7.23.zip", "install_script_ref": "72c70dd7", diff --git a/ee/maintained-apps/outputs/vscodium/darwin.json b/ee/maintained-apps/outputs/vscodium/darwin.json index bfb32e5c4bd..fcabe924543 100644 --- a/ee/maintained-apps/outputs/vscodium/darwin.json +++ b/ee/maintained-apps/outputs/vscodium/darwin.json @@ -4,7 +4,8 @@ "version": "1.126.04524", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.vscodium';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.vscodium' AND version_compare(bundle_short_version, '1.126.04524') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.vscodium' AND version_compare(bundle_short_version, '1.126.04524') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.vscodium');" }, "installer_url": "https://github.com/VSCodium/vscodium/releases/download/1.126.04524/VSCodium-darwin-arm64-1.126.04524.zip", "install_script_ref": "4a7faa80", diff --git a/ee/maintained-apps/outputs/vscodium/windows.json b/ee/maintained-apps/outputs/vscodium/windows.json index e4cd515b6a3..92a45f3bd1e 100644 --- a/ee/maintained-apps/outputs/vscodium/windows.json +++ b/ee/maintained-apps/outputs/vscodium/windows.json @@ -4,7 +4,8 @@ "version": "1.126.04524", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'VSCodium' AND publisher = 'VSCodium';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'VSCodium' AND publisher = 'VSCodium' AND version_compare(version, '1.126.04524') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'VSCodium' AND publisher = 'VSCodium' AND version_compare(version, '1.126.04524') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'vscodium.exe');" }, "installer_url": "https://github.com/VSCodium/vscodium/releases/download/1.126.04524/VSCodiumSetup-x64-1.126.04524.exe", "install_script_ref": "38852240", diff --git a/ee/maintained-apps/outputs/vuescan/darwin.json b/ee/maintained-apps/outputs/vuescan/darwin.json index 9133916c861..a99f27597e8 100644 --- a/ee/maintained-apps/outputs/vuescan/darwin.json +++ b/ee/maintained-apps/outputs/vuescan/darwin.json @@ -4,7 +4,8 @@ "version": "9.8.56", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hamrick.vuescan';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hamrick.vuescan' AND version_compare(bundle_short_version, '9.8.56') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hamrick.vuescan' AND version_compare(bundle_short_version, '9.8.56') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.hamrick.vuescan');" }, "installer_url": "https://www.hamrick.com/files/vuea6498.dmg", "install_script_ref": "4b5b07e1", diff --git a/ee/maintained-apps/outputs/vyprvpn/darwin.json b/ee/maintained-apps/outputs/vyprvpn/darwin.json index 29006d116e6..46d6d90d517 100644 --- a/ee/maintained-apps/outputs/vyprvpn/darwin.json +++ b/ee/maintained-apps/outputs/vyprvpn/darwin.json @@ -4,7 +4,8 @@ "version": "6.0.4.11438", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.goldenfrog.VyprVPN';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.goldenfrog.VyprVPN' AND version_compare(bundle_short_version, '6.0.4.11438') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.goldenfrog.VyprVPN' AND version_compare(bundle_short_version, '6.0.4.11438') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.goldenfrog.VyprVPN');" }, "installer_url": "https://downloads.vyprvpn.com/downloads/vyprvpn/desktop/mac/production/6.0.4.11438/VyprVPN_v6.0.4.11438.dmg", "install_script_ref": "effe04ea", diff --git a/ee/maintained-apps/outputs/vysor/darwin.json b/ee/maintained-apps/outputs/vysor/darwin.json index 56df409cd90..18325fd100b 100644 --- a/ee/maintained-apps/outputs/vysor/darwin.json +++ b/ee/maintained-apps/outputs/vysor/darwin.json @@ -4,7 +4,8 @@ "version": "5.0.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.vysor';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.vysor' AND version_compare(bundle_short_version, '5.0.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.vysor' AND version_compare(bundle_short_version, '5.0.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.vysor');" }, "installer_url": "https://github.com/koush/vysor.io/releases/download/v5.0.7/Vysor-mac-5.0.7.zip", "install_script_ref": "6ef0f594", diff --git a/ee/maintained-apps/outputs/wacom-tablet/darwin.json b/ee/maintained-apps/outputs/wacom-tablet/darwin.json index b75354564b5..b108dd6b9ce 100644 --- a/ee/maintained-apps/outputs/wacom-tablet/darwin.json +++ b/ee/maintained-apps/outputs/wacom-tablet/darwin.json @@ -4,7 +4,8 @@ "version": "6.4.13-4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.wacom.WacomCenter';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.wacom.WacomCenter' AND version_compare(bundle_short_version, '6.4.13-4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.wacom.WacomCenter' AND version_compare(bundle_short_version, '6.4.13-4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.wacom.WacomCenter');" }, "installer_url": "https://cdn.wacom.com/u/productsupport/drivers/mac/professional/WacomTablet_6.4.13-4.dmg", "install_script_ref": "d30918ad", diff --git a/ee/maintained-apps/outputs/wacom-tablet/windows.json b/ee/maintained-apps/outputs/wacom-tablet/windows.json index 3dda338cc97..2a408e1dad8 100644 --- a/ee/maintained-apps/outputs/wacom-tablet/windows.json +++ b/ee/maintained-apps/outputs/wacom-tablet/windows.json @@ -4,7 +4,8 @@ "version": "6.4.13-4", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Wacom Tablet %' AND publisher = 'Wacom Technology Corp.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Wacom Tablet %' AND publisher = 'Wacom Technology Corp.' AND version_compare(version, '6.4.13-4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Wacom Tablet %' AND publisher = 'Wacom Technology Corp.' AND version_compare(version, '6.4.13-4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('wacomdesktopcenter.exe','wacom_tablet.exe'));" }, "installer_url": "https://cdn.wacom.com/u/productsupport/drivers/win/professional/WacomTablet_6.4.13-4.exe", "install_script_ref": "d1d4a55c", diff --git a/ee/maintained-apps/outputs/warp/darwin.json b/ee/maintained-apps/outputs/warp/darwin.json index 7d482598bc3..0147ee8f51f 100644 --- a/ee/maintained-apps/outputs/warp/darwin.json +++ b/ee/maintained-apps/outputs/warp/darwin.json @@ -1,12 +1,13 @@ { "versions": [ { - "version": "0.2026.07.29.09.05.02", + "version": "0.2026.08.05.09.03.01", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.warp.Warp-Stable';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.warp.Warp-Stable' AND version_compare(bundle_short_version, '0.2026.07.29.09.05.02') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.warp.Warp-Stable' AND version_compare(bundle_short_version, '0.2026.08.05.09.03.01') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'dev.warp.Warp-Stable');" }, - "installer_url": "https://releases.warp.dev/stable/v0.2026.07.29.09.05.stable_02/Warp.dmg", + "installer_url": "https://releases.warp.dev/stable/v0.2026.08.05.09.03.stable_01/Warp.dmg", "install_script_ref": "662fa5d8", "uninstall_script_ref": "932356de", "sha256": "no_check", diff --git a/ee/maintained-apps/outputs/wave/darwin.json b/ee/maintained-apps/outputs/wave/darwin.json index 52e1a2e0f93..0a208060bb2 100644 --- a/ee/maintained-apps/outputs/wave/darwin.json +++ b/ee/maintained-apps/outputs/wave/darwin.json @@ -4,7 +4,8 @@ "version": "0.14.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.commandline.waveterm';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.commandline.waveterm' AND version_compare(bundle_short_version, '0.14.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.commandline.waveterm' AND version_compare(bundle_short_version, '0.14.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'dev.commandline.waveterm');" }, "installer_url": "https://dl.waveterm.dev/releases-w2/Wave-darwin-arm64-0.14.5.dmg", "install_script_ref": "75c8d644", diff --git a/ee/maintained-apps/outputs/wave/windows.json b/ee/maintained-apps/outputs/wave/windows.json index 95a6d108b88..4f757533ffd 100644 --- a/ee/maintained-apps/outputs/wave/windows.json +++ b/ee/maintained-apps/outputs/wave/windows.json @@ -4,7 +4,8 @@ "version": "0.13.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Wave' AND publisher = 'Command Line Inc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Wave' AND publisher = 'Command Line Inc' AND version_compare(version, '0.13.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Wave' AND publisher = 'Command Line Inc' AND version_compare(version, '0.13.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'wave terminal.exe');" }, "installer_url": "https://dl.waveterm.dev/releases-w2/Wave-win32-x64-0.13.1.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/wavebox/darwin.json b/ee/maintained-apps/outputs/wavebox/darwin.json index 962e5282a3b..28f4a8d6dc9 100644 --- a/ee/maintained-apps/outputs/wavebox/darwin.json +++ b/ee/maintained-apps/outputs/wavebox/darwin.json @@ -4,7 +4,8 @@ "version": "151.2.148.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.wavebox.wavebox';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.wavebox.wavebox' AND version_compare(bundle_short_version, '151.2.148.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.wavebox.wavebox' AND version_compare(bundle_short_version, '151.2.148.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.wavebox.wavebox');" }, "installer_url": "https://download.wavebox.app/stable/macarm64/Wavebox_151.2.148.2.zip", "install_script_ref": "316254ed", diff --git a/ee/maintained-apps/outputs/wealthfolio/darwin.json b/ee/maintained-apps/outputs/wealthfolio/darwin.json index e34bde91acb..c0767912453 100644 --- a/ee/maintained-apps/outputs/wealthfolio/darwin.json +++ b/ee/maintained-apps/outputs/wealthfolio/darwin.json @@ -4,7 +4,8 @@ "version": "3.6.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.teymz.wealthfolio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.teymz.wealthfolio' AND version_compare(bundle_short_version, '3.6.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.teymz.wealthfolio' AND version_compare(bundle_short_version, '3.6.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.teymz.wealthfolio');" }, "installer_url": "https://github.com/afadil/wealthfolio/releases/download/v3.6.2/Wealthfolio_3.6.2_aarch64.dmg", "install_script_ref": "bfb40084", diff --git a/ee/maintained-apps/outputs/weasis/darwin.json b/ee/maintained-apps/outputs/weasis/darwin.json index cdf1ae30588..019f8690a11 100644 --- a/ee/maintained-apps/outputs/weasis/darwin.json +++ b/ee/maintained-apps/outputs/weasis/darwin.json @@ -4,7 +4,8 @@ "version": "4.7.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.weasis.launcher';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.weasis.launcher' AND version_compare(bundle_short_version, '4.7.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.weasis.launcher' AND version_compare(bundle_short_version, '4.7.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.weasis.launcher');" }, "installer_url": "https://github.com/nroduit/Weasis/releases/download/v4.7.2/Weasis-4.7.2-aarch64.pkg", "install_script_ref": "61706202", diff --git a/ee/maintained-apps/outputs/weasis/windows.json b/ee/maintained-apps/outputs/weasis/windows.json index ea98aa54cab..86dca134829 100644 --- a/ee/maintained-apps/outputs/weasis/windows.json +++ b/ee/maintained-apps/outputs/weasis/windows.json @@ -4,7 +4,8 @@ "version": "4.7.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Weasis' AND publisher = 'Weasis Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Weasis' AND publisher = 'Weasis Team' AND version_compare(version, '4.7.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Weasis' AND publisher = 'Weasis Team' AND version_compare(version, '4.7.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'weasis.exe');" }, "installer_url": "https://github.com/nroduit/Weasis/releases/download/v4.7.2/Weasis-4.7.2-x86-64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/webcatalog/darwin.json b/ee/maintained-apps/outputs/webcatalog/darwin.json index 57d0d8554d6..2f52007b6bd 100644 --- a/ee/maintained-apps/outputs/webcatalog/darwin.json +++ b/ee/maintained-apps/outputs/webcatalog/darwin.json @@ -4,7 +4,8 @@ "version": "77.8.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.webcatalog.jordan';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.webcatalog.jordan' AND version_compare(bundle_short_version, '77.8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.webcatalog.jordan' AND version_compare(bundle_short_version, '77.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.webcatalog.jordan');" }, "installer_url": "https://cdn-2.webcatalog.io/webcatalog/WebCatalog-77.8.0-universal.dmg", "install_script_ref": "23e707d7", diff --git a/ee/maintained-apps/outputs/webex/windows.json b/ee/maintained-apps/outputs/webex/windows.json index c642cab212f..bbdc975d364 100644 --- a/ee/maintained-apps/outputs/webex/windows.json +++ b/ee/maintained-apps/outputs/webex/windows.json @@ -4,7 +4,8 @@ "version": "46.8.0.35593", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Cisco Webex' AND publisher = 'Cisco Systems, Inc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cisco Webex' AND publisher = 'Cisco Systems, Inc' AND version_compare(version, '46.8.0.35593') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cisco Webex' AND publisher = 'Cisco Systems, Inc' AND version_compare(version, '46.8.0.35593') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'webex.exe');" }, "installer_url": "https://binaries.webex.com/WebexDesktop-Win-64-Gold/20260804173554/Webex.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/webstorm/darwin.json b/ee/maintained-apps/outputs/webstorm/darwin.json index 1de63e822e1..679f97cbb10 100644 --- a/ee/maintained-apps/outputs/webstorm/darwin.json +++ b/ee/maintained-apps/outputs/webstorm/darwin.json @@ -4,7 +4,8 @@ "version": "2026.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.WebStorm';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.WebStorm' AND version_compare(bundle_short_version, '2026.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.WebStorm' AND version_compare(bundle_short_version, '2026.2.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.jetbrains.WebStorm');" }, "installer_url": "https://download.jetbrains.com/webstorm/WebStorm-2026.2.1-aarch64.dmg", "install_script_ref": "2ae71299", diff --git a/ee/maintained-apps/outputs/webstorm/windows.json b/ee/maintained-apps/outputs/webstorm/windows.json index 19a385f192d..2f2694554dd 100644 --- a/ee/maintained-apps/outputs/webstorm/windows.json +++ b/ee/maintained-apps/outputs/webstorm/windows.json @@ -4,7 +4,8 @@ "version": "2026.2.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'WebStorm %' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'WebStorm %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.9437.145') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'WebStorm %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.9437.145') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) IN ('webstorm.exe','webstorm64.exe'));" }, "installer_url": "https://download.jetbrains.com/webstorm/WebStorm-2026.2.1.exe", "install_script_ref": "68119c0c", diff --git a/ee/maintained-apps/outputs/wechat/darwin.json b/ee/maintained-apps/outputs/wechat/darwin.json index 34cbbe54eb1..851495d259f 100644 --- a/ee/maintained-apps/outputs/wechat/darwin.json +++ b/ee/maintained-apps/outputs/wechat/darwin.json @@ -4,7 +4,8 @@ "version": "4.1.12.29", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.tencent.xinWeChat';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tencent.xinWeChat' AND version_compare(bundle_short_version, '4.1.12.29') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tencent.xinWeChat' AND version_compare(bundle_short_version, '4.1.12.29') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.tencent.xinWeChat');" }, "installer_url": "https://dldir1.qq.com/weixin/Universal/Mac/xWeChatMac_universal_4.1.12.29_269341.dmg", "install_script_ref": "f191200e", diff --git a/ee/maintained-apps/outputs/wechat/windows.json b/ee/maintained-apps/outputs/wechat/windows.json index 21133f02204..40bd0345bb9 100644 --- a/ee/maintained-apps/outputs/wechat/windows.json +++ b/ee/maintained-apps/outputs/wechat/windows.json @@ -4,7 +4,8 @@ "version": "3.9.12.57", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'WeChat' AND publisher = '腾讯科技(深圳)有限公司';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'WeChat' AND publisher = '腾讯科技(深圳)有限公司' AND version_compare(version, '3.9.12.57') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'WeChat' AND publisher = '腾讯科技(深圳)有限公司' AND version_compare(version, '3.9.12.57') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'wechat.exe');" }, "installer_url": "https://dldir1v6.qq.com/weixin/Windows/WeChatSetup.exe", "install_script_ref": "fcde0972", diff --git a/ee/maintained-apps/outputs/weektodo/darwin.json b/ee/maintained-apps/outputs/weektodo/darwin.json index 8af72c56979..703a611ac34 100644 --- a/ee/maintained-apps/outputs/weektodo/darwin.json +++ b/ee/maintained-apps/outputs/weektodo/darwin.json @@ -4,7 +4,8 @@ "version": "2.2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'weektodo-app.netlify.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'weektodo-app.netlify.app' AND version_compare(bundle_short_version, '2.2.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'weektodo-app.netlify.app' AND version_compare(bundle_short_version, '2.2.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'weektodo-app.netlify.app');" }, "installer_url": "https://github.com/Zuntek/WeekToDoWeb/releases/download/v2.2.0/WeekToDo-2.2.0.dmg", "install_script_ref": "df3300c5", diff --git a/ee/maintained-apps/outputs/whatroute/darwin.json b/ee/maintained-apps/outputs/whatroute/darwin.json index c6d7fdf961b..af9941bfc67 100644 --- a/ee/maintained-apps/outputs/whatroute/darwin.json +++ b/ee/maintained-apps/outputs/whatroute/darwin.json @@ -4,7 +4,8 @@ "version": "2.8.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.whatroute.whatroute2';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.whatroute.whatroute2' AND version_compare(bundle_short_version, '2.8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.whatroute.whatroute2' AND version_compare(bundle_short_version, '2.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.whatroute.whatroute2');" }, "installer_url": "https://www.whatroute.net/software/whatroute-2.8.0.zip", "install_script_ref": "9dfb54b9", diff --git a/ee/maintained-apps/outputs/whatsapp/darwin.json b/ee/maintained-apps/outputs/whatsapp/darwin.json index 1621e2cd723..b0bc116ed5b 100644 --- a/ee/maintained-apps/outputs/whatsapp/darwin.json +++ b/ee/maintained-apps/outputs/whatsapp/darwin.json @@ -1,10 +1,11 @@ { "versions": [ { - "version": "26.31.23", + "version": "26.31.27", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.whatsapp.WhatsApp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.whatsapp.WhatsApp' AND version_compare(bundle_short_version, '26.31.23') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.whatsapp.WhatsApp' AND version_compare(bundle_short_version, '26.31.27') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'net.whatsapp.WhatsApp');" }, "installer_url": "https://web.whatsapp.com/desktop/mac_native/release/?configuration=Release&src=whatsapp_downloads_page", "install_script_ref": "e288a4cd", diff --git a/ee/maintained-apps/outputs/whisky/darwin.json b/ee/maintained-apps/outputs/whisky/darwin.json index deadbb2e37a..d9901b82824 100644 --- a/ee/maintained-apps/outputs/whisky/darwin.json +++ b/ee/maintained-apps/outputs/whisky/darwin.json @@ -4,7 +4,8 @@ "version": "2.3.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.isaacmarovitz.Whisky';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.isaacmarovitz.Whisky' AND version_compare(bundle_short_version, '2.3.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.isaacmarovitz.Whisky' AND version_compare(bundle_short_version, '2.3.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.isaacmarovitz.Whisky');" }, "installer_url": "https://github.com/IsaacMarovitz/Whisky/releases/download/v2.3.5/Whisky.zip", "install_script_ref": "c65adacb", diff --git a/ee/maintained-apps/outputs/wifiman/darwin.json b/ee/maintained-apps/outputs/wifiman/darwin.json index 21d82fef84f..b9407495cfc 100644 --- a/ee/maintained-apps/outputs/wifiman/darwin.json +++ b/ee/maintained-apps/outputs/wifiman/darwin.json @@ -4,7 +4,8 @@ "version": "1.2.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ui.wifiman-desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ui.wifiman-desktop' AND version_compare(bundle_short_version, '1.2.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ui.wifiman-desktop' AND version_compare(bundle_short_version, '1.2.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'ui.wifiman-desktop');" }, "installer_url": "https://desktop.wifiman.com/wifiman-desktop-1.2.8-arm64.pkg", "install_script_ref": "265185c8", diff --git a/ee/maintained-apps/outputs/windirstat/windows.json b/ee/maintained-apps/outputs/windirstat/windows.json index 76f1b54078a..fc4af3f5d2b 100644 --- a/ee/maintained-apps/outputs/windirstat/windows.json +++ b/ee/maintained-apps/outputs/windirstat/windows.json @@ -4,7 +4,8 @@ "version": "2.8.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'WinDirStat %' AND publisher = 'WinDirStat Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'WinDirStat %' AND publisher = 'WinDirStat Team' AND version_compare(version, '2.8.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'WinDirStat %' AND publisher = 'WinDirStat Team' AND version_compare(version, '2.8.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'windirstat.exe');" }, "installer_url": "https://github.com/windirstat/windirstat/releases/download/release/v2.8.0/WinDirStat-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/windowkeys/darwin.json b/ee/maintained-apps/outputs/windowkeys/darwin.json index b9329ea090a..716e82928f7 100644 --- a/ee/maintained-apps/outputs/windowkeys/darwin.json +++ b/ee/maintained-apps/outputs/windowkeys/darwin.json @@ -4,7 +4,8 @@ "version": "3.0.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.apptorium.WindowKeys';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apptorium.WindowKeys' AND version_compare(bundle_short_version, '3.0.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apptorium.WindowKeys' AND version_compare(bundle_short_version, '3.0.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.apptorium.WindowKeys');" }, "installer_url": "https://www.apptorium.com/public/products/windowkeys/releases/WindowKeys-3.0.1.zip", "install_script_ref": "0e0e109e", diff --git a/ee/maintained-apps/outputs/windows-app/darwin.json b/ee/maintained-apps/outputs/windows-app/darwin.json index 6fa2d533ffd..09d4c8fd395 100644 --- a/ee/maintained-apps/outputs/windows-app/darwin.json +++ b/ee/maintained-apps/outputs/windows-app/darwin.json @@ -4,7 +4,8 @@ "version": "11.3.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.rdc.macos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.rdc.macos' AND version_compare(bundle_short_version, '11.3.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.rdc.macos' AND version_compare(bundle_short_version, '11.3.8') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.microsoft.rdc.macos');" }, "installer_url": "https://res.public.onecdn.static.microsoft/mro1cdnstorage/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/Windows_App_11.3.8_installer.pkg", "install_script_ref": "78ca7433", diff --git a/ee/maintained-apps/outputs/windows-app/windows.json b/ee/maintained-apps/outputs/windows-app/windows.json index 87c23199268..437244fcbae 100644 --- a/ee/maintained-apps/outputs/windows-app/windows.json +++ b/ee/maintained-apps/outputs/windows-app/windows.json @@ -4,7 +4,8 @@ "version": "2.0.1314.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Windows App' AND publisher = 'Microsoft Corp.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Windows App' AND publisher = 'Microsoft Corp.' AND version_compare(version, '2.0.1314.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Windows App' AND publisher = 'Microsoft Corp.' AND version_compare(version, '2.0.1314.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'windowsapp.exe');" }, "installer_url": "https://res.cdn.office.net/remote-desktop-windows-client/0f85839e-d3e3-4d34-8b5a-b1265cc7e5ae/WindowsApp_x64_Release_2.0.1314.0.msix", "install_script_ref": "f3fab53b", diff --git a/ee/maintained-apps/outputs/windsurf/windows.json b/ee/maintained-apps/outputs/windsurf/windows.json index 280b38913eb..d7af8699629 100644 --- a/ee/maintained-apps/outputs/windsurf/windows.json +++ b/ee/maintained-apps/outputs/windsurf/windows.json @@ -4,7 +4,8 @@ "version": "2.3.15", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Windsurf' AND publisher = 'Codeium';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Windsurf' AND publisher = 'Codeium' AND version_compare(version, '2.3.15') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Windsurf' AND publisher = 'Codeium' AND version_compare(version, '2.3.15') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'windsurf.exe');" }, "installer_url": "https://windsurf-stable.codeiumdata.com/win32-x64/stable/c46c49e94b4d3f41181204d59809d8f1b2c48d68/WindsurfSetup-x64-2.3.15.exe", "install_script_ref": "232abd06", diff --git a/ee/maintained-apps/outputs/winlogbeat/windows.json b/ee/maintained-apps/outputs/winlogbeat/windows.json index d62e88f7f8c..06a98e11a55 100644 --- a/ee/maintained-apps/outputs/winlogbeat/windows.json +++ b/ee/maintained-apps/outputs/winlogbeat/windows.json @@ -4,7 +4,8 @@ "version": "9.5.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Beats winlogbeat % (x86_64)' AND publisher = 'Elastic';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Beats winlogbeat % (x86_64)' AND publisher = 'Elastic' AND version_compare(version, '9.5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Beats winlogbeat % (x86_64)' AND publisher = 'Elastic' AND version_compare(version, '9.5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'winlogbeat.exe');" }, "installer_url": "https://artifacts.elastic.co/downloads/beats/winlogbeat/winlogbeat-9.5.0-windows-x86_64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/winrar/windows.json b/ee/maintained-apps/outputs/winrar/windows.json index a11a07baeec..5c044fbdeb4 100644 --- a/ee/maintained-apps/outputs/winrar/windows.json +++ b/ee/maintained-apps/outputs/winrar/windows.json @@ -4,7 +4,8 @@ "version": "7.23.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'WinRAR %' AND publisher = 'win.rar GmbH';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'WinRAR %' AND publisher = 'win.rar GmbH' AND version_compare(version, '7.23.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'WinRAR %' AND publisher = 'win.rar GmbH' AND version_compare(version, '7.23.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'winrar.exe');" }, "installer_url": "https://www.rarlab.com/rar/winrar-x64-723.exe", "install_script_ref": "5879db33", diff --git a/ee/maintained-apps/outputs/winscp/windows.json b/ee/maintained-apps/outputs/winscp/windows.json index 795e1aa354e..b59102afe3b 100644 --- a/ee/maintained-apps/outputs/winscp/windows.json +++ b/ee/maintained-apps/outputs/winscp/windows.json @@ -4,7 +4,8 @@ "version": "6.5.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'WinSCP %' AND publisher = 'Martin Prikryl';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'WinSCP %' AND publisher = 'Martin Prikryl' AND version_compare(version, '6.5.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'WinSCP %' AND publisher = 'Martin Prikryl' AND version_compare(version, '6.5.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'winscp.exe');" }, "installer_url": "https://sourceforge.net/projects/winscp/files/WinSCP/6.5.6/WinSCP-6.5.6-Setup.exe/download", "install_script_ref": "d07f6d6d", diff --git a/ee/maintained-apps/outputs/wireshark-app/darwin.json b/ee/maintained-apps/outputs/wireshark-app/darwin.json index b9478c6a05b..2dbbab653a8 100644 --- a/ee/maintained-apps/outputs/wireshark-app/darwin.json +++ b/ee/maintained-apps/outputs/wireshark-app/darwin.json @@ -4,7 +4,8 @@ "version": "4.6.7", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.wireshark.Wireshark';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.wireshark.Wireshark' AND version_compare(bundle_short_version, '4.6.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.wireshark.Wireshark' AND version_compare(bundle_short_version, '4.6.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.wireshark.Wireshark');" }, "installer_url": "https://www.wireshark.org/download/osx/all-versions/Wireshark%204.6.7.dmg", "install_script_ref": "3ef89f3e", diff --git a/ee/maintained-apps/outputs/wireshark/windows.json b/ee/maintained-apps/outputs/wireshark/windows.json index 8827487eccf..5383909d686 100644 --- a/ee/maintained-apps/outputs/wireshark/windows.json +++ b/ee/maintained-apps/outputs/wireshark/windows.json @@ -4,7 +4,8 @@ "version": "4.6.7", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Wireshark' AND publisher = 'The Wireshark developer community, https://www.wireshark.org';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Wireshark' AND publisher = 'The Wireshark developer community, https://www.wireshark.org' AND version_compare(version, '4.6.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Wireshark' AND publisher = 'The Wireshark developer community, https://www.wireshark.org' AND version_compare(version, '4.6.7') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'wireshark.exe');" }, "installer_url": "https://2.na.dl.wireshark.org/win64/all-versions/Wireshark-4.6.7-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/wispr-flow/darwin.json b/ee/maintained-apps/outputs/wispr-flow/darwin.json index 181978828bf..3099a0bd797 100644 --- a/ee/maintained-apps/outputs/wispr-flow/darwin.json +++ b/ee/maintained-apps/outputs/wispr-flow/darwin.json @@ -4,7 +4,8 @@ "version": "1.6.447", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.wispr-flow';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.wispr-flow' AND version_compare(bundle_short_version, '1.6.447') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.wispr-flow' AND version_compare(bundle_short_version, '1.6.447') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.electron.wispr-flow');" }, "installer_url": "https://dl.wisprflow.com/wispr-flow/darwin/arm64/dmgs/Flow-v1.6.447.dmg", "install_script_ref": "a95fa7bb", diff --git a/ee/maintained-apps/outputs/wondershare-edrawmax/darwin.json b/ee/maintained-apps/outputs/wondershare-edrawmax/darwin.json index f46903b1255..beb2dee22d4 100644 --- a/ee/maintained-apps/outputs/wondershare-edrawmax/darwin.json +++ b/ee/maintained-apps/outputs/wondershare-edrawmax/darwin.json @@ -4,7 +4,8 @@ "version": "14.5.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.edrawsoft.edrawmax';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.edrawsoft.edrawmax' AND version_compare(bundle_short_version, '14.5.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.edrawsoft.edrawmax' AND version_compare(bundle_short_version, '14.5.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.edrawsoft.edrawmax');" }, "installer_url": "https://download.edrawsoft.com/cbs_down/edraw-max_full5380.zip", "install_script_ref": "a7d3a2a5", diff --git a/ee/maintained-apps/outputs/wondershare-filmora/darwin.json b/ee/maintained-apps/outputs/wondershare-filmora/darwin.json index 356f834c9d9..91fc3fc50d0 100644 --- a/ee/maintained-apps/outputs/wondershare-filmora/darwin.json +++ b/ee/maintained-apps/outputs/wondershare-filmora/darwin.json @@ -4,7 +4,8 @@ "version": "13.0.25", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.wondershare.filmoramac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.wondershare.filmoramac' AND version_compare(bundle_short_version, '13.0.25') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.wondershare.filmoramac' AND version_compare(bundle_short_version, '13.0.25') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.wondershare.filmoramac');" }, "installer_url": "https://download.wondershare.com/cbs_down/filmora-mac_arm_13.0.25_full718.dmg", "install_script_ref": "4450968d", diff --git a/ee/maintained-apps/outputs/wordservice/darwin.json b/ee/maintained-apps/outputs/wordservice/darwin.json index 4c25d8c9f1b..015d54928bb 100644 --- a/ee/maintained-apps/outputs/wordservice/darwin.json +++ b/ee/maintained-apps/outputs/wordservice/darwin.json @@ -4,7 +4,8 @@ "version": "2.8.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.grunenberg.WordService';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.grunenberg.WordService' AND version_compare(bundle_short_version, '2.8.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.grunenberg.WordService' AND version_compare(bundle_short_version, '2.8.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.grunenberg.WordService');" }, "installer_url": "https://download.devontechnologies.com/download/freeware/wordservice/2.8.3/WordService.app.zip", "install_script_ref": "0b9a9e14", diff --git a/ee/maintained-apps/outputs/workflowy/darwin.json b/ee/maintained-apps/outputs/workflowy/darwin.json index 925445a1ac3..a5c2112079d 100644 --- a/ee/maintained-apps/outputs/workflowy/darwin.json +++ b/ee/maintained-apps/outputs/workflowy/darwin.json @@ -4,7 +4,8 @@ "version": "4.3.2608061204", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.workflowy.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.workflowy.desktop' AND version_compare(bundle_short_version, '4.3.2608061204') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.workflowy.desktop' AND version_compare(bundle_short_version, '4.3.2608061204') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.workflowy.desktop');" }, "installer_url": "https://github.com/workflowy/desktop/releases/download/v4.3.2608061204/WorkFlowy.zip", "install_script_ref": "b65ecb27", diff --git a/ee/maintained-apps/outputs/workspaces/darwin.json b/ee/maintained-apps/outputs/workspaces/darwin.json index dae62e34703..bc0008b9996 100644 --- a/ee/maintained-apps/outputs/workspaces/darwin.json +++ b/ee/maintained-apps/outputs/workspaces/darwin.json @@ -4,7 +4,8 @@ "version": "2.1.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.apptorium.Workspaces2-paddle';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apptorium.Workspaces2-paddle' AND version_compare(bundle_short_version, '2.1.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apptorium.Workspaces2-paddle' AND version_compare(bundle_short_version, '2.1.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.apptorium.Workspaces2-paddle');" }, "installer_url": "https://www.apptorium.com/public/products/workspaces/releases/Workspaces-2.1.5.zip", "install_script_ref": "5e16c238", diff --git a/ee/maintained-apps/outputs/wrike/darwin.json b/ee/maintained-apps/outputs/wrike/darwin.json index 68ea882c565..3368f3c6724 100644 --- a/ee/maintained-apps/outputs/wrike/darwin.json +++ b/ee/maintained-apps/outputs/wrike/darwin.json @@ -4,7 +4,8 @@ "version": "4.6.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.wrike.Wrike';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.wrike.Wrike' AND version_compare(bundle_short_version, '4.6.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.wrike.Wrike' AND version_compare(bundle_short_version, '4.6.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.wrike.Wrike');" }, "installer_url": "https://dl.wrike.com/download/WrikeDesktopApp_ARM.v4.6.1.dmg", "install_script_ref": "db0938a2", diff --git a/ee/maintained-apps/outputs/wrike/windows.json b/ee/maintained-apps/outputs/wrike/windows.json index ff56133e6f9..ae6f9bf7f76 100644 --- a/ee/maintained-apps/outputs/wrike/windows.json +++ b/ee/maintained-apps/outputs/wrike/windows.json @@ -4,7 +4,8 @@ "version": "4.6.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Wrike for Windows (64 bit)' AND publisher = 'Wrike.com';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Wrike for Windows (64 bit)' AND publisher = 'Wrike.com' AND version_compare(version, '4.6.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Wrike for Windows (64 bit)' AND publisher = 'Wrike.com' AND version_compare(version, '4.6.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'wrike.exe');" }, "installer_url": "https://dl.wrike.com/download/WrikeDesktopApp_64.v4.6.1.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/xca/darwin.json b/ee/maintained-apps/outputs/xca/darwin.json index dda4029a8d2..ca3c5acf735 100644 --- a/ee/maintained-apps/outputs/xca/darwin.json +++ b/ee/maintained-apps/outputs/xca/darwin.json @@ -4,7 +4,8 @@ "version": "2.9.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'de.hohnstaedt.xca';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'de.hohnstaedt.xca' AND version_compare(bundle_short_version, '2.9.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'de.hohnstaedt.xca' AND version_compare(bundle_short_version, '2.9.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'de.hohnstaedt.xca');" }, "installer_url": "https://github.com/chris2511/xca/releases/download/RELEASE.2.9.0/xca-2.9.0-Darwin.dmg", "install_script_ref": "2410f738", diff --git a/ee/maintained-apps/outputs/xcreds/darwin.json b/ee/maintained-apps/outputs/xcreds/darwin.json index b8a7ee7f29f..8c7a6f6e982 100644 --- a/ee/maintained-apps/outputs/xcreds/darwin.json +++ b/ee/maintained-apps/outputs/xcreds/darwin.json @@ -4,7 +4,8 @@ "version": "5.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.twocanoes.xcreds';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.twocanoes.xcreds' AND version_compare(bundle_short_version, '5.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.twocanoes.xcreds' AND version_compare(bundle_short_version, '5.9') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.twocanoes.xcreds');" }, "installer_url": "https://github.com/twocanoes/xcreds/releases/download/tag-5.9(9148)/XCreds_Build-9148_Version-5.9.pkg", "install_script_ref": "84de0eb2", diff --git a/ee/maintained-apps/outputs/xld/darwin.json b/ee/maintained-apps/outputs/xld/darwin.json index b27fec26d58..f91fc680048 100644 --- a/ee/maintained-apps/outputs/xld/darwin.json +++ b/ee/maintained-apps/outputs/xld/darwin.json @@ -4,7 +4,8 @@ "version": "20250302", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'jp.tmkk.XLD';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'jp.tmkk.XLD' AND version_compare(bundle_short_version, '20250302') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'jp.tmkk.XLD' AND version_compare(bundle_short_version, '20250302') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'jp.tmkk.XLD');" }, "installer_url": "https://downloads.sourceforge.net/xld/xld-20250302.dmg", "install_script_ref": "0cd4858d", diff --git a/ee/maintained-apps/outputs/xmenu/darwin.json b/ee/maintained-apps/outputs/xmenu/darwin.json index 1680f0aa819..45196bbc3f5 100644 --- a/ee/maintained-apps/outputs/xmenu/darwin.json +++ b/ee/maintained-apps/outputs/xmenu/darwin.json @@ -4,7 +4,8 @@ "version": "1.9.11", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.devon-technologies.XMenu';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.devon-technologies.XMenu' AND version_compare(bundle_short_version, '1.9.11') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.devon-technologies.XMenu' AND version_compare(bundle_short_version, '1.9.11') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.devon-technologies.XMenu');" }, "installer_url": "https://download.devontechnologies.com/download/freeware/xmenu/1.9.11/XMenu.app.zip", "install_script_ref": "ea05dbfc", diff --git a/ee/maintained-apps/outputs/xmplify/darwin.json b/ee/maintained-apps/outputs/xmplify/darwin.json index 9ffe1a57c3a..4814d97f528 100644 --- a/ee/maintained-apps/outputs/xmplify/darwin.json +++ b/ee/maintained-apps/outputs/xmplify/darwin.json @@ -4,7 +4,8 @@ "version": "1.11.11", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'au.com.moso.Xmplify';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'au.com.moso.Xmplify' AND version_compare(bundle_short_version, '1.11.11') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'au.com.moso.Xmplify' AND version_compare(bundle_short_version, '1.11.11') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'au.com.moso.Xmplify');" }, "installer_url": "https://xmplifyapp.com/releases/Xmplify-1.11.11.dmg", "install_script_ref": "c27048ab", diff --git a/ee/maintained-apps/outputs/xnapper/darwin.json b/ee/maintained-apps/outputs/xnapper/darwin.json index 59ac98e4244..b6a017f27d9 100644 --- a/ee/maintained-apps/outputs/xnapper/darwin.json +++ b/ee/maintained-apps/outputs/xnapper/darwin.json @@ -4,7 +4,8 @@ "version": "1.17.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.devuap.beautyshotapp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.devuap.beautyshotapp' AND version_compare(bundle_short_version, '1.17.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.devuap.beautyshotapp' AND version_compare(bundle_short_version, '1.17.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.devuap.beautyshotapp');" }, "installer_url": "https://xnapper.com/dmg/Xnapper-1.17.1.dmg", "install_script_ref": "79ec3bbc", diff --git a/ee/maintained-apps/outputs/xnconvert/darwin.json b/ee/maintained-apps/outputs/xnconvert/darwin.json index 342e35605a8..93de42a12c2 100644 --- a/ee/maintained-apps/outputs/xnconvert/darwin.json +++ b/ee/maintained-apps/outputs/xnconvert/darwin.json @@ -4,7 +4,8 @@ "version": "1.115.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.xnview.XnConvert';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.xnview.XnConvert' AND version_compare(bundle_short_version, '1.115.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.xnview.XnConvert' AND version_compare(bundle_short_version, '1.115.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.xnview.XnConvert');" }, "installer_url": "https://download.xnview.com/old_versions/XnConvert/XnConvert-1.115.0-mac.dmg", "install_script_ref": "c0e41d46", diff --git a/ee/maintained-apps/outputs/xnconvert/windows.json b/ee/maintained-apps/outputs/xnconvert/windows.json index 91d090a430b..5bb61a2c8db 100644 --- a/ee/maintained-apps/outputs/xnconvert/windows.json +++ b/ee/maintained-apps/outputs/xnconvert/windows.json @@ -4,7 +4,8 @@ "version": "1.115.0.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'XnConvert' AND publisher = 'Pierre-e Gougelet';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'XnConvert' AND publisher = 'Pierre-e Gougelet' AND version_compare(version, '1.115.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'XnConvert' AND publisher = 'Pierre-e Gougelet' AND version_compare(version, '1.115.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'xnsoft xnconvert.exe');" }, "installer_url": "https://download.xnview.com/old_versions/XnConvert/XnConvert-1.115.0-win-x64.exe", "install_script_ref": "7eb6b47e", diff --git a/ee/maintained-apps/outputs/xnviewmp/darwin.json b/ee/maintained-apps/outputs/xnviewmp/darwin.json index 0efa760461d..9e17a49e404 100644 --- a/ee/maintained-apps/outputs/xnviewmp/darwin.json +++ b/ee/maintained-apps/outputs/xnviewmp/darwin.json @@ -4,7 +4,8 @@ "version": "1.11.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.xnview.XnView';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.xnview.XnView' AND version_compare(bundle_short_version, '1.11.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.xnview.XnView' AND version_compare(bundle_short_version, '1.11.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.xnview.XnView');" }, "installer_url": "https://download.xnview.com/old_versions/XnView_MP/XnView_MP-1.11.5-mac.dmg", "install_script_ref": "f64c3416", diff --git a/ee/maintained-apps/outputs/xnviewmp/windows.json b/ee/maintained-apps/outputs/xnviewmp/windows.json index 11298b50332..fd402fe9d07 100644 --- a/ee/maintained-apps/outputs/xnviewmp/windows.json +++ b/ee/maintained-apps/outputs/xnviewmp/windows.json @@ -4,7 +4,8 @@ "version": "1.11.5.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'XnView MP' AND publisher = 'Pierre-e Gougelet';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'XnView MP' AND publisher = 'Pierre-e Gougelet' AND version_compare(version, '1.11.5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'XnView MP' AND publisher = 'Pierre-e Gougelet' AND version_compare(version, '1.11.5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'xnviewmp.exe');" }, "installer_url": "https://download.xnview.com/old_versions/XnView_MP/XnView_MP-1.11.5-win-x64.exe", "install_script_ref": "7eb6b47e", diff --git a/ee/maintained-apps/outputs/xquartz/darwin.json b/ee/maintained-apps/outputs/xquartz/darwin.json index 0af15552972..1aa8246e985 100644 --- a/ee/maintained-apps/outputs/xquartz/darwin.json +++ b/ee/maintained-apps/outputs/xquartz/darwin.json @@ -4,7 +4,8 @@ "version": "2.8.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.macosforge.xquartz.X11';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.macosforge.xquartz.X11' AND version_compare(bundle_short_version, '2.8.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.macosforge.xquartz.X11' AND version_compare(bundle_short_version, '2.8.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.macosforge.xquartz.X11');" }, "installer_url": "https://github.com/XQuartz/XQuartz/releases/download/XQuartz-2.8.6/XQuartz-2.8.6.pkg", "install_script_ref": "6da44842", diff --git a/ee/maintained-apps/outputs/yaak/darwin.json b/ee/maintained-apps/outputs/yaak/darwin.json index 069e5111207..9e2021f2cfa 100644 --- a/ee/maintained-apps/outputs/yaak/darwin.json +++ b/ee/maintained-apps/outputs/yaak/darwin.json @@ -4,7 +4,8 @@ "version": "2026.5.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.yaak.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.yaak.desktop' AND version_compare(bundle_short_version, '2026.5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.yaak.desktop' AND version_compare(bundle_short_version, '2026.5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.yaak.desktop');" }, "installer_url": "https://github.com/mountain-loop/yaak/releases/download/v2026.5.0/Yaak_2026.5.0_aarch64.dmg", "install_script_ref": "eefbcbc9", diff --git a/ee/maintained-apps/outputs/yaak/windows.json b/ee/maintained-apps/outputs/yaak/windows.json index 10dbe50ac10..339c46a73bf 100644 --- a/ee/maintained-apps/outputs/yaak/windows.json +++ b/ee/maintained-apps/outputs/yaak/windows.json @@ -4,7 +4,8 @@ "version": "2026.5.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Yaak' AND publisher = 'Yaak';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Yaak' AND publisher = 'Yaak' AND version_compare(version, '2026.5.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Yaak' AND publisher = 'Yaak' AND version_compare(version, '2026.5.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'yaak.exe');" }, "installer_url": "https://github.com/mountain-loop/yaak/releases/download/v2026.5.0/Yaak_2026.5.0_x64-setup.exe", "install_script_ref": "64dd4e97", diff --git a/ee/maintained-apps/outputs/yacreader/darwin.json b/ee/maintained-apps/outputs/yacreader/darwin.json index ea3e7661e01..08e40843ca6 100644 --- a/ee/maintained-apps/outputs/yacreader/darwin.json +++ b/ee/maintained-apps/outputs/yacreader/darwin.json @@ -4,7 +4,8 @@ "version": "10.1.0.260703260", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.yacreader.YACReader';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.yacreader.YACReader' AND version_compare(bundle_short_version, '10.1.0.260703260') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.yacreader.YACReader' AND version_compare(bundle_short_version, '10.1.0.260703260') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.yacreader.YACReader');" }, "installer_url": "https://github.com/YACReader/yacreader/releases/download/10.1.0/YACReader-10.1.0.260703260.MacOSX-U.Qt6.dmg", "install_script_ref": "3eb3ceee", diff --git a/ee/maintained-apps/outputs/yacreader/windows.json b/ee/maintained-apps/outputs/yacreader/windows.json index 54bfcb48ea1..733863e3d64 100644 --- a/ee/maintained-apps/outputs/yacreader/windows.json +++ b/ee/maintained-apps/outputs/yacreader/windows.json @@ -4,7 +4,8 @@ "version": "10.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'YACReader %' AND publisher = 'YACReader';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'YACReader %' AND publisher = 'YACReader' AND version_compare(version, '10.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'YACReader %' AND publisher = 'YACReader' AND version_compare(version, '10.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'yacreader.exe');" }, "installer_url": "https://github.com/YACReader/yacreader/releases/download/10.1.0/YACReader-v10.1.0.260703260-winx64-7z-qt6.exe", "install_script_ref": "128a9799", diff --git a/ee/maintained-apps/outputs/yarn/windows.json b/ee/maintained-apps/outputs/yarn/windows.json index 62acbeb5e94..9982c2a727e 100644 --- a/ee/maintained-apps/outputs/yarn/windows.json +++ b/ee/maintained-apps/outputs/yarn/windows.json @@ -4,7 +4,8 @@ "version": "1.22.22", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Yarn' AND publisher = 'Yarn Contributors';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Yarn' AND publisher = 'Yarn Contributors' AND version_compare(version, '1.22.22') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Yarn' AND publisher = 'Yarn Contributors' AND version_compare(version, '1.22.22') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'yarn.exe');" }, "installer_url": "https://github.com/yarnpkg/yarn/releases/download/v1.22.22/yarn-1.22.22.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/yattee/darwin.json b/ee/maintained-apps/outputs/yattee/darwin.json index 74d55b07805..4f5f2dea3d6 100644 --- a/ee/maintained-apps/outputs/yattee/darwin.json +++ b/ee/maintained-apps/outputs/yattee/darwin.json @@ -4,7 +4,8 @@ "version": "1.5.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'stream.yattee.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'stream.yattee.app' AND version_compare(bundle_short_version, '1.5.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'stream.yattee.app' AND version_compare(bundle_short_version, '1.5.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'stream.yattee.app');" }, "installer_url": "https://github.com/yattee/yattee/releases/download/v1.5.1/Yattee-1.5.1-macOS.zip", "install_script_ref": "6ae0e65a", diff --git a/ee/maintained-apps/outputs/yippy/darwin.json b/ee/maintained-apps/outputs/yippy/darwin.json index 38917b45407..8ea9a990f42 100644 --- a/ee/maintained-apps/outputs/yippy/darwin.json +++ b/ee/maintained-apps/outputs/yippy/darwin.json @@ -4,7 +4,8 @@ "version": "2.8.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'MatthewDavidson.Yippy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'MatthewDavidson.Yippy' AND version_compare(bundle_short_version, '2.8.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'MatthewDavidson.Yippy' AND version_compare(bundle_short_version, '2.8.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'MatthewDavidson.Yippy');" }, "installer_url": "https://github.com/mattDavo/Yippy/releases/download/2.8.1/Yippy.zip", "install_script_ref": "30cbb7c2", diff --git a/ee/maintained-apps/outputs/yt-music/darwin.json b/ee/maintained-apps/outputs/yt-music/darwin.json index 25a4c61a540..1525082d661 100644 --- a/ee/maintained-apps/outputs/yt-music/darwin.json +++ b/ee/maintained-apps/outputs/yt-music/darwin.json @@ -4,7 +4,8 @@ "version": "1.3.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'uk.co.wearecocoon.YT-Music';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'uk.co.wearecocoon.YT-Music' AND version_compare(bundle_short_version, '1.3.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'uk.co.wearecocoon.YT-Music' AND version_compare(bundle_short_version, '1.3.3') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'uk.co.wearecocoon.YT-Music');" }, "installer_url": "https://github.com/steve228uk/YouTube-Music/releases/download/1.3.3/YT-Music-1.3.3.zip", "install_script_ref": "fe8378e6", diff --git a/ee/maintained-apps/outputs/yubico-authenticator/darwin.json b/ee/maintained-apps/outputs/yubico-authenticator/darwin.json index 76ee91ca4d3..3de8ceb3c2d 100644 --- a/ee/maintained-apps/outputs/yubico-authenticator/darwin.json +++ b/ee/maintained-apps/outputs/yubico-authenticator/darwin.json @@ -4,7 +4,8 @@ "version": "7.4.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.yubico.yubioath';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.yubico.yubioath' AND version_compare(bundle_short_version, '7.4.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.yubico.yubioath' AND version_compare(bundle_short_version, '7.4.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.yubico.yubioath');" }, "installer_url": "https://developers.yubico.com/yubioath-flutter/Releases/yubico-authenticator-7.4.1-mac.dmg", "install_script_ref": "d23a2515", diff --git a/ee/maintained-apps/outputs/yubico-authenticator/windows.json b/ee/maintained-apps/outputs/yubico-authenticator/windows.json index 3f577502c12..bfa2670c851 100644 --- a/ee/maintained-apps/outputs/yubico-authenticator/windows.json +++ b/ee/maintained-apps/outputs/yubico-authenticator/windows.json @@ -4,7 +4,8 @@ "version": "7.4.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Yubico Authenticator' AND publisher = 'Yubico AB';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Yubico Authenticator' AND publisher = 'Yubico AB' AND version_compare(version, '7.4.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Yubico Authenticator' AND publisher = 'Yubico AB' AND version_compare(version, '7.4.1') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'yubico authenticator.exe');" }, "installer_url": "https://github.com/Yubico/yubioath-flutter/releases/download/7.4.1/yubico-authenticator-7.4.1-win64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/yubico-yubikey-manager/windows.json b/ee/maintained-apps/outputs/yubico-yubikey-manager/windows.json index 78d3c6d4f41..2e20b7262a8 100644 --- a/ee/maintained-apps/outputs/yubico-yubikey-manager/windows.json +++ b/ee/maintained-apps/outputs/yubico-yubikey-manager/windows.json @@ -4,7 +4,8 @@ "version": "1.2.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'YubiKey Manager' AND publisher = 'Yubico AB';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'YubiKey Manager' AND publisher = 'Yubico AB' AND version_compare(version, '1.2.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'YubiKey Manager' AND publisher = 'Yubico AB' AND version_compare(version, '1.2.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'yubikey manager.exe');" }, "installer_url": "https://developers.yubico.com/yubikey-manager-qt/Releases/yubikey-manager-qt-1.2.6-win64.exe", "install_script_ref": "64dd4e97", diff --git a/ee/maintained-apps/outputs/zappy/darwin.json b/ee/maintained-apps/outputs/zappy/darwin.json index 3776a422b06..349ec65d04a 100644 --- a/ee/maintained-apps/outputs/zappy/darwin.json +++ b/ee/maintained-apps/outputs/zappy/darwin.json @@ -4,7 +4,8 @@ "version": "5.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.blackbeltlabs.Zappy';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.blackbeltlabs.Zappy' AND version_compare(bundle_short_version, '5.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.blackbeltlabs.Zappy' AND version_compare(bundle_short_version, '5.0.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.blackbeltlabs.Zappy');" }, "installer_url": "https://zappy.zapier.com/releases/zappy-5.0.0.dmg", "install_script_ref": "27e0e100", diff --git a/ee/maintained-apps/outputs/zed/darwin.json b/ee/maintained-apps/outputs/zed/darwin.json index 9b828f93270..0d522bbeb2f 100644 --- a/ee/maintained-apps/outputs/zed/darwin.json +++ b/ee/maintained-apps/outputs/zed/darwin.json @@ -4,7 +4,8 @@ "version": "1.14.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.zed.Zed';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.zed.Zed' AND version_compare(bundle_short_version, '1.14.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.zed.Zed' AND version_compare(bundle_short_version, '1.14.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'dev.zed.Zed');" }, "installer_url": "https://zed.dev/api/releases/stable/1.14.2/Zed-aarch64.dmg", "install_script_ref": "bdea8414", diff --git a/ee/maintained-apps/outputs/zed/windows.json b/ee/maintained-apps/outputs/zed/windows.json index 15fe0681278..0f8ba2a877c 100644 --- a/ee/maintained-apps/outputs/zed/windows.json +++ b/ee/maintained-apps/outputs/zed/windows.json @@ -4,7 +4,8 @@ "version": "1.14.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Zed' AND publisher = 'Zed Industries';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Zed' AND publisher = 'Zed Industries' AND version_compare(version, '1.14.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Zed' AND publisher = 'Zed Industries' AND version_compare(version, '1.14.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'zed.exe');" }, "installer_url": "https://github.com/zed-industries/zed/releases/download/v1.14.2/Zed-x86_64.exe", "install_script_ref": "e5193bc1", diff --git a/ee/maintained-apps/outputs/zen-browser/windows.json b/ee/maintained-apps/outputs/zen-browser/windows.json index c43876a1808..49947a94e31 100644 --- a/ee/maintained-apps/outputs/zen-browser/windows.json +++ b/ee/maintained-apps/outputs/zen-browser/windows.json @@ -4,7 +4,8 @@ "version": "1.21b", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Zen Browser (x64 en-US)' AND publisher = 'Zen OSS Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Zen Browser (x64 en-US)' AND publisher = 'Zen OSS Team' AND version_compare(version, '1.21b') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Zen Browser (x64 en-US)' AND publisher = 'Zen OSS Team' AND version_compare(version, '1.21b') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'zen browser.exe');" }, "installer_url": "https://github.com/zen-browser/desktop/releases/download/1.21b/zen.installer.exe", "install_script_ref": "b813a9e0", diff --git a/ee/maintained-apps/outputs/zen/darwin.json b/ee/maintained-apps/outputs/zen/darwin.json index a555899d86c..ae516a67042 100644 --- a/ee/maintained-apps/outputs/zen/darwin.json +++ b/ee/maintained-apps/outputs/zen/darwin.json @@ -4,7 +4,8 @@ "version": "1.21.12b", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.zen-browser.zen';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.zen-browser.zen' AND version_compare(bundle_short_version, '1.21.12b') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.zen-browser.zen' AND version_compare(bundle_short_version, '1.21.12b') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'app.zen-browser.zen');" }, "installer_url": "https://github.com/zen-browser/desktop/releases/download/1.21.12b/zen.macos-universal.dmg", "install_script_ref": "67e0fe5c", diff --git a/ee/maintained-apps/outputs/zeplin/darwin.json b/ee/maintained-apps/outputs/zeplin/darwin.json index b8feafb4471..d0efe3c2e7a 100644 --- a/ee/maintained-apps/outputs/zeplin/darwin.json +++ b/ee/maintained-apps/outputs/zeplin/darwin.json @@ -4,7 +4,8 @@ "version": "10.32.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.zeplin.osx';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.zeplin.osx' AND version_compare(bundle_short_version, '10.32.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.zeplin.osx' AND version_compare(bundle_short_version, '10.32.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'io.zeplin.osx');" }, "installer_url": "https://pkg.zeplin.io/macos/latest/zeplin-darwin-universal.zip", "install_script_ref": "967913f4", diff --git a/ee/maintained-apps/outputs/zettlr/darwin.json b/ee/maintained-apps/outputs/zettlr/darwin.json index 289e9dce1a5..4e09de09918 100644 --- a/ee/maintained-apps/outputs/zettlr/darwin.json +++ b/ee/maintained-apps/outputs/zettlr/darwin.json @@ -4,7 +4,8 @@ "version": "4.7.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.zettlr.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.zettlr.app' AND version_compare(bundle_short_version, '4.7.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.zettlr.app' AND version_compare(bundle_short_version, '4.7.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.zettlr.app');" }, "installer_url": "https://github.com/Zettlr/Zettlr/releases/download/v4.7.0/Zettlr-4.7.0-arm64.dmg", "install_script_ref": "0e82e89b", diff --git a/ee/maintained-apps/outputs/zettlr/windows.json b/ee/maintained-apps/outputs/zettlr/windows.json index b685c12ada3..6aa2001ca7e 100644 --- a/ee/maintained-apps/outputs/zettlr/windows.json +++ b/ee/maintained-apps/outputs/zettlr/windows.json @@ -4,7 +4,8 @@ "version": "4.7.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Zettlr' AND publisher = 'Hendrik Erz';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Zettlr' AND publisher = 'Hendrik Erz' AND version_compare(version, '4.7.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Zettlr' AND publisher = 'Hendrik Erz' AND version_compare(version, '4.7.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'zettlr.exe');" }, "installer_url": "https://github.com/Zettlr/Zettlr/releases/download/v4.7.0/Zettlr-4.7.0-x64.exe", "install_script_ref": "64dd4e97", diff --git a/ee/maintained-apps/outputs/zight/darwin.json b/ee/maintained-apps/outputs/zight/darwin.json index 29749e4d96c..bf168e50d2d 100644 --- a/ee/maintained-apps/outputs/zight/darwin.json +++ b/ee/maintained-apps/outputs/zight/darwin.json @@ -4,7 +4,8 @@ "version": "8.7.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.linebreak.CloudAppMacOSX';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.linebreak.CloudAppMacOSX' AND version_compare(bundle_short_version, '8.7.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.linebreak.CloudAppMacOSX' AND version_compare(bundle_short_version, '8.7.2') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.linebreak.CloudAppMacOSX');" }, "installer_url": "https://downloads.zight.com/mac/Zight-8.7.2.3615.zip", "install_script_ref": "a6fb4b3d", diff --git a/ee/maintained-apps/outputs/zoom-outlook-plugin/windows.json b/ee/maintained-apps/outputs/zoom-outlook-plugin/windows.json index 6e89c5fbe20..f2c297ad152 100644 --- a/ee/maintained-apps/outputs/zoom-outlook-plugin/windows.json +++ b/ee/maintained-apps/outputs/zoom-outlook-plugin/windows.json @@ -4,7 +4,8 @@ "version": "7.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Zoom Outlook Plugin' AND publisher = 'Zoom';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Zoom Outlook Plugin' AND publisher = 'Zoom' AND version_compare(version, '7.1.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Zoom Outlook Plugin' AND publisher = 'Zoom' AND version_compare(version, '7.1.0') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'zoom outlook plugin.exe');" }, "installer_url": "https://zoom.us/client/7.1.0.1261/ZoomOutlookPluginSetup.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/zoom-rooms/darwin.json b/ee/maintained-apps/outputs/zoom-rooms/darwin.json index 2c86e1a9038..15b4990b6f7 100644 --- a/ee/maintained-apps/outputs/zoom-rooms/darwin.json +++ b/ee/maintained-apps/outputs/zoom-rooms/darwin.json @@ -4,7 +4,8 @@ "version": "7.1.5.13403", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'us.zoom.ZoomPresence';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'us.zoom.ZoomPresence' AND version_compare(bundle_short_version, '7.1.5.13403') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'us.zoom.ZoomPresence' AND version_compare(bundle_short_version, '7.1.5.13403') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'us.zoom.ZoomPresence');" }, "installer_url": "https://cdn.zoom.us/prod/7.1.5.13403/ZoomRooms.pkg", "install_script_ref": "6fe6c33d", diff --git a/ee/maintained-apps/outputs/zoom-rooms/windows.json b/ee/maintained-apps/outputs/zoom-rooms/windows.json index 2300874975b..206bb23f7a3 100644 --- a/ee/maintained-apps/outputs/zoom-rooms/windows.json +++ b/ee/maintained-apps/outputs/zoom-rooms/windows.json @@ -4,7 +4,8 @@ "version": "7.1.5", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Zoom Rooms%' AND name NOT LIKE '%Installer%' AND publisher LIKE 'Zoom%Communications%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Zoom Rooms%' AND name NOT LIKE '%Installer%' AND publisher LIKE 'Zoom%Communications%' AND version_compare(version, '7.1.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Zoom Rooms%' AND name NOT LIKE '%Installer%' AND publisher LIKE 'Zoom%Communications%' AND version_compare(version, '7.1.5') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'zoom rooms.exe');" }, "installer_url": "https://cdn.zoom.us/prod/7.1.5.8017/x64/zoomrooms-7.1.5.8017-x64.msi", "install_script_ref": "790a33a6", diff --git a/ee/maintained-apps/outputs/zoom/darwin.json b/ee/maintained-apps/outputs/zoom/darwin.json index 94cb9918fd2..97bdad24f0e 100644 --- a/ee/maintained-apps/outputs/zoom/darwin.json +++ b/ee/maintained-apps/outputs/zoom/darwin.json @@ -4,7 +4,8 @@ "version": "7.1.5.84650", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'us.zoom.xos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'us.zoom.xos' AND version_compare(bundle_short_version, '7.1.5.84650') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'us.zoom.xos' AND version_compare(bundle_short_version, '7.1.5.84650') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'us.zoom.xos');" }, "installer_url": "https://zoom.us/client/latest/ZoomInstallerIT.pkg", "install_script_ref": "63cd9eb1", diff --git a/ee/maintained-apps/outputs/zoom/windows.json b/ee/maintained-apps/outputs/zoom/windows.json index d64894a851a..c7a52492274 100644 --- a/ee/maintained-apps/outputs/zoom/windows.json +++ b/ee/maintained-apps/outputs/zoom/windows.json @@ -4,7 +4,8 @@ "version": "7.1.43453", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Zoom Workplace%' AND publisher = 'Zoom';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Zoom Workplace%' AND publisher = 'Zoom' AND version_compare(version, '7.1.43453') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Zoom Workplace%' AND publisher = 'Zoom' AND version_compare(version, '7.1.43453') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'zoom.exe');" }, "installer_url": "https://zoom.us/client/7.1.5.43453/ZoomInstallerFull.msi?archType=x64", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/zotero/darwin.json b/ee/maintained-apps/outputs/zotero/darwin.json index 4bdd4bdc56f..a9b008ea224 100644 --- a/ee/maintained-apps/outputs/zotero/darwin.json +++ b/ee/maintained-apps/outputs/zotero/darwin.json @@ -4,7 +4,8 @@ "version": "9.0.6", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.zotero.zotero';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.zotero.zotero' AND version_compare(bundle_short_version, '9.0.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.zotero.zotero' AND version_compare(bundle_short_version, '9.0.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.zotero.zotero');" }, "installer_url": "https://download.zotero.org/client/release/9.0.6/Zotero-9.0.6.dmg", "install_script_ref": "a22985ef", diff --git a/ee/maintained-apps/outputs/zotero/windows.json b/ee/maintained-apps/outputs/zotero/windows.json index 4a453e75d21..617f74becc9 100644 --- a/ee/maintained-apps/outputs/zotero/windows.json +++ b/ee/maintained-apps/outputs/zotero/windows.json @@ -4,7 +4,8 @@ "version": "9.0.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Zotero' AND publisher = 'Corporation for Digital Scholarship';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Zotero' AND publisher = 'Corporation for Digital Scholarship' AND version_compare(version, '9.0.6') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Zotero' AND publisher = 'Corporation for Digital Scholarship' AND version_compare(version, '9.0.6') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'zotero.exe');" }, "installer_url": "https://download.zotero.org/client/release/9.0.6/Zotero-9.0.6_x64_setup.exe", "install_script_ref": "d29b62d2", diff --git a/ee/maintained-apps/outputs/zulip/darwin.json b/ee/maintained-apps/outputs/zulip/darwin.json index 79155b075c9..26907aa765f 100644 --- a/ee/maintained-apps/outputs/zulip/darwin.json +++ b/ee/maintained-apps/outputs/zulip/darwin.json @@ -4,7 +4,8 @@ "version": "5.12.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.zulip.zulip-electron';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.zulip.zulip-electron' AND version_compare(bundle_short_version, '5.12.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.zulip.zulip-electron' AND version_compare(bundle_short_version, '5.12.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'org.zulip.zulip-electron');" }, "installer_url": "https://github.com/zulip/zulip-desktop/releases/download/v5.12.4/Zulip-5.12.4-arm64.dmg", "install_script_ref": "00615075", diff --git a/ee/maintained-apps/outputs/zulip/windows.json b/ee/maintained-apps/outputs/zulip/windows.json index 4af75436fa9..25c74e29811 100644 --- a/ee/maintained-apps/outputs/zulip/windows.json +++ b/ee/maintained-apps/outputs/zulip/windows.json @@ -4,7 +4,8 @@ "version": "5.12.4", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Zulip' AND publisher = 'Kandra Labs, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Zulip' AND publisher = 'Kandra Labs, Inc.' AND version_compare(version, '5.12.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Zulip' AND publisher = 'Kandra Labs, Inc.' AND version_compare(version, '5.12.4') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM processes WHERE LOWER(name) = 'zulip.exe');" }, "installer_url": "https://github.com/zulip/zulip-desktop/releases/download/v5.12.4/Zulip-5.12.4-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/zwift/darwin.json b/ee/maintained-apps/outputs/zwift/darwin.json index 5745c6b6d20..a6759405294 100644 --- a/ee/maintained-apps/outputs/zwift/darwin.json +++ b/ee/maintained-apps/outputs/zwift/darwin.json @@ -4,7 +4,8 @@ "version": "1.1.17", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.zwift.ZwiftLauncher';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.zwift.ZwiftLauncher' AND version_compare(bundle_short_version, '1.1.17') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.zwift.ZwiftLauncher' AND version_compare(bundle_short_version, '1.1.17') < 0);", + "open": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps a JOIN processes p ON substr(p.path, 1, LENGTH(a.path) + 1) = concat(a.path, '/') WHERE a.bundle_identifier = 'com.zwift.ZwiftLauncher');" }, "installer_url": "https://cdn.zwift.com/app/ZwiftOSX.dmg", "install_script_ref": "c41e88ab",