Update Fleet-maintained apps - #50537
Conversation
Generated automatically with cmd/maintained-apps.
Script Diff Resultsee/maintained-apps/outputs/1password/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.RjAMmO 2026-08-04 20:37:24.928924766 +0000
+++ /tmp/new.JuGhj8 2026-08-04 20:37:24.928924766 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/7-zip/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.aQHIo1 2026-08-04 20:37:24.999926735 +0000
+++ /tmp/new.foCxng 2026-08-04 20:37:24.999926735 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/8x8-work/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/8x8-work/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.RTBjXZ 2026-08-04 20:37:25.104929647 +0000
+++ /tmp/new.Jkzd1r 2026-08-04 20:37:25.104929647 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/adobe-acrobat-pro/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/adobe-acrobat-reader/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/adobe-dng-converter/darwin.json=== Install // b175e533 -> ac06e091 ===
--- /tmp/old.hNRAlf 2026-08-04 20:37:25.263934056 +0000
+++ /tmp/new.8eeBhC 2026-08-04 20:37:25.263934056 +0000
@@ -101,5 +101,5 @@
hdiutil detach "$MOUNT_POINT" || true
# install pkg files
quit_and_track_application 'com.adobe.DNGConverter'
-sudo installer -pkg "$TMPDIR/DNGConverter_18_4_1.pkg" -target / || exit $?
+sudo installer -pkg "$TMPDIR/DNGConverter_18_5.pkg" -target / || exit $?
relaunch_application 'com.adobe.DNGConverter'
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/advanced-installer/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Tv3Xu7 2026-08-04 20:37:25.333935997 +0000
+++ /tmp/new.8zFl9I 2026-08-04 20:37:25.333935997 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/advanced-renamer/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/aircall/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.GMVeU1 2026-08-04 20:37:25.446939131 +0000
+++ /tmp/new.IsG56I 2026-08-04 20:37:25.446939131 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/airparrot/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.FdIzwX 2026-08-04 20:37:25.515941045 +0000
+++ /tmp/new.tft1YD 2026-08-04 20:37:25.515941045 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/airtame/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/alacritty/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.r56ztK 2026-08-04 20:37:25.648944733 +0000
+++ /tmp/new.CRmHbf 2026-08-04 20:37:25.648944733 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/alfaview/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.UnvKIF 2026-08-04 20:37:25.706946341 +0000
+++ /tmp/new.vHRzA3 2026-08-04 20:37:25.707946369 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/allway-sync/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.G7Yybn 2026-08-04 20:37:25.767948033 +0000
+++ /tmp/new.2ZlTAy 2026-08-04 20:37:25.767948033 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/amazon-corretto-11/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.j3MHfm 2026-08-04 20:37:25.822949558 +0000
+++ /tmp/new.4Uxxah 2026-08-04 20:37:25.822949558 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/amazon-corretto-17/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Kspl1R 2026-08-04 20:37:25.876951056 +0000
+++ /tmp/new.TSThXl 2026-08-04 20:37:25.876951056 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/amazon-corretto-21/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.2JQaH2 2026-08-04 20:37:25.933952637 +0000
+++ /tmp/new.1iZSyw 2026-08-04 20:37:25.933952637 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/amazon-corretto-24/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.O8t4JO 2026-08-04 20:37:26.004954606 +0000
+++ /tmp/new.Wr9MO2 2026-08-04 20:37:26.004954606 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/amazon-corretto-25/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.iC47ND 2026-08-04 20:37:26.058956103 +0000
+++ /tmp/new.XKWBhJ 2026-08-04 20:37:26.058956103 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/amazon-corretto-26/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Nhbs4L 2026-08-04 20:37:26.113957628 +0000
+++ /tmp/new.byRUEZ 2026-08-04 20:37:26.113957628 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/amazon-corretto-8/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.NaZCS2 2026-08-04 20:37:26.170959209 +0000
+++ /tmp/new.QcAuV5 2026-08-04 20:37:26.171959237 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/amazon-corretto-jre-8/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.BCalnM 2026-08-04 20:37:26.225960735 +0000
+++ /tmp/new.T30WKb 2026-08-04 20:37:26.226960762 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/amazon-dcv-client/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.USJgRc 2026-08-04 20:37:26.296962703 +0000
+++ /tmp/new.yR8CnL 2026-08-04 20:37:26.297962731 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/amazon-dcv-server/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.L8TyZ7 2026-08-04 20:37:26.368964700 +0000
+++ /tmp/new.bgciGl 2026-08-04 20:37:26.368964700 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/amazon-redshift-odbc-driver/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Ql6ULK 2026-08-04 20:37:26.430966419 +0000
+++ /tmp/new.ymWJjx 2026-08-04 20:37:26.430966419 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/amazon-workspaces/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Yn7HOk 2026-08-04 20:37:26.501968388 +0000
+++ /tmp/new.FDDmvD 2026-08-04 20:37:26.501968388 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/apidog/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/aptakube/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Byhvfw 2026-08-04 20:37:26.592970912 +0000
+++ /tmp/new.C37veN 2026-08-04 20:37:26.592970912 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/arduino-ide/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.12fnMg 2026-08-04 20:37:26.666972964 +0000
+++ /tmp/new.h1I8id 2026-08-04 20:37:26.667972992 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/asana/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/audiveris/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.63qcJE 2026-08-04 20:37:26.764975682 +0000
+++ /tmp/new.2Z1y7H 2026-08-04 20:37:26.764975682 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/autopsy/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.JaVdNT 2026-08-04 20:37:26.832977568 +0000
+++ /tmp/new.NUuqPn 2026-08-04 20:37:26.832977568 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/aws-cli/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.ueSVJE 2026-08-04 20:37:26.883978982 +0000
+++ /tmp/new.cAubZa 2026-08-04 20:37:26.883978982 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/aws-sam-cli/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.HNKKqY 2026-08-04 20:37:26.934980396 +0000
+++ /tmp/new.Ry9yrc 2026-08-04 20:37:26.934980396 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/aws-vpn-client/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.x0EdhP 2026-08-04 20:37:26.988981894 +0000
+++ /tmp/new.bkINxO 2026-08-04 20:37:26.988981894 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/azul-zulu-25-jdk/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.DgOqkw 2026-08-04 20:37:27.044983447 +0000
+++ /tmp/new.mMA49w 2026-08-04 20:37:27.044983447 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/azul-zulu-25-jre/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.vZQZEx 2026-08-04 20:37:27.098984945 +0000
+++ /tmp/new.Z6a6cu 2026-08-04 20:37:27.098984945 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/azure-functions-core-tools/windows.json=== Install // 42c7791f -> 49fc2740 ===
--- /tmp/old.29TCqT 2026-08-04 20:37:27.160986664 +0000
+++ /tmp/new.ZeIsqb 2026-08-04 20:37:27.160986664 +0000
@@ -11,7 +11,7 @@
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} ALLUSERS=1 /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" ALLUSERS=1 /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/betterzip/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/beyond-compare/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/beyond-compare/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/bitwig-studio/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Qi6S7Z 2026-08-04 20:37:27.401993347 +0000
+++ /tmp/new.AlJjUm 2026-08-04 20:37:27.401993347 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/blender/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.3sWAUz 2026-08-04 20:37:27.470995261 +0000
+++ /tmp/new.Uq7yZY 2026-08-04 20:37:27.470995261 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/bluej/windows.json=== Install // 29a9338f -> 85459eac ===
--- /tmp/old.Nx5wKr 2026-08-04 20:37:27.535997063 +0000
+++ /tmp/new.yQnbUX 2026-08-04 20:37:27.535997063 +0000
@@ -7,7 +7,7 @@
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`" ALLUSERS=2" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`" ALLUSERS=2" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/box-drive/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.FosOnQ 2026-08-04 20:37:27.593998672 +0000
+++ /tmp/new.NxieRA 2026-08-04 20:37:27.594998699 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/box-tools/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.7zgeLD 2026-08-04 20:37:27.651000252 +0000
+++ /tmp/new.yhC3gN 2026-08-04 20:37:27.651000252 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/browserstacklocal/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.cD7VwT 2026-08-04 20:37:27.706001778 +0000
+++ /tmp/new.xRfy69 2026-08-04 20:37:27.707001805 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/bruno/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Bagegh 2026-08-04 20:37:27.763003358 +0000
+++ /tmp/new.CPoC4G 2026-08-04 20:37:27.763003358 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/calibre/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.I3mGbQ 2026-08-04 20:37:27.815004800 +0000
+++ /tmp/new.N9a9k2 2026-08-04 20:37:27.815004800 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/camtasia/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.tDcn01 2026-08-04 20:37:27.874006437 +0000
+++ /tmp/new.dJZok6 2026-08-04 20:37:27.874006437 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/charles/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/chef-workstation/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.U87uY7 2026-08-04 20:37:27.968009043 +0000
+++ /tmp/new.mLlxSO 2026-08-04 20:37:27.968009043 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/cherry-keys/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.yImpSU 2026-08-04 20:37:28.039011013 +0000
+++ /tmp/new.TFbjIG 2026-08-04 20:37:28.039011013 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/chrome-remote-desktop/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.6fHxw7 2026-08-04 20:37:28.099012676 +0000
+++ /tmp/new.5zfzbD 2026-08-04 20:37:28.099012676 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/cinc/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Kvc86b 2026-08-04 20:37:28.173014728 +0000
+++ /tmp/new.uNArWu 2026-08-04 20:37:28.173014728 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/cisco-jabber/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.qIA0fg 2026-08-04 20:37:28.230016309 +0000
+++ /tmp/new.Rovzxd 2026-08-04 20:37:28.231016337 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/cisco-webex-recorder-and-player/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.1sq9Td 2026-08-04 20:37:28.292018029 +0000
+++ /tmp/new.NDB38g 2026-08-04 20:37:28.292018029 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/claude/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/clickup/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.bLiYBq 2026-08-04 20:37:28.384020580 +0000
+++ /tmp/new.4gRUpa 2026-08-04 20:37:28.384020580 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/clockassist/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.u74H0l 2026-08-04 20:37:28.445022272 +0000
+++ /tmp/new.7aKVce 2026-08-04 20:37:28.446022299 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/clockify/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.ShTUBG 2026-08-04 20:37:28.500023797 +0000
+++ /tmp/new.NGXLqj 2026-08-04 20:37:28.500023797 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/cloudflare-warp/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.JEJLIw 2026-08-04 20:37:28.555025322 +0000
+++ /tmp/new.TIKE3R 2026-08-04 20:37:28.555025322 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/cmake-app/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.AlYfNm 2026-08-04 20:37:28.606026736 +0000
+++ /tmp/new.GHLWNg 2026-08-04 20:37:28.606026736 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/codemeter-runtime-kit/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/codexbar/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/colour-contrast-analyser/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.lzLPoC 2026-08-04 20:37:28.758030952 +0000
+++ /tmp/new.UgH8ol 2026-08-04 20:37:28.759030979 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/crashplan/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.UPvqH6 2026-08-04 20:37:28.811032422 +0000
+++ /tmp/new.uQTQSr 2026-08-04 20:37:28.812032449 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/creative-force-kelvin/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.bbJhKi 2026-08-04 20:37:28.859033753 +0000
+++ /tmp/new.Cevtxd 2026-08-04 20:37:28.859033753 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/crestron-airmedia-peripherals/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.htET5t 2026-08-04 20:37:28.918035389 +0000
+++ /tmp/new.ZnoTT4 2026-08-04 20:37:28.918035389 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/crestron-airmedia/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.hMWWBD 2026-08-04 20:37:28.977037025 +0000
+++ /tmp/new.FYUTvr 2026-08-04 20:37:28.977037025 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/cribl-edge/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.aLbdLG 2026-08-04 20:37:29.032038550 +0000
+++ /tmp/new.sPn8IH 2026-08-04 20:37:29.032038550 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/crisisgo/windows.json=== Install // 27b04e7a -> 01aaef68 ===
--- /tmp/old.uEw2TH 2026-08-04 20:37:29.094040270 +0000
+++ /tmp/new.00AJYf 2026-08-04 20:37:29.094040270 +0000
@@ -11,7 +11,7 @@
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} ISSETUPDRIVEN=1 /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" ISSETUPDRIVEN=1 /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/cryptomator/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.W3hPTH 2026-08-04 20:37:29.159042072 +0000
+++ /tmp/new.qwWBQ3 2026-08-04 20:37:29.159042072 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/cursor/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/cyberduck-cli/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.FMlYbZ 2026-08-04 20:37:29.255044735 +0000
+++ /tmp/new.34uUbh 2026-08-04 20:37:29.255044735 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/cyberduck/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/cyberduck/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.1aAqgD 2026-08-04 20:37:29.356047536 +0000
+++ /tmp/new.Ig3931 2026-08-04 20:37:29.356047536 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/db-browser-for-sqlite/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.PJOroo 2026-08-04 20:37:29.430049588 +0000
+++ /tmp/new.kStBFa 2026-08-04 20:37:29.430049588 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/dbgate/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/delinea-connection-manager/windows.json=== Install // d3f438be -> 00512c4c ===
--- /tmp/old.a7HXn2 2026-08-04 20:37:29.542052694 +0000
+++ /tmp/new.n6J5sE 2026-08-04 20:37:29.542052694 +0000
@@ -12,7 +12,7 @@
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} ALLUSERS=1 MSIINSTALLPERUSER=`"`" /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" ALLUSERS=1 MSIINSTALLPERUSER=`"`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/devolutions-launcher/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.qlW8kJ 2026-08-04 20:37:29.600054302 +0000
+++ /tmp/new.ZynCbY 2026-08-04 20:37:29.600054302 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/devolutions-workspace/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.oGTxbk 2026-08-04 20:37:29.658055911 +0000
+++ /tmp/new.rLizjt 2026-08-04 20:37:29.658055911 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/devpod/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.NLMQB9 2026-08-04 20:37:29.718057574 +0000
+++ /tmp/new.SJgvG3 2026-08-04 20:37:29.718057574 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/digiseal-reader/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/discord/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/discord/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/dngrep/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.3yJILf 2026-08-04 20:37:29.898062566 +0000
+++ /tmp/new.XYkdW8 2026-08-04 20:37:29.898062566 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/docker/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/dot/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/downie/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/draftable-desktop/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.rRTfyD 2026-08-04 20:37:30.070067336 +0000
+++ /tmp/new.rUMNY0 2026-08-04 20:37:30.070067336 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/drawio/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/drofus/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.H7J89z 2026-08-04 20:37:30.169070082 +0000
+++ /tmp/new.XDEk2n 2026-08-04 20:37:30.169070082 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/dropbox/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.jLYhAo 2026-08-04 20:37:30.223071579 +0000
+++ /tmp/new.jiV2AD 2026-08-04 20:37:30.223071579 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/druva-insync/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.p56pU0 2026-08-04 20:37:30.288073382 +0000
+++ /tmp/new.x2v09r 2026-08-04 20:37:30.288073382 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/duo-desktop/darwin.json=== Install // bac43c9b -> 96c63e5c ===
--- /tmp/old.3eDWer 2026-08-04 20:37:30.341074851 +0000
+++ /tmp/new.sDjlfR 2026-08-04 20:37:30.342074879 +0000
@@ -96,5 +96,5 @@
# install pkg files
quit_and_track_application 'com.duosecurity.duo-device-health'
-sudo installer -pkg "$TMPDIR/DuoDesktop-7.19.0.0.pkg" -target / || exit $?
+sudo installer -pkg "$TMPDIR/DuoDesktop-7.20.0.0.pkg" -target / || exit $?
relaunch_application 'com.duosecurity.duo-device-health'
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/duo-desktop/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.DbPvPU 2026-08-04 20:37:30.410076765 +0000
+++ /tmp/new.X5G5gu 2026-08-04 20:37:30.410076765 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/eclipse-temurin-jdk-11/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.p74L3I 2026-08-04 20:37:30.462078207 +0000
+++ /tmp/new.N1c93q 2026-08-04 20:37:30.462078207 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/eclipse-temurin-jdk-17/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.TpopYE 2026-08-04 20:37:30.515079677 +0000
+++ /tmp/new.PiHR49 2026-08-04 20:37:30.515079677 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/eclipse-temurin-jdk-21/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.2RWPGY 2026-08-04 20:37:30.581081507 +0000
+++ /tmp/new.BDHjru 2026-08-04 20:37:30.581081507 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/eclipse-temurin-jdk-8/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.gVMbAd 2026-08-04 20:37:30.631082894 +0000
+++ /tmp/new.yZS2b4 2026-08-04 20:37:30.631082894 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/eclipse-temurin-jre-11/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.GZKhZu 2026-08-04 20:37:30.682084308 +0000
+++ /tmp/new.tmuYrM 2026-08-04 20:37:30.683084336 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/eclipse-temurin-jre-17/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.nkghuk 2026-08-04 20:37:30.732085695 +0000
+++ /tmp/new.TOG0Y9 2026-08-04 20:37:30.732085695 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/eclipse-temurin-jre-21/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.G5dWia 2026-08-04 20:37:30.784087137 +0000
+++ /tmp/new.anBlhs 2026-08-04 20:37:30.784087137 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/eclipse-temurin-jre-8/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Jf1p9Z 2026-08-04 20:37:30.834088523 +0000
+++ /tmp/new.b0URIr 2026-08-04 20:37:30.834088523 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/egnyte-webedit/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Nj0PyU 2026-08-04 20:37:30.894090187 +0000
+++ /tmp/new.Ei1kUJ 2026-08-04 20:37:30.894090187 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/elevate-uc/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.16gQVN 2026-08-04 20:37:30.953091823 +0000
+++ /tmp/new.HwKGYn 2026-08-04 20:37:30.953091823 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/elgato-control-center/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Rny9Cj 2026-08-04 20:37:31.029093931 +0000
+++ /tmp/new.jBZXAI 2026-08-04 20:37:31.029093931 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/elgato-stream-deck/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.r5iJC3 2026-08-04 20:37:31.082095401 +0000
+++ /tmp/new.lsIT55 2026-08-04 20:37:31.082095401 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/emclient/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.ZF2kSv 2026-08-04 20:37:31.133096815 +0000
+++ /tmp/new.YSNHCL 2026-08-04 20:37:31.134096843 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/endnote/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.XJLiQD 2026-08-04 20:37:31.202098729 +0000
+++ /tmp/new.ihiM2l 2026-08-04 20:37:31.202098729 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/epic-games/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.ycKRrK 2026-08-04 20:37:31.264100448 +0000
+++ /tmp/new.VJ7Hyw 2026-08-04 20:37:31.264100448 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/exifcleaner/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/filebeat/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.FyZvGT 2026-08-04 20:37:31.354102944 +0000
+++ /tmp/new.gPfWoV 2026-08-04 20:37:31.354102944 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/firefox/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/firefox/windows.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/flexwhere/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.lOatQd 2026-08-04 20:37:31.562108712 +0000
+++ /tmp/new.k55M5V 2026-08-04 20:37:31.562108712 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/fortify/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.eXsXtl 2026-08-04 20:37:31.624110432 +0000
+++ /tmp/new.nfivoy 2026-08-04 20:37:31.624110432 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/genesys-cloud/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/genesys-cloud/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.zFPDdu 2026-08-04 20:37:31.728113316 +0000
+++ /tmp/new.QUD9hL 2026-08-04 20:37:31.728113316 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/geogebra-classic/windows.json=== Install // ebe19da8 -> d43086d9 ===
--- /tmp/old.CD1Pv3 2026-08-04 20:37:31.783114841 +0000
+++ /tmp/new.vvJHfC 2026-08-04 20:37:31.783114841 +0000
@@ -10,7 +10,7 @@
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/git-extensions/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.2A7GPc 2026-08-04 20:37:31.837116338 +0000
+++ /tmp/new.p7FfIa 2026-08-04 20:37:31.837116338 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/github-desktop/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.2wKLhh 2026-08-04 20:37:31.898118030 +0000
+++ /tmp/new.S3xlhf 2026-08-04 20:37:31.898118030 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/go/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.RCZbcv 2026-08-04 20:37:31.959119722 +0000
+++ /tmp/new.XhBtPg 2026-08-04 20:37:31.959119722 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/google-ads-editor/windows.json=== Install // bdccfcda -> 351845b5 ===
--- /tmp/old.82NcPp 2026-08-04 20:37:32.010121133 +0000
+++ /tmp/new.zZ6TvU 2026-08-04 20:37:32.010121133 +0000
@@ -11,7 +11,7 @@
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} ALLUSERS=1 /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" ALLUSERS=1 /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/google-chrome/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.qMSTcH 2026-08-04 20:37:32.061122541 +0000
+++ /tmp/new.IMfztU 2026-08-04 20:37:32.062122568 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/google-credential-provider-for-windows/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.X9I7OY 2026-08-04 20:37:32.124124280 +0000
+++ /tmp/new.G97Ahm 2026-08-04 20:37:32.124124280 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/gotomeeting/windows.json=== Install // 36ce6af0 -> a6c7d24e ===
--- /tmp/old.nymYwR 2026-08-04 20:37:32.207126571 +0000
+++ /tmp/new.IetnQh 2026-08-04 20:37:32.207126571 +0000
@@ -8,7 +8,7 @@
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`" G2MINSTALLFORALLUSERS=1" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`" G2MINSTALLFORALLUSERS=1" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/grammarly-desktop/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/granola/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/grepwin/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.cMkHmB 2026-08-04 20:37:32.339130215 +0000
+++ /tmp/new.5LzYPW 2026-08-04 20:37:32.339130215 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/home-assistant/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/hwmonitor/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/ibm-semeru-jdk-11/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.QliuCx 2026-08-04 20:37:32.466133721 +0000
+++ /tmp/new.TCAhGE 2026-08-04 20:37:32.466133721 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/ibm-semeru-jdk-17/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.s03ajH 2026-08-04 20:37:32.518135156 +0000
+++ /tmp/new.1UPQKN 2026-08-04 20:37:32.518135156 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/ibm-semeru-jdk-21/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.PWCBpi 2026-08-04 20:37:32.569136564 +0000
+++ /tmp/new.I5qfu5 2026-08-04 20:37:32.569136564 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/ibm-semeru-jdk-8/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.ZL0nuj 2026-08-04 20:37:32.620137972 +0000
+++ /tmp/new.Na0mc0 2026-08-04 20:37:32.621137999 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/ibm-semeru-jre-11/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.f0Tye4 2026-08-04 20:37:32.677139545 +0000
+++ /tmp/new.7uIrWX 2026-08-04 20:37:32.677139545 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/ibm-semeru-jre-17/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.N87X4S 2026-08-04 20:37:32.728140953 +0000
+++ /tmp/new.MiT5wg 2026-08-04 20:37:32.728140953 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/ibm-semeru-jre-21/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.fHhNuH 2026-08-04 20:37:32.779142361 +0000
+++ /tmp/new.4Dq5Ia 2026-08-04 20:37:32.779142361 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/ibm-semeru-jre-8/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.nEEfGD 2026-08-04 20:37:32.829143741 +0000
+++ /tmp/new.xgFCNQ 2026-08-04 20:37:32.829143741 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/imageglass/windows.json=== Install // e7eaf6bb -> 72349997 ===
--- /tmp/old.Ta2vHU 2026-08-04 20:37:32.880145149 +0000
+++ /tmp/new.nRKgxg 2026-08-04 20:37:32.881145177 +0000
@@ -9,7 +9,7 @@
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} ALLUSERS=1 /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" ALLUSERS=1 /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/imhex/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.2X1pnE 2026-08-04 20:37:32.954147192 +0000
+++ /tmp/new.EczTEl 2026-08-04 20:37:32.954147192 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/inkscape/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.dSheo1 2026-08-04 20:37:33.032149345 +0000
+++ /tmp/new.IK2aym 2026-08-04 20:37:33.032149345 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/ironpython/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Sj64hg 2026-08-04 20:37:33.087150863 +0000
+++ /tmp/new.V33mKs 2026-08-04 20:37:33.087150863 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/jami/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.d8gPid 2026-08-04 20:37:33.161152906 +0000
+++ /tmp/new.azGR2x 2026-08-04 20:37:33.161152906 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/jetbrains-toolbox/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/jetbrains-toolbox/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/keepassxc/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.8YwKXy 2026-08-04 20:37:33.315157157 +0000
+++ /tmp/new.D8m6ub 2026-08-04 20:37:33.315157157 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/lapce/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.JssSxT 2026-08-04 20:37:33.388159172 +0000
+++ /tmp/new.Spv9nO 2026-08-04 20:37:33.389159200 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/lastpass/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.zI08KB 2026-08-04 20:37:33.449160856 +0000
+++ /tmp/new.YgdQKb 2026-08-04 20:37:33.449160856 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/libreoffice/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.dVzp7A 2026-08-04 20:37:33.503162347 +0000
+++ /tmp/new.QrlTZL 2026-08-04 20:37:33.503162347 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/linear/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/linear/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/lookaway/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/loom/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/loom/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/macwhisper/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/marked-app/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/mattermost/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.lT90xS 2026-08-04 20:37:33.853172009 +0000
+++ /tmp/new.GFvpfK 2026-08-04 20:37:33.853172009 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/microsoft-365-copilot/darwin.json=== Install // 49bf2ee3 -> 0be42f66 ===
--- /tmp/old.sxK2Xn 2026-08-04 20:37:33.913173665 +0000
+++ /tmp/new.FrSwA8 2026-08-04 20:37:33.913173665 +0000
@@ -117,6 +117,6 @@
EOF
-sudo installer -pkg "$TMPDIR/Microsoft_365_Copilot_universal_1.2607.2001_Installer.pkg" -target / -applyChoiceChangesXML "$CHOICE_XML" || exit $?
+sudo installer -pkg "$TMPDIR/Microsoft_365_Copilot_universal_1.2607.2701_Installer.pkg" -target / -applyChoiceChangesXML "$CHOICE_XML" || exit $?
relaunch_application 'com.microsoft.m365copilot'
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/microsoft-edge/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.vacFCQ 2026-08-04 20:37:33.964175073 +0000
+++ /tmp/new.PKRI2r 2026-08-04 20:37:33.964175073 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/microsoft-teams/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/microsoft-teams/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/miro/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/mixxx/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.5MsaCS 2026-08-04 20:37:34.163180566 +0000
+++ /tmp/new.ZkB9Bb 2026-08-04 20:37:34.163180566 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/mongodb-compass/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.RpI2UG 2026-08-04 20:37:34.225182278 +0000
+++ /tmp/new.y7hgrL 2026-08-04 20:37:34.225182278 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/mysqlworkbench/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.9h3N3J 2026-08-04 20:37:34.306184514 +0000
+++ /tmp/new.qXGjbT 2026-08-04 20:37:34.306184514 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/naps2/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.hEIlwd 2026-08-04 20:37:34.361186032 +0000
+++ /tmp/new.UG7BXO 2026-08-04 20:37:34.361186032 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/nessus-agent/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.M0esQY 2026-08-04 20:37:34.417187578 +0000
+++ /tmp/new.aV6TBN 2026-08-04 20:37:34.417187578 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/nextcloud/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.RpVaoC 2026-08-04 20:37:34.470189041 +0000
+++ /tmp/new.2bI4Eq 2026-08-04 20:37:34.470189041 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/nodejs/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.hbIShm 2026-08-04 20:37:34.522190477 +0000
+++ /tmp/new.XSMDye 2026-08-04 20:37:34.523190504 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/notepadexe/darwin.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/notion/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/nudge/darwin.json=== Install // ac39d8ab -> aa291dac ===
--- /tmp/old.iwNcTl 2026-08-04 20:37:34.700195390 +0000
+++ /tmp/new.OZXFlP 2026-08-04 20:37:34.700195390 +0000
@@ -96,5 +96,5 @@
# install pkg files
quit_and_track_application 'com.github.macadmins.Nudge'
-sudo installer -pkg "$TMPDIR/Nudge-2.1.2.81856.pkg" -target / || exit $?
+sudo installer -pkg "$TMPDIR/Nudge-2.1.3.81860.pkg" -target / || exit $?
relaunch_application 'com.github.macadmins.Nudge'
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/omnifocus/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/opencode-desktop/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/openvpn-connect/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.NPB4DA 2026-08-04 20:37:34.856199697 +0000
+++ /tmp/new.79Znn3 2026-08-04 20:37:34.856199697 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/origami-studio/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/p4v/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.RwHHSx 2026-08-04 20:37:34.962202623 +0000
+++ /tmp/new.KW80jm 2026-08-04 20:37:34.962202623 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/pale-moon/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/pdfsam-basic/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.exaJBt 2026-08-04 20:37:35.062205383 +0000
+++ /tmp/new.XzE0jX 2026-08-04 20:37:35.062205383 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/plex-media-server/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/postman/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/powershell/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.6poC63 2026-08-04 20:37:35.190208917 +0000
+++ /tmp/new.bx8CvO 2026-08-04 20:37:35.191208944 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/prisma-browser/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.MnomUZ 2026-08-04 20:37:35.241210325 +0000
+++ /tmp/new.NdGi0I 2026-08-04 20:37:35.241210325 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/putty/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.gWB2Yu 2026-08-04 20:37:35.324212616 +0000
+++ /tmp/new.Mwb2CK 2026-08-04 20:37:35.324212616 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/quip/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/rectangle-pro/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/reflector/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.RLwm1v 2026-08-04 20:37:35.475216784 +0000
+++ /tmp/new.XHRDwe 2026-08-04 20:37:35.475216784 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/remote-desktop-manager/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.PIKs2J 2026-08-04 20:37:35.533218385 +0000
+++ /tmp/new.U8OOWo 2026-08-04 20:37:35.533218385 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/rewritebar/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/rider/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/royal-tsx/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.iaIyOr 2026-08-04 20:37:35.666222057 +0000
+++ /tmp/new.YsmodR 2026-08-04 20:37:35.666222057 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/santa/darwin.json=== Install // e01d4393 -> a542a793 ===
--- /tmp/old.PgG4vr 2026-08-04 20:37:35.721223575 +0000
+++ /tmp/new.M5WYhq 2026-08-04 20:37:35.721223575 +0000
@@ -101,5 +101,5 @@
hdiutil detach "$MOUNT_POINT" || true
# install pkg files
quit_and_track_application 'com.northpolesec.santa'
-sudo installer -pkg "$TMPDIR/santa-2026.6.pkg" -target / || exit $?
+sudo installer -pkg "$TMPDIR/santa-2026.7.pkg" -target / || exit $?
relaunch_application 'com.northpolesec.santa'
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/shapr3d/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/sharefile/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.OXJD1D 2026-08-04 20:37:35.837226777 +0000
+++ /tmp/new.jMe7pI 2026-08-04 20:37:35.838226805 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/snagit/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.vhQEoO 2026-08-04 20:37:35.923229151 +0000
+++ /tmp/new.I1uhub 2026-08-04 20:37:35.923229151 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/sonicwall-netextender/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.336pKd 2026-08-04 20:37:35.977230642 +0000
+++ /tmp/new.b9OwGh 2026-08-04 20:37:35.978230669 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/sourcetree/windows.json=== Install // 17f62246 -> e23ea804 ===
--- /tmp/old.DJANRo 2026-08-04 20:37:36.062232988 +0000
+++ /tmp/new.PlsmWl 2026-08-04 20:37:36.063233016 +0000
@@ -3,7 +3,7 @@
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`" ACCEPTEULA=1" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`" ACCEPTEULA=1" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/spotify/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/superwhisper/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/tailscale-app/darwin.json=== Install // e568557b -> 6301b666 ===
--- /tmp/old.xS94hK 2026-08-04 20:37:36.202236853 +0000
+++ /tmp/new.pP3j8o 2026-08-04 20:37:36.202236853 +0000
@@ -96,5 +96,5 @@
# install pkg files
quit_and_track_application 'io.tailscale.ipn.macsys'
-sudo installer -pkg "$TMPDIR/Tailscale-1.98.10-macos.pkg" -target / || exit $?
+sudo installer -pkg "$TMPDIR/Tailscale-1.102.1-macos.pkg" -target / || exit $?
relaunch_application 'io.tailscale.ipn.macsys'
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/tailscale/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.iQ38Ml 2026-08-04 20:37:36.257238371 +0000
+++ /tmp/new.OLtI2i 2026-08-04 20:37:36.257238371 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/textexpander/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.dJb0ZM 2026-08-04 20:37:36.320240110 +0000
+++ /tmp/new.jr6VcV 2026-08-04 20:37:36.321240138 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/thunderbird/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/thunderbird/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/tightvnc/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.3ttbag 2026-08-04 20:37:36.454243809 +0000
+++ /tmp/new.Mdanl6 2026-08-04 20:37:36.454243809 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/todoist-app/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/todoist-app/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/topaz-gigapixel-ai/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Z4qyZL 2026-08-04 20:37:36.628248612 +0000
+++ /tmp/new.1PJki8 2026-08-04 20:37:36.629248640 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/topaz-photo-ai/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Exa5wk 2026-08-04 20:37:36.709250849 +0000
+++ /tmp/new.yRtgmV 2026-08-04 20:37:36.710250876 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/tortoisegit/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.A5lf39 2026-08-04 20:37:36.781252836 +0000
+++ /tmp/new.eXKT3S 2026-08-04 20:37:36.781252836 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/tower/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.JeeUli 2026-08-04 20:37:36.844254575 +0000
+++ /tmp/new.Bntykg 2026-08-04 20:37:36.844254575 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/transmission/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.KpTs5l 2026-08-04 20:37:36.908256342 +0000
+++ /tmp/new.IpjVxk 2026-08-04 20:37:36.909256370 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/trezor-suite/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/twingate/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.kQhKhy 2026-08-04 20:37:37.028259654 +0000
+++ /tmp/new.j2T1HD 2026-08-04 20:37:37.028259654 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/typeface/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/ultimaker-cura/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.jM04gl 2026-08-04 20:37:37.146262912 +0000
+++ /tmp/new.US1POq 2026-08-04 20:37:37.146262912 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/vlc/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.cyR4ze 2026-08-04 20:37:37.243265590 +0000
+++ /tmp/new.7ctrgb 2026-08-04 20:37:37.243265590 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/wave/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.0pNJC7 2026-08-04 20:37:37.325267853 +0000
+++ /tmp/new.5pNarL 2026-08-04 20:37:37.325267853 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/weasis/darwin.json=== Install // e404586c -> 61706202 ===
--- /tmp/old.mxa6wx 2026-08-04 20:37:37.379269344 +0000
+++ /tmp/new.5cwowU 2026-08-04 20:37:37.380269371 +0000
@@ -96,5 +96,5 @@
# install pkg files
quit_and_track_application 'org.weasis.launcher'
-sudo installer -pkg "$TMPDIR/Weasis-4.7.1-aarch64.pkg" -target / || exit $?
+sudo installer -pkg "$TMPDIR/Weasis-4.7.2-aarch64.pkg" -target / || exit $?
relaunch_application 'org.weasis.launcher'
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/weasis/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.8wu0kA 2026-08-04 20:37:37.445271166 +0000
+++ /tmp/new.TPZPkU 2026-08-04 20:37:37.446271193 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/webex/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.vcCIGS 2026-08-04 20:37:37.517273153 +0000
+++ /tmp/new.Cc9JNP 2026-08-04 20:37:37.517273153 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/whatsapp/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/windirstat/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.UNHMjq 2026-08-04 20:37:37.605275583 +0000
+++ /tmp/new.X8mN9C 2026-08-04 20:37:37.606275610 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/windows-app/darwin.json=== Install // 333033b1 -> 78ca7433 ===
--- /tmp/old.YvlNyo 2026-08-04 20:37:37.661277128 +0000
+++ /tmp/new.6cZUdw 2026-08-04 20:37:37.661277128 +0000
@@ -96,5 +96,5 @@
# install pkg files
quit_and_track_application 'com.microsoft.rdc.macos'
-sudo installer -pkg "$TMPDIR/Windows_App_11.3.7_installer.pkg" -target / || exit $?
+sudo installer -pkg "$TMPDIR/Windows_App_11.3.8_installer.pkg" -target / || exit $?
relaunch_application 'com.microsoft.rdc.macos'
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/winlogbeat/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.6YjFA7 2026-08-04 20:37:37.721278785 +0000
+++ /tmp/new.x99yEW 2026-08-04 20:37:37.721278785 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/wireshark/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.gwudhx 2026-08-04 20:37:37.787280607 +0000
+++ /tmp/new.VaiTzS 2026-08-04 20:37:37.788280634 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/workflowy/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/wrike/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.8EouuH 2026-08-04 20:37:37.914284113 +0000
+++ /tmp/new.b5f3Vc 2026-08-04 20:37:37.914284113 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/xnconvert/windows.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/yarn/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.Lex02A 2026-08-04 20:37:38.032287370 +0000
+++ /tmp/new.pUgEhj 2026-08-04 20:37:38.032287370 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/yubico-authenticator/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.qhCVOS 2026-08-04 20:37:38.101289275 +0000
+++ /tmp/new.hdQypB 2026-08-04 20:37:38.101289275 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/zoom-outlook-plugin/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.joHS9v 2026-08-04 20:37:38.157290821 +0000
+++ /tmp/new.rNgQd5 2026-08-04 20:37:38.157290821 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/zoom/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.O4fCBw 2026-08-04 20:37:38.219292532 +0000
+++ /tmp/new.7JZqYR 2026-08-04 20:37:38.219292532 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/zulip/windows.json=== Install // 8959087b -> 22e48c46 ===
--- /tmp/old.m2fZYb 2026-08-04 20:37:38.298294713 +0000
+++ /tmp/new.epyual 2026-08-04 20:37:38.298294713 +0000
@@ -1,13 +1,21 @@
$logFile = "${env:TEMP}/fleet-install-software.log"
+# 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)
+
try {
$installProcess = Start-Process msiexec.exe `
- -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
+ -ArgumentList "/quiet /norestart /lv `"${logFile}`" /i `"${env:INSTALLER_PATH}`"" `
-PassThru -Verb RunAs -Wait
Get-Content $logFile -Tail 500
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+
Exit $installProcess.ExitCode
} catch {
=== Uninstall Script (no changes) === |
WalkthroughUpdated maintained-app definitions with new versions, installer URLs, patch queries, and SHA-256 checksums. Updated many Windows installer references and scripts to quote MSI log paths and accept exit codes 0, 3010, and 1641 as successful. Updated several Darwin installer scripts to use new package filenames. 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: 7
🤖 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/asana/darwin.json`:
- Line 9: Restrict the arm64-only Darwin installers to Apple Silicon hosts by
adding architecture-specific gating to the Asana entry at
ee/maintained-apps/outputs/asana/darwin.json:9-9 and the Loom entry at
ee/maintained-apps/outputs/loom/darwin.json:9-9. Ensure Fleet selects each arm64
URL only when the host architecture is arm64 and excludes Intel macOS hosts,
using the repository’s established architecture or install-condition metadata.
In `@ee/maintained-apps/outputs/bitwig-studio/windows.json`:
- Line 19: Update the shared MSI installation script around Start-Process and
$installProcess in ee/maintained-apps/outputs/bitwig-studio/windows.json:19-19,
ee/maintained-apps/outputs/blender/windows.json:21-21,
ee/maintained-apps/outputs/mixxx/windows.json:20-20,
ee/maintained-apps/outputs/mongodb-compass/windows.json:20-20,
ee/maintained-apps/outputs/mysqlworkbench/windows.json:20-20,
ee/maintained-apps/outputs/naps2/windows.json:20-20,
ee/maintained-apps/outputs/nessus-agent/windows.json:20-20, and
ee/maintained-apps/outputs/nextcloud/windows.json:20-20. Replace the unbounded
-Wait behavior with a bounded wait, detect timeout, terminate the MSI process,
and exit through the existing failure handling while preserving normal exit-code
processing for completed installations.
In `@ee/maintained-apps/outputs/bluej/windows.json`:
- Line 19: Update the BlueJ MSI install script’s exit handling after
Start-Process completes so exit codes 0, 3010, and 1641 all exit successfully;
preserve the existing nonzero failure behavior for other codes.
In `@ee/maintained-apps/outputs/cinc/windows.json`:
- Around line 19-20: Update the uninstall script identified by the 34a531d4
entry to define the same $successCodes collection used by the installation
script, including 0, 3010, and 1641. Change its process.ExitCode check so these
codes are treated as successful while preserving the existing failure logging
and exit behavior for all other codes.
In `@ee/maintained-apps/outputs/eclipse-temurin-jdk-17/windows.json`:
- Line 20: Use unique MSI log paths in the embedded installation scripts across
ee/maintained-apps/outputs/eclipse-temurin-jdk-17/windows.json:20-20,
eclipse-temurin-jdk-21/windows.json:20-20,
eclipse-temurin-jdk-8/windows.json:20-20,
eclipse-temurin-jre-11/windows.json:20-20,
eclipse-temurin-jre-17/windows.json:20-20,
eclipse-temurin-jre-21/windows.json:20-20,
eclipse-temurin-jre-8/windows.json:20-20, egnyte-webedit/windows.json:20-20,
elevate-uc/windows.json:20-20, elgato-control-center/windows.json:20-20, and
elgato-stream-deck/windows.json:20-20. Update the logFile assignment used by
Start-Process and Get-Content to include an installer-specific or otherwise
unique name, preserving the existing logging and exit-code handling.
In `@ee/maintained-apps/outputs/sourcetree/windows.json`:
- Line 10: Update install script ref e23ea804 to map MSI exit codes 3010 and
1641 to exit code 0, while preserving the existing ACCEPT EULA setting
(ACCEPTEULA=1) and unchanged handling for other exit codes.
In `@ee/maintained-apps/outputs/trezor-suite/darwin.json`:
- Line 9: Update the trezor-suite/darwin manifest’s installer metadata so it
serves an installer compatible with all Darwin hosts: either add
architecture-aware URLs for Apple Silicon and Intel systems, or replace the
current arm64-only asset with a universal/Intel-compatible DMG. Preserve the
existing release version and manifest structure.
🪄 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: 7092b969-3e02-48be-81df-421ac710aab7
📒 Files selected for processing (241)
ee/maintained-apps/outputs/1password/windows.jsonee/maintained-apps/outputs/7-zip/windows.jsonee/maintained-apps/outputs/8x8-work/darwin.jsonee/maintained-apps/outputs/8x8-work/windows.jsonee/maintained-apps/outputs/adobe-acrobat-pro/windows.jsonee/maintained-apps/outputs/adobe-acrobat-reader/windows.jsonee/maintained-apps/outputs/adobe-dng-converter/darwin.jsonee/maintained-apps/outputs/advanced-installer/windows.jsonee/maintained-apps/outputs/advanced-renamer/darwin.jsonee/maintained-apps/outputs/aircall/windows.jsonee/maintained-apps/outputs/airparrot/windows.jsonee/maintained-apps/outputs/airtame/windows.jsonee/maintained-apps/outputs/alacritty/windows.jsonee/maintained-apps/outputs/alfaview/windows.jsonee/maintained-apps/outputs/allway-sync/windows.jsonee/maintained-apps/outputs/amazon-corretto-11/windows.jsonee/maintained-apps/outputs/amazon-corretto-17/windows.jsonee/maintained-apps/outputs/amazon-corretto-21/windows.jsonee/maintained-apps/outputs/amazon-corretto-24/windows.jsonee/maintained-apps/outputs/amazon-corretto-25/windows.jsonee/maintained-apps/outputs/amazon-corretto-26/windows.jsonee/maintained-apps/outputs/amazon-corretto-8/windows.jsonee/maintained-apps/outputs/amazon-corretto-jre-8/windows.jsonee/maintained-apps/outputs/amazon-dcv-client/windows.jsonee/maintained-apps/outputs/amazon-dcv-server/windows.jsonee/maintained-apps/outputs/amazon-redshift-odbc-driver/windows.jsonee/maintained-apps/outputs/amazon-workspaces/windows.jsonee/maintained-apps/outputs/apidog/darwin.jsonee/maintained-apps/outputs/aptakube/windows.jsonee/maintained-apps/outputs/arduino-ide/windows.jsonee/maintained-apps/outputs/asana/darwin.jsonee/maintained-apps/outputs/audiveris/windows.jsonee/maintained-apps/outputs/autopsy/windows.jsonee/maintained-apps/outputs/aws-cli/windows.jsonee/maintained-apps/outputs/aws-sam-cli/windows.jsonee/maintained-apps/outputs/aws-vpn-client/windows.jsonee/maintained-apps/outputs/azul-zulu-25-jdk/windows.jsonee/maintained-apps/outputs/azul-zulu-25-jre/windows.jsonee/maintained-apps/outputs/azure-functions-core-tools/windows.jsonee/maintained-apps/outputs/betterzip/darwin.jsonee/maintained-apps/outputs/beyond-compare/darwin.jsonee/maintained-apps/outputs/beyond-compare/windows.jsonee/maintained-apps/outputs/bitwig-studio/windows.jsonee/maintained-apps/outputs/blender/windows.jsonee/maintained-apps/outputs/bluej/windows.jsonee/maintained-apps/outputs/box-drive/windows.jsonee/maintained-apps/outputs/box-tools/windows.jsonee/maintained-apps/outputs/browserstacklocal/windows.jsonee/maintained-apps/outputs/bruno/windows.jsonee/maintained-apps/outputs/calibre/windows.jsonee/maintained-apps/outputs/camtasia/windows.jsonee/maintained-apps/outputs/charles/darwin.jsonee/maintained-apps/outputs/chef-workstation/windows.jsonee/maintained-apps/outputs/cherry-keys/windows.jsonee/maintained-apps/outputs/chrome-remote-desktop/windows.jsonee/maintained-apps/outputs/cinc/windows.jsonee/maintained-apps/outputs/cisco-jabber/windows.jsonee/maintained-apps/outputs/cisco-webex-recorder-and-player/windows.jsonee/maintained-apps/outputs/claude/darwin.jsonee/maintained-apps/outputs/clickup/windows.jsonee/maintained-apps/outputs/clockassist/windows.jsonee/maintained-apps/outputs/clockify/windows.jsonee/maintained-apps/outputs/cloudflare-warp/windows.jsonee/maintained-apps/outputs/cmake-app/windows.jsonee/maintained-apps/outputs/codemeter-runtime-kit/windows.jsonee/maintained-apps/outputs/codexbar/darwin.jsonee/maintained-apps/outputs/colour-contrast-analyser/windows.jsonee/maintained-apps/outputs/crashplan/windows.jsonee/maintained-apps/outputs/creative-force-kelvin/windows.jsonee/maintained-apps/outputs/crestron-airmedia-peripherals/windows.jsonee/maintained-apps/outputs/crestron-airmedia/windows.jsonee/maintained-apps/outputs/cribl-edge/windows.jsonee/maintained-apps/outputs/crisisgo/windows.jsonee/maintained-apps/outputs/cryptomator/windows.jsonee/maintained-apps/outputs/cursor/windows.jsonee/maintained-apps/outputs/cyberduck-cli/windows.jsonee/maintained-apps/outputs/cyberduck/darwin.jsonee/maintained-apps/outputs/cyberduck/windows.jsonee/maintained-apps/outputs/db-browser-for-sqlite/windows.jsonee/maintained-apps/outputs/dbgate/darwin.jsonee/maintained-apps/outputs/delinea-connection-manager/windows.jsonee/maintained-apps/outputs/devolutions-launcher/windows.jsonee/maintained-apps/outputs/devolutions-workspace/windows.jsonee/maintained-apps/outputs/devpod/windows.jsonee/maintained-apps/outputs/digiseal-reader/windows.jsonee/maintained-apps/outputs/discord/darwin.jsonee/maintained-apps/outputs/discord/windows.jsonee/maintained-apps/outputs/dngrep/windows.jsonee/maintained-apps/outputs/docker/windows.jsonee/maintained-apps/outputs/dot/darwin.jsonee/maintained-apps/outputs/downie/darwin.jsonee/maintained-apps/outputs/draftable-desktop/windows.jsonee/maintained-apps/outputs/drawio/windows.jsonee/maintained-apps/outputs/drofus/windows.jsonee/maintained-apps/outputs/dropbox/windows.jsonee/maintained-apps/outputs/druva-insync/windows.jsonee/maintained-apps/outputs/duo-desktop/darwin.jsonee/maintained-apps/outputs/duo-desktop/windows.jsonee/maintained-apps/outputs/eclipse-temurin-jdk-11/windows.jsonee/maintained-apps/outputs/eclipse-temurin-jdk-17/windows.jsonee/maintained-apps/outputs/eclipse-temurin-jdk-21/windows.jsonee/maintained-apps/outputs/eclipse-temurin-jdk-8/windows.jsonee/maintained-apps/outputs/eclipse-temurin-jre-11/windows.jsonee/maintained-apps/outputs/eclipse-temurin-jre-17/windows.jsonee/maintained-apps/outputs/eclipse-temurin-jre-21/windows.jsonee/maintained-apps/outputs/eclipse-temurin-jre-8/windows.jsonee/maintained-apps/outputs/egnyte-webedit/windows.jsonee/maintained-apps/outputs/elevate-uc/windows.jsonee/maintained-apps/outputs/elgato-control-center/windows.jsonee/maintained-apps/outputs/elgato-stream-deck/windows.jsonee/maintained-apps/outputs/emclient/windows.jsonee/maintained-apps/outputs/endnote/windows.jsonee/maintained-apps/outputs/epic-games/windows.jsonee/maintained-apps/outputs/exifcleaner/darwin.jsonee/maintained-apps/outputs/filebeat/windows.jsonee/maintained-apps/outputs/firefox/darwin.jsonee/maintained-apps/outputs/firefox/windows.jsonee/maintained-apps/outputs/firefox@developer-edition/darwin.jsonee/maintained-apps/outputs/firefox@nightly/darwin.jsonee/maintained-apps/outputs/flexwhere/windows.jsonee/maintained-apps/outputs/fortify/windows.jsonee/maintained-apps/outputs/genesys-cloud/darwin.jsonee/maintained-apps/outputs/genesys-cloud/windows.jsonee/maintained-apps/outputs/geogebra-classic/windows.jsonee/maintained-apps/outputs/git-extensions/windows.jsonee/maintained-apps/outputs/github-desktop/windows.jsonee/maintained-apps/outputs/go/windows.jsonee/maintained-apps/outputs/google-ads-editor/windows.jsonee/maintained-apps/outputs/google-chrome/windows.jsonee/maintained-apps/outputs/google-credential-provider-for-windows/windows.jsonee/maintained-apps/outputs/gotomeeting/windows.jsonee/maintained-apps/outputs/grammarly-desktop/darwin.jsonee/maintained-apps/outputs/granola/windows.jsonee/maintained-apps/outputs/grepwin/windows.jsonee/maintained-apps/outputs/home-assistant/darwin.jsonee/maintained-apps/outputs/hwmonitor/windows.jsonee/maintained-apps/outputs/ibm-semeru-jdk-11/windows.jsonee/maintained-apps/outputs/ibm-semeru-jdk-17/windows.jsonee/maintained-apps/outputs/ibm-semeru-jdk-21/windows.jsonee/maintained-apps/outputs/ibm-semeru-jdk-8/windows.jsonee/maintained-apps/outputs/ibm-semeru-jre-11/windows.jsonee/maintained-apps/outputs/ibm-semeru-jre-17/windows.jsonee/maintained-apps/outputs/ibm-semeru-jre-21/windows.jsonee/maintained-apps/outputs/ibm-semeru-jre-8/windows.jsonee/maintained-apps/outputs/imageglass/windows.jsonee/maintained-apps/outputs/imhex/windows.jsonee/maintained-apps/outputs/inkscape/windows.jsonee/maintained-apps/outputs/ironpython/windows.jsonee/maintained-apps/outputs/jami/windows.jsonee/maintained-apps/outputs/jetbrains-toolbox/darwin.jsonee/maintained-apps/outputs/jetbrains-toolbox/windows.jsonee/maintained-apps/outputs/keepassxc/windows.jsonee/maintained-apps/outputs/lapce/windows.jsonee/maintained-apps/outputs/lastpass/windows.jsonee/maintained-apps/outputs/libreoffice/windows.jsonee/maintained-apps/outputs/linear/darwin.jsonee/maintained-apps/outputs/linear/windows.jsonee/maintained-apps/outputs/lookaway/darwin.jsonee/maintained-apps/outputs/loom/darwin.jsonee/maintained-apps/outputs/loom/windows.jsonee/maintained-apps/outputs/macwhisper/darwin.jsonee/maintained-apps/outputs/marked-app/darwin.jsonee/maintained-apps/outputs/mattermost/windows.jsonee/maintained-apps/outputs/microsoft-365-copilot/darwin.jsonee/maintained-apps/outputs/microsoft-edge/windows.jsonee/maintained-apps/outputs/microsoft-teams/darwin.jsonee/maintained-apps/outputs/microsoft-teams/windows.jsonee/maintained-apps/outputs/miro/windows.jsonee/maintained-apps/outputs/mixxx/windows.jsonee/maintained-apps/outputs/mongodb-compass/windows.jsonee/maintained-apps/outputs/mysqlworkbench/windows.jsonee/maintained-apps/outputs/naps2/windows.jsonee/maintained-apps/outputs/nessus-agent/windows.jsonee/maintained-apps/outputs/nextcloud/windows.jsonee/maintained-apps/outputs/nodejs/windows.jsonee/maintained-apps/outputs/notepadexe/darwin.jsonee/maintained-apps/outputs/notion/darwin.jsonee/maintained-apps/outputs/notion/windows.jsonee/maintained-apps/outputs/nudge/darwin.jsonee/maintained-apps/outputs/omnifocus/darwin.jsonee/maintained-apps/outputs/opencode-desktop/darwin.jsonee/maintained-apps/outputs/openvpn-connect/windows.jsonee/maintained-apps/outputs/origami-studio/darwin.jsonee/maintained-apps/outputs/p4v/windows.jsonee/maintained-apps/outputs/pale-moon/darwin.jsonee/maintained-apps/outputs/pdfsam-basic/windows.jsonee/maintained-apps/outputs/plex-media-server/darwin.jsonee/maintained-apps/outputs/postman/darwin.jsonee/maintained-apps/outputs/powershell/windows.jsonee/maintained-apps/outputs/prisma-browser/windows.jsonee/maintained-apps/outputs/putty/windows.jsonee/maintained-apps/outputs/quip/darwin.jsonee/maintained-apps/outputs/rectangle-pro/darwin.jsonee/maintained-apps/outputs/reflector/windows.jsonee/maintained-apps/outputs/remote-desktop-manager/windows.jsonee/maintained-apps/outputs/rewritebar/darwin.jsonee/maintained-apps/outputs/rider/darwin.jsonee/maintained-apps/outputs/royal-tsx/windows.jsonee/maintained-apps/outputs/santa/darwin.jsonee/maintained-apps/outputs/shapr3d/darwin.jsonee/maintained-apps/outputs/sharefile/windows.jsonee/maintained-apps/outputs/snagit/windows.jsonee/maintained-apps/outputs/sonicwall-netextender/windows.jsonee/maintained-apps/outputs/sourcetree/windows.jsonee/maintained-apps/outputs/spotify/windows.jsonee/maintained-apps/outputs/superwhisper/darwin.jsonee/maintained-apps/outputs/tailscale-app/darwin.jsonee/maintained-apps/outputs/tailscale/windows.jsonee/maintained-apps/outputs/textexpander/windows.jsonee/maintained-apps/outputs/thunderbird/darwin.jsonee/maintained-apps/outputs/thunderbird/windows.jsonee/maintained-apps/outputs/tightvnc/windows.jsonee/maintained-apps/outputs/todoist-app/darwin.jsonee/maintained-apps/outputs/todoist-app/windows.jsonee/maintained-apps/outputs/topaz-gigapixel-ai/windows.jsonee/maintained-apps/outputs/topaz-photo-ai/windows.jsonee/maintained-apps/outputs/tortoisegit/windows.jsonee/maintained-apps/outputs/tower/windows.jsonee/maintained-apps/outputs/transmission/windows.jsonee/maintained-apps/outputs/trezor-suite/darwin.jsonee/maintained-apps/outputs/twingate/windows.jsonee/maintained-apps/outputs/typeface/darwin.jsonee/maintained-apps/outputs/ultimaker-cura/windows.jsonee/maintained-apps/outputs/vlc/windows.jsonee/maintained-apps/outputs/wave/windows.jsonee/maintained-apps/outputs/weasis/darwin.jsonee/maintained-apps/outputs/weasis/windows.jsonee/maintained-apps/outputs/webex/windows.jsonee/maintained-apps/outputs/whatsapp/darwin.jsonee/maintained-apps/outputs/windirstat/windows.jsonee/maintained-apps/outputs/windows-app/darwin.jsonee/maintained-apps/outputs/winlogbeat/windows.jsonee/maintained-apps/outputs/wireshark/windows.jsonee/maintained-apps/outputs/workflowy/darwin.jsonee/maintained-apps/outputs/wrike/windows.jsonee/maintained-apps/outputs/xnconvert/windows.jsonee/maintained-apps/outputs/yarn/windows.jsonee/maintained-apps/outputs/yubico-authenticator/windows.jsonee/maintained-apps/outputs/zoom-outlook-plugin/windows.jsonee/maintained-apps/outputs/zoom/windows.jsonee/maintained-apps/outputs/zulip/windows.json
| "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);" | ||
| }, | ||
| "installer_url": "https://desktop-downloads.asana.com/darwin_arm64/prod/v2.7.2/Asana-darwin-arm64-2.7.2.zip", | ||
| "installer_url": "https://desktop-downloads.asana.com/darwin_arm64/prod/v2.8.0/Asana-darwin-arm64-2.8.0.zip", |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
rg -n -C 4 'darwin_arm64|arm64|x86_64|universal|architecture' ee/maintained-apps
rg -n -C 4 'installer_url|architecture|arm64|x86_64|universal' .Repository: fleetdm/fleet
Length of output: 50370
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== target manifests =="
for f in ee/maintained-apps/outputs/asana/darwin.json ee/maintained-apps/outputs/loom/darwin.json; do
echo "--- $f"
wc -l "$f"
cat -n "$f"
done
echo "== focused repo searches for maint-app installers/architecture matching =="
rg -n -C 3 'darwin_arm64|x86_64|universal|Architecture|arch|arches|Maintained|SoftwareInstall|Installer|installer' ee/maintained-apps server frontend --glob '!**/*.md' \
| rg -C 3 'darwin_arm64|x86_64|arm64|universal|Architecture|arches|maintained-apps|installer_url|os_versions|arch' || trueRepository: fleetdm/fleet
Length of output: 50370
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== target manifest metadata =="
for f in ee/maintained-apps/outputs/asana/darwin.json ee/maintained-apps/outputs/loom/darwin.json; do
echo "--- $f"
python3 - <<'PY' "$f"
import json, sys
p=sys.argv[1]
data=json.load(open(p))
print(json.dumps({
"path": p,
"keys": sorted(data.keys()),
"installer_url": data.get("installer_url"),
"supported_os": data.get("supported_os"),
"architectures": data.get("architectures"),
"labels_exclude_any": data.get("labels_exclude_any"),
"labels_exclude_all": data.get("labels_exclude_all"),
"labels_include_any": data.get("labels_include_any"),
"labels_include_all": data.get("labels_include_all"),
}, indent=2, sort_keys=True))
PY
done
echo "== maint apps generator/package metadata shapes =="
rg -n -C 3 'SupportedOS|Supported OS|SupportedOS|architectures|Architecture|labels_exclude|labels_include|labels' ee/maintained-apps --glob '!outputs/**' || true
echo "== focused server schema/type names =="
rg -n -C 3 'Supported.*Os|supported.*os|architectures|architecture|install.*os|installer' server/fleet server/vulnerabilities cmd/server ee/maintained-apps --glob '!outputs/****' | head -n 250Repository: fleetdm/fleet
Length of output: 50370
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== asana and loom manifest excerpts =="
for f in ee/maintained-apps/outputs/asana/darwin.json ee/maintained-apps/outputs/loom/darwin.json; do
echo "--- $f"
python3 - "$f" <<'PY'
import json, sys
p=sys.argv[1]
try:
data=json.load(sys.stdin)
except Exception as exc:
print("json_error", exc)
raise SystemExit(1)
print("top_keys", sorted(data.keys()))
print("installer_url", data.get("installer_url"))
for k in ["supported_os", "architectures", "install_if", "labels_exclude_any", "labels_exclude_all", "labels_include_any", "labels_include_all"]:
print(k, data.get(k))
PY
echo "== exact maint apps output files with arm64/artifacts containing x86_64/universal =="
python3 - <<'PYF'
import json, pathlib, subprocess
for f in sorted(pathlib.Path("ee/maintained-apps/outputs").rglob("*.json")):
try:
data=json.loads(f.read_text())
except UnicodeDecodeError:
continue
except json.JSONDecodeError:
continue
installer=data.get("installer_url") or ""
has_64="x86_64" in f.name or "intel" in f.name or "amd64" in f.name or "x64" in f.name
has_arm="arm64" in f.name or "apple" in f.name.lower() or "silicon" in f.name.lower()
print(f"{f}\n name_has_intel_or_arm={has_64 or has_arm}\n installer={installer}\n top={sorted(data.keys())}\n")
PYF
echo "== focused server/installation selection terms =="
rg -n -C 4 'Arch|arches|architecture|supported.*os|supported_os|os_version|host_arch|darwin_arm64|x86_64|install' server ee/maintained-apps --glob '!outputs/****' --glob '!**/*.md' | head -n 350Repository: fleetdm/fleet
Length of output: 242
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== asana manifest top-level fields =="
python3 - <<'PY' ee/maintained-apps/outputs/asana/darwin.json
import json, sys
with open(sys.argv[1]) as f:
data=json.load(f)
print(json.dumps({"top_keys": sorted(data), "installer_url": data.get("installer_url"), "supported_os": data.get("supported_os"), "architectures": data.get("architectures"), "install_if": data.get("install_if"), "labels_exclude_any": data.get("labels_exclude_any"), "labels_exclude_all": data.get("labels_exclude_all"), "labels_include_any": data.get("labels_include_any"), "labels_include_all": data.get("labels_include_all")}, indent=2, sort_keys=True))
PY
echo "== loom manifest top-level fields =="
python3 - <<'PY' ee/maintained-apps/outputs/loom/darwin.json
import json, sys
with open(sys.argv[1]) as f:
data=json.load(f)
print(json.dumps({"top_keys": sorted(data), "installer_url": data.get("installer_url"), "supported_os": data.get("supported_os"), "architectures": data.get("architectures"), "install_if": data.get("install_if"), "labels_exclude_any": data.get("labels_exclude_any"), "labels_exclude_all": data.get("labels_exclude_all"), "labels_include_any": data.get("labels_include_any"), "labels_include_all": data.get("labels_include_all")}, indent=2, sort_keys=True))
PY
echo "== focused selection metadata in maintain-app outputs and server code =="
rg -n -C 5 'architectures|supported_os|install_if|labels_exclude_any|labels_exclude_all|labels_include_any|labels_include_all|darwin_arm64|darwin|x86_64|arm64|os_version|software_version|arch' ee/maintained-apps/server ee/maintained-apps/server --glob '!outputs/**' --glob '!**/*.md' || trueRepository: fleetdm/fleet
Length of output: 973
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== root asana/loom darwin.json files =="
for f in ee/maintained-apps/outputs/asana/darwin.json ee/maintained-apps/outputs/loom/darwin.json; do
echo "--- $f"
wc -l "$f"
python3 - "$f" <<'PY'
import json, sys
with open(sys.argv[1]) as f:
data=json.load(f)
print(json.dumps({"versions": data.get("versions"), "refs": data.get("refs"), "installer_url": data.get("installer_url")}, indent=2, sort_keys=True))
PY
done
echo "== focused server terms for software version/host architecture selection =="
rg -n -C 5 'architectures|supported_os|install_if|labels_exclude_any|labels_exclude_all|labels_include_any|labels_include_all|darwin_arm64|x86_64|arm64|os_version|software_version|install.*arch|host.*arch|arch.*host|Architecture' server ee/maintained-apps --glob '!outputs/****' --glob '!**/*.md' | head -n 450
echo "== install script metadata search in referenced scripts =="
python3 - <<'PY'
import json, pathlib, re
for p in ["ee/maintained-apps/outputs/asana/darwin.json","ee/maintained-apps/outputs/loom/darwin.json"]:
data=json.loads(pathlib.Path(p).read_text())
print(p, "script_count", len(data.get("refs")), "urls", data.get("versions", []))
PYRepository: fleetdm/fleet
Length of output: 50369
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== exact selection fields in software_installer types =="
sed -n '1,170p' server/fleet/software_installer.go
sed -n '1020,1075p' server/fleet/software_installer.go
echo "== exact installer version selection code =="
rg -n -C 6 'SoftwareInstallerVersion|SoftwareInstallers|SoftwareInstaller|SoftwareVersions|Architecture|LabelsInclude|LabelsExclude|supported.*os|os_version|host_arch|installer.*arch|architecture' server ee/maintained-apps --glob '!outputs/****' | head -n 500
echo "== read-only behavioral probe of manifest absence of selector fields =="
python3 - <<'PY'
import json, pathlib
for path in ["ee/maintained-apps/outputs/asana/darwin.json", "ee/maintained-apps/outputs/loom/darwin.json"]:
data=json.loads(pathlib.Path(path).read_text())
version=data["versions"][0]
print(path)
for key in ["architectures", "install_if", "labels_exclude_any", "labels_exclude_all", "labels_include_any", "labels_include_all", "supported_os", "installer_url", "install_script_ref"]:
print(" ", key, "=>", version if key in version else data.get(key))
PYRepository: fleetdm/fleet
Length of output: 50369
Add host architecture gating for the arm64-only Darwin installers.
Both Asana and Loom provide only the Apple Silicon installer while their versions[0] metadata has no architecture-specific field, such as architectures, or install_if/label scope that excludes Intel macOS hosts. Ensure Fleet selects the Asana darwin_arm64 URL and the Loom arm64 DMG only for arm64 Mac hosts before installing.
📍 Affects 2 files
ee/maintained-apps/outputs/asana/darwin.json#L9-L9(this comment)ee/maintained-apps/outputs/loom/darwin.json#L9-L9
🤖 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/asana/darwin.json` at line 9, Restrict the
arm64-only Darwin installers to Apple Silicon hosts by adding
architecture-specific gating to the Asana entry at
ee/maintained-apps/outputs/asana/darwin.json:9-9 and the Loom entry at
ee/maintained-apps/outputs/loom/darwin.json:9-9. Ensure Fleet selects each arm64
URL only when the host architecture is arm64 and excludes Intel macOS hosts,
using the repository’s established architecture or install-condition metadata.
| ], | ||
| "refs": { | ||
| "8959087b": "$logFile = \"${env:TEMP}/fleet-install-software.log\"\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv ${logFile} /i `\"${env:INSTALLER_PATH}`\"\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n", | ||
| "22e48c46": "$logFile = \"${env:TEMP}/fleet-install-software.log\"\n\n# MSI exit codes that indicate success. 3010 = ERROR_SUCCESS_REBOOT_REQUIRED,\n# 1641 = ERROR_SUCCESS_REBOOT_INITIATED. Treat these as success rather than failure.\n$successCodes = @(0, 3010, 1641)\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv `\"${logFile}`\" /i `\"${env:INSTALLER_PATH}`\"\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nif ($successCodes -contains $installProcess.ExitCode) {\n Exit 0\n}\n\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n", |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
Bound the shared MSI installation wait.
The shared 22e48c46 script uses -Wait without a timeout. A hung msiexec.exe can block an installation indefinitely.
ee/maintained-apps/outputs/bitwig-studio/windows.json#L19-L19: add a bounded wait and terminate the MSI process on timeout.ee/maintained-apps/outputs/blender/windows.json#L21-L21: add a bounded wait and terminate the MSI process on timeout.ee/maintained-apps/outputs/mixxx/windows.json#L20-L20: add a bounded wait and terminate the MSI process on timeout.ee/maintained-apps/outputs/mongodb-compass/windows.json#L20-L20: add a bounded wait and terminate the MSI process on timeout.ee/maintained-apps/outputs/mysqlworkbench/windows.json#L20-L20: add a bounded wait and terminate the MSI process on timeout.ee/maintained-apps/outputs/naps2/windows.json#L20-L20: add a bounded wait and terminate the MSI process on timeout.ee/maintained-apps/outputs/nessus-agent/windows.json#L20-L20: add a bounded wait and terminate the MSI process on timeout.ee/maintained-apps/outputs/nextcloud/windows.json#L20-L20: add a bounded wait and terminate the MSI process on timeout.
📍 Affects 8 files
ee/maintained-apps/outputs/bitwig-studio/windows.json#L19-L19(this comment)ee/maintained-apps/outputs/blender/windows.json#L21-L21ee/maintained-apps/outputs/mixxx/windows.json#L20-L20ee/maintained-apps/outputs/mongodb-compass/windows.json#L20-L20ee/maintained-apps/outputs/mysqlworkbench/windows.json#L20-L20ee/maintained-apps/outputs/naps2/windows.json#L20-L20ee/maintained-apps/outputs/nessus-agent/windows.json#L20-L20ee/maintained-apps/outputs/nextcloud/windows.json#L20-L20
🤖 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/bitwig-studio/windows.json` at line 19, Update the
shared MSI installation script around Start-Process and $installProcess in
ee/maintained-apps/outputs/bitwig-studio/windows.json:19-19,
ee/maintained-apps/outputs/blender/windows.json:21-21,
ee/maintained-apps/outputs/mixxx/windows.json:20-20,
ee/maintained-apps/outputs/mongodb-compass/windows.json:20-20,
ee/maintained-apps/outputs/mysqlworkbench/windows.json:20-20,
ee/maintained-apps/outputs/naps2/windows.json:20-20,
ee/maintained-apps/outputs/nessus-agent/windows.json:20-20, and
ee/maintained-apps/outputs/nextcloud/windows.json:20-20. Replace the unbounded
-Wait behavior with a bounded wait, detect timeout, terminate the MSI process,
and exit through the existing failure handling while preserving normal exit-code
processing for completed installations.
| ], | ||
| "refs": { | ||
| "29a9338f": "# BlueJ ships a per-user WiX MSI. Fleet runs installs elevated (SYSTEM), so we\n# pass ALLUSERS=2 — the same switch winget uses — which resolves to a per-machine\n# install (into %ProgramFiles%\\BlueJ) when run elevated.\n\n$logFile = \"${env:TEMP}/fleet-install-software.log\"\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv ${logFile} /i `\"${env:INSTALLER_PATH}`\" ALLUSERS=2\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n", | ||
| "85459eac": "# BlueJ ships a per-user WiX MSI. Fleet runs installs elevated (SYSTEM), so we\n# pass ALLUSERS=2 — the same switch winget uses — which resolves to a per-machine\n# install (into %ProgramFiles%\\BlueJ) when run elevated.\n\n$logFile = \"${env:TEMP}/fleet-install-software.log\"\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv `\"${logFile}`\" /i `\"${env:INSTALLER_PATH}`\" ALLUSERS=2\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n", |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "File excerpt:"
sed -n '1,80p' ee/maintained-apps/outputs/bluej/windows.json
echo
echo "Search for similar MSI exit code handling in installed software scripts:"
rg -n "Install-RebootRequest|WAIT_USER_LOGON|SUCCEED_REBOOT|3010|1641|Exit \$installProcess\.ExitCode|msiexec.exe|BlueJ" ee/maintained-apps/outputs ee -g '*.json' -g '*.ps1' | head -200
echo
echo "Repository files under BlueJ:"
find ee/maintained-apps/outputs/bluej -maxdepth 3 -type f -print | sortRepository: fleetdm/fleet
Length of output: 50370
Map MSI reboot-success exit codes to success.
msiexec can return 3010 or 1641 to indicate a successful install that needs a reboot. The current BlueJ install script exits with that non-zero code and can mark the installation as failed. Treat 0, 3010, and 1641 as success before exiting.
Proposed fix
$logFile = "${env:TEMP}/fleet-install-software.log"
+$successCodes = @(0, 3010, 1641)
...
-Exit $installProcess.ExitCode
+if ($successCodes -contains $installProcess.ExitCode) {
+ Exit 0
+}
+Exit $installProcess.ExitCode📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "85459eac": "# BlueJ ships a per-user WiX MSI. Fleet runs installs elevated (SYSTEM), so we\n# pass ALLUSERS=2 — the same switch winget uses — which resolves to a per-machine\n# install (into %ProgramFiles%\\BlueJ) when run elevated.\n\n$logFile = \"${env:TEMP}/fleet-install-software.log\"\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv `\"${logFile}`\" /i `\"${env:INSTALLER_PATH}`\" ALLUSERS=2\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n", | |
| "85459eac": "# BlueJ ships a per-user WiX MSI. Fleet runs installs elevated (SYSTEM), so we\n# pass ALLUSERS=2 — the same switch winget uses — which resolves to a per-machine\n# install (into %ProgramFiles%\\BlueJ) when run elevated.\n\n$logFile = \"${env:TEMP}/fleet-install-software.log\"\n$successCodes = @(0, 3010, 1641)\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv `\"${logFile}`\" /i `\"${env:INSTALLER_PATH}`\" ALLUSERS=2\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nif ($successCodes -contains $installProcess.ExitCode) {\n Exit 0\n}\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n", |
🤖 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/bluej/windows.json` at line 19, Update the BlueJ
MSI install script’s exit handling after Start-Process completes so exit codes
0, 3010, and 1641 all exit successfully; preserve the existing nonzero failure
behavior for other codes.
| "22e48c46": "$logFile = \"${env:TEMP}/fleet-install-software.log\"\n\n# MSI exit codes that indicate success. 3010 = ERROR_SUCCESS_REBOOT_REQUIRED,\n# 1641 = ERROR_SUCCESS_REBOOT_INITIATED. Treat these as success rather than failure.\n$successCodes = @(0, 3010, 1641)\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv `\"${logFile}`\" /i `\"${env:INSTALLER_PATH}`\"\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nif ($successCodes -contains $installProcess.ExitCode) {\n Exit 0\n}\n\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n", | ||
| "34a531d4": "# Fleet uninstalls app by finding all related product codes for the specified upgrade code\n$inst = New-Object -ComObject \"WindowsInstaller.Installer\"\n$timeoutSeconds = 300 # 5 minute timeout per product\n\nforeach ($product_code in $inst.RelatedProducts('{9870C512-DF2C-43D9-8C28-7ACD60ABBE27}')) {\n $process = Start-Process msiexec -ArgumentList @(\"/quiet\", \"/x\", $product_code, \"/norestart\") -PassThru\n\n # Wait for process with timeout\n $completed = $process.WaitForExit($timeoutSeconds * 1000)\n\n if (-not $completed) {\n Stop-Process -Id $process.Id -Force -ErrorAction SilentlyContinue\n Exit 1603 # ERROR_UNINSTALL_FAILURE\n }\n\n # If the uninstall failed, bail\n if ($process.ExitCode -ne 0) {\n Write-Output \"Uninstall for $($product_code) exited $($process.ExitCode)\"\n Exit $process.ExitCode\n }\n}\n\n# All uninstalls succeeded; exit success\nExit 0\n" |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Handle reboot-required MSI codes during Cinc uninstall.
34a531d4 treats every exit code other than 0 as a failure. If msiexec /x returns 3010 or 1641, Fleet reports a failed uninstall even though the MSI operation completed with a reboot requirement. Use the same $successCodes check as the other updated uninstall scripts.
Proposed fix
$timeoutSeconds = 300 # 5 minute timeout per product
+$successCodes = @(0, 3010, 1641)
foreach ($product_code in $inst.RelatedProducts('{9870C512-DF2C-43D9-8C28-7ACD60ABBE27}')) {
$process = Start-Process msiexec -ArgumentList @("/quiet", "/x", $product_code, "/norestart") -PassThru
@@
- if ($process.ExitCode -ne 0) {
+ if ($successCodes -notcontains $process.ExitCode) {📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "22e48c46": "$logFile = \"${env:TEMP}/fleet-install-software.log\"\n\n# MSI exit codes that indicate success. 3010 = ERROR_SUCCESS_REBOOT_REQUIRED,\n# 1641 = ERROR_SUCCESS_REBOOT_INITIATED. Treat these as success rather than failure.\n$successCodes = @(0, 3010, 1641)\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv `\"${logFile}`\" /i `\"${env:INSTALLER_PATH}`\"\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nif ($successCodes -contains $installProcess.ExitCode) {\n Exit 0\n}\n\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n", | |
| "34a531d4": "# Fleet uninstalls app by finding all related product codes for the specified upgrade code\n$inst = New-Object -ComObject \"WindowsInstaller.Installer\"\n$timeoutSeconds = 300 # 5 minute timeout per product\n\nforeach ($product_code in $inst.RelatedProducts('{9870C512-DF2C-43D9-8C28-7ACD60ABBE27}')) {\n $process = Start-Process msiexec -ArgumentList @(\"/quiet\", \"/x\", $product_code, \"/norestart\") -PassThru\n\n # Wait for process with timeout\n $completed = $process.WaitForExit($timeoutSeconds * 1000)\n\n if (-not $completed) {\n Stop-Process -Id $process.Id -Force -ErrorAction SilentlyContinue\n Exit 1603 # ERROR_UNINSTALL_FAILURE\n }\n\n # If the uninstall failed, bail\n if ($process.ExitCode -ne 0) {\n Write-Output \"Uninstall for $($product_code) exited $($process.ExitCode)\"\n Exit $process.ExitCode\n }\n}\n\n# All uninstalls succeeded; exit success\nExit 0\n" | |
| "22e48c46": "$logFile = \"${env:TEMP}/fleet-install-software.log\"\n\n# MSI exit codes that indicate success. 3010 = ERROR_SUCCESS_REBOOT_REQUIRED,\n# 1641 = ERROR_SUCCESS_REBOOT_INITIATED. Treat these as success rather than failure.\n$successCodes = @(0, 3010, 1641)\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv `\"${logFile}`\" /i `\"${env:INSTALLER_PATH}`\"\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nif ($successCodes -contains $installProcess.ExitCode) {\n Exit 0\n}\n\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n", | |
| "34a531d4": "# Fleet uninstalls app by finding all related product codes for the specified upgrade code\n$inst = New-Object -ComObject \"WindowsInstaller.Installer\"\n$timeoutSeconds = 300 # 5 minute timeout per product\n$successCodes = @(0, 3010, 1641)\n\nforeach ($product_code in $inst.RelatedProducts('{9870C512-DF2C-43D9-8C28-7ACD60ABBE27}')) {\n $process = Start-Process msiexec -ArgumentList @(\"/quiet\", \"/x\", $product_code, \"/norestart\") -PassThru\n\n # Wait for process with timeout\n $completed = $process.WaitForExit($timeoutSeconds * 1000)\n\n if (-not $completed) {\n Stop-Process -Id $process.Id -Force -ErrorAction SilentlyContinue\n Exit 1603 # ERROR_UNINSTALL_FAILURE\n }\n\n # If the uninstall failed, bail\n if ($successCodes -notcontains $process.ExitCode) {\n Write-Output \"Uninstall for $($product_code) exited $($process.ExitCode)\"\n Exit $process.ExitCode\n }\n}\n\n# All uninstalls succeeded; exit success\nExit 0\n" |
🤖 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/cinc/windows.json` around lines 19 - 20, Update
the uninstall script identified by the 34a531d4 entry to define the same
$successCodes collection used by the installation script, including 0, 3010, and
1641. Change its process.ExitCode check so these codes are treated as successful
while preserving the existing failure logging and exit behavior for all other
codes.
| ], | ||
| "refs": { | ||
| "8959087b": "$logFile = \"${env:TEMP}/fleet-install-software.log\"\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv ${logFile} /i `\"${env:INSTALLER_PATH}`\"\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n", | ||
| "22e48c46": "$logFile = \"${env:TEMP}/fleet-install-software.log\"\n\n# MSI exit codes that indicate success. 3010 = ERROR_SUCCESS_REBOOT_REQUIRED,\n# 1641 = ERROR_SUCCESS_REBOOT_INITIATED. Treat these as success rather than failure.\n$successCodes = @(0, 3010, 1641)\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv `\"${logFile}`\" /i `\"${env:INSTALLER_PATH}`\"\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nif ($successCodes -contains $installProcess.ExitCode) {\n Exit 0\n}\n\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n", |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
rg -n -C 8 \
'fleet-install-software\.log|Start-Process\s+msiexec|msiexec\.exe|parallel|concurr|worker|semaphore|mutex' \
--glob '*.go' \
--glob '*.ps1' \
--glob '*.json' \
.Repository: fleetdm/fleet
Length of output: 50370
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf 'Files with fleet-install-software.log:\n'
rg -l 'fleet-install-software\.log' --glob '*.json' . | sort | sed -n '1,120p'
printf '\nJSON files with MSI start-process patterns:\n'
rg -l 'Start-Process\s+msiexec|msiexec\.exe|/lv\s+' --glob '*.json' ee/maintained-apps/outputs | sort | sed -n '1,120p'
printf '\nCode references to maintained-apps/outputs or script execution in Go/PS1:\n'
rg -n 'maintained-apps/outputs|installed software|software|agent|installer|exec|Launch|Start|Start-Process|Invoke-Expression|PowerShell|msiexec|fleet-install-software|parallel|concurr|worker|queue|semaphore|mutex' \
--glob '*.go' \
--glob '*.ps1' \
. | sed -n '1,240p'Repository: fleetdm/fleet
Length of output: 39923
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf 'Candidate maintained apps / windows files near shared script:\n'
for f in \
ee/maintained-apps/outputs/eclipse-temurin-jdk-17/windows.json \
ee/maintained-apps/outputs/eclipse-temurin-jdk-21/windows.json \
ee/maintained-apps/outputs/eclipse-temurin-jdk-8/windows.json \
ee/maintained-apps/outputs/eclipse-temurin-jre-11/windows.json \
ee/maintained-apps/outputs/eclipse-temurin-jre-17/windows.json \
ee/maintained-apps/outputs/eclipse-temurin-jre-21/windows.json \
ee/maintained-apps/outputs/eclipse-temurin-jre-8/windows.json \
ee/maintained-apps/outputs/egnyte-webedit/windows.json \
ee/maintained-apps/outputs/elevate-uc/windows.json \
ee/maintained-apps/outputs/elgato-control-center/windows.json \
ee/maintained-apps/outputs/elgato-stream-deck/windows.json
do
printf '\n--- %s ---\n' "$f"
python3 - <<'PY' "$f"
import json, sys
from pathlib import Path
p = Path(sys.argv[1])
try:
data = json.loads(p.read_text())
except Exception as e:
print(f"JSON parse failed: {e}")
sys.exit(0)
for ref, script in data.get("refs", {}).items():
if "fleet-install-software.log" in script or "msiexec.exe" in script:
print(f"\n## refs.{ref} ({len(script.splitlines())} lines)")
for i, line in enumerate(script.splitlines(), 1):
if i <= 40:
print(f"{i:03d}: {line}")
PY
done
printf '\nFocused repository paths mentioning Windows installer execution paths:\n'
rg -n 'windows|Windows|installer|install_process|Start-Process|msiexec|fleet_maintained_apps|maintained_apps|software install|install.*software' \
--glob '*.go' \
--glob '*.ps1' \
--glob '*.yml' \
--glob '*.yaml' \
. | sed -n '1,300p'Repository: fleetdm/fleet
Length of output: 41134
Use unique MSI log paths per script.
These Windows install scripts write to the shared ${env:TEMP}/fleet-install-software.log, so concurrent Fleet MSI installs on the same host can read logs from another installation. Replace the shared path with an installer-specific/unique path or document and enforce MSI queue serialization.
📍 Affects 11 files
ee/maintained-apps/outputs/eclipse-temurin-jdk-17/windows.json#L20-L20(this comment)ee/maintained-apps/outputs/eclipse-temurin-jdk-21/windows.json#L20-L20ee/maintained-apps/outputs/eclipse-temurin-jdk-8/windows.json#L20-L20ee/maintained-apps/outputs/eclipse-temurin-jre-11/windows.json#L20-L20ee/maintained-apps/outputs/eclipse-temurin-jre-17/windows.json#L20-L20ee/maintained-apps/outputs/eclipse-temurin-jre-21/windows.json#L20-L20ee/maintained-apps/outputs/eclipse-temurin-jre-8/windows.json#L20-L20ee/maintained-apps/outputs/egnyte-webedit/windows.json#L20-L20ee/maintained-apps/outputs/elevate-uc/windows.json#L20-L20ee/maintained-apps/outputs/elgato-control-center/windows.json#L20-L20ee/maintained-apps/outputs/elgato-stream-deck/windows.json#L20-L20
🤖 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/eclipse-temurin-jdk-17/windows.json` at line 20,
Use unique MSI log paths in the embedded installation scripts across
ee/maintained-apps/outputs/eclipse-temurin-jdk-17/windows.json:20-20,
eclipse-temurin-jdk-21/windows.json:20-20,
eclipse-temurin-jdk-8/windows.json:20-20,
eclipse-temurin-jre-11/windows.json:20-20,
eclipse-temurin-jre-17/windows.json:20-20,
eclipse-temurin-jre-21/windows.json:20-20,
eclipse-temurin-jre-8/windows.json:20-20, egnyte-webedit/windows.json:20-20,
elevate-uc/windows.json:20-20, elgato-control-center/windows.json:20-20, and
elgato-stream-deck/windows.json:20-20. Update the logFile assignment used by
Start-Process and Get-Content to include an installer-specific or otherwise
unique name, preserving the existing logging and exit-code handling.
| }, | ||
| "installer_url": "https://product-downloads.atlassian.com/software/sourcetree/windows/ga/SourcetreeEnterpriseSetup_3.4.31.msi", | ||
| "install_script_ref": "17f62246", | ||
| "install_script_ref": "e23ea804", |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== target file =="
cat -n ee/maintained-apps/outputs/sourcetree/windows.json | sed -n '1,80p'
echo
echo "== similar installer script refs in outputs =="
rg -n '"install_script_ref":|"output_script_ref":|SOURCEWIZ|ACCEPTEULA|installProcess\.ExitCode|ExitCode' ee/maintained-apps/outputs -g '*.json' | head -200
echo
echo "== installed scripts for refs if present =="
git ls-files | rg 'ee/maintained-apps/.*\b(shepherd|maintained-apps|.*\.ps1|.*\.psm1).*' || trueRepository: fleetdm/fleet
Length of output: 50370
🌐 Web query:
Windows Installer msiexec exit code 3010 ERROR_SUCCESS_REBOOT_REQUIRED 1641 ERROR_SUCCESS_REBOOT_INITIATED
💡 Result:
In Windows Installer (msiexec.exe), both exit codes 3010 and 1641 are considered indicators of success, signifying that the operation completed successfully but requires a system restart to finalize changes [1][2][3]. While they are both success codes, they differ in how the restart is handled [4]. Exit Code 3010: ERROR_SUCCESS_REBOOT_REQUIRED This code indicates that the installation or uninstallation completed successfully, but a restart is required to finish the process [1][3]. In this scenario, the installer has NOT initiated the reboot itself; it is signaling to the management system or user that a restart should be performed at a convenient time to complete the installation [5][4]. Exit Code 1641: ERROR_SUCCESS_REBOOT_INITIATED This code indicates that the installation or uninstallation completed successfully and the installer has ALREADY initiated a system restart [6][7][3]. Because the installer is driving the restart, the system may reboot immediately or shortly after the process exits [4]. Key Differences in Management When deploying software via tools like Microsoft Intune, SCCM, or other deployment agents, these codes must be mapped to "Success" to prevent the deployment from being marked as a failure [6][8][3][4]. However, the distinction is important for workflow management [4]: - 3010 (Soft Reboot): Deployment agents often treat this as a success and may continue with subsequent tasks in a queue, deferring the reboot until later [4]. - 1641 (Hard Reboot): Deployment agents often treat this as a signal to halt further processing until the system has successfully restarted, as the installer has taken control of the machine's reboot process [4].
Citations:
- 1: https://learn.microsoft.com/en-us/windows/win32/msi/error-codes
- 2: https://documentation.help/Windows-Installer/error_codes.htm
- 3: https://stackoverflow.com/questions/61089313/my-installer-package-throws-3010-or-1641-when-run-from-sccm-works-fine-if-i-run
- 4: https://intunemdms.com/restart-behavior-exit-codes-intune/
- 5: https://docs.pdq.com/current-version/Deploy/ms-installer-errors.htm
- 6: https://help.pdq.com/hc/en-us/articles/220530547-Error-code-1641
- 7: https://help.automox.com/hc/en-us/articles/31579735716628-Common-Windows-Installer-MSIEXEC-Error-Codes
- 8: msiexec return code 1641 is not an "error" saltstack/salt#44389
Map MSI reboot-success codes to exit code 0.
Sourcetree’s uninstall script already treats 0, 3010, and 1641 as success, but the install script returns Exit $installProcess.ExitCode unchanged. Map MSI exit codes 3010 and 1641 to Exit 0 in ref: e23ea804 while preserving ACCEPTEULA=1 so a successful reboot-required install cannot be reported as failed.
🤖 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/sourcetree/windows.json` at line 10, Update
install script ref e23ea804 to map MSI exit codes 3010 and 1641 to exit code 0,
while preserving the existing ACCEPT EULA setting (ACCEPTEULA=1) and unchanged
handling for other exit codes.
| "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);" | ||
| }, | ||
| "installer_url": "https://data.trezor.io/suite/releases/desktop/latest/Trezor-Suite-26.7.3-mac-arm64.dmg", | ||
| "installer_url": "https://data.trezor.io/suite/releases/desktop/latest/Trezor-Suite-26.7.4-mac-arm64.dmg", |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
rg -n -C 4 'architecture|arm64|x64|darwin' \
ee/maintained-apps/maintained_apps.go \
ee/maintained-apps/outputsRepository: fleetdm/fleet
Length of output: 50370
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== files =="
git ls-files ee/maintained-apps | sed -n '1,120p'
echo
echo "== trezor outputs =="
git ls-files 'ee/maintained-apps/outputs/trezor-suite/*' | while read -r f; do
echo "--- $f"
cat -n "$f"
done
echo
echo "== maintained-apps outline =="
ast-grep outline ee/maintained-apps/maintained_apps.go --view compact || true
echo
echo "== architecture/darwin references in maintained_apps.go focused =="
rg -n -C 3 'arm64|x64|darwin|Architecture|architecture|installer_url|platform' ee/maintained-apps/maintained_apps.goRepository: fleetdm/fleet
Length of output: 15473
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== generated maintained apps files =="
git ls-files 'ee/maintained-apps/outputs/*.json' | sed -n '1,80p'
echo
echo "== apps.json trezor entry location =="
rg -n -C 3 '"trezor-suite/darwin"|"slug": "trezor-suite/darwin"|"platform": "darwin"' ee/maintained-apps/outputs/apps.json
echo
echo "== manifest app schema fields =="
sed -n '1,85p' ee/maintained-apps/maintained_apps.go
echo
echo "== selector/installer usage in server package =="
rg -n -C 3 'FMAManifestApp|ManifestApp|installer_url|InstallerURL|archi|arm64|x64|architecture|platform' cmd server | head -n 250Repository: fleetdm/fleet
Length of output: 50370
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== trezor generated manifest entry =="
python3 - <<'PY'
import json
from pathlib import Path
p = Path('ee/maintained-apps/outputs/apps.json')
data=json.loads(p.read_text())
item=[x for x in data if x.get('slug')=='trezor-suite/darwin']
print(json.dumps(item, indent=2)[:3000])
PY
echo
echo "== maintained_apps.go full relevant structs =="
sed -n '1,85p' ee/maintained-apps/maintained_apps.go
echo
echo "== focused installer selector references in cmd/server =="
rg -n -C 4 'FMA|InstallerURL|installer_url|architecture|archi|platform|os.*arch|darwin|ManifestApp' cmd/server \
| grep -E 'FMA|InstallerURL|installer_url|architecture|archi|platform|os\.Arch|darwin|ManifestApp' \
| head -n 250 || true
echo
echo "== focused installer selector references outside cmd/server =="
rg -n -C 4 'FMA|InstallerURL|installer_url|architecture|archi|platform|darwin|ManifestApp' \
| cut -f1-25,33-90 \
| head -n 250 || trueRepository: fleetdm/fleet
Length of output: 354
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== trezor generated manifest entry =="
python3 - <<'PY'
import json
from pathlib import Path
data=json.loads(Path('ee/maintained-apps/outputs/apps.json').read_text())
hits=[]
for slug in data:
if slug == 'trezor-suite/darwin':
hits.append(data[slug])
print(json.dumps(hits, indent=2)[:4000])
PY
echo
echo "== maintained_apps.go full relevant structs =="
sed -n '1,85p' ee/maintained-apps/maintained_apps.go
echo
echo "== focused installer selector references in cmd/server =="
rg -n -C 4 'FMA|InstallerURL|installer_url|architecture|archi|platform|os\.Arch|darwin|ManifestApp' cmd/server \
| head -n 300 || true
echo
echo "== focused installer selector references outside cmd/server =="
rg -n -C 4 'FMA|InstallerURL|installer_url|architecture|archi|platform|darwin|ManifestApp' \
--glob '!ee/maintained-apps/outputs/apps.json' \
| head -n 300 || trueRepository: fleetdm/fleet
Length of output: 2839
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== file tree around main app references =="
git ls-files | rg '(^cmd/|^fleetd/|^tools/|^Makefile|apps\.json|maintained_apps\.go|installer|manifest)' | sed -n '1,250p'
echo
echo "== trezor apps.json entries =="
python3 - <<'PY'
import json, re, sys
txt=json.loads(open('ee/maintained-apps/outputs/apps.json', encoding='utf-8').read())
if isinstance(txt, dict):
for k,v in txt.items():
if 'trezor' in k.lower() or isinstance(v,str) and 'trezor' in v.lower():
print(k)
print(v[:500])
print("---")
elif isinstance(txt, list):
for i,v in enumerate(txt):
if isinstance(v,str) and 'trezor' in v.lower():
print(i, v)
print("---")
elif isinstance(v,dict) and ('trezor' in v.get('slug','').lower() or 'trezor' in v.get('unique_identifier','').lower()):
print(i, json.dumps(v, indent=2)[:1600])
print("---")
else:
print(type(txt))
PY
echo
echo "== architecture selector metadata across repo (focused JSON keys) =="
rg -n -C 3 '"architecture"|"installer_url"|"darwin"|"platform"' ee/maintained-apps --glob '*.json' --glob '*.go' | head -n 300 || true
echo
echo "== installer selection code containing FMAManifestApp/InstallerURL =="
rg -n -C 5 'FMAManifestApp|InstallerURL|installer_url' . --glob '*.go' --glob '*.ts' --glob '*.tsx' --glob '*.js' --glob '*.jsx' | head -n 400 || trueRepository: fleetdm/fleet
Length of output: 50369
🌐 Web query:
Trezor Suite 26.7.4 mac apple silicon intel download Trezor-Suite-26.7.4-mac-arm64.dmg Trezor-Suite-26.7.4-mac-x64.dmg
💡 Result:
As of August 4, 2026, the latest version of Trezor Suite is 26.7.3 [1][2]. There is no version 26.7.4 available [3][2]. For legitimate and secure downloads, you should only use the official Trezor website or the official Trezor Suite GitHub repository [4]. Always verify your download before installation [4]. To download the correct version for your Mac, follow these guidelines: 1. Visit the official download page at https://trezor.io/trezor-suite [4][5]. 2. For Macs with Apple Silicon (M1/M2/M3 chips and later), download the file labeled with "arm64" (e.g., Trezor-Suite-26.7.3-mac-arm64.dmg) [6][7]. 3. For Macs with Intel processors, download the file labeled with "x64" (e.g., Trezor-Suite-26.7.3-mac-x64.dmg) [5][7]. You can verify the release status and find direct links to the latest files at the official GitHub releases page: https://github.com/trezor/trezor-suite/releases [3][4]. Beware of unofficial sources or files claiming to be version 26.7.4, as these may not be legitimate [4].
Citations:
- 1: https://trezor.io/other/product-updates/trezor-suite-updates/trezor-suite-update-july-2026
- 2: https://newreleases.io/project/github/trezor/trezor-suite/release/v26.7.3
- 3: https://github.com/trezor/trezor-suite/releases
- 4: https://trezor.io/guides/trezor-suite/download-verify-trezor-suite
- 5: https://trezor.io/guides/trezor-suite/installing-trezor-suite-on-mac-os
- 6: https://data.trezor.io/suite/releases/desktop/v25.6.3/
- 7: https://github.com/Homebrew/homebrew-cask/blob/47817d96ba845ccedf309ed3f1e820076cecd0ba/Casks/t/trezor-suite.rb
Keep the Trezor DMG compatible with all Darwin hosts.
The trezor-suite/darwin manifest only references the generic darwin.json, so selecting Trezor-Suite-26.7.4-mac-arm64.dmg sends an Apple Silicon-only installer to every macOS host. Add architecture-aware installer metadata or pick an Intel-compatible asset for this package.
🤖 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/trezor-suite/darwin.json` at line 9, Update the
trezor-suite/darwin manifest’s installer metadata so it serves an installer
compatible with all Darwin hosts: either add architecture-aware URLs for Apple
Silicon and Intel systems, or replace the current arm64-only asset with a
universal/Intel-compatible DMG. Preserve the existing release version and
manifest structure.
|
Closing in favor of #50549. |
Automated ingestion of latest Fleet-maintained app data.
Summary by CodeRabbit
New Versions
Bug Fixes