Update Fleet-maintained apps - #50931
Conversation
Generated automatically with cmd/maintained-apps.
Script Diff Resultsee/maintained-apps/outputs/android-studio/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/autopsy/windows.json=== Install Script (no changes) ===
=== Uninstall // e89e5716 -> 868c149c ===
--- /tmp/old.D9BXZ8 2026-08-11 04:36:25.991051771 +0000
+++ /tmp/new.IZeFcW 2026-08-11 04:36:25.991051771 +0000
@@ -1,26 +1,28 @@
-$product_code = '{6BF79DCF-4641-4323-80A8-C43596518ECE}'
-$timeoutSeconds = 300 # 5 minute timeout
-
-# Fleet uninstalls app using product code that's extracted on upload
-$process = Start-Process msiexec -ArgumentList @("/quiet", "/x", $product_code, "/norestart") -PassThru
-
-# Wait for process with timeout
-$completed = $process.WaitForExit($timeoutSeconds * 1000)
-
-if (-not $completed) {
- Stop-Process -Id $process.Id -Force -ErrorAction SilentlyContinue
- Exit 1603 # ERROR_UNINSTALL_FAILURE
-}
+# Fleet uninstalls app by finding all related product codes for the specified upgrade code
+$inst = New-Object -ComObject "WindowsInstaller.Installer"
+$timeoutSeconds = 300 # 5 minute timeout per product
# MSI exit codes that indicate success. 3010 = ERROR_SUCCESS_REBOOT_REQUIRED,
# 1641 = ERROR_SUCCESS_REBOOT_INITIATED. Treat these as success rather than failure.
$successCodes = @(0, 3010, 1641)
-# Check exit code and output result
-if ($successCodes -contains $process.ExitCode) {
- Write-Output "Exit 0"
- Exit 0
-} else {
- Write-Output "Exit $($process.ExitCode)"
- Exit $process.ExitCode
+foreach ($product_code in $inst.RelatedProducts('{6AAD1A1D-40C1-4515-B4D6-EA5A167FFA77}')) {
+ $process = Start-Process msiexec -ArgumentList @("/quiet", "/x", $product_code, "/norestart") -PassThru
+
+ # Wait for process with timeout
+ $completed = $process.WaitForExit($timeoutSeconds * 1000)
+
+ if (-not $completed) {
+ Stop-Process -Id $process.Id -Force -ErrorAction SilentlyContinue
+ Exit 1603 # ERROR_UNINSTALL_FAILURE
+ }
+
+ # If the uninstall failed, bail
+ if ($successCodes -notcontains $process.ExitCode) {
+ Write-Output "Uninstall for $($product_code) exited $($process.ExitCode)"
+ Exit $process.ExitCode
+ }
}
+
+# All uninstalls succeeded; exit success
+Exit 0ee/maintained-apps/outputs/box-drive/darwin.json=== Install // 0282e69d -> 346485a2 ===
--- /tmp/old.wM1rEp 2026-08-11 04:36:26.047052089 +0000
+++ /tmp/new.kBxgC4 2026-08-11 04:36:26.048052095 +0000
@@ -96,5 +96,5 @@
# install pkg files
quit_and_track_application 'com.box.desktop'
-sudo installer -pkg "$TMPDIR/BoxDrive-2.53.219.pkg" -target / || exit $?
+sudo installer -pkg "$TMPDIR/BoxDrive-2.53.223.pkg" -target / || exit $?
relaunch_application 'com.box.desktop'
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/chatgpt/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/cisco-jabber/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/cloudflare-warp/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/devin-desktop/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/drawio/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/dropbox/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/firefox@developer-edition/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/firefox@nightly/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/hive-app/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/keeper-password-manager/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/lenovo-system-update/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/localsend/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/microsoft-edge/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/notion/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/nvidia-geforce-now/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/obsidian/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/onedrive/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/phpstorm/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/phpstorm/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/rocket-chat/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/shapr3d/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/shift/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/shift/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/slack/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/surge/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/teleport-connect/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/teleport-connect/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/teleport-suite/darwin.json=== Install // e996f404 -> 2b57ace9 ===
--- /tmp/old.l7FeeZ 2026-08-11 04:36:26.964057298 +0000
+++ /tmp/new.mJvGge 2026-08-11 04:36:26.964057298 +0000
@@ -96,5 +96,5 @@
# install pkg files
quit_and_track_application 'com.gravitational.teleport.tsh'
-sudo installer -pkg "$TMPDIR/teleport-18.10.3.pkg" -target / || exit $?
+sudo installer -pkg "$TMPDIR/teleport-18.10.4.pkg" -target / || exit $?
relaunch_application 'com.gravitational.teleport.tsh'
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/termius/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/zen/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) === |
WalkthroughUpdated maintained application manifests with new versions, patch thresholds, installer URLs, and SHA-256 checksums. Updated Box Drive and Teleport Suite installer package references. Changed Autopsy uninstallation to enumerate products by upgrade code, apply timeouts, recognize defined success codes, and stop on failures. Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@ee/maintained-apps/outputs/termius/windows.json`:
- Around line 10-13: Update the Termius entry’s installer_url to an immutable,
version-pinned URL for the 9.43.0 installer matching the existing sha256, while
leaving version and checksum metadata unchanged.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 0d70f018-9c56-4a11-92ce-a4b0771b8517
📒 Files selected for processing (33)
ee/maintained-apps/outputs/android-studio/darwin.jsonee/maintained-apps/outputs/autopsy/windows.jsonee/maintained-apps/outputs/box-drive/darwin.jsonee/maintained-apps/outputs/chatgpt/darwin.jsonee/maintained-apps/outputs/cisco-jabber/darwin.jsonee/maintained-apps/outputs/cloudflare-warp/windows.jsonee/maintained-apps/outputs/devin-desktop/darwin.jsonee/maintained-apps/outputs/drawio/windows.jsonee/maintained-apps/outputs/dropbox/darwin.jsonee/maintained-apps/outputs/firefox@developer-edition/darwin.jsonee/maintained-apps/outputs/firefox@nightly/darwin.jsonee/maintained-apps/outputs/hive-app/darwin.jsonee/maintained-apps/outputs/keeper-password-manager/darwin.jsonee/maintained-apps/outputs/lenovo-system-update/windows.jsonee/maintained-apps/outputs/localsend/darwin.jsonee/maintained-apps/outputs/microsoft-edge/windows.jsonee/maintained-apps/outputs/notion/darwin.jsonee/maintained-apps/outputs/nvidia-geforce-now/darwin.jsonee/maintained-apps/outputs/obsidian/darwin.jsonee/maintained-apps/outputs/onedrive/darwin.jsonee/maintained-apps/outputs/phpstorm/darwin.jsonee/maintained-apps/outputs/phpstorm/windows.jsonee/maintained-apps/outputs/rocket-chat/darwin.jsonee/maintained-apps/outputs/shapr3d/darwin.jsonee/maintained-apps/outputs/shift/darwin.jsonee/maintained-apps/outputs/shift/windows.jsonee/maintained-apps/outputs/slack/darwin.jsonee/maintained-apps/outputs/surge/darwin.jsonee/maintained-apps/outputs/teleport-connect/darwin.jsonee/maintained-apps/outputs/teleport-connect/windows.jsonee/maintained-apps/outputs/teleport-suite/darwin.jsonee/maintained-apps/outputs/termius/windows.jsonee/maintained-apps/outputs/zen/darwin.json
| "installer_url": "https://autoupdate.termius.com/windows/Install%20Termius.exe", | ||
| "install_script_ref": "df65625a", | ||
| "uninstall_script_ref": "362c320f", | ||
| "sha256": "9d6fb0b32fcef989762e7c268f298ebcfb46e042920847681418e38a1a6752d0", | ||
| "sha256": "5f769089cec36c686cac6878fc08312c56fcae28f460c004bf6b05f226a24805", |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
url='https://autoupdate.termius.com/windows/Install%20Termius.exe'
expected='5f769089cec36c686cac6878fc08312c56fcae28f460c004bf6b05f226a24805'
file="$(mktemp)"
trap 'rm -f "$file"' EXIT
curl --fail --location --silent --show-error "$url" -o "$file"
actual="$(sha256sum "$file" | awk '{print $1}')"
test "$actual" = "$expected"Repository: fleetdm/fleet
Length of output: 151
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
file='ee/maintained-apps/outputs/termius/windows.json'
printf '%s\n' '--- manifest ---'
cat -n "$file"
printf '%s\n' '--- related schema and ingestion references ---'
rg -n --glob '!node_modules' --glob '!dist' \
'installer_url|install_script_ref|sha256|maintained-apps/outputs' \
ee/maintained-apps .github 2>/dev/null | head -250Repository: fleetdm/fleet
Length of output: 34781
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
printf '%s\n' '--- maintained-apps documentation around installer handling ---'
sed -n '1,240p' ee/maintained-apps/README.md
printf '%s\n' '--- exact installer download and checksum consumers ---'
rg -n --glob '!node_modules' --glob '!dist' \
'installer_url|sha256sum|sha256|INSTALLER_PATH|download.*installer|installer.*download' \
. | head -300Repository: fleetdm/fleet
Length of output: 50371
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
printf '%s\n' '--- Termius input and generator references ---'
fd -i 'termius|maintained-apps' ee/maintained-apps | head -100
rg -n --glob '*.go' --glob '*.json' \
'installer_url|sha256|ignore_hash|Download.*Installer|download.*URL' \
cmd/maintained-apps ee/maintained-apps server | head -220
printf '%s\n' '--- download/hash behavior in relevant server paths ---'
sed -n '620,690p' server/fleet/scripts.go
sed -n '480,565p' client/orbit_client.goRepository: fleetdm/fleet
Length of output: 38651
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
printf '%s\n' '--- Termius inputs ---'
cat -n ee/maintained-apps/inputs/winget/termius.json
cat -n ee/maintained-apps/inputs/winget/scripts/termius_install.ps1
printf '%s\n' '--- validation download and checksum code ---'
sed -n '150,215p' cmd/maintained-apps/validate/main.go
sed -n '385,435p' cmd/maintained-apps/validate/main.go
printf '%s\n' '--- generated output model and checksum handling ---'
sed -n '1,125p' ee/maintained-apps/maintained_apps.go
sed -n '630,665p' ee/maintained-apps/ingesters/winget/ingester.goRepository: fleetdm/fleet
Length of output: 10124
Use a version-pinned Termius installer URL.
installer_url is mutable, while version and sha256 describe 9.43.0. A later endpoint update makes Fleet’s checksum validation fail and blocks installation. Replace it with an immutable URL, or archive the exact installer and use the archive URL.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@ee/maintained-apps/outputs/termius/windows.json` around lines 10 - 13, Update
the Termius entry’s installer_url to an immutable, version-pinned URL for the
9.43.0 installer matching the existing sha256, while leaving version and
checksum metadata unchanged.
Source: MCP tools
|
Closing in favor of #50934. |
Automated ingestion of latest Fleet-maintained app data.
Summary by CodeRabbit