Skip to content

Update Fleet-maintained apps - #46373

Closed
fleet-release wants to merge 1 commit into
mainfrom
fma-2605281816
Closed

Update Fleet-maintained apps#46373
fleet-release wants to merge 1 commit into
mainfrom
fma-2605281816

Conversation

@fleet-release

@fleet-release fleet-release commented May 28, 2026

Copy link
Copy Markdown
Contributor

Automated ingestion of latest Fleet-maintained app data.

Summary by CodeRabbit

  • Chores
    • Updated installer metadata for Arc (1.149.0), Claude (1.9659.1), Grammarly Desktop (1.167.1), Granola (7.277.1), and Power BI (2.154.956.0) with refreshed installer links and integrity verification hashes.

Review Change Stack

Generated automatically with cmd/maintained-apps.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.

Tip: disable this comment in your organization's Code Review settings.

@github-actions

Copy link
Copy Markdown
Contributor

Script Diff Results

ee/maintained-apps/outputs/arc/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/claude/darwin.json

=== Install Script (no changes) ===
=== 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/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/power-bi/windows.json

=== Install // ee068356 -> 4be62464 ===

--- /tmp/old.7Zifwo	2026-05-28 18:21:17.987759065 +0000
+++ /tmp/new.ZlXW9z	2026-05-28 18:21:17.987759065 +0000
@@ -1,12 +1,8 @@
-# Learn more about .exe install scripts:
-# http://fleetdm.com/learn-more-about/exe-install-scripts
-
 $exeFilePath = "${env:INSTALLER_PATH}"
 
 try {
 
 # Add argument to install silently
-# Asana uses --silent for silent installation
 $processOptions = @{
   FilePath = "$exeFilePath"
   ArgumentList = "/silent", "/norestart", "ACCEPT_EULA=1"

=== Uninstall // fa3b8ea6 -> 201475bb ===

--- /tmp/old.AIvM8F	2026-05-28 18:21:18.011759490 +0000
+++ /tmp/new.ld9kPf	2026-05-28 18:21:18.012759508 +0000
@@ -8,13 +8,16 @@
 # Removing the MSI directly orphans the bundle: its uninstall then no-ops
 # (returns 0) and leaves the "Microsoft PowerBI Desktop (x64)" registration
 # behind, which is what Fleet's osquery-based validator keeps detecting.
-# Correct approach: uninstall via the BUNDLE first; it removes the MSI and its
-# own registration. Burn relaunches a cached copy of itself + spawns msiexec
-# asynchronously, so wait for those to finish.
+#
+# Correct approach: uninstall via the BUNDLE first. It removes both the MSI and
+# its own registration. Burn relaunches a cached copy of itself and spawns
+# msiexec asynchronously, so wait for those to finish.
 
 $ExpectedExitCodes = @(0, 1605, 1641, 3010)
 $exitCode = 0
 
+# Power BI's default install folder; used as a safety check before deleting any
+# stale registration that survives a successful uninstall.
 $installDirs = @(
     (Join-Path $env:ProgramFiles 'Microsoft Power BI Desktop'),
     (Join-Path ${env:ProgramFiles(x86)} 'Microsoft Power BI Desktop')
@@ -58,6 +61,8 @@
 }
 
 try {
+
+    # Uninstall roots across all hives (matches osquery's "programs" table).
     $roots = [System.Collections.Generic.List[string]]::new()
     $roots.Add('HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall')
     $roots.Add('HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall')
@@ -77,20 +82,23 @@
         Stop-Process -Name $proc -Force -ErrorAction SilentlyContinue
     }
 
-    # Phase 1: uninstall via the Burn bundle bootstrapper(s) FIRST.
+    # --- Phase 1: uninstall via the Burn bundle bootstrapper(s) FIRST. ---
     foreach ($e in ($entries | Where-Object { $_.Command -match "(?i)PBIDesktopSetup.*\.exe" })) {
         $exe = Get-ExePath $e.Command
         if (-not $exe) { Write-Host "Could not parse bundle exe from: $($e.Command)"; continue }
         if (-not (Test-Path -LiteralPath $exe)) { Write-Host "Bundle exe missing: $exe"; continue }
 
         Write-Host "Uninstalling bundle: '$($e.DisplayName)'"
+        Write-Host "  Command: $exe"
+        Write-Host "  Args: /uninstall /quiet /norestart"
         $p = Start-Process -FilePath $exe -ArgumentList "/uninstall /quiet /norestart" -PassThru -Wait
         Write-Host "  Exit code: $($p.ExitCode)"
         if (($ExpectedExitCodes -notcontains $p.ExitCode) -and ($exitCode -eq 0)) { $exitCode = $p.ExitCode }
+
         Wait-ForProcessExit -Names @("PBIDesktopSetup_x64", "PBIDesktopSetup", "msiexec") -TimeoutSeconds 240
     }
 
-    # Phase 2: remove any MSI entries the bundle didn't clean up.
+    # --- Phase 2: remove any MSI entries the bundle didn't clean up. ---
     foreach ($e in (Get-PowerBIEntries -Roots $roots)) {
         $msiCode = $null
         if ($e.Command -match "(?i)MsiExec\.exe\s+/[IX]\s*(\{[A-F0-9-]+\})") { $msiCode = $Matches[1] }
@@ -104,16 +112,22 @@
         if (($ExpectedExitCodes -notcontains $p.ExitCode) -and ($exitCode -eq 0)) { $exitCode = $p.ExitCode }
     }
 
-    # Phase 3: safety net for stale registration when product files are gone.
+    # --- Phase 3: safety net. If the product files are gone but a stale ARP
+    # registration lingers, remove the orphaned key so detection clears. Gated
+    # on the install folder being absent so we never hide a real install. ---
     $productGone = -not ($installDirs | Where-Object { $_ -and (Test-Path -LiteralPath $_) })
     foreach ($e in (Get-PowerBIEntries -Roots $roots)) {
-        if ($productGone) {
+        $isMachineKey = $e.KeyPath -like 'Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\*'
+        if ($productGone -and $isMachineKey) {
             Write-Host "Removing orphaned registration: '$($e.DisplayName)' ($($e.KeyPath))"
             Remove-Item -Path $e.KeyPath -Recurse -Force -ErrorAction SilentlyContinue
         } else {
             Write-Host "WARNING: entry still present and product files remain: '$($e.DisplayName)'"
             if ($exitCode -eq 0) { $exitCode = 1 }
         }
+            Write-Host "WARNING: entry still present and product files remain: '$($e.DisplayName)'"
+            if ($exitCode -eq 0) { $exitCode = 1 }
+        }
     }
 
 } catch {

@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This PR updates version and installer metadata for six maintained applications. Arc, Claude, Grammarly Desktop, and Granola (macOS and Windows) receive straightforward version bumps with corresponding URL and SHA256 checksum updates. Power BI Desktop Windows also increments to version 2.154.956.0 and replaces both its install and uninstall script references; the new uninstall script maintains the multi-phase uninstall approach but changes the warning logging to emit the same status twice in the stale registration phase.

Possibly related PRs

  • fleetdm/fleet#46037: Both PRs are maintained-apps data refreshes that directly modify Granola and other app metadata entries by bumping versions and updating version-compare thresholds with installer URLs and checksums.
  • fleetdm/fleet#46238: Both PRs directly update the same manifest fields in ee/maintained-apps/outputs/granola/windows.json (version, queries.patched version gate, installer_url, and sha256).
  • fleetdm/fleet#46284: Both PRs update Power BI install and uninstall script references and include matching uninstall-script behavior with the same duplicated warning and exit-code assignment logic.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The PR description is minimal and only states "Automated ingestion of latest Fleet-maintained app data" without following the repository's detailed template structure. Consider adding more context about which apps were updated, version changes, and any testing performed. Follow the repository's PR template for consistency.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title "Update Fleet-maintained apps" accurately summarizes the main change in the pull request, which updates metadata for multiple Fleet-maintained applications across different platforms.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fma-2605281816

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@ee/maintained-apps/outputs/power-bi/windows.json`:
- Line 19: In Phase 3's loop (where $productGone and $isMachineKey are
evaluated) there is a duplicated warning block— the second Write-Host "WARNING:
entry still present..." plus the if ($exitCode -eq 0) { $exitCode = 1 } sits
outside the else and causes false failures; remove that duplicate
warning+exitCode assignment and fix the surrounding braces so the
warning/exitCode mutation only runs inside the else branch that handles
product-files-present cases (references: Get-PowerBIEntries -Roots $roots loop,
$productGone, $isMachineKey, the Write-Host "WARNING..." line and $exitCode).
🪄 Autofix (Beta)

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

Run ID: d080124a-f4a6-4953-a609-931453465b19

📥 Commits

Reviewing files that changed from the base of the PR and between dab9555 and 9869cff.

📒 Files selected for processing (6)
  • ee/maintained-apps/outputs/arc/darwin.json
  • ee/maintained-apps/outputs/claude/darwin.json
  • ee/maintained-apps/outputs/grammarly-desktop/darwin.json
  • ee/maintained-apps/outputs/granola/darwin.json
  • ee/maintained-apps/outputs/granola/windows.json
  • ee/maintained-apps/outputs/power-bi/windows.json

"refs": {
"ee068356": "# Learn more about .exe install scripts:\n# http://fleetdm.com/learn-more-about/exe-install-scripts\n\n$exeFilePath = \"${env:INSTALLER_PATH}\"\n\ntry {\n\n# Add argument to install silently\n# Asana uses --silent for silent installation\n$processOptions = @{\n FilePath = \"$exeFilePath\"\n ArgumentList = \"/silent\", \"/norestart\", \"ACCEPT_EULA=1\"\n PassThru = $true\n Wait = $true\n}\n\n# Start process and track exit code\n$process = Start-Process @processOptions\n$exitCode = $process.ExitCode\n\n# Prints the exit code\nWrite-Host \"Install exit code: $exitCode\"\nExit $exitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n",
"fa3b8ea6": "# Power BI Desktop's EXE installer is a WiX \"Burn\" bundle. It registers TWO\n# uninstall entries:\n# * \"Microsoft PowerBI Desktop (x64)\" -> the bundle bootstrapper\n# (...\\Package Cache\\{afa18d15-...}\\PBIDesktopSetup_x64.exe)\n# * \"Microsoft Power BI Desktop (x64)\" -> the MSI the bundle installed\n# (MsiExec.exe /X{c7d2053f-...})\n#\n# Removing the MSI directly orphans the bundle: its uninstall then no-ops\n# (returns 0) and leaves the \"Microsoft PowerBI Desktop (x64)\" registration\n# behind, which is what Fleet's osquery-based validator keeps detecting.\n# Correct approach: uninstall via the BUNDLE first; it removes the MSI and its\n# own registration. Burn relaunches a cached copy of itself + spawns msiexec\n# asynchronously, so wait for those to finish.\n\n$ExpectedExitCodes = @(0, 1605, 1641, 3010)\n$exitCode = 0\n\n$installDirs = @(\n (Join-Path $env:ProgramFiles 'Microsoft Power BI Desktop'),\n (Join-Path ${env:ProgramFiles(x86)} 'Microsoft Power BI Desktop')\n)\n\nfunction Wait-ForProcessExit {\n param([string[]]$Names, [int]$TimeoutSeconds = 240)\n $elapsed = 0\n while ($elapsed -lt $TimeoutSeconds) {\n $running = $Names | Where-Object { Get-Process -Name $_ -ErrorAction SilentlyContinue }\n if (-not $running) { break }\n Start-Sleep -Seconds 3\n $elapsed += 3\n }\n}\n\nfunction Get-PowerBIEntries {\n param([string[]]$Roots)\n $list = @()\n foreach ($root in $Roots) {\n foreach ($sub in (Get-ChildItem -Path $root -ErrorAction SilentlyContinue)) {\n $key = Get-ItemProperty $sub.PSPath -ErrorAction SilentlyContinue\n if (-not $key.DisplayName) { continue }\n if (-not (($key.DisplayName -replace '\\s', '').ToLower().Contains(\"powerbidesktop\"))) { continue }\n $list += [PSCustomObject]@{\n DisplayName = $key.DisplayName\n KeyPath = $sub.PSPath\n KeyName = $sub.PSChildName\n Command = if ($key.QuietUninstallString) { $key.QuietUninstallString } else { $key.UninstallString }\n }\n }\n }\n return $list\n}\n\nfunction Get-ExePath {\n param([string]$Command)\n if ($Command -match '\"([^\"]+\\.exe)\"') { return $Matches[1] }\n if ($Command -match '(?i)([A-Z]:\\\\[^\"]+?\\.exe)') { return $Matches[1] }\n return $null\n}\n\ntry {\n $roots = [System.Collections.Generic.List[string]]::new()\n $roots.Add('HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall')\n $roots.Add('HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall')\n foreach ($hive in (Get-ChildItem 'Registry::HKEY_USERS' -ErrorAction SilentlyContinue)) {\n if ($hive.Name -match '_Classes$') { continue }\n $roots.Add(\"Registry::$($hive.Name)\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\")\n $roots.Add(\"Registry::$($hive.Name)\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\")\n }\n\n $entries = Get-PowerBIEntries -Roots $roots\n if ($entries.Count -eq 0) {\n Write-Host \"No Power BI Desktop entries found (already removed).\"\n Exit 0\n }\n\n foreach ($proc in @(\"PBIDesktop\", \"msmdsrv\", \"Microsoft.Mashup.Container\")) {\n Stop-Process -Name $proc -Force -ErrorAction SilentlyContinue\n }\n\n # Phase 1: uninstall via the Burn bundle bootstrapper(s) FIRST.\n foreach ($e in ($entries | Where-Object { $_.Command -match \"(?i)PBIDesktopSetup.*\\.exe\" })) {\n $exe = Get-ExePath $e.Command\n if (-not $exe) { Write-Host \"Could not parse bundle exe from: $($e.Command)\"; continue }\n if (-not (Test-Path -LiteralPath $exe)) { Write-Host \"Bundle exe missing: $exe\"; continue }\n\n Write-Host \"Uninstalling bundle: '$($e.DisplayName)'\"\n $p = Start-Process -FilePath $exe -ArgumentList \"/uninstall /quiet /norestart\" -PassThru -Wait\n Write-Host \" Exit code: $($p.ExitCode)\"\n if (($ExpectedExitCodes -notcontains $p.ExitCode) -and ($exitCode -eq 0)) { $exitCode = $p.ExitCode }\n Wait-ForProcessExit -Names @(\"PBIDesktopSetup_x64\", \"PBIDesktopSetup\", \"msiexec\") -TimeoutSeconds 240\n }\n\n # Phase 2: remove any MSI entries the bundle didn't clean up.\n foreach ($e in (Get-PowerBIEntries -Roots $roots)) {\n $msiCode = $null\n if ($e.Command -match \"(?i)MsiExec\\.exe\\s+/[IX]\\s*(\\{[A-F0-9-]+\\})\") { $msiCode = $Matches[1] }\n elseif ($e.KeyName -match \"(?i)^\\{[A-F0-9-]+\\}$\") { $msiCode = $e.KeyName }\n if (-not $msiCode) { continue }\n\n Write-Host \"Removing leftover MSI: '$($e.DisplayName)' ($msiCode)\"\n $p = Start-Process -FilePath \"MsiExec.exe\" -ArgumentList \"/X $msiCode /qn /norestart\" -PassThru -Wait\n Write-Host \" Exit code: $($p.ExitCode)\"\n Wait-ForProcessExit -Names @(\"msiexec\") -TimeoutSeconds 180\n if (($ExpectedExitCodes -notcontains $p.ExitCode) -and ($exitCode -eq 0)) { $exitCode = $p.ExitCode }\n }\n\n # Phase 3: safety net for stale registration when product files are gone.\n $productGone = -not ($installDirs | Where-Object { $_ -and (Test-Path -LiteralPath $_) })\n foreach ($e in (Get-PowerBIEntries -Roots $roots)) {\n if ($productGone) {\n Write-Host \"Removing orphaned registration: '$($e.DisplayName)' ($($e.KeyPath))\"\n Remove-Item -Path $e.KeyPath -Recurse -Force -ErrorAction SilentlyContinue\n } else {\n Write-Host \"WARNING: entry still present and product files remain: '$($e.DisplayName)'\"\n if ($exitCode -eq 0) { $exitCode = 1 }\n }\n }\n\n} catch {\n Write-Host \"Error: $_\"\n $exitCode = 1\n}\n\nif ($ExpectedExitCodes -contains $exitCode) { Exit 0 } else { Exit $exitCode }\n"
"201475bb": "# Power BI Desktop's EXE installer is a WiX \"Burn\" bundle. It registers TWO\n# uninstall entries:\n# * \"Microsoft PowerBI Desktop (x64)\" -> the bundle bootstrapper\n# (...\\Package Cache\\{afa18d15-...}\\PBIDesktopSetup_x64.exe)\n# * \"Microsoft Power BI Desktop (x64)\" -> the MSI the bundle installed\n# (MsiExec.exe /X{c7d2053f-...})\n#\n# Removing the MSI directly orphans the bundle: its uninstall then no-ops\n# (returns 0) and leaves the \"Microsoft PowerBI Desktop (x64)\" registration\n# behind, which is what Fleet's osquery-based validator keeps detecting.\n#\n# Correct approach: uninstall via the BUNDLE first. It removes both the MSI and\n# its own registration. Burn relaunches a cached copy of itself and spawns\n# msiexec asynchronously, so wait for those to finish.\n\n$ExpectedExitCodes = @(0, 1605, 1641, 3010)\n$exitCode = 0\n\n# Power BI's default install folder; used as a safety check before deleting any\n# stale registration that survives a successful uninstall.\n$installDirs = @(\n (Join-Path $env:ProgramFiles 'Microsoft Power BI Desktop'),\n (Join-Path ${env:ProgramFiles(x86)} 'Microsoft Power BI Desktop')\n)\n\nfunction Wait-ForProcessExit {\n param([string[]]$Names, [int]$TimeoutSeconds = 240)\n $elapsed = 0\n while ($elapsed -lt $TimeoutSeconds) {\n $running = $Names | Where-Object { Get-Process -Name $_ -ErrorAction SilentlyContinue }\n if (-not $running) { break }\n Start-Sleep -Seconds 3\n $elapsed += 3\n }\n}\n\nfunction Get-PowerBIEntries {\n param([string[]]$Roots)\n $list = @()\n foreach ($root in $Roots) {\n foreach ($sub in (Get-ChildItem -Path $root -ErrorAction SilentlyContinue)) {\n $key = Get-ItemProperty $sub.PSPath -ErrorAction SilentlyContinue\n if (-not $key.DisplayName) { continue }\n if (-not (($key.DisplayName -replace '\\s', '').ToLower().Contains(\"powerbidesktop\"))) { continue }\n $list += [PSCustomObject]@{\n DisplayName = $key.DisplayName\n KeyPath = $sub.PSPath\n KeyName = $sub.PSChildName\n Command = if ($key.QuietUninstallString) { $key.QuietUninstallString } else { $key.UninstallString }\n }\n }\n }\n return $list\n}\n\nfunction Get-ExePath {\n param([string]$Command)\n if ($Command -match '\"([^\"]+\\.exe)\"') { return $Matches[1] }\n if ($Command -match '(?i)([A-Z]:\\\\[^\"]+?\\.exe)') { return $Matches[1] }\n return $null\n}\n\ntry {\n\n # Uninstall roots across all hives (matches osquery's \"programs\" table).\n $roots = [System.Collections.Generic.List[string]]::new()\n $roots.Add('HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall')\n $roots.Add('HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall')\n foreach ($hive in (Get-ChildItem 'Registry::HKEY_USERS' -ErrorAction SilentlyContinue)) {\n if ($hive.Name -match '_Classes$') { continue }\n $roots.Add(\"Registry::$($hive.Name)\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\")\n $roots.Add(\"Registry::$($hive.Name)\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\")\n }\n\n $entries = Get-PowerBIEntries -Roots $roots\n if ($entries.Count -eq 0) {\n Write-Host \"No Power BI Desktop entries found (already removed).\"\n Exit 0\n }\n\n foreach ($proc in @(\"PBIDesktop\", \"msmdsrv\", \"Microsoft.Mashup.Container\")) {\n Stop-Process -Name $proc -Force -ErrorAction SilentlyContinue\n }\n\n # --- Phase 1: uninstall via the Burn bundle bootstrapper(s) FIRST. ---\n foreach ($e in ($entries | Where-Object { $_.Command -match \"(?i)PBIDesktopSetup.*\\.exe\" })) {\n $exe = Get-ExePath $e.Command\n if (-not $exe) { Write-Host \"Could not parse bundle exe from: $($e.Command)\"; continue }\n if (-not (Test-Path -LiteralPath $exe)) { Write-Host \"Bundle exe missing: $exe\"; continue }\n\n Write-Host \"Uninstalling bundle: '$($e.DisplayName)'\"\n Write-Host \" Command: $exe\"\n Write-Host \" Args: /uninstall /quiet /norestart\"\n $p = Start-Process -FilePath $exe -ArgumentList \"/uninstall /quiet /norestart\" -PassThru -Wait\n Write-Host \" Exit code: $($p.ExitCode)\"\n if (($ExpectedExitCodes -notcontains $p.ExitCode) -and ($exitCode -eq 0)) { $exitCode = $p.ExitCode }\n\n Wait-ForProcessExit -Names @(\"PBIDesktopSetup_x64\", \"PBIDesktopSetup\", \"msiexec\") -TimeoutSeconds 240\n }\n\n # --- Phase 2: remove any MSI entries the bundle didn't clean up. ---\n foreach ($e in (Get-PowerBIEntries -Roots $roots)) {\n $msiCode = $null\n if ($e.Command -match \"(?i)MsiExec\\.exe\\s+/[IX]\\s*(\\{[A-F0-9-]+\\})\") { $msiCode = $Matches[1] }\n elseif ($e.KeyName -match \"(?i)^\\{[A-F0-9-]+\\}$\") { $msiCode = $e.KeyName }\n if (-not $msiCode) { continue }\n\n Write-Host \"Removing leftover MSI: '$($e.DisplayName)' ($msiCode)\"\n $p = Start-Process -FilePath \"MsiExec.exe\" -ArgumentList \"/X $msiCode /qn /norestart\" -PassThru -Wait\n Write-Host \" Exit code: $($p.ExitCode)\"\n Wait-ForProcessExit -Names @(\"msiexec\") -TimeoutSeconds 180\n if (($ExpectedExitCodes -notcontains $p.ExitCode) -and ($exitCode -eq 0)) { $exitCode = $p.ExitCode }\n }\n\n # --- Phase 3: safety net. If the product files are gone but a stale ARP\n # registration lingers, remove the orphaned key so detection clears. Gated\n # on the install folder being absent so we never hide a real install. ---\n $productGone = -not ($installDirs | Where-Object { $_ -and (Test-Path -LiteralPath $_) })\n foreach ($e in (Get-PowerBIEntries -Roots $roots)) {\n $isMachineKey = $e.KeyPath -like 'Microsoft.PowerShell.Core\\Registry::HKEY_LOCAL_MACHINE\\*'\n if ($productGone -and $isMachineKey) {\n Write-Host \"Removing orphaned registration: '$($e.DisplayName)' ($($e.KeyPath))\"\n Remove-Item -Path $e.KeyPath -Recurse -Force -ErrorAction SilentlyContinue\n } else {\n Write-Host \"WARNING: entry still present and product files remain: '$($e.DisplayName)'\"\n if ($exitCode -eq 0) { $exitCode = 1 }\n }\n Write-Host \"WARNING: entry still present and product files remain: '$($e.DisplayName)'\"\n if ($exitCode -eq 0) { $exitCode = 1 }\n }\n }\n\n} catch {\n Write-Host \"Error: $_\"\n $exitCode = 1\n}\n\nif ($ExpectedExitCodes -contains $exitCode) { Exit 0 } else { Exit $exitCode }\n",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Remove the duplicated Phase 3 warning block that forces failure exit.

The second Write-Host "WARNING..." + if ($exitCode -eq 0) { $exitCode = 1 } executes outside the else, so it runs even after successful orphan-key cleanup and can incorrectly return failure.

Suggested fix
         if ($productGone -and $isMachineKey) {
             Write-Host "Removing orphaned registration: '$($e.DisplayName)' ($($e.KeyPath))"
             Remove-Item -Path $e.KeyPath -Recurse -Force -ErrorAction SilentlyContinue
         } else {
             Write-Host "WARNING: entry still present and product files remain: '$($e.DisplayName)'"
             if ($exitCode -eq 0) { $exitCode = 1 }
         }
-            Write-Host "WARNING: entry still present and product files remain: '$($e.DisplayName)'"
-            if ($exitCode -eq 0) { $exitCode = 1 }
-        }
     }
🤖 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/power-bi/windows.json` at line 19, In Phase 3's
loop (where $productGone and $isMachineKey are evaluated) there is a duplicated
warning block— the second Write-Host "WARNING: entry still present..." plus the
if ($exitCode -eq 0) { $exitCode = 1 } sits outside the else and causes false
failures; remove that duplicate warning+exitCode assignment and fix the
surrounding braces so the warning/exitCode mutation only runs inside the else
branch that handles product-files-present cases (references: Get-PowerBIEntries
-Roots $roots loop, $productGone, $isMachineKey, the Write-Host "WARNING..."
line and $exitCode).

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: test-fma-pr-only

Failed stage: Filter apps.json and verify changed apps [❌]

Failed test name: ""

Failure summary:

The action failed during the Windows maintained-apps validation step because the Power BI
(power-bi/windows) installer script failed:
- Validation logs show Error executing install script:
exit status 1 for Power BI (lines 4682-4686), which caused the overall job to end with exit status 1
and Process completed with exit code 1 (lines 4693-4694).
- After the failed install, the workflow
also could not clean up the downloaded installer PBIDesktopSetup_x64.exe due to a Windows filesystem
permission/lock issue: Access is denied when attempting to delete the file in %TEMP% (lines 4688,
4692). This is a warning/cleanup issue, but the primary failure is the non-zero exit from the Power
BI install script.
- Only 1 out of 2 apps validated successfully; Power BI is listed under Apps with
errors (lines 4690-4691).

Relevant error logs:
1:  ##[group]Runner Image Provisioner
2:  Hosted Compute Agent
...

118:  * [new branch]            11938-loadtesting-branch    -> origin/11938-loadtesting-branch
119:  * [new branch]            12007-ui-idp-metadata       -> origin/12007-ui-idp-metadata
120:  * [new branch]            12351-try-fix-for-fleet-desktop -> origin/12351-try-fix-for-fleet-desktop
121:  * [new branch]            12356-puppet-callback       -> origin/12356-puppet-callback
122:  * [new branch]            12375-query-bulk-action     -> origin/12375-query-bulk-action
123:  * [new branch]            12474-documentation         -> origin/12474-documentation
124:  * [new branch]            12614-federated-auth-support -> origin/12614-federated-auth-support
125:  * [new branch]            12687-host-issues-query     -> origin/12687-host-issues-query
126:  * [new branch]            12696-loadtest-cis-changes  -> origin/12696-loadtest-cis-changes
127:  * [new branch]            12842-fleetd-bitlocker-management -> origin/12842-fleetd-bitlocker-management
128:  * [new branch]            12842-fleetd-bitlocker-table -> origin/12842-fleetd-bitlocker-table
129:  * [new branch]            12889-faster-software       -> origin/12889-faster-software
130:  * [new branch]            13287-loadtest-changes      -> origin/13287-loadtest-changes
131:  * [new branch]            13288-poc-fleet-fips        -> origin/13288-poc-fleet-fips
132:  * [new branch]            13485-query-reports-migration -> origin/13485-query-reports-migration
133:  * [new branch]            13574-cache-failed-policy-counts -> origin/13574-cache-failed-policy-counts
134:  * [new branch]            13657-docs                  -> origin/13657-docs
...

146:  * [new branch]            146orch                     -> origin/146orch
147:  * [new branch]            14753-windows-ps1-api       -> origin/14753-windows-ps1-api
148:  * [new branch]            14957-test-dep-screen       -> origin/14957-test-dep-screen
149:  * [new branch]            14957-test-dep-screen-patch -> origin/14957-test-dep-screen-patch
150:  * [new branch]            15068-disk-encryption-ii    -> origin/15068-disk-encryption-ii
151:  * [new branch]            15082-download-api-docs     -> origin/15082-download-api-docs
152:  * [new branch]            15082-make-endpoints-consistent -> origin/15082-make-endpoints-consistent
153:  * [new branch]            15082-update-download-endpoints -> origin/15082-update-download-endpoints
154:  * [new branch]            15380-hosts-api-doc         -> origin/15380-hosts-api-doc
155:  * [new branch]            15461-ui-dep-assign-profile-responses -> origin/15461-ui-dep-assign-profile-responses
156:  * [new branch]            15463-msi-fix               -> origin/15463-msi-fix
157:  * [new branch]            15559-move-scep             -> origin/15559-move-scep
158:  * [new branch]            15633                       -> origin/15633
159:  * [new branch]            15770-mac-os-vuln           -> origin/15770-mac-os-vuln
160:  * [new branch]            15801-migration             -> origin/15801-migration
161:  * [new branch]            15912-password-reset-error-code -> origin/15912-password-reset-error-code
162:  * [new branch]            16182-log-root              -> origin/16182-log-root
...

595:  * [new branch]            7765-frontend               -> origin/7765-frontend
596:  * [new branch]            7766-backend-final-main-merge -> origin/7766-backend-final-main-merge
597:  * [new branch]            7766-backend-test           -> origin/7766-backend-test
598:  * [new branch]            7766-frontend               -> origin/7766-frontend
599:  * [new branch]            7993-figure-out-the-limits-of-our-current-search-approach -> origin/7993-figure-out-the-limits-of-our-current-search-approach
600:  * [new branch]            8021-orbit-use-specified-identifier -> origin/8021-orbit-use-specified-identifier
601:  * [new branch]            8186-vulnerable-software-false-positive-docker -> origin/8186-vulnerable-software-false-positive-docker
602:  * [new branch]            8593-gitops                 -> origin/8593-gitops
603:  * [new branch]            8708-docs                   -> origin/8708-docs
604:  * [new branch]            8708-encryption-key-api     -> origin/8708-encryption-key-api
605:  * [new branch]            8708-ingest-file-vault      -> origin/8708-ingest-file-vault
606:  * [new branch]            8708-ingest-macos-encription-key -> origin/8708-ingest-macos-encription-key
607:  * [new branch]            8708-ingest-macos-encription-key-ii -> origin/8708-ingest-macos-encription-key-ii
608:  * [new branch]            8974-native-smbios-uuid-support -> origin/8974-native-smbios-uuid-support
609:  * [new branch]            9260-cis-checks-5.10.x      -> origin/9260-cis-checks-5.10.x
610:  * [new branch]            9394-failed-to-create-device-auth-token-due-to-duplicate-key-errors -> origin/9394-failed-to-create-device-auth-token-due-to-duplicate-key-errors
611:  * [new branch]            9590-schema                 -> origin/9590-schema
...

841:  * [new branch]            allenhouchins-update-dmg-install-script -> origin/allenhouchins-update-dmg-install-script
842:  * [new branch]            allenhouchins-update-patch-policy-generation -> origin/allenhouchins-update-patch-policy-generation
843:  * [new branch]            allenhouchins-warp          -> origin/allenhouchins-warp
844:  * [new branch]            allenhouchins-windows-net-runtime-6 -> origin/allenhouchins-windows-net-runtime-6
845:  * [new branch]            allenhouchins-zoom-fma      -> origin/allenhouchins-zoom-fma
846:  * [new branch]            allenhouchins-zoom-logo-mac -> origin/allenhouchins-zoom-logo-mac
847:  * [new branch]            allenhouchins-zoom-policy-fix -> origin/allenhouchins-zoom-policy-fix
848:  * [new branch]            allenhouchins/fix-security-review-must-fixes -> origin/allenhouchins/fix-security-review-must-fixes
849:  * [new branch]            always-create-event-next-thu -> origin/always-create-event-next-thu
850:  * [new branch]            amazon-workspaces-client-windows-fma -> origin/amazon-workspaces-client-windows-fma
851:  * [new branch]            and_osq_proj                -> origin/and_osq_proj
852:  * [new branch]            andrey/loadtest-oval-vulns  -> origin/andrey/loadtest-oval-vulns
853:  * [new branch]            android-app-install-activity -> origin/android-app-install-activity
854:  * [new branch]            android-cofniguration-profiles-research -> origin/android-cofniguration-profiles-research
855:  * [new branch]            android-enroll-note         -> origin/android-enroll-note
856:  * [new branch]            android-enrollment-error    -> origin/android-enrollment-error
857:  * [new branch]            android-manual-enrollment-button -> origin/android-manual-enrollment-button
...

905:  * [new branch]            await-configuration-docs    -> origin/await-configuration-docs
906:  * [new branch]            aws-licensing-integration-proposal -> origin/aws-licensing-integration-proposal
907:  * [new branch]            backport-a41fb63            -> origin/backport-a41fb63
908:  * [new branch]            backport-c02af              -> origin/backport-c02af
909:  * [new branch]            backport-e65d6cf            -> origin/backport-e65d6cf
910:  * [new branch]            backport-ef07a406cc8dbccb4914bbd27631df74e5b13b49 -> origin/backport-ef07a406cc8dbccb4914bbd27631df74e5b13b49
911:  * [new branch]            backport-vpp-fix            -> origin/backport-vpp-fix
912:  * [new branch]            base-software-titles-loadtest -> origin/base-software-titles-loadtest
913:  * [new branch]            base-software-titles-loadtest-2 -> origin/base-software-titles-loadtest-2
914:  * [new branch]            beekeeper-fma-initial       -> origin/beekeeper-fma-initial
915:  * [new branch]            bettapizza                  -> origin/bettapizza
916:  * [new branch]            bettapizza--ghost-testimonial-update -> origin/bettapizza--ghost-testimonial-update
917:  * [new branch]            bettapizza-patch-1          -> origin/bettapizza-patch-1
918:  * [new branch]            bettapizza-patch-2          -> origin/bettapizza-patch-2
919:  * [new branch]            bettapizza-patch-3          -> origin/bettapizza-patch-3
920:  * [new branch]            better-byod-error           -> origin/better-byod-error
921:  * [new branch]            blog/canary-fleet-for-fleed-updates -> origin/blog/canary-fleet-for-fleed-updates
...

955:  * [new branch]            cherry-pick-41914-to-rc-v4.83.0 -> origin/cherry-pick-41914-to-rc-v4.83.0
956:  * [new branch]            cherry-pick-42773-vitals-constants -> origin/cherry-pick-42773-vitals-constants
957:  * [new branch]            cherry-pick-8750-into-rc-minor-fleet-v4.60.0 -> origin/cherry-pick-8750-into-rc-minor-fleet-v4.60.0
958:  * [new branch]            cherry-pick-dogfood-change  -> origin/cherry-pick-dogfood-change
959:  * [new branch]            cherry-pick-dogfood-env-vars -> origin/cherry-pick-dogfood-env-vars
960:  * [new branch]            cherry-pick-fleetctl-changes-to-allow-testing -> origin/cherry-pick-fleetctl-changes-to-allow-testing
961:  * [new branch]            cherry-pick-mac-address-vital -> origin/cherry-pick-mac-address-vital
962:  * [new branch]            cherry-pick-patches         -> origin/cherry-pick-patches
963:  * [new branch]            cherry-pick-remove-overrides-in-dev-mode -> origin/cherry-pick-remove-overrides-in-dev-mode
964:  * [new branch]            cherry-pick-util            -> origin/cherry-pick-util
965:  * [new branch]            cherry-pick-webhooks        -> origin/cherry-pick-webhooks
966:  * [new branch]            cherrypick-v4.85.0-version-bump-into-main -> origin/cherrypick-v4.85.0-version-bump-into-main
967:  * [new branch]            chore-UI-update-for-CSP     -> origin/chore-UI-update-for-CSP
968:  * [new branch]            chore-add-specific-yarn-version -> origin/chore-add-specific-yarn-version
969:  * [new branch]            chore-backend-api-patterns  -> origin/chore-backend-api-patterns
970:  * [new branch]            chore-change-error-message-custom-profile -> origin/chore-change-error-message-custom-profile
971:  * [new branch]            chore-cp-chage-status-code-turn-off-mdm -> origin/chore-cp-chage-status-code-turn-off-mdm
...

1011:  * [new branch]            claude/serene-borg          -> origin/claude/serene-borg
1012:  * [new branch]            claude/slack-add-fma-foxit-pdf-9UpRv -> origin/claude/slack-add-fma-foxit-pdf-9UpRv
1013:  * [new branch]            claude/slack-session-Yw6M0  -> origin/claude/slack-session-Yw6M0
1014:  * [new branch]            claude/sub-pr-42006         -> origin/claude/sub-pr-42006
1015:  * [new branch]            claude/update-mock-fixtures-for-ipolicy -> origin/claude/update-mock-fixtures-for-ipolicy
1016:  * [new branch]            claude/update-mock-fixtures-policy-interface -> origin/claude/update-mock-fixtures-policy-interface
1017:  * [new branch]            cli-update-fleetd-naming    -> origin/cli-update-fleetd-naming
1018:  * [new branch]            clone-423                   -> origin/clone-423
1019:  * [new branch]            close-product-designer-position -> origin/close-product-designer-position
1020:  * [new branch]            codeowner-test              -> origin/codeowner-test
1021:  * [new branch]            codeql-icon-fe-fix          -> origin/codeql-icon-fe-fix
1022:  * [new branch]            coderabbit-skip-paths       -> origin/coderabbit-skip-paths
1023:  * [new branch]            collect-abm-apns-expiration-usage-statistics -> origin/collect-abm-apns-expiration-usage-statistics
1024:  * [new branch]            components-in-same-file-instead-of-closures -> origin/components-in-same-file-instead-of-closures
1025:  * [new branch]            conf-2644-branch-from-main  -> origin/conf-2644-branch-from-main
1026:  * [new branch]            consistent-error            -> origin/consistent-error
1027:  * [new branch]            consistent-rest-api-language-part-ii -> origin/consistent-rest-api-language-part-ii
...

1158:  * [new branch]            edwardsb-vuln-processing-fix-sandcastle -> origin/edwardsb-vuln-processing-fix-sandcastle
1159:  * [new branch]            edwardsb-vuln-processing-volume-fix -> origin/edwardsb-vuln-processing-volume-fix
1160:  * [new branch]            edwardsb/deployment-guide-updates -> origin/edwardsb/deployment-guide-updates
1161:  * [new branch]            edwardsb/restrict_console_access -> origin/edwardsb/restrict_console_access
1162:  * [new branch]            elastic_rum                 -> origin/elastic_rum
1163:  * [new branch]            enable-jit-by-default       -> origin/enable-jit-by-default
1164:  * [new branch]            enable-test-go-automation-macos -> origin/enable-test-go-automation-macos
1165:  * [new branch]            enforce-firefox-doh         -> origin/enforce-firefox-doh
1166:  * [new branch]            enforce-firefox-windows     -> origin/enforce-firefox-windows
1167:  * [new branch]            enforce-ios-26.5-update-deadline-july-2026 -> origin/enforce-ios-26.5-update-deadline-july-2026
1168:  * [new branch]            enforce-iso27001-workstations -> origin/enforce-iso27001-workstations
1169:  * [new branch]            enforce-macos-15.5-update-deadline -> origin/enforce-macos-15.5-update-deadline
1170:  * [new branch]            enforce-macos-version-workstations -> origin/enforce-macos-version-workstations
1171:  * [new branch]            enroll-android-feature-guide -> origin/enroll-android-feature-guide
1172:  * [new branch]            ericswenson0-patch-1        -> origin/ericswenson0-patch-1
1173:  * [new branch]            error-counts                -> origin/error-counts
1174:  * [new branch]            errors-perf-testing         -> origin/errors-perf-testing
1175:  * [new branch]            es-reports                  -> origin/es-reports
...

1191:  * [new branch]            eugkuo-patch-6-slugs-FMA    -> origin/eugkuo-patch-6-slugs-FMA
1192:  * [new branch]            example-fleetctl-profiles   -> origin/example-fleetctl-profiles
1193:  * [new branch]            example-payloads-with-gitops -> origin/example-payloads-with-gitops
1194:  * [new branch]            exp-mdbook-docs             -> origin/exp-mdbook-docs
1195:  * [new branch]            experiment-disable-some-deletes -> origin/experiment-disable-some-deletes
1196:  * [new branch]            experiment-hardcode-counters-to-zero -> origin/experiment-hardcode-counters-to-zero
1197:  * [new branch]            experiment-no-txs           -> origin/experiment-no-txs
1198:  * [new branch]            experiment-status-tooltip   -> origin/experiment-status-tooltip
1199:  * [new branch]            experiment-with-two-branches -> origin/experiment-with-two-branches
1200:  * [new branch]            experimental_moveitem       -> origin/experimental_moveitem
1201:  * [new branch]            experimient-no-counts       -> origin/experimient-no-counts
1202:  * [new branch]            expiredcertstool            -> origin/expiredcertstool
1203:  * [new branch]            extra-dep-logs              -> origin/extra-dep-logs
1204:  * [new branch]            f84ee4c5f4                  -> origin/f84ee4c5f4
1205:  * [new branch]            faf-doc-clarification       -> origin/faf-doc-clarification
1206:  * [new branch]            failing-test                -> origin/failing-test
1207:  * [new branch]            faster-ci-checks            -> origin/faster-ci-checks
...

1245:  * [new branch]            feature-gkarr-testing2      -> origin/feature-gkarr-testing2
1246:  * [new branch]            feature-hydrant-ca          -> origin/feature-hydrant-ca
1247:  * [new branch]            feature-idp-byod            -> origin/feature-idp-byod
1248:  * [new branch]            feature-orbit-find          -> origin/feature-orbit-find
1249:  * [new branch]            feature-prioritization      -> origin/feature-prioritization
1250:  * [new branch]            feature-v4.44.1-live-queries -> origin/feature-v4.44.1-live-queries
1251:  * [new branch]            feature-windows-mdm-policy-extraction -> origin/feature-windows-mdm-policy-extraction
1252:  * [new branch]            feature/add-blank-to-osquer-link -> origin/feature/add-blank-to-osquer-link
1253:  * [new branch]            feature_14722-activity-feed-webhooks -> origin/feature_14722-activity-feed-webhooks
1254:  * [new branch]            feature_18115-crit-vuln-issues -> origin/feature_18115-crit-vuln-issues
1255:  * [new branch]            feature_19010-ipad-ios-lock-wipe-backend-changes -> origin/feature_19010-ipad-ios-lock-wipe-backend-changes
1256:  * [new branch]            feature_22078               -> origin/feature_22078
1257:  * [new branch]            fix                         -> origin/fix
1258:  * [new branch]            fix-35118-cis-win10-v4      -> origin/fix-35118-cis-win10-v4
1259:  * [new branch]            fix-4.84.4-k8s              -> origin/fix-4.84.4-k8s
1260:  * [new branch]            fix-40083-failed-install-retries -> origin/fix-40083-failed-install-retries
1261:  * [new branch]            fix-41290-vpp-added-status  -> origin/fix-41290-vpp-added-status
1262:  * [new branch]            fix-41337-save-env-secrets-dry-run -> origin/fix-41337-save-env-secrets-dry-run
1263:  * [new branch]            fix-43623-fma-patch-policy-gitops -> origin/fix-43623-fma-patch-policy-gitops
1264:  * [new branch]            fix-43673-my-device-sort    -> origin/fix-43673-my-device-sort
1265:  * [new branch]            fix-44199-embedded-app-bundles -> origin/fix-44199-embedded-app-bundles
1266:  * [new branch]            fix-45843-vuln-cursor-pagination-ambiguous-columns -> origin/fix-45843-vuln-cursor-pagination-ambiguous-columns
1267:  * [new branch]            fix-45854-failed-install-activity -> origin/fix-45854-failed-install-activity
1268:  * [new branch]            fix-android-unenroll-activities -> origin/fix-android-unenroll-activities
1269:  * [new branch]            fix-blockquotes-google-groups -> origin/fix-blockquotes-google-groups
1270:  * [new branch]            fix-case-in-deploy-config-docs -> origin/fix-case-in-deploy-config-docs
1271:  * [new branch]            fix-cert-details-modal      -> origin/fix-cert-details-modal
1272:  * [new branch]            fix-checkerboard-scroll-to-right -> origin/fix-checkerboard-scroll-to-right
1273:  * [new branch]            fix-checkerboard-tooltip-nowrap -> origin/fix-checkerboard-tooltip-nowrap
1274:  * [new branch]            fix-cloudflare-warp-fma-output-json -> origin/fix-cloudflare-warp-fma-output-json
1275:  * [new branch]            fix-codeql-ci-error         -> origin/fix-codeql-ci-error
1276:  * [new branch]            fix-colima                  -> origin/fix-colima
1277:  * [new branch]            fix-color-for-mobile-sticky-nav -> origin/fix-color-for-mobile-sticky-nav
1278:  * [new branch]            fix-conflict-in-feature_19010-ipad-ios-lock-wipe -> origin/fix-conflict-in-feature_19010-ipad-ios-lock-wipe
1279:  * [new branch]            fix-contrib-docs            -> origin/fix-contrib-docs
1280:  * [new branch]            fix-cve-2026-2792-firefox-esr -> origin/fix-cve-2026-2792-firefox-esr
1281:  * [new branch]            fix-cve-validate-enrichment-canary -> origin/fix-cve-validate-enrichment-canary
1282:  * [new branch]            fix-dashboard-host-count-card-breakpoint -> origin/fix-dashboard-host-count-card-breakpoint
1283:  * [new branch]            fix-docker-publish          -> origin/fix-docker-publish
1284:  * [new branch]            fix-dogfood-workstation     -> origin/fix-dogfood-workstation
1285:  * [new branch]            fix-firefox-cve-2026-2792   -> origin/fix-firefox-cve-2026-2792
1286:  * [new branch]            fix-firefox-fma-conflict-error-msg -> origin/fix-firefox-fma-conflict-error-msg
1287:  * [new branch]            fix-flakey-orbit-test       -> origin/fix-flakey-orbit-test
...

1293:  * [new branch]            fix-host-counts-vpp-software -> origin/fix-host-counts-vpp-software
1294:  * [new branch]            fix-instability-ubuntu-latest -> origin/fix-instability-ubuntu-latest
1295:  * [new branch]            fix-ios-ipados-enrollment-label-42721 -> origin/fix-ios-ipados-enrollment-label-42721
1296:  * [new branch]            fix-list-sw-permissions     -> origin/fix-list-sw-permissions
1297:  * [new branch]            fix-mdm-enrolled-webhook    -> origin/fix-mdm-enrolled-webhook
1298:  * [new branch]            fix-mdm-redirect            -> origin/fix-mdm-redirect
1299:  * [new branch]            fix-mdm-url-truncation      -> origin/fix-mdm-url-truncation
1300:  * [new branch]            fix-missing-test-schema-update -> origin/fix-missing-test-schema-update
1301:  * [new branch]            fix-modernize               -> origin/fix-modernize
1302:  * [new branch]            fix-no-space-left-on-device-failure -> origin/fix-no-space-left-on-device-failure
1303:  * [new branch]            fix-notarization            -> origin/fix-notarization
1304:  * [new branch]            fix-orbit-notarization      -> origin/fix-orbit-notarization
1305:  * [new branch]            fix-os-settings-name-col-truncation -> origin/fix-os-settings-name-col-truncation
1306:  * [new branch]            fix-os-settings-underline-descender-clip -> origin/fix-os-settings-underline-descender-clip
1307:  * [new branch]            fix-pricing-more-info-icon-documentationurl -> origin/fix-pricing-more-info-icon-documentationurl
1308:  * [new branch]            fix-receive-from-github-error -> origin/fix-receive-from-github-error
1309:  * [new branch]            fix-sandbox-local           -> origin/fix-sandbox-local
...

1322:  * [new branch]            fix-ui-turn-on-mdm-external -> origin/fix-ui-turn-on-mdm-external
1323:  * [new branch]            fix-ui-typo-fleet-maintained-empty -> origin/fix-ui-typo-fleet-maintained-empty
1324:  * [new branch]            fix-vpp-edit-fleet-desktop-message -> origin/fix-vpp-edit-fleet-desktop-message
1325:  * [new branch]            fix-win-os-version          -> origin/fix-win-os-version
1326:  * [new branch]            fix_14825                   -> origin/fix_14825
1327:  * [new branch]            fixes-on-minor-fleet-v4.54.0 -> origin/fixes-on-minor-fleet-v4.54.0
1328:  * [new branch]            fixes-plus-4.35.1           -> origin/fixes-plus-4.35.1
1329:  * [new branch]            flaky-tests-nov-6           -> origin/flaky-tests-nov-6
1330:  * [new branch]            fleet-desktop-linux-browser -> origin/fleet-desktop-linux-browser
1331:  * [new branch]            fleet-desktop-version       -> origin/fleet-desktop-version
1332:  * [new branch]            fleet-mdm-server-url        -> origin/fleet-mdm-server-url
1333:  * [new branch]            fleet-multiple-abm-vpp-proposal -> origin/fleet-multiple-abm-vpp-proposal
1334:  * [new branch]            fleet-premium-users-usage-statistics -> origin/fleet-premium-users-usage-statistics
1335:  * [new branch]            fleet-release-infra         -> origin/fleet-release-infra
1336:  * [new branch]            fleet-server-config-1817    -> origin/fleet-server-config-1817
1337:  * [new branch]            fleet-server-log-request-errors -> origin/fleet-server-log-request-errors
1338:  * [new branch]            fleet-ship-rebuild          -> origin/fleet-ship-rebuild
...

2137:  * [new branch]            hotfix-disable-fv-rc        -> origin/hotfix-disable-fv-rc
2138:  * [new branch]            hotfix-failing-tests        -> origin/hotfix-failing-tests
2139:  * [new branch]            hotfix-query-update         -> origin/hotfix-query-update
2140:  * [new branch]            hotfix-revert-sofa-tables   -> origin/hotfix-revert-sofa-tables
2141:  * [new branch]            hotfix-v4.67.2-migration    -> origin/hotfix-v4.67.2-migration
2142:  * [new branch]            hotfix-v4.76.1              -> origin/hotfix-v4.76.1
2143:  * [new branch]            hover-gravatar              -> origin/hover-gravatar
2144:  * [new branch]            hughestaylor-patch-1        -> origin/hughestaylor-patch-1
2145:  * [new branch]            hughestaylor-patch-1-1      -> origin/hughestaylor-patch-1-1
2146:  * [new branch]            ignore-fleetctl-vulnerabilities -> origin/ignore-fleetctl-vulnerabilities
2147:  * [new branch]            improve-flakey-test         -> origin/improve-flakey-test
2148:  * [new branch]            improve-prometheus-metrics  -> origin/improve-prometheus-metrics
2149:  * [new branch]            include-mnt-in-gads-metric  -> origin/include-mnt-in-gads-metric
2150:  * [new branch]            increase-goreleaser-timeout-to-60m -> origin/increase-goreleaser-timeout-to-60m
2151:  * [new branch]            ingress-gateway-support     -> origin/ingress-gateway-support
2152:  * [new branch]            insert-software-installers-retry-error -> origin/insert-software-installers-retry-error
2153:  * [new branch]            integration-ci-debug        -> origin/integration-ci-debug
...

2164:  * [new branch]            irenareedy-patch-10         -> origin/irenareedy-patch-10
2165:  * [new branch]            irenareedy-patch-2          -> origin/irenareedy-patch-2
2166:  * [new branch]            irenareedy-patch-3          -> origin/irenareedy-patch-3
2167:  * [new branch]            irenareedy-patch-4          -> origin/irenareedy-patch-4
2168:  * [new branch]            irenareedy-patch-5          -> origin/irenareedy-patch-5
2169:  * [new branch]            irenareedy-patch-6          -> origin/irenareedy-patch-6
2170:  * [new branch]            irenareedy-patch-7          -> origin/irenareedy-patch-7
2171:  * [new branch]            irenareedy-patch-8          -> origin/irenareedy-patch-8
2172:  * [new branch]            irenareedy-patch-9          -> origin/irenareedy-patch-9
2173:  * [new branch]            irenareedy-thumbtack-case-study -> origin/irenareedy-thumbtack-case-study
2174:  * [new branch]            iso-27001-compliance        -> origin/iso-27001-compliance
2175:  * [new branch]            iso42001-ai-discovery-inventory -> origin/iso42001-ai-discovery-inventory
2176:  * [new branch]            issue-11545-my-device-dep-modal -> origin/issue-11545-my-device-dep-modal
2177:  * [new branch]            issue-2716-specify-query-platforms -> origin/issue-2716-specify-query-platforms
2178:  * [new branch]            issue-3271-rate-limit-distributed-writes -> origin/issue-3271-rate-limit-distributed-writes
2179:  * [new branch]            issue-4361-mail-change-should-error -> origin/issue-4361-mail-change-should-error
2180:  * [new branch]            issue-conf-1968-delete-uninstalled-software-from-main -> origin/issue-conf-1968-delete-uninstalled-software-from-main
...

2376:  * [new branch]            melpike-activity-lock-wipe-41683 -> origin/melpike-activity-lock-wipe-41683
2377:  * [new branch]            melpike-activity-rotate-managed-local-account-password-37142 -> origin/melpike-activity-rotate-managed-local-account-password-37142
2378:  * [new branch]            melpike-add-public-endpoints-44742 -> origin/melpike-add-public-endpoints-44742
2379:  * [new branch]            melpike-api-device-url-43895 -> origin/melpike-api-device-url-43895
2380:  * [new branch]            melpike-api-minimum-version-39085 -> origin/melpike-api-minimum-version-39085
2381:  * [new branch]            melpike-api-py-script-41470 -> origin/melpike-api-py-script-41470
2382:  * [new branch]            melpike-audit-log-mdm-cmd-45021 -> origin/melpike-audit-log-mdm-cmd-45021
2383:  * [new branch]            melpike-audit-recovery-lock-password-rotate -> origin/melpike-audit-recovery-lock-password-rotate
2384:  * [new branch]            melpike-byod-wipe-lock-23242 -> origin/melpike-byod-wipe-lock-23242
2385:  * [new branch]            melpike-byod-wipe-lock-23242-1 -> origin/melpike-byod-wipe-lock-23242-1
2386:  * [new branch]            melpike-byod-wipe-lock-api-23242 -> origin/melpike-byod-wipe-lock-api-23242
2387:  * [new branch]            melpike-byod-wipe-lock-better-23242 -> origin/melpike-byod-wipe-lock-better-23242
2388:  * [new branch]            melpike-byod-wipe-lock-yaml-23242 -> origin/melpike-byod-wipe-lock-yaml-23242
2389:  * [new branch]            melpike-combine-guides-30674 -> origin/melpike-combine-guides-30674
2390:  * [new branch]            melpike-create-managed-local-account-guide-37141 -> origin/melpike-create-managed-local-account-guide-37141
2391:  * [new branch]            melpike-dep-error-messaging-43916 -> origin/melpike-dep-error-messaging-43916
2392:  * [new branch]            melpike-doc-deploy-sw-41470 -> origin/melpike-doc-deploy-sw-41470
...

2529:  * [new branch]            mna-doc-change-api-structure -> origin/mna-doc-change-api-structure
2530:  * [new branch]            mna-experiment-macos-profiles-uuid -> origin/mna-experiment-macos-profiles-uuid
2531:  * [new branch]            mna-fix-22558-windows-installer-stuck-pending -> origin/mna-fix-22558-windows-installer-stuck-pending
2532:  * [new branch]            mna-fix-duplicate-lock-unlock-activity -> origin/mna-fix-duplicate-lock-unlock-activity
2533:  * [new branch]            mna-fix-failing-tests       -> origin/mna-fix-failing-tests
2534:  * [new branch]            mna-fix-flaky-integration-test -> origin/mna-fix-flaky-integration-test
2535:  * [new branch]            mna-fix-oom-fleetctl-test   -> origin/mna-fix-oom-fleetctl-test
2536:  * [new branch]            mna-loadtest-enroll-host-limit -> origin/mna-loadtest-enroll-host-limit
2537:  * [new branch]            mna-orbit-node-key          -> origin/mna-orbit-node-key
2538:  * [new branch]            mna-revert-change-to-autogenerated-activities-doc -> origin/mna-revert-change-to-autogenerated-activities-doc
2539:  * [new branch]            mna-temp-osquery-perf-loadtest -> origin/mna-temp-osquery-perf-loadtest
2540:  * [new branch]            mna11997                    -> origin/mna11997
2541:  * [new branch]            mock-associate-assets-endpoint -> origin/mock-associate-assets-endpoint
2542:  * [new branch]            monitoring-test             -> origin/monitoring-test
2543:  * [new branch]            more-conditional-access-api-updates -> origin/more-conditional-access-api-updates
2544:  * [new branch]            more-fd-errors              -> origin/more-fd-errors
2545:  * [new branch]            mostlikelee/clear-mdm-certs-on-unenroll-cp -> origin/mostlikelee/clear-mdm-certs-on-unenroll-cp
...

3074:  * [new branch]            sgress454/34259-end-user-auth-setup-backend -> origin/sgress454/34259-end-user-auth-setup-backend
3075:  * [new branch]            sgress454/34528-end-user-auth-setup-agent -> origin/sgress454/34528-end-user-auth-setup-agent
3076:  * [new branch]            sgress454/35376             -> origin/sgress454/35376
3077:  * [new branch]            sgress454/35452             -> origin/sgress454/35452
3078:  * [new branch]            sgress454/37127-open-macos-end-user-auth-window -> origin/sgress454/37127-open-macos-end-user-auth-window
3079:  * [new branch]            sgress454/38063-skeleton-server -> origin/sgress454/38063-skeleton-server
3080:  * [new branch]            sgress454/39344-rename-teams-to-fleet-all-changes -> origin/sgress454/39344-rename-teams-to-fleet-all-changes
3081:  * [new branch]            sgress454/39344-rename-teams-to-fleet-api-changes -> origin/sgress454/39344-rename-teams-to-fleet-api-changes
3082:  * [new branch]            sgress454/40642-update-jit-saml-prefix -> origin/sgress454/40642-update-jit-saml-prefix
3083:  * [new branch]            sgress454/43482-re-pin      -> origin/sgress454/43482-re-pin
3084:  * [new branch]            sgress454/44077-disable-datasets-backend -> origin/sgress454/44077-disable-datasets-backend
3085:  * [new branch]            sgress454/44077-disable-datasets-docs -> origin/sgress454/44077-disable-datasets-docs
3086:  * [new branch]            sgress454/44077-disable-datasets-frontend -> origin/sgress454/44077-disable-datasets-frontend
3087:  * [new branch]            sgress454/45290-drop-mobile-from-charting -> origin/sgress454/45290-drop-mobile-from-charting
3088:  * [new branch]            sgress454/add-vex-for-cve-2026-23517 -> origin/sgress454/add-vex-for-cve-2026-23517
3089:  * [new branch]            sgress454/adr-for-error-codes -> origin/sgress454/adr-for-error-codes
3090:  * [new branch]            sgress454/adr-refactor-list-hosts -> origin/sgress454/adr-refactor-list-hosts
...

3143:  * [new branch]            software-titles-loadtest-2  -> origin/software-titles-loadtest-2
3144:  * [new branch]            solutions-folder            -> origin/solutions-folder
3145:  * [new branch]            sort-seen-hosts-before-inserting -> origin/sort-seen-hosts-before-inserting
3146:  * [new branch]            spalmesano0-patch-2         -> origin/spalmesano0-patch-2
3147:  * [new branch]            sperad-props-documentation  -> origin/sperad-props-documentation
3148:  * [new branch]            spike-fleet-lint-plugin     -> origin/spike-fleet-lint-plugin
3149:  * [new branch]            spike-ui-permissions-pattern -> origin/spike-ui-permissions-pattern
3150:  * [new branch]            spokanemac-add-passcode-ddm-profile -> origin/spokanemac-add-passcode-ddm-profile
3151:  * [new branch]            spokanemac-dogfood-additional-apps -> origin/spokanemac-dogfood-additional-apps
3152:  * [new branch]            spokanemac-handbook-release-article -> origin/spokanemac-handbook-release-article
3153:  * [new branch]            spokanemac-macdevops-conference-post -> origin/spokanemac-macdevops-conference-post
3154:  * [new branch]            spokanemac-meetup-template  -> origin/spokanemac-meetup-template
3155:  * [new branch]            spokanemac-migrating-fleetdm-from-dogfood-to-terraform-on-aws -> origin/spokanemac-migrating-fleetdm-from-dogfood-to-terraform-on-aws
3156:  * [new branch]            spokanemac-release-article-issue-template -> origin/spokanemac-release-article-issue-template
3157:  * [new branch]            step4-improvements          -> origin/step4-improvements
3158:  * [new branch]            store-query-execution-and-ingestion-errors -> origin/store-query-execution-and-ingestion-errors
3159:  * [new branch]            support-breaking-osquery-downgrades -> origin/support-breaking-osquery-downgrades
...

3227:  * [new branch]            uniform-brex-spending-limit -> origin/uniform-brex-spending-limit
3228:  * [new branch]            untx-software               -> origin/untx-software
3229:  * [new branch]            upcoming-activities-mdm-commands -> origin/upcoming-activities-mdm-commands
3230:  * [new branch]            upcoming-commands           -> origin/upcoming-commands
3231:  * [new branch]            update-1password-and-safari-policy-versions-2601200025 -> origin/update-1password-and-safari-policy-versions-2601200025
3232:  * [new branch]            update-1password-and-safari-policy-versions-2601200610 -> origin/update-1password-and-safari-policy-versions-2601200610
3233:  * [new branch]            update-1password-and-safari-policy-versions-2602261818 -> origin/update-1password-and-safari-policy-versions-2602261818
3234:  * [new branch]            update-1password-and-safari-policy-versions-2603101819 -> origin/update-1password-and-safari-policy-versions-2603101819
3235:  * [new branch]            update-1password-and-safari-policy-versions-2604080037 -> origin/update-1password-and-safari-policy-versions-2604080037
3236:  * [new branch]            update-1password-and-safari-policy-versions-2604080637 -> origin/update-1password-and-safari-policy-versions-2604080637
3237:  * [new branch]            update-Cloudflare-WARP-FMA-with-UpgradeCode -> origin/update-Cloudflare-WARP-FMA-with-UpgradeCode
3238:  * [new branch]            update-android-mdm-doc      -> origin/update-android-mdm-doc
3239:  * [new branch]            update-article-format       -> origin/update-article-format
3240:  * [new branch]            update-bug-report-template  -> origin/update-bug-report-template
3241:  * [new branch]            update-build-instructions   -> origin/update-build-instructions
3242:  * [new branch]            update-build-script-error-message -> origin/update-build-script-error-message
3243:  * [new branch]            update-cancel-and-done-links -> origin/update-cancel-and-done-links
...

3318:  * [new branch]            update-santa-rules-chrome   -> origin/update-santa-rules-chrome
3319:  * [new branch]            update-solutions-folder     -> origin/update-solutions-folder
3320:  * [new branch]            update-testing-qa-apps-2511191525 -> origin/update-testing-qa-apps-2511191525
3321:  * [new branch]            update-tuf-keys             -> origin/update-tuf-keys
3322:  * [new branch]            update-tuf-md               -> origin/update-tuf-md
3323:  * [new branch]            update-usage-statistics-mobile-devices -> origin/update-usage-statistics-mobile-devices
3324:  * [new branch]            update-user-password-length-validation-test -> origin/update-user-password-length-validation-test
3325:  * [new branch]            update-vex-statements       -> origin/update-vex-statements
3326:  * [new branch]            update-why-this-way         -> origin/update-why-this-way
3327:  * [new branch]            upgrade-eslint              -> origin/upgrade-eslint
3328:  * [new branch]            upgrade-go                  -> origin/upgrade-go
3329:  * [new branch]            upgrade-typescript          -> origin/upgrade-typescript
3330:  * [new branch]            upload-msiexec-install-log  -> origin/upload-msiexec-install-log
3331:  * [new branch]            usage-stats-mobile-devices-count -> origin/usage-stats-mobile-devices-count
3332:  * [new branch]            use-dockerhub-creds         -> origin/use-dockerhub-creds
3333:  * [new branch]            user-channel-error          -> origin/user-channel-error
3334:  * [new branch]            users-table-experiment      -> origin/users-table-experiment
...

3476:  * [new branch]            website-upgrade-mermaid     -> origin/website-upgrade-mermaid
3477:  * [new branch]            website-usage-statistics-patch -> origin/website-usage-statistics-patch
3478:  * [new branch]            website-validate-fleet-versions -> origin/website-validate-fleet-versions
3479:  * [new branch]            wesite-fix-sales-rituals    -> origin/wesite-fix-sales-rituals
3480:  * [new branch]            willmayhone88-patch-1       -> origin/willmayhone88-patch-1
3481:  * [new branch]            win-fma-goland              -> origin/win-fma-goland
3482:  * [new branch]            win-fma-testing             -> origin/win-fma-testing
3483:  * [new branch]            win-mdm-loadtest            -> origin/win-mdm-loadtest
3484:  * [new branch]            windows-baseline            -> origin/windows-baseline
3485:  * [new branch]            windows-firefox-doh-script  -> origin/windows-firefox-doh-script
3486:  * [new branch]            windows-fma-canva           -> origin/windows-fma-canva
3487:  * [new branch]            windows-mdm-autopilot       -> origin/windows-mdm-autopilot
3488:  * [new branch]            windows-mdm-c-poc           -> origin/windows-mdm-c-poc
3489:  * [new branch]            windows-mdm-docs-auto-enroll -> origin/windows-mdm-docs-auto-enroll
3490:  * [new branch]            windows-mdm-load-test       -> origin/windows-mdm-load-test
3491:  * [new branch]            windows_enable_and_configure-error-message -> origin/windows_enable_and_configure-error-message
3492:  * [new branch]            workstations-to-use-edge-channels -> origin/workstations-to-use-edge-channels
...

3502:  * [new branch]            zayhanlon-patch-1           -> origin/zayhanlon-patch-1
3503:  * [new branch]            zenity-execuser             -> origin/zenity-execuser
3504:  * [new branch]            zhumo-patch-1               -> origin/zhumo-patch-1
3505:  * [new branch]            zhumo-patch-2               -> origin/zhumo-patch-2
3506:  * [new branch]            zhumo-patch-3               -> origin/zhumo-patch-3
3507:  * [new branch]            zhumo-patch-4               -> origin/zhumo-patch-4
3508:  * [new branch]            zhumo-patch-5               -> origin/zhumo-patch-5
3509:  * [new branch]            zhumo-patch-6               -> origin/zhumo-patch-6
3510:  * [new branch]            zhumo-patch-7               -> origin/zhumo-patch-7
3511:  * [new branch]            zwass-actions-reminders     -> origin/zwass-actions-reminders
3512:  * [new branch]            zwass-improve-macos-cpe     -> origin/zwass-improve-macos-cpe
3513:  * [new branch]            zwass-patch-1               -> origin/zwass-patch-1
3514:  * [new branch]            zwass-patch-2               -> origin/zwass-patch-2
3515:  * [new branch]            zwinnerman-fixup            -> origin/zwinnerman-fixup
3516:  * [new branch]            zwinnerman-livequery-tracing -> origin/zwinnerman-livequery-tracing
3517:  * [new branch]            zwinnerman-redis-error-handling -> origin/zwinnerman-redis-error-handling
3518:  * [new branch]            zwinnerman-test             -> origin/zwinnerman-test
...

4215:  ##[group]Run actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417
4216:  with:
4217:  go-version-file: fleet/go.mod
4218:  check-latest: false
4219:  token: ***
4220:  cache: true
4221:  env:
4222:  GH_TOKEN: ***
4223:  LOG_LEVEL: info
4224:  ##[endgroup]
4225:  Setup go version spec 1.26.3
4226:  Attempting to download 1.26.3...
4227:  matching 1.26.3...
4228:  Acquiring 1.26.3 from https://github.com/actions/go-versions/releases/download/1.26.3-25533533231/go-1.26.3-win32-x64.zip
4229:  Extracting Go...
4230:  [command]"C:\Program Files\PowerShell\7\pwsh.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command "$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ; try { [System.IO.Compression.ZipFile]::ExtractToDirectory('D:\a\_temp\go-1.26.3-win32-x64.zip', 'D:\a\_temp\6b3d5fe9-00e1-4fc5-8f7e-e8153752e275', $true) } catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath 'D:\a\_temp\go-1.26.3-win32-x64.zip' -DestinationPath 'D:\a\_temp\6b3d5fe9-00e1-4fc5-8f7e-e8153752e275' -Force } else { throw $_ } } ;"
4231:  Successfully extracted go to D:\a\_temp\6b3d5fe9-00e1-4fc5-8f7e-e8153752e275
4232:  Adding to the cache ...
4233:  Created link C:\hostedtoolcache\windows\go\1.26.3\x64 => D:\hostedtoolcache\windows\go\1.26.3\x64
4234:  Created link C:\hostedtoolcache\windows\go\1.26.3\x64.complete => D:\hostedtoolcache\windows\go\1.26.3\x64.complete
4235:  Successfully cached go to C:\hostedtoolcache\windows\go\1.26.3\x64
4236:  Added go to the path
4237:  Successfully set up Go version 1.26.3
4238:  [command]C:\hostedtoolcache\windows\go\1.26.3\x64\bin\go.exe env GOMODCACHE
4239:  [command]C:\hostedtoolcache\windows\go\1.26.3\x64\bin\go.exe env GOCACHE
4240:  C:\Users\runneradmin\go\pkg\mod
4241:  C:\Users\runneradmin\AppData\Local\go-build
4242:  ##[warning]Restore cache failed: Dependencies file is not found in D:\a\fleet\fleet. Supported file pattern: go.mod
4243:  go version go1.26.3 windows/amd64
...

4321:  GH_TOKEN: ***
4322:  LOG_LEVEL: info
4323:  GOTOOLCHAIN: local
4324:  GITHUB_BASE_REF: main
4325:  ##[endgroup]
4326:  Detecting changed files in outputs directory...
4327:  Comparing HEAD with origin/main...
4328:  Fetching base branch apps.json from dab955547cc6e1cd8ced943d221e4de06ad4f34a...
4329:  Detected changed apps:
4330:  - arc/darwin
4331:  - claude/darwin
4332:  - grammarly-desktop/darwin
4333:  - granola/darwin
4334:  - granola/windows
4335:  - power-bi/windows
4336:  ##[group]Run # Default to no changes if detection step failed or didn't set output
4337:  �[36;1m# Default to no changes if detection step failed or didn't set output�[0m
4338:  �[36;1m$hasChanges = "true"�[0m
...

4447:  �[36;1m$changedAppsJson = '["arc/darwin","claude/darwin","grammarly-desktop/darwin","granola/darwin","granola/windows","power-bi/windows"]'�[0m
4448:  �[36;1m$windowsSlugs = ($changedAppsJson | ConvertFrom-Json | Where-Object { $_ -like "*/windows" })�[0m
4449:  �[36;1m$windowsSlugsJson = ($windowsSlugs | ConvertTo-Json -Compress)�[0m
4450:  �[36;1mWrite-Host "Filtering apps.json for slugs: $windowsSlugsJson"�[0m
4451:  �[36;1m�[0m
4452:  �[36;1m# Backup original apps.json�[0m
4453:  �[36;1mCopy-Item -Path "ee\maintained-apps\outputs\apps.json" -Destination "ee\maintained-apps\outputs\apps.json.backup"�[0m
4454:  �[36;1m�[0m
4455:  �[36;1m# Create filtered apps.json�[0m
4456:  �[36;1m# Use a fixed path for the temp file to avoid issues with bash�[0m
4457:  �[36;1m$filteredAppsJson = Join-Path $env:TEMP "filtered-apps-$(New-Guid).json"�[0m
4458:  �[36;1mbash .github/scripts/filter-apps-json.sh "$windowsSlugsJson" "$filteredAppsJson"�[0m
4459:  �[36;1m�[0m
4460:  �[36;1m# Verify the filtered file was created�[0m
4461:  �[36;1mif (-not (Test-Path $filteredAppsJson)) {�[0m
4462:  �[36;1m  Write-Host "Error: Filtered apps.json was not created at $filteredAppsJson"�[0m
4463:  �[36;1m  exit 1�[0m
...

4561:  go: downloading github.com/secDre4mer/pkcs7 v0.0.0-20240322103146-665324a4461d
4562:  go: downloading go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0
4563:  go: downloading golang.org/x/oauth2 v0.35.0
4564:  go: downloading github.com/getsentry/sentry-go v0.18.0
4565:  go: downloading go.elastic.co/apm/v2 v2.7.0
4566:  go: downloading go.opentelemetry.io/otel v1.43.0
4567:  go: downloading go.opentelemetry.io/otel/metric v1.43.0
4568:  go: downloading go.opentelemetry.io/otel/trace v1.43.0
4569:  go: downloading github.com/aws/aws-sdk-go-v2/config v1.32.12
4570:  go: downloading github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.8
4571:  go: downloading github.com/aws/aws-sdk-go-v2 v1.41.5
4572:  go: downloading github.com/spf13/cobra v1.9.1
4573:  go: downloading github.com/spf13/viper v1.20.1
4574:  go: downloading github.com/go-kit/kit v0.12.0
4575:  go: downloading github.com/smallstep/pkcs7 v0.0.0-20240723090913-5e2c6a136dfa
4576:  go: downloading github.com/hashicorp/go-multierror v1.1.1
4577:  go: downloading github.com/micromdm/plist v0.2.3-0.20260123201933-667adaf87d87
4578:  go: downloading github.com/MicahParks/jwkset v0.11.0
4579:  go: downloading github.com/golang-jwt/jwt/v4 v4.5.2
4580:  go: downloading github.com/WatchBeam/clock v0.0.0-20170901150240-b08e6b4da7ea
4581:  go: downloading github.com/mattn/go-isatty v0.0.20
4582:  go: downloading github.com/andygrunwald/go-jira v1.16.0
4583:  go: downloading github.com/cenkalti/backoff/v4 v4.3.0
4584:  go: downloading github.com/nukosuke/go-zendesk v0.13.1
4585:  go: downloading github.com/cenkalti/backoff v2.2.1+incompatible
4586:  go: downloading github.com/igm/sockjs-go/v3 v3.0.2
4587:  go: downloading gopkg.in/yaml.v2 v2.4.0
4588:  go: downloading github.com/oschwald/maxminddb-golang v1.10.0
4589:  go: downloading github.com/felixge/httpsnoop v1.0.4
4590:  go: downloading github.com/elastic/go-sysinfo v1.11.2
4591:  go: downloading github.com/pkg/errors v0.9.1
4592:  go: downloading go.elastic.co/fastjson v1.1.0
...

4644:  go: downloading github.com/pelletier/go-toml/v2 v2.2.3
4645:  go: downloading gopkg.in/yaml.v3 v3.0.1
4646:  go: downloading github.com/groob/finalizer v0.0.0-20170707115354-4c2ed49aabda
4647:  go: downloading github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8
4648:  go: downloading cloud.google.com/go/iam v1.5.3
4649:  go: downloading github.com/googleapis/gax-go/v2 v2.17.0
4650:  go: downloading go.opencensus.io v0.24.0
4651:  go: downloading golang.org/x/sync v0.20.0
4652:  go: downloading google.golang.org/grpc v1.79.3
4653:  go: downloading google.golang.org/protobuf v1.36.11
4654:  go: downloading github.com/micromdm/nanolib v0.2.0
4655:  go: downloading github.com/nats-io/nkeys v0.4.15
4656:  go: downloading github.com/nats-io/nuid v1.0.1
4657:  go: downloading github.com/go-logfmt/logfmt v0.5.1
4658:  go: downloading go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352
4659:  go: downloading github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901
4660:  go: downloading github.com/elastic/go-windows v1.0.1
...

4670:  go: downloading github.com/googleapis/enterprise-certificate-proxy v0.3.12
4671:  time=level=INFO msg="GOOS environment variable is not set. Using system detected: 'windows'"
4672:  time=level=INFO msg="INSTALLATION_SEARCH_DIRECTORY environment variable is not set. Using default: 'C:\\Program Files'"
4673:  time=level=INFO msg="Validating app: Granola (granola/windows)"
4674:  time=level=INFO msg=Downloading...
4675:  time=level=INFO msg="Executing install script..." app=Granola
4676:  time=level=WARN msg="no changes detected in C:\\Program Files directory after running application script." app=Granola
4677:  time=level=INFO msg="Looking for app: Granola, version: 7.277.1" app=Granola
4678:  time=level=INFO msg="Found app: 'Granola 7.277.1' at , Version: 7.277.1" app=Granola
4679:  time=level=INFO msg="Executing uninstall script for app..." app=Granola
4680:  time=level=INFO msg="Looking for app: Granola, version: 7.277.1" app=Granola
4681:  time=level=INFO msg="All checks passed for app: Granola (granola/windows)"
4682:  time=level=INFO msg="Validating app: Power BI (power-bi/windows)"
4683:  time=level=INFO msg=Downloading...
4684:  time=level=INFO msg="Executing install script..." app="Power BI"
4685:  time=level=ERROR msg="Error executing install script: exit status 1" app="Power BI"
4686:  time=level=ERROR msg="Output: \n--------------------\n\n--------------------" app="Power BI"
4687:  time=level=INFO msg="New application detected at: C:\\Program Files\\Microsoft Power BI Desktop" app="Power BI"
4688:  time=level=WARN msg="failed to remove PBIDesktopSetup_x64.exe: unlinkat C:\\Users\\runneradmin\\AppData\\Local\\Temp\\fma-validate-2090746479\\PBIDesktopSetup_x64.exe: Access is denied."
4689:  time=level=WARN msg="Some apps were validated with warnings: [Granola]"
4690:  time=level=INFO msg="Validated 1 out of 2 apps successfully."
4691:  time=level=INFO msg="Apps with errors: [Power BI]"
4692:  time=level=ERROR msg="warning failed to remove temporary directory: unlinkat C:\\Users\\runneradmin\\AppData\\Local\\Temp\\fma-validate-2090746479\\PBIDesktopSetup_x64.exe: Access is denied."
4693:  exit status 1
4694:  ##[error]Process completed with exit code 1.
4695:  Post job cleanup.

@github-actions

Copy link
Copy Markdown
Contributor

Closing in favor of #46375.

@github-actions github-actions Bot closed this May 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants