Skip to content

Update Fleet-maintained apps - #47004

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

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

Conversation

@fleet-release

@fleet-release fleet-release commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Automated ingestion of latest Fleet-maintained app data.

Summary by CodeRabbit

Release Notes

  • Chores
    • Updated version metadata and installer packages for 11 supported applications across macOS and Windows platforms to their latest releases: Adobe Acrobat Reader, AWS CLI, Box Drive, Citrix Workspace, CrashPlan, Cursor, Krita, OneDrive, TextExpander, VNC Server, and Zed.

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

github-actions Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Script Diff Results

ee/maintained-apps/outputs/adobe-acrobat-reader/windows.json

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

ee/maintained-apps/outputs/aws-cli/windows.json

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

ee/maintained-apps/outputs/box-drive/darwin.json

=== Install // 5b80f593 -> 1c60c85f ===

--- /tmp/old.tn6gAF	2026-06-06 16:25:48.905995634 +0000
+++ /tmp/new.Y5excO	2026-06-06 16:25:48.905995634 +0000
@@ -96,5 +96,5 @@
 
 # install pkg files
 quit_and_track_application 'com.box.desktop'
-sudo installer -pkg "$TMPDIR/BoxDrive-2.51.233.pkg" -target /
+sudo installer -pkg "$TMPDIR/BoxDrive-2.52.306.pkg" -target /
 relaunch_application 'com.box.desktop'

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

ee/maintained-apps/outputs/citrix-workspace/darwin.json

=== Install // fe7ba180 -> d0785661 ===

--- /tmp/old.Mq788A	2026-06-06 16:25:48.949996571 +0000
+++ /tmp/new.qiVBXx	2026-06-06 16:25:48.949996571 +0000
@@ -96,5 +96,5 @@
 
 # install pkg files
 quit_and_track_application 'com.citrix.receiver.nomas'
-sudo installer -pkg "$TMPDIR/CitrixWorkspaceAppUniversal26.03.0.49.pkg" -target /
+sudo installer -pkg "$TMPDIR/CitrixWorkspaceAppUniversal26.03.10.40.pkg" -target /
 relaunch_application 'com.citrix.receiver.nomas'

=== Uninstall // ed152120 -> a1c686b5 ===

--- /tmp/old.fwbSRK	2026-06-06 16:25:48.964996891 +0000
+++ /tmp/new.nQDQ1f	2026-06-06 16:25:48.964996891 +0000
@@ -210,6 +210,7 @@
 remove_launchctl_service 'com.citrix.devicetrust.launchagent'
 remove_launchctl_service 'com.citrix.ReceiverHelper'
 remove_launchctl_service 'com.citrix.ReceiverUninstallHelper'
+remove_launchctl_service 'com.citrix.ReceiverUpdaterHelper'
 remove_launchctl_service 'com.citrix.safariadapter'
 remove_launchctl_service 'com.citrix.ServiceRecords'
 remove_launchctl_service 'com.citrix.UninstallMonitor'
@@ -231,6 +232,8 @@
 forget_pkg 'com.citrix.ICAClientcwa'
 remove_pkg_files 'com.citrix.ICAClienthdx'
 forget_pkg 'com.citrix.ICAClienthdx'
+remove_pkg_files 'com.citrix.receiver.bcr'
+forget_pkg 'com.citrix.receiver.bcr'
 trash $LOGGED_IN_USER '~/Library/Application Support/Citrix Receiver'
 trash $LOGGED_IN_USER '~/Library/Application Support/Citrix Workspace'
 trash $LOGGED_IN_USER '~/Library/Application Support/Citrix'

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

=== Install Script (no changes) ===
=== Uninstall // 2920a618 -> 095dbea6 ===

--- /tmp/old.fatioI	2026-06-06 16:25:49.010997854 +0000
+++ /tmp/new.kvtGV3	2026-06-06 16:25:49.011997874 +0000
@@ -208,6 +208,8 @@
 (cd /Users/$LOGGED_IN_USER && sudo 'Uninstall.app/Contents/Resources/uninstall.sh')
 remove_pkg_files 'com.crashplan.app.pkg'
 forget_pkg 'com.crashplan.app.pkg'
+remove_pkg_files 'com.crashplan.uninstaller.pkg'
+forget_pkg 'com.crashplan.uninstaller.pkg'
 trash $LOGGED_IN_USER '/Library/Application Support/CrashPlan'
 trash $LOGGED_IN_USER '/Library/Caches/CrashPlan'
 trash $LOGGED_IN_USER '/Library/LaunchDaemons/com.crashplan.service.plist'

ee/maintained-apps/outputs/cursor/windows.json

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

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

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

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

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

ee/maintained-apps/outputs/textexpander/windows.json

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

ee/maintained-apps/outputs/vnc-server/darwin.json

=== Install // 6f646a79 -> 1c2836bb ===

--- /tmp/old.oOCORu	2026-06-06 16:25:49.181001336 +0000
+++ /tmp/new.mYR74b	2026-06-06 16:25:49.181001336 +0000
@@ -96,5 +96,5 @@
 
 # install pkg files
 quit_and_track_application 'com.realvnc.vncserver'
-sudo installer -pkg "$TMPDIR/VNC-Server-7.15.0-MacOSX-universal.pkg" -target /
+sudo installer -pkg "$TMPDIR/VNC-Server-7.17.0-MacOSX-universal.pkg" -target /
 relaunch_application 'com.realvnc.vncserver'

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

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

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

@coderabbitai

coderabbitai Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

This PR updates maintained-app version metadata across 10 applications spanning Windows and macOS platforms. Each update follows a consistent pattern: bumping the app version field, updating the SQL patched version-compare predicate to the new threshold, pointing the installer_url to the new build path, and replacing the expected sha256 checksum. Seven updates are metadata-only; three additional updates (Box Drive, Citrix Workspace, CrashPlan, VNC Server) also revise embedded script references and installer paths within the refs section.

Possibly related PRs

  • fleetdm/fleet#44921: Updates Fleet-maintained app metadata for macOS apps by bumping versions, adjusting queries.patched thresholds, and updating installer URLs and SHA-256 hashes.
  • fleetdm/fleet#45972: Updates maintained-app metadata in ee/maintained-apps/outputs/zed/darwin.json by changing version fields and associated installer URL and SHA-256 values.
  • fleetdm/fleet#46810: Updates Fleet maintained-app manifest data by changing version, queries.patched thresholds, installer URLs, and SHA-256 values across multiple apps including Zed and AWS CLI.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The description 'Automated ingestion of latest Fleet-maintained app data' is vague and does not provide meaningful details about the specific changes, but indicates this is an automated update. Consider adding more context: which apps were updated, what versions changed, or why this update was necessary for better clarity.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Update Fleet-maintained apps' directly describes the main change—updating metadata for multiple Fleet-maintained applications across multiple files.
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-2606061621

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/crashplan/darwin.json`:
- Line 19: The script invokes the CrashPlan uninstaller using a user-relative
path via "(cd /Users/$LOGGED_IN_USER && sudo
'Uninstall.app/Contents/Resources/uninstall.sh')" which can silently fail;
change this to resolve and call the uninstaller by absolute path and check it is
executable before running: determine the correct absolute path (e.g., under
/Users/$LOGGED_IN_USER/Uninstall.app or from pkgutil/pkg-info install-location),
test with an executable check (like [[ -x "ABS_PATH" ]]) and only then run sudo
on that ABS_PATH; update the invocation near the cd/Uninstall.app line so the
script uses the absolute uninstaller path and guards execution.
🪄 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: 836d9e9d-bfe1-4932-a601-1a840db078ef

📥 Commits

Reviewing files that changed from the base of the PR and between 31a3657 and a3e6b38.

📒 Files selected for processing (11)
  • ee/maintained-apps/outputs/adobe-acrobat-reader/windows.json
  • ee/maintained-apps/outputs/aws-cli/windows.json
  • ee/maintained-apps/outputs/box-drive/darwin.json
  • ee/maintained-apps/outputs/citrix-workspace/darwin.json
  • ee/maintained-apps/outputs/crashplan/darwin.json
  • ee/maintained-apps/outputs/cursor/windows.json
  • ee/maintained-apps/outputs/krita/darwin.json
  • ee/maintained-apps/outputs/onedrive/darwin.json
  • ee/maintained-apps/outputs/textexpander/windows.json
  • ee/maintained-apps/outputs/vnc-server/darwin.json
  • ee/maintained-apps/outputs/zed/darwin.json

],
"refs": {
"2920a618": "#!/bin/bash\n\n# variables\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nexpand_pkgid_and_map() {\n local PKGID=\"$1\"\n local FUNC=\"$2\"\n if [[ \"$PKGID\" == *\"*\" ]]; then\n local prefix=\"${PKGID%\\*}\"\n echo \"Expanding wildcard for PKGID: $PKGID\"\n for receipt in $(pkgutil --pkgs | grep \"^${prefix}\"); do\n echo \"Processing $receipt\"\n \"$FUNC\" \"$receipt\"\n done\n else\n \"$FUNC\" \"$PKGID\"\n fi\n}\n\nforget_pkg() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" forget_receipt\n}\n\nforget_receipt() {\n local PKGID=\"$1\"\n sudo pkgutil --forget \"$PKGID\"\n}\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nremove_launchctl_service() {\n local service=\"$1\"\n local booleans=(\"true\" \"false\")\n local plist_status\n local paths\n local should_sudo\n\n echo \"Removing launchctl service ${service}\"\n\n for should_sudo in \"${booleans[@]}\"; do\n plist_status=$(launchctl list \"${service}\" 2>/dev/null)\n\n if [[ $plist_status == \\{* ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo launchctl remove \"${service}\"\n else\n launchctl remove \"${service}\"\n fi\n sleep 1\n fi\n\n paths=(\n \"/Library/LaunchAgents/${service}.plist\"\n \"/Library/LaunchDaemons/${service}.plist\"\n )\n\n # if not using sudo, prepend the home directory to the paths\n if [[ $should_sudo == \"false\" ]]; then\n for i in \"${!paths[@]}\"; do\n paths[i]=\"${HOME}${paths[i]}\"\n done\n fi\n\n for path in \"${paths[@]}\"; do\n if [[ -e \"$path\" ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo rm -f -- \"$path\"\n else\n rm -f -- \"$path\"\n fi\n fi\n done\n done\n}\n\nremove_pkg_files() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" remove_receipt_files\n}\n\nremove_receipt_files() {\n local PKGID=\"$1\"\n local PKGINFO VOLUME INSTALL_LOCATION FULL_INSTALL_LOCATION\n\n echo \"pkgutil --pkg-info-plist \\\"$PKGID\\\"\"\n PKGINFO=$(pkgutil --pkg-info-plist \"$PKGID\")\n VOLUME=$(echo \"$PKGINFO\" | awk '/<key>volume<\\/key>/ {getline; gsub(/.*<string>|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/<key>install-location<\\/key>/ {getline; gsub(/.*<string>|<\\/string>.*/, \"\"); print}')\n\n if [ -z \"$INSTALL_LOCATION\" ] || [ \"$INSTALL_LOCATION\" = \"/\" ]; then\n FULL_INSTALL_LOCATION=\"$VOLUME\"\n else\n FULL_INSTALL_LOCATION=\"$VOLUME/$INSTALL_LOCATION\"\n FULL_INSTALL_LOCATION=$(echo \"$FULL_INSTALL_LOCATION\" | sed 's|//|/|g')\n fi\n\n echo \"sudo pkgutil --only-files --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-files --files \"$PKGID\" | sed \"s|^|/${INSTALL_LOCATION}/|\" | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n echo \"sudo pkgutil --only-dirs --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | grep '\\\\.app$' | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-dirs --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | grep '\\.app$' | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n root_app_dir=$(\n sudo pkgutil --only-dirs --files \"$PKGID\" \\\n | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" \\\n | grep 'Applications' \\\n | awk '{ print length, $0 }' \\\n | sort -n \\\n | head -n1 \\\n | cut -d' ' -f2-\n )\n if [ -n \"$root_app_dir\" ]; then\n echo \"sudo rmdir -p \\\"$root_app_dir\\\" 2>/dev/null || :\"\n sudo rmdir -p \"$root_app_dir\" 2>/dev/null || :\n fi\n}\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nremove_launchctl_service 'com.crashplan.engine'\nquit_application 'com.crashplan.app'\n(cd /Users/$LOGGED_IN_USER && sudo 'Uninstall.app/Contents/Resources/uninstall.sh')\nremove_pkg_files 'com.crashplan.app.pkg'\nforget_pkg 'com.crashplan.app.pkg'\ntrash $LOGGED_IN_USER '/Library/Application Support/CrashPlan'\ntrash $LOGGED_IN_USER '/Library/Caches/CrashPlan'\ntrash $LOGGED_IN_USER '/Library/LaunchDaemons/com.crashplan.service.plist'\ntrash $LOGGED_IN_USER '/Library/Logs/CrashPlan'\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.crashplan.desktop.sfl*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/CrashPlan'\ntrash $LOGGED_IN_USER '~/Library/LaunchAgents/com.crashplan.menubar.plist'\ntrash $LOGGED_IN_USER '~/Library/Logs/CrashPlan'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.crashplan.desktop.plist'\n",
"095dbea6": "#!/bin/bash\n\n# variables\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nexpand_pkgid_and_map() {\n local PKGID=\"$1\"\n local FUNC=\"$2\"\n if [[ \"$PKGID\" == *\"*\" ]]; then\n local prefix=\"${PKGID%\\*}\"\n echo \"Expanding wildcard for PKGID: $PKGID\"\n for receipt in $(pkgutil --pkgs | grep \"^${prefix}\"); do\n echo \"Processing $receipt\"\n \"$FUNC\" \"$receipt\"\n done\n else\n \"$FUNC\" \"$PKGID\"\n fi\n}\n\nforget_pkg() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" forget_receipt\n}\n\nforget_receipt() {\n local PKGID=\"$1\"\n sudo pkgutil --forget \"$PKGID\"\n}\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nremove_launchctl_service() {\n local service=\"$1\"\n local booleans=(\"true\" \"false\")\n local plist_status\n local paths\n local should_sudo\n\n echo \"Removing launchctl service ${service}\"\n\n for should_sudo in \"${booleans[@]}\"; do\n plist_status=$(launchctl list \"${service}\" 2>/dev/null)\n\n if [[ $plist_status == \\{* ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo launchctl remove \"${service}\"\n else\n launchctl remove \"${service}\"\n fi\n sleep 1\n fi\n\n paths=(\n \"/Library/LaunchAgents/${service}.plist\"\n \"/Library/LaunchDaemons/${service}.plist\"\n )\n\n # if not using sudo, prepend the home directory to the paths\n if [[ $should_sudo == \"false\" ]]; then\n for i in \"${!paths[@]}\"; do\n paths[i]=\"${HOME}${paths[i]}\"\n done\n fi\n\n for path in \"${paths[@]}\"; do\n if [[ -e \"$path\" ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo rm -f -- \"$path\"\n else\n rm -f -- \"$path\"\n fi\n fi\n done\n done\n}\n\nremove_pkg_files() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" remove_receipt_files\n}\n\nremove_receipt_files() {\n local PKGID=\"$1\"\n local PKGINFO VOLUME INSTALL_LOCATION FULL_INSTALL_LOCATION\n\n echo \"pkgutil --pkg-info-plist \\\"$PKGID\\\"\"\n PKGINFO=$(pkgutil --pkg-info-plist \"$PKGID\")\n VOLUME=$(echo \"$PKGINFO\" | awk '/<key>volume<\\/key>/ {getline; gsub(/.*<string>|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/<key>install-location<\\/key>/ {getline; gsub(/.*<string>|<\\/string>.*/, \"\"); print}')\n\n if [ -z \"$INSTALL_LOCATION\" ] || [ \"$INSTALL_LOCATION\" = \"/\" ]; then\n FULL_INSTALL_LOCATION=\"$VOLUME\"\n else\n FULL_INSTALL_LOCATION=\"$VOLUME/$INSTALL_LOCATION\"\n FULL_INSTALL_LOCATION=$(echo \"$FULL_INSTALL_LOCATION\" | sed 's|//|/|g')\n fi\n\n echo \"sudo pkgutil --only-files --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-files --files \"$PKGID\" | sed \"s|^|/${INSTALL_LOCATION}/|\" | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n echo \"sudo pkgutil --only-dirs --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | grep '\\\\.app$' | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-dirs --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | grep '\\.app$' | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n root_app_dir=$(\n sudo pkgutil --only-dirs --files \"$PKGID\" \\\n | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" \\\n | grep 'Applications' \\\n | awk '{ print length, $0 }' \\\n | sort -n \\\n | head -n1 \\\n | cut -d' ' -f2-\n )\n if [ -n \"$root_app_dir\" ]; then\n echo \"sudo rmdir -p \\\"$root_app_dir\\\" 2>/dev/null || :\"\n sudo rmdir -p \"$root_app_dir\" 2>/dev/null || :\n fi\n}\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nremove_launchctl_service 'com.crashplan.engine'\nquit_application 'com.crashplan.app'\n(cd /Users/$LOGGED_IN_USER && sudo 'Uninstall.app/Contents/Resources/uninstall.sh')\nremove_pkg_files 'com.crashplan.app.pkg'\nforget_pkg 'com.crashplan.app.pkg'\nremove_pkg_files 'com.crashplan.uninstaller.pkg'\nforget_pkg 'com.crashplan.uninstaller.pkg'\ntrash $LOGGED_IN_USER '/Library/Application Support/CrashPlan'\ntrash $LOGGED_IN_USER '/Library/Caches/CrashPlan'\ntrash $LOGGED_IN_USER '/Library/LaunchDaemons/com.crashplan.service.plist'\ntrash $LOGGED_IN_USER '/Library/Logs/CrashPlan'\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.crashplan.desktop.sfl*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/CrashPlan'\ntrash $LOGGED_IN_USER '~/Library/LaunchAgents/com.crashplan.menubar.plist'\ntrash $LOGGED_IN_USER '~/Library/Logs/CrashPlan'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.crashplan.desktop.plist'\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

Use an absolute CrashPlan uninstaller path instead of a user-home relative path.

Line 19 runs sudo 'Uninstall.app/Contents/Resources/uninstall.sh' after cd /Users/$LOGGED_IN_USER, so resolution depends on a relative location under the user home and can silently fail, leaving a partial uninstall. Resolve the uninstaller path explicitly (absolute path or from receipt metadata) and guard with an executable check before running it.

🤖 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/crashplan/darwin.json` at line 19, The script
invokes the CrashPlan uninstaller using a user-relative path via "(cd
/Users/$LOGGED_IN_USER && sudo 'Uninstall.app/Contents/Resources/uninstall.sh')"
which can silently fail; change this to resolve and call the uninstaller by
absolute path and check it is executable before running: determine the correct
absolute path (e.g., under /Users/$LOGGED_IN_USER/Uninstall.app or from
pkgutil/pkg-info install-location), test with an executable check (like [[ -x
"ABS_PATH" ]]) and only then run sudo on that ABS_PATH; update the invocation
near the cd/Uninstall.app line so the script uses the absolute uninstaller path
and guards execution.

@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 maintained-apps validation step on Windows.
- The validator could not
download the TextExpander Windows installer from
https://cdn.textexpander.com/windows/844.2.0/TextExpander_x64.msi because the URL returned HTTP 403
(forbidden), causing fleet_maintained_app.url validation to fail.
- As a result, only 3 of 4 apps
were validated and the job exited with exit status 1 / Process completed with exit code 1 (see log
lines ~4867-4874).

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

147:  * [new branch]            11938-loadtesting-branch    -> origin/11938-loadtesting-branch
148:  * [new branch]            12007-ui-idp-metadata       -> origin/12007-ui-idp-metadata
149:  * [new branch]            12351-try-fix-for-fleet-desktop -> origin/12351-try-fix-for-fleet-desktop
150:  * [new branch]            12356-puppet-callback       -> origin/12356-puppet-callback
151:  * [new branch]            12375-query-bulk-action     -> origin/12375-query-bulk-action
152:  * [new branch]            12474-documentation         -> origin/12474-documentation
153:  * [new branch]            12614-federated-auth-support -> origin/12614-federated-auth-support
154:  * [new branch]            12687-host-issues-query     -> origin/12687-host-issues-query
155:  * [new branch]            12696-loadtest-cis-changes  -> origin/12696-loadtest-cis-changes
156:  * [new branch]            12842-fleetd-bitlocker-management -> origin/12842-fleetd-bitlocker-management
157:  * [new branch]            12842-fleetd-bitlocker-table -> origin/12842-fleetd-bitlocker-table
158:  * [new branch]            12889-faster-software       -> origin/12889-faster-software
159:  * [new branch]            13287-loadtest-changes      -> origin/13287-loadtest-changes
160:  * [new branch]            13288-poc-fleet-fips        -> origin/13288-poc-fleet-fips
161:  * [new branch]            13485-query-reports-migration -> origin/13485-query-reports-migration
162:  * [new branch]            13574-cache-failed-policy-counts -> origin/13574-cache-failed-policy-counts
163:  * [new branch]            13657-docs                  -> origin/13657-docs
...

175:  * [new branch]            146orch                     -> origin/146orch
176:  * [new branch]            14753-windows-ps1-api       -> origin/14753-windows-ps1-api
177:  * [new branch]            14957-test-dep-screen       -> origin/14957-test-dep-screen
178:  * [new branch]            14957-test-dep-screen-patch -> origin/14957-test-dep-screen-patch
179:  * [new branch]            15068-disk-encryption-ii    -> origin/15068-disk-encryption-ii
180:  * [new branch]            15082-download-api-docs     -> origin/15082-download-api-docs
181:  * [new branch]            15082-make-endpoints-consistent -> origin/15082-make-endpoints-consistent
182:  * [new branch]            15082-update-download-endpoints -> origin/15082-update-download-endpoints
183:  * [new branch]            15380-hosts-api-doc         -> origin/15380-hosts-api-doc
184:  * [new branch]            15461-ui-dep-assign-profile-responses -> origin/15461-ui-dep-assign-profile-responses
185:  * [new branch]            15463-msi-fix               -> origin/15463-msi-fix
186:  * [new branch]            15559-move-scep             -> origin/15559-move-scep
187:  * [new branch]            15633                       -> origin/15633
188:  * [new branch]            15770-mac-os-vuln           -> origin/15770-mac-os-vuln
189:  * [new branch]            15801-migration             -> origin/15801-migration
190:  * [new branch]            15912-password-reset-error-code -> origin/15912-password-reset-error-code
191:  * [new branch]            16182-log-root              -> origin/16182-log-root
...

625:  * [new branch]            7765-frontend               -> origin/7765-frontend
626:  * [new branch]            7766-backend-final-main-merge -> origin/7766-backend-final-main-merge
627:  * [new branch]            7766-backend-test           -> origin/7766-backend-test
628:  * [new branch]            7766-frontend               -> origin/7766-frontend
629:  * [new branch]            7993-figure-out-the-limits-of-our-current-search-approach -> origin/7993-figure-out-the-limits-of-our-current-search-approach
630:  * [new branch]            8021-orbit-use-specified-identifier -> origin/8021-orbit-use-specified-identifier
631:  * [new branch]            8186-vulnerable-software-false-positive-docker -> origin/8186-vulnerable-software-false-positive-docker
632:  * [new branch]            8593-gitops                 -> origin/8593-gitops
633:  * [new branch]            8708-docs                   -> origin/8708-docs
634:  * [new branch]            8708-encryption-key-api     -> origin/8708-encryption-key-api
635:  * [new branch]            8708-ingest-file-vault      -> origin/8708-ingest-file-vault
636:  * [new branch]            8708-ingest-macos-encription-key -> origin/8708-ingest-macos-encription-key
637:  * [new branch]            8708-ingest-macos-encription-key-ii -> origin/8708-ingest-macos-encription-key-ii
638:  * [new branch]            8974-native-smbios-uuid-support -> origin/8974-native-smbios-uuid-support
639:  * [new branch]            9260-cis-checks-5.10.x      -> origin/9260-cis-checks-5.10.x
640:  * [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
641:  * [new branch]            9590-schema                 -> origin/9590-schema
...

876:  * [new branch]            allenhouchins-update-custom-tap -> origin/allenhouchins-update-custom-tap
877:  * [new branch]            allenhouchins-update-new-fma-skill -> origin/allenhouchins-update-new-fma-skill
878:  * [new branch]            allenhouchins-update-patch-policy-generation -> origin/allenhouchins-update-patch-policy-generation
879:  * [new branch]            allenhouchins-warp          -> origin/allenhouchins-warp
880:  * [new branch]            allenhouchins-windows-net-runtime-6 -> origin/allenhouchins-windows-net-runtime-6
881:  * [new branch]            allenhouchins-zoom-fma      -> origin/allenhouchins-zoom-fma
882:  * [new branch]            allenhouchins-zoom-logo-mac -> origin/allenhouchins-zoom-logo-mac
883:  * [new branch]            allenhouchins-zoom-policy-fix -> origin/allenhouchins-zoom-policy-fix
884:  * [new branch]            allenhouchins/fix-security-review-must-fixes -> origin/allenhouchins/fix-security-review-must-fixes
885:  * [new branch]            always-create-event-next-thu -> origin/always-create-event-next-thu
886:  * [new branch]            and_osq_proj                -> origin/and_osq_proj
887:  * [new branch]            andrey/loadtest-oval-vulns  -> origin/andrey/loadtest-oval-vulns
888:  * [new branch]            android-app-install-activity -> origin/android-app-install-activity
889:  * [new branch]            android-cofniguration-profiles-research -> origin/android-cofniguration-profiles-research
890:  * [new branch]            android-enroll-note         -> origin/android-enroll-note
891:  * [new branch]            android-enrollment-error    -> origin/android-enrollment-error
892:  * [new branch]            android-manual-enrollment-button -> origin/android-manual-enrollment-button
...

943:  * [new branch]            await-configuration-docs    -> origin/await-configuration-docs
944:  * [new branch]            aws-licensing-integration-proposal -> origin/aws-licensing-integration-proposal
945:  * [new branch]            backport-a41fb63            -> origin/backport-a41fb63
946:  * [new branch]            backport-c02af              -> origin/backport-c02af
947:  * [new branch]            backport-e65d6cf            -> origin/backport-e65d6cf
948:  * [new branch]            backport-ef07a406cc8dbccb4914bbd27631df74e5b13b49 -> origin/backport-ef07a406cc8dbccb4914bbd27631df74e5b13b49
949:  * [new branch]            backport-vpp-fix            -> origin/backport-vpp-fix
950:  * [new branch]            base-software-titles-loadtest -> origin/base-software-titles-loadtest
951:  * [new branch]            base-software-titles-loadtest-2 -> origin/base-software-titles-loadtest-2
952:  * [new branch]            beekeeper-fma-initial       -> origin/beekeeper-fma-initial
953:  * [new branch]            bettapizza                  -> origin/bettapizza
954:  * [new branch]            bettapizza--ghost-testimonial-update -> origin/bettapizza--ghost-testimonial-update
955:  * [new branch]            bettapizza-patch-1          -> origin/bettapizza-patch-1
956:  * [new branch]            bettapizza-patch-2          -> origin/bettapizza-patch-2
957:  * [new branch]            bettapizza-patch-3          -> origin/bettapizza-patch-3
958:  * [new branch]            better-byod-error           -> origin/better-byod-error
959:  * [new branch]            bounded-context-proposals   -> origin/bounded-context-proposals
...

992:  * [new branch]            cherry-pick-41914-to-rc-v4.83.0 -> origin/cherry-pick-41914-to-rc-v4.83.0
993:  * [new branch]            cherry-pick-42773-vitals-constants -> origin/cherry-pick-42773-vitals-constants
994:  * [new branch]            cherry-pick-8750-into-rc-minor-fleet-v4.60.0 -> origin/cherry-pick-8750-into-rc-minor-fleet-v4.60.0
995:  * [new branch]            cherry-pick-dogfood-change  -> origin/cherry-pick-dogfood-change
996:  * [new branch]            cherry-pick-dogfood-env-vars -> origin/cherry-pick-dogfood-env-vars
997:  * [new branch]            cherry-pick-fleetctl-changes-to-allow-testing -> origin/cherry-pick-fleetctl-changes-to-allow-testing
998:  * [new branch]            cherry-pick-mac-address-vital -> origin/cherry-pick-mac-address-vital
999:  * [new branch]            cherry-pick-patches         -> origin/cherry-pick-patches
1000:  * [new branch]            cherry-pick-remove-overrides-in-dev-mode -> origin/cherry-pick-remove-overrides-in-dev-mode
1001:  * [new branch]            cherry-pick-util            -> origin/cherry-pick-util
1002:  * [new branch]            cherry-pick-webhooks        -> origin/cherry-pick-webhooks
1003:  * [new branch]            cherrypick-v4.85.0-version-bump-into-main -> origin/cherrypick-v4.85.0-version-bump-into-main
1004:  * [new branch]            chore-UI-update-for-CSP     -> origin/chore-UI-update-for-CSP
1005:  * [new branch]            chore-add-specific-yarn-version -> origin/chore-add-specific-yarn-version
1006:  * [new branch]            chore-backend-api-patterns  -> origin/chore-backend-api-patterns
1007:  * [new branch]            chore-change-error-message-custom-profile -> origin/chore-change-error-message-custom-profile
1008:  * [new branch]            chore-cp-chage-status-code-turn-off-mdm -> origin/chore-cp-chage-status-code-turn-off-mdm
...

1046:  * [new branch]            claude/slack-add-fma-foxit-pdf-9UpRv -> origin/claude/slack-add-fma-foxit-pdf-9UpRv
1047:  * [new branch]            claude/slack-session-Yw6M0  -> origin/claude/slack-session-Yw6M0
1048:  * [new branch]            claude/sub-pr-42006         -> origin/claude/sub-pr-42006
1049:  * [new branch]            claude/update-mock-fixtures-for-ipolicy -> origin/claude/update-mock-fixtures-for-ipolicy
1050:  * [new branch]            claude/update-mock-fixtures-policy-interface -> origin/claude/update-mock-fixtures-policy-interface
1051:  * [new branch]            cli-update-fleetd-naming    -> origin/cli-update-fleetd-naming
1052:  * [new branch]            clone-423                   -> origin/clone-423
1053:  * [new branch]            close-product-designer-position -> origin/close-product-designer-position
1054:  * [new branch]            codeowner-test              -> origin/codeowner-test
1055:  * [new branch]            codeql-icon-fe-fix          -> origin/codeql-icon-fe-fix
1056:  * [new branch]            coderabbit-skip-paths       -> origin/coderabbit-skip-paths
1057:  * [new branch]            collect-abm-apns-expiration-usage-statistics -> origin/collect-abm-apns-expiration-usage-statistics
1058:  * [new branch]            command-palette-claude      -> origin/command-palette-claude
1059:  * [new branch]            components-in-same-file-instead-of-closures -> origin/components-in-same-file-instead-of-closures
1060:  * [new branch]            conf-2644-branch-from-main  -> origin/conf-2644-branch-from-main
1061:  * [new branch]            consistent-error            -> origin/consistent-error
1062:  * [new branch]            consistent-rest-api-language-part-ii -> origin/consistent-rest-api-language-part-ii
...

1193:  * [new branch]            edwardsb-vuln-processing-fix-sandcastle -> origin/edwardsb-vuln-processing-fix-sandcastle
1194:  * [new branch]            edwardsb-vuln-processing-volume-fix -> origin/edwardsb-vuln-processing-volume-fix
1195:  * [new branch]            edwardsb/deployment-guide-updates -> origin/edwardsb/deployment-guide-updates
1196:  * [new branch]            edwardsb/restrict_console_access -> origin/edwardsb/restrict_console_access
1197:  * [new branch]            elastic_rum                 -> origin/elastic_rum
1198:  * [new branch]            enable-jit-by-default       -> origin/enable-jit-by-default
1199:  * [new branch]            enable-test-go-automation-macos -> origin/enable-test-go-automation-macos
1200:  * [new branch]            enforce-firefox-doh         -> origin/enforce-firefox-doh
1201:  * [new branch]            enforce-firefox-windows     -> origin/enforce-firefox-windows
1202:  * [new branch]            enforce-ios-26.5-update-deadline-july-2026 -> origin/enforce-ios-26.5-update-deadline-july-2026
1203:  * [new branch]            enforce-iso27001-workstations -> origin/enforce-iso27001-workstations
1204:  * [new branch]            enforce-macos-15.5-update-deadline -> origin/enforce-macos-15.5-update-deadline
1205:  * [new branch]            enforce-macos-version-workstations -> origin/enforce-macos-version-workstations
1206:  * [new branch]            enroll-android-feature-guide -> origin/enroll-android-feature-guide
1207:  * [new branch]            ericswenson0-patch-1        -> origin/ericswenson0-patch-1
1208:  * [new branch]            error-counts                -> origin/error-counts
1209:  * [new branch]            errors-perf-testing         -> origin/errors-perf-testing
1210:  * [new branch]            es-reports                  -> origin/es-reports
...

1225:  * [new branch]            eugkuo-patch-5              -> origin/eugkuo-patch-5
1226:  * [new branch]            eugkuo-patch-6-slugs-FMA    -> origin/eugkuo-patch-6-slugs-FMA
1227:  * [new branch]            example-fleetctl-profiles   -> origin/example-fleetctl-profiles
1228:  * [new branch]            exp-mdbook-docs             -> origin/exp-mdbook-docs
1229:  * [new branch]            experiment-disable-some-deletes -> origin/experiment-disable-some-deletes
1230:  * [new branch]            experiment-hardcode-counters-to-zero -> origin/experiment-hardcode-counters-to-zero
1231:  * [new branch]            experiment-no-txs           -> origin/experiment-no-txs
1232:  * [new branch]            experiment-status-tooltip   -> origin/experiment-status-tooltip
1233:  * [new branch]            experiment-with-two-branches -> origin/experiment-with-two-branches
1234:  * [new branch]            experimental_moveitem       -> origin/experimental_moveitem
1235:  * [new branch]            experimient-no-counts       -> origin/experimient-no-counts
1236:  * [new branch]            expiredcertstool            -> origin/expiredcertstool
1237:  * [new branch]            extra-dep-logs              -> origin/extra-dep-logs
1238:  * [new branch]            f84ee4c5f4                  -> origin/f84ee4c5f4
1239:  * [new branch]            faf-doc-clarification       -> origin/faf-doc-clarification
1240:  * [new branch]            failing-test                -> origin/failing-test
1241:  * [new branch]            faster-ci-checks            -> origin/faster-ci-checks
...

1280:  * [new branch]            feature-gkarr-testing2      -> origin/feature-gkarr-testing2
1281:  * [new branch]            feature-hydrant-ca          -> origin/feature-hydrant-ca
1282:  * [new branch]            feature-idp-byod            -> origin/feature-idp-byod
1283:  * [new branch]            feature-orbit-find          -> origin/feature-orbit-find
1284:  * [new branch]            feature-prioritization      -> origin/feature-prioritization
1285:  * [new branch]            feature-v4.44.1-live-queries -> origin/feature-v4.44.1-live-queries
1286:  * [new branch]            feature-windows-mdm-policy-extraction -> origin/feature-windows-mdm-policy-extraction
1287:  * [new branch]            feature/add-blank-to-osquer-link -> origin/feature/add-blank-to-osquer-link
1288:  * [new branch]            feature_14722-activity-feed-webhooks -> origin/feature_14722-activity-feed-webhooks
1289:  * [new branch]            feature_18115-crit-vuln-issues -> origin/feature_18115-crit-vuln-issues
1290:  * [new branch]            feature_19010-ipad-ios-lock-wipe-backend-changes -> origin/feature_19010-ipad-ios-lock-wipe-backend-changes
1291:  * [new branch]            feature_22078               -> origin/feature_22078
1292:  * [new branch]            fix                         -> origin/fix
1293:  * [new branch]            fix-35118-cis-win10-v4      -> origin/fix-35118-cis-win10-v4
1294:  * [new branch]            fix-4.84.4-k8s              -> origin/fix-4.84.4-k8s
1295:  * [new branch]            fix-40083-failed-install-retries -> origin/fix-40083-failed-install-retries
1296:  * [new branch]            fix-41290-vpp-added-status  -> origin/fix-41290-vpp-added-status
1297:  * [new branch]            fix-41337-save-env-secrets-dry-run -> origin/fix-41337-save-env-secrets-dry-run
1298:  * [new branch]            fix-43623-fma-patch-policy-gitops -> origin/fix-43623-fma-patch-policy-gitops
1299:  * [new branch]            fix-43673-my-device-sort    -> origin/fix-43673-my-device-sort
1300:  * [new branch]            fix-44199-embedded-app-bundles -> origin/fix-44199-embedded-app-bundles
1301:  * [new branch]            fix-android-unenroll-activities -> origin/fix-android-unenroll-activities
1302:  * [new branch]            fix-blockquotes-google-groups -> origin/fix-blockquotes-google-groups
1303:  * [new branch]            fix-case-in-deploy-config-docs -> origin/fix-case-in-deploy-config-docs
1304:  * [new branch]            fix-cert-details-modal      -> origin/fix-cert-details-modal
1305:  * [new branch]            fix-checkerboard-scroll-to-right -> origin/fix-checkerboard-scroll-to-right
1306:  * [new branch]            fix-checkerboard-tooltip-nowrap -> origin/fix-checkerboard-tooltip-nowrap
1307:  * [new branch]            fix-cloudflare-warp-fma-output-json -> origin/fix-cloudflare-warp-fma-output-json
1308:  * [new branch]            fix-codeql-ci-error         -> origin/fix-codeql-ci-error
1309:  * [new branch]            fix-colima                  -> origin/fix-colima
1310:  * [new branch]            fix-color-for-mobile-sticky-nav -> origin/fix-color-for-mobile-sticky-nav
1311:  * [new branch]            fix-conflict-in-feature_19010-ipad-ios-lock-wipe -> origin/fix-conflict-in-feature_19010-ipad-ios-lock-wipe
1312:  * [new branch]            fix-contrib-docs            -> origin/fix-contrib-docs
1313:  * [new branch]            fix-cve-2026-2792-firefox-esr -> origin/fix-cve-2026-2792-firefox-esr
1314:  * [new branch]            fix-cve-validate-enrichment-canary -> origin/fix-cve-validate-enrichment-canary
1315:  * [new branch]            fix-dashboard-host-count-card-breakpoint -> origin/fix-dashboard-host-count-card-breakpoint
1316:  * [new branch]            fix-docker-publish          -> origin/fix-docker-publish
1317:  * [new branch]            fix-dogfood-workstation     -> origin/fix-dogfood-workstation
1318:  * [new branch]            fix-firefox-cve-2026-2792   -> origin/fix-firefox-cve-2026-2792
1319:  * [new branch]            fix-firefox-fma-conflict-error-msg -> origin/fix-firefox-fma-conflict-error-msg
1320:  * [new branch]            fix-flakey-orbit-test       -> origin/fix-flakey-orbit-test
...

1326:  * [new branch]            fix-host-counts-vpp-software -> origin/fix-host-counts-vpp-software
1327:  * [new branch]            fix-instability-ubuntu-latest -> origin/fix-instability-ubuntu-latest
1328:  * [new branch]            fix-ios-ipados-enrollment-label-42721 -> origin/fix-ios-ipados-enrollment-label-42721
1329:  * [new branch]            fix-list-sw-permissions     -> origin/fix-list-sw-permissions
1330:  * [new branch]            fix-mdm-enrolled-webhook    -> origin/fix-mdm-enrolled-webhook
1331:  * [new branch]            fix-mdm-redirect            -> origin/fix-mdm-redirect
1332:  * [new branch]            fix-mdm-url-truncation      -> origin/fix-mdm-url-truncation
1333:  * [new branch]            fix-missing-test-schema-update -> origin/fix-missing-test-schema-update
1334:  * [new branch]            fix-modernize               -> origin/fix-modernize
1335:  * [new branch]            fix-no-space-left-on-device-failure -> origin/fix-no-space-left-on-device-failure
1336:  * [new branch]            fix-notarization            -> origin/fix-notarization
1337:  * [new branch]            fix-orbit-notarization      -> origin/fix-orbit-notarization
1338:  * [new branch]            fix-os-settings-name-col-truncation -> origin/fix-os-settings-name-col-truncation
1339:  * [new branch]            fix-os-settings-underline-descender-clip -> origin/fix-os-settings-underline-descender-clip
1340:  * [new branch]            fix-pricing-more-info-icon-documentationurl -> origin/fix-pricing-more-info-icon-documentationurl
1341:  * [new branch]            fix-receive-from-github-error -> origin/fix-receive-from-github-error
1342:  * [new branch]            fix-sandbox-local           -> origin/fix-sandbox-local
...

1355:  * [new branch]            fix-ui-turn-on-mdm-external -> origin/fix-ui-turn-on-mdm-external
1356:  * [new branch]            fix-ui-typo-fleet-maintained-empty -> origin/fix-ui-typo-fleet-maintained-empty
1357:  * [new branch]            fix-vpp-edit-fleet-desktop-message -> origin/fix-vpp-edit-fleet-desktop-message
1358:  * [new branch]            fix-win-os-version          -> origin/fix-win-os-version
1359:  * [new branch]            fix_14825                   -> origin/fix_14825
1360:  * [new branch]            fixes-on-minor-fleet-v4.54.0 -> origin/fixes-on-minor-fleet-v4.54.0
1361:  * [new branch]            fixes-plus-4.35.1           -> origin/fixes-plus-4.35.1
1362:  * [new branch]            flaky-tests-nov-6           -> origin/flaky-tests-nov-6
1363:  * [new branch]            fleet-desktop-linux-browser -> origin/fleet-desktop-linux-browser
1364:  * [new branch]            fleet-desktop-version       -> origin/fleet-desktop-version
1365:  * [new branch]            fleet-mdm-server-url        -> origin/fleet-mdm-server-url
1366:  * [new branch]            fleet-multiple-abm-vpp-proposal -> origin/fleet-multiple-abm-vpp-proposal
1367:  * [new branch]            fleet-premium-users-usage-statistics -> origin/fleet-premium-users-usage-statistics
1368:  * [new branch]            fleet-release-infra         -> origin/fleet-release-infra
1369:  * [new branch]            fleet-server-config-1817    -> origin/fleet-server-config-1817
1370:  * [new branch]            fleet-server-log-request-errors -> origin/fleet-server-log-request-errors
1371:  * [new branch]            fleet-ship-rebuild          -> origin/fleet-ship-rebuild
...

2230:  * [new branch]            hotfix-failing-tests        -> origin/hotfix-failing-tests
2231:  * [new branch]            hotfix-query-update         -> origin/hotfix-query-update
2232:  * [new branch]            hotfix-revert-sofa-tables   -> origin/hotfix-revert-sofa-tables
2233:  * [new branch]            hotfix-v4.67.2-migration    -> origin/hotfix-v4.67.2-migration
2234:  * [new branch]            hotfix-v4.76.1              -> origin/hotfix-v4.76.1
2235:  * [new branch]            hover-gravatar              -> origin/hover-gravatar
2236:  * [new branch]            hughestaylor-patch-1        -> origin/hughestaylor-patch-1
2237:  * [new branch]            hughestaylor-patch-1-1      -> origin/hughestaylor-patch-1-1
2238:  * [new branch]            ignore-fleetctl-vulnerabilities -> origin/ignore-fleetctl-vulnerabilities
2239:  * [new branch]            improve-flakey-test         -> origin/improve-flakey-test
2240:  * [new branch]            improve-prometheus-metrics  -> origin/improve-prometheus-metrics
2241:  * [new branch]            improve-software-tooltips   -> origin/improve-software-tooltips
2242:  * [new branch]            include-mnt-in-gads-metric  -> origin/include-mnt-in-gads-metric
2243:  * [new branch]            increase-goreleaser-timeout-to-60m -> origin/increase-goreleaser-timeout-to-60m
2244:  * [new branch]            ingress-gateway-support     -> origin/ingress-gateway-support
2245:  * [new branch]            insert-software-installers-retry-error -> origin/insert-software-installers-retry-error
2246:  * [new branch]            integration-ci-debug        -> origin/integration-ci-debug
...

2257:  * [new branch]            irenareedy-patch-10         -> origin/irenareedy-patch-10
2258:  * [new branch]            irenareedy-patch-2          -> origin/irenareedy-patch-2
2259:  * [new branch]            irenareedy-patch-3          -> origin/irenareedy-patch-3
2260:  * [new branch]            irenareedy-patch-4          -> origin/irenareedy-patch-4
2261:  * [new branch]            irenareedy-patch-5          -> origin/irenareedy-patch-5
2262:  * [new branch]            irenareedy-patch-6          -> origin/irenareedy-patch-6
2263:  * [new branch]            irenareedy-patch-7          -> origin/irenareedy-patch-7
2264:  * [new branch]            irenareedy-patch-8          -> origin/irenareedy-patch-8
2265:  * [new branch]            irenareedy-patch-9          -> origin/irenareedy-patch-9
2266:  * [new branch]            irenareedy-thumbtack-case-study -> origin/irenareedy-thumbtack-case-study
2267:  * [new branch]            iso-27001-compliance        -> origin/iso-27001-compliance
2268:  * [new branch]            iso42001-ai-discovery-inventory -> origin/iso42001-ai-discovery-inventory
2269:  * [new branch]            issue-11545-my-device-dep-modal -> origin/issue-11545-my-device-dep-modal
2270:  * [new branch]            issue-2716-specify-query-platforms -> origin/issue-2716-specify-query-platforms
2271:  * [new branch]            issue-3271-rate-limit-distributed-writes -> origin/issue-3271-rate-limit-distributed-writes
2272:  * [new branch]            issue-4361-mail-change-should-error -> origin/issue-4361-mail-change-should-error
2273:  * [new branch]            issue-conf-1968-delete-uninstalled-software-from-main -> origin/issue-conf-1968-delete-uninstalled-software-from-main
...

2471:  * [new branch]            melpike-activity-rotate-managed-local-account-password-37142 -> origin/melpike-activity-rotate-managed-local-account-password-37142
2472:  * [new branch]            melpike-add-public-endpoints-44742 -> origin/melpike-add-public-endpoints-44742
2473:  * [new branch]            melpike-api-device-url-43895 -> origin/melpike-api-device-url-43895
2474:  * [new branch]            melpike-api-manually-enroll-23242 -> origin/melpike-api-manually-enroll-23242
2475:  * [new branch]            melpike-api-minimum-version-39085 -> origin/melpike-api-minimum-version-39085
2476:  * [new branch]            melpike-api-py-script-41470 -> origin/melpike-api-py-script-41470
2477:  * [new branch]            melpike-audit-log-account-provisioning-45524 -> origin/melpike-audit-log-account-provisioning-45524
2478:  * [new branch]            melpike-audit-log-mdm-cmd-45021 -> origin/melpike-audit-log-mdm-cmd-45021
2479:  * [new branch]            melpike-audit-recovery-lock-password-rotate -> origin/melpike-audit-recovery-lock-password-rotate
2480:  * [new branch]            melpike-byod-wipe-lock-23242 -> origin/melpike-byod-wipe-lock-23242
2481:  * [new branch]            melpike-byod-wipe-lock-23242-1 -> origin/melpike-byod-wipe-lock-23242-1
2482:  * [new branch]            melpike-byod-wipe-lock-api-23242 -> origin/melpike-byod-wipe-lock-api-23242
2483:  * [new branch]            melpike-byod-wipe-lock-yaml-23242 -> origin/melpike-byod-wipe-lock-yaml-23242
2484:  * [new branch]            melpike-combine-guides-30674 -> origin/melpike-combine-guides-30674
2485:  * [new branch]            melpike-create-managed-local-account-guide-37141 -> origin/melpike-create-managed-local-account-guide-37141
2486:  * [new branch]            melpike-dep-error-messaging-43916 -> origin/melpike-dep-error-messaging-43916
2487:  * [new branch]            melpike-doc-deploy-sw-41470 -> origin/melpike-doc-deploy-sw-41470
...

2623:  * [new branch]            mna-doc-change-api-structure -> origin/mna-doc-change-api-structure
2624:  * [new branch]            mna-experiment-macos-profiles-uuid -> origin/mna-experiment-macos-profiles-uuid
2625:  * [new branch]            mna-fix-22558-windows-installer-stuck-pending -> origin/mna-fix-22558-windows-installer-stuck-pending
2626:  * [new branch]            mna-fix-duplicate-lock-unlock-activity -> origin/mna-fix-duplicate-lock-unlock-activity
2627:  * [new branch]            mna-fix-failing-tests       -> origin/mna-fix-failing-tests
2628:  * [new branch]            mna-fix-flaky-integration-test -> origin/mna-fix-flaky-integration-test
2629:  * [new branch]            mna-fix-oom-fleetctl-test   -> origin/mna-fix-oom-fleetctl-test
2630:  * [new branch]            mna-loadtest-enroll-host-limit -> origin/mna-loadtest-enroll-host-limit
2631:  * [new branch]            mna-orbit-node-key          -> origin/mna-orbit-node-key
2632:  * [new branch]            mna-revert-change-to-autogenerated-activities-doc -> origin/mna-revert-change-to-autogenerated-activities-doc
2633:  * [new branch]            mna-temp-osquery-perf-loadtest -> origin/mna-temp-osquery-perf-loadtest
2634:  * [new branch]            mna11997                    -> origin/mna11997
2635:  * [new branch]            mock-associate-assets-endpoint -> origin/mock-associate-assets-endpoint
2636:  * [new branch]            monitoring-test             -> origin/monitoring-test
2637:  * [new branch]            more-conditional-access-api-updates -> origin/more-conditional-access-api-updates
2638:  * [new branch]            more-fd-errors              -> origin/more-fd-errors
2639:  * [new branch]            move-conditional-access-script-to-testing-qa -> origin/move-conditional-access-script-to-testing-qa
...

3174:  * [new branch]            sgress454/35376             -> origin/sgress454/35376
3175:  * [new branch]            sgress454/35452             -> origin/sgress454/35452
3176:  * [new branch]            sgress454/37127-open-macos-end-user-auth-window -> origin/sgress454/37127-open-macos-end-user-auth-window
3177:  * [new branch]            sgress454/38063-skeleton-server -> origin/sgress454/38063-skeleton-server
3178:  * [new branch]            sgress454/39344-rename-teams-to-fleet-all-changes -> origin/sgress454/39344-rename-teams-to-fleet-all-changes
3179:  * [new branch]            sgress454/39344-rename-teams-to-fleet-api-changes -> origin/sgress454/39344-rename-teams-to-fleet-api-changes
3180:  * [new branch]            sgress454/40642-update-jit-saml-prefix -> origin/sgress454/40642-update-jit-saml-prefix
3181:  * [new branch]            sgress454/43371-output-sso-settings-from-generate-gitops -> origin/sgress454/43371-output-sso-settings-from-generate-gitops
3182:  * [new branch]            sgress454/43482-re-pin      -> origin/sgress454/43482-re-pin
3183:  * [new branch]            sgress454/44077-disable-datasets-backend -> origin/sgress454/44077-disable-datasets-backend
3184:  * [new branch]            sgress454/44077-disable-datasets-docs -> origin/sgress454/44077-disable-datasets-docs
3185:  * [new branch]            sgress454/44077-disable-datasets-frontend -> origin/sgress454/44077-disable-datasets-frontend
3186:  * [new branch]            sgress454/45290-drop-mobile-from-charting -> origin/sgress454/45290-drop-mobile-from-charting
3187:  * [new branch]            sgress454/add-custom-hooks-to-patterns -> origin/sgress454/add-custom-hooks-to-patterns
3188:  * [new branch]            sgress454/add-vex-for-cve-2026-23517 -> origin/sgress454/add-vex-for-cve-2026-23517
3189:  * [new branch]            sgress454/adr-for-error-codes -> origin/sgress454/adr-for-error-codes
3190:  * [new branch]            sgress454/adr-refactor-list-hosts -> origin/sgress454/adr-refactor-list-hosts
...

3244:  * [new branch]            solutions-folder            -> origin/solutions-folder
3245:  * [new branch]            sort-seen-hosts-before-inserting -> origin/sort-seen-hosts-before-inserting
3246:  * [new branch]            spalmesano0-patch-2         -> origin/spalmesano0-patch-2
3247:  * [new branch]            sperad-props-documentation  -> origin/sperad-props-documentation
3248:  * [new branch]            spike-fleet-lint-plugin     -> origin/spike-fleet-lint-plugin
3249:  * [new branch]            spike-ui-permissions-pattern -> origin/spike-ui-permissions-pattern
3250:  * [new branch]            spokanemac-add-passcode-ddm-profile -> origin/spokanemac-add-passcode-ddm-profile
3251:  * [new branch]            spokanemac-dogfood-additional-apps -> origin/spokanemac-dogfood-additional-apps
3252:  * [new branch]            spokanemac-handbook-release-article -> origin/spokanemac-handbook-release-article
3253:  * [new branch]            spokanemac-macdevops-conference-post -> origin/spokanemac-macdevops-conference-post
3254:  * [new branch]            spokanemac-meetup-template  -> origin/spokanemac-meetup-template
3255:  * [new branch]            spokanemac-migrating-fleetdm-from-dogfood-to-terraform-on-aws -> origin/spokanemac-migrating-fleetdm-from-dogfood-to-terraform-on-aws
3256:  * [new branch]            spokanemac-release-article-issue-template -> origin/spokanemac-release-article-issue-template
3257:  * [new branch]            ssrf-transport-ip-blocking  -> origin/ssrf-transport-ip-blocking
3258:  * [new branch]            step4-improvements          -> origin/step4-improvements
3259:  * [new branch]            store-query-execution-and-ingestion-errors -> origin/store-query-execution-and-ingestion-errors
3260:  * [new branch]            support-breaking-osquery-downgrades -> origin/support-breaking-osquery-downgrades
...

3329:  * [new branch]            unauth-installers           -> origin/unauth-installers
3330:  * [new branch]            uniform-brex-spending-limit -> origin/uniform-brex-spending-limit
3331:  * [new branch]            untx-software               -> origin/untx-software
3332:  * [new branch]            upcoming-activities-mdm-commands -> origin/upcoming-activities-mdm-commands
3333:  * [new branch]            upcoming-commands           -> origin/upcoming-commands
3334:  * [new branch]            update-1password-and-safari-policy-versions-2601200025 -> origin/update-1password-and-safari-policy-versions-2601200025
3335:  * [new branch]            update-1password-and-safari-policy-versions-2601200610 -> origin/update-1password-and-safari-policy-versions-2601200610
3336:  * [new branch]            update-1password-and-safari-policy-versions-2602261818 -> origin/update-1password-and-safari-policy-versions-2602261818
3337:  * [new branch]            update-1password-and-safari-policy-versions-2603101819 -> origin/update-1password-and-safari-policy-versions-2603101819
3338:  * [new branch]            update-1password-and-safari-policy-versions-2604080037 -> origin/update-1password-and-safari-policy-versions-2604080037
3339:  * [new branch]            update-1password-and-safari-policy-versions-2604080637 -> origin/update-1password-and-safari-policy-versions-2604080637
3340:  * [new branch]            update-Cloudflare-WARP-FMA-with-UpgradeCode -> origin/update-Cloudflare-WARP-FMA-with-UpgradeCode
3341:  * [new branch]            update-article-format       -> origin/update-article-format
3342:  * [new branch]            update-bug-report-template  -> origin/update-bug-report-template
3343:  * [new branch]            update-build-instructions   -> origin/update-build-instructions
3344:  * [new branch]            update-build-script-error-message -> origin/update-build-script-error-message
3345:  * [new branch]            update-cancel-and-done-links -> origin/update-cancel-and-done-links
...

3420:  * [new branch]            update-santa-rules-chrome   -> origin/update-santa-rules-chrome
3421:  * [new branch]            update-solutions-folder     -> origin/update-solutions-folder
3422:  * [new branch]            update-testing-qa-apps-2511191525 -> origin/update-testing-qa-apps-2511191525
3423:  * [new branch]            update-tuf-keys             -> origin/update-tuf-keys
3424:  * [new branch]            update-tuf-md               -> origin/update-tuf-md
3425:  * [new branch]            update-usage-statistics-mobile-devices -> origin/update-usage-statistics-mobile-devices
3426:  * [new branch]            update-user-password-length-validation-test -> origin/update-user-password-length-validation-test
3427:  * [new branch]            update-vex-statements       -> origin/update-vex-statements
3428:  * [new branch]            update-why-this-way         -> origin/update-why-this-way
3429:  * [new branch]            upgrade-eslint              -> origin/upgrade-eslint
3430:  * [new branch]            upgrade-go                  -> origin/upgrade-go
3431:  * [new branch]            upgrade-typescript          -> origin/upgrade-typescript
3432:  * [new branch]            upload-msiexec-install-log  -> origin/upload-msiexec-install-log
3433:  * [new branch]            usage-stats-mobile-devices-count -> origin/usage-stats-mobile-devices-count
3434:  * [new branch]            use-dockerhub-creds         -> origin/use-dockerhub-creds
3435:  * [new branch]            user-channel-error          -> origin/user-channel-error
3436:  * [new branch]            users-fleets-tooltips       -> origin/users-fleets-tooltips
...

3581:  * [new branch]            wesite-fix-sales-rituals    -> origin/wesite-fix-sales-rituals
3582:  * [new branch]            willmayhone88-patch-1       -> origin/willmayhone88-patch-1
3583:  * [new branch]            win-fma-deepl               -> origin/win-fma-deepl
3584:  * [new branch]            win-fma-evernote            -> origin/win-fma-evernote
3585:  * [new branch]            win-fma-goland              -> origin/win-fma-goland
3586:  * [new branch]            win-fma-testing             -> origin/win-fma-testing
3587:  * [new branch]            win-fma-vnc-apps            -> origin/win-fma-vnc-apps
3588:  * [new branch]            win-mdm-loadtest            -> origin/win-mdm-loadtest
3589:  * [new branch]            windows-baseline            -> origin/windows-baseline
3590:  * [new branch]            windows-firefox-doh-script  -> origin/windows-firefox-doh-script
3591:  * [new branch]            windows-fma-msi-batch       -> origin/windows-fma-msi-batch
3592:  * [new branch]            windows-mdm-autopilot       -> origin/windows-mdm-autopilot
3593:  * [new branch]            windows-mdm-c-poc           -> origin/windows-mdm-c-poc
3594:  * [new branch]            windows-mdm-docs-auto-enroll -> origin/windows-mdm-docs-auto-enroll
3595:  * [new branch]            windows-mdm-load-test       -> origin/windows-mdm-load-test
3596:  * [new branch]            windows_enable_and_configure-error-message -> origin/windows_enable_and_configure-error-message
3597:  * [new branch]            workstations-to-use-edge-channels -> origin/workstations-to-use-edge-channels
...

3606:  * [new branch]            zenity-execuser             -> origin/zenity-execuser
3607:  * [new branch]            zhumo-patch-1               -> origin/zhumo-patch-1
3608:  * [new branch]            zhumo-patch-2               -> origin/zhumo-patch-2
3609:  * [new branch]            zhumo-patch-3               -> origin/zhumo-patch-3
3610:  * [new branch]            zhumo-patch-4               -> origin/zhumo-patch-4
3611:  * [new branch]            zhumo-patch-5               -> origin/zhumo-patch-5
3612:  * [new branch]            zhumo-patch-6               -> origin/zhumo-patch-6
3613:  * [new branch]            zhumo-patch-7               -> origin/zhumo-patch-7
3614:  * [new branch]            zizmor-template-injection   -> origin/zizmor-template-injection
3615:  * [new branch]            zwass-actions-reminders     -> origin/zwass-actions-reminders
3616:  * [new branch]            zwass-improve-macos-cpe     -> origin/zwass-improve-macos-cpe
3617:  * [new branch]            zwass-patch-1               -> origin/zwass-patch-1
3618:  * [new branch]            zwass-patch-2               -> origin/zwass-patch-2
3619:  * [new branch]            zwinnerman-fixup            -> origin/zwinnerman-fixup
3620:  * [new branch]            zwinnerman-livequery-tracing -> origin/zwinnerman-livequery-tracing
3621:  * [new branch]            zwinnerman-redis-error-handling -> origin/zwinnerman-redis-error-handling
3622:  * [new branch]            zwinnerman-test             -> origin/zwinnerman-test
...

4338:  ##[group]Run actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417
4339:  with:
4340:  go-version-file: fleet/go.mod
4341:  check-latest: false
4342:  token: ***
4343:  cache: true
4344:  env:
4345:  GH_TOKEN: ***
4346:  LOG_LEVEL: info
4347:  ##[endgroup]
4348:  Setup go version spec 1.26.3
4349:  Attempting to download 1.26.3...
4350:  matching 1.26.3...
4351:  Acquiring 1.26.3 from https://github.com/actions/go-versions/releases/download/1.26.3-25533533231/go-1.26.3-win32-x64.zip
4352:  Extracting Go...
4353:  [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\bb349835-7ff8-4532-b75b-e4d533bf6ddf', $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\bb349835-7ff8-4532-b75b-e4d533bf6ddf' -Force } else { throw $_ } } ;"
4354:  Successfully extracted go to D:\a\_temp\bb349835-7ff8-4532-b75b-e4d533bf6ddf
4355:  Adding to the cache ...
4356:  Created link C:\hostedtoolcache\windows\go\1.26.3\x64 => D:\hostedtoolcache\windows\go\1.26.3\x64
4357:  Created link C:\hostedtoolcache\windows\go\1.26.3\x64.complete => D:\hostedtoolcache\windows\go\1.26.3\x64.complete
4358:  Successfully cached go to C:\hostedtoolcache\windows\go\1.26.3\x64
4359:  Added go to the path
4360:  Successfully set up Go version 1.26.3
4361:  [command]C:\hostedtoolcache\windows\go\1.26.3\x64\bin\go.exe env GOMODCACHE
4362:  [command]C:\hostedtoolcache\windows\go\1.26.3\x64\bin\go.exe env GOCACHE
4363:  C:\Users\runneradmin\go\pkg\mod
4364:  C:\Users\runneradmin\AppData\Local\go-build
4365:  ##[warning]Restore cache failed: Dependencies file is not found in D:\a\fleet\fleet. Supported file pattern: go.mod
4366:  go version go1.26.3 windows/amd64
...

4449:  Detecting changed files in outputs directory...
4450:  Comparing HEAD with origin/main...
4451:  Fetching base branch apps.json from 31a36578cc1348fe9989136a5c298f4016259594...
4452:  Detected changed apps:
4453:  - adobe-acrobat-reader/windows
4454:  - aws-cli/windows
4455:  - box-drive/darwin
4456:  - citrix-workspace/darwin
4457:  - crashplan/darwin
4458:  - cursor/windows
4459:  - krita/darwin
4460:  - onedrive/darwin
4461:  - textexpander/windows
4462:  - vnc-server/darwin
4463:  - zed/darwin
4464:  ##[group]Run # Default to no changes if detection step failed or didn't set output
4465:  �[36;1m# Default to no changes if detection step failed or didn't set output�[0m
4466:  �[36;1m$hasChanges = "true"�[0m
...

4607:  �[36;1mWrite-Host "Filtering apps.json for slugs: $windowsSlugsJson"�[0m
4608:  �[36;1m�[0m
4609:  �[36;1m$windowsSlugsFile = Join-Path $env:TEMP "windows-slugs-$(New-Guid).json"�[0m
4610:  �[36;1mSet-Content -Path $windowsSlugsFile -Value $windowsSlugsJson -Encoding ascii -NoNewline�[0m
4611:  �[36;1m# Use forward slashes so Git Bash reads the path reliably (it reads this arg as a file).�[0m
4612:  �[36;1m$windowsSlugsFileForBash = $windowsSlugsFile -replace '\\', '/'�[0m
4613:  �[36;1m�[0m
4614:  �[36;1m# Backup original apps.json�[0m
4615:  �[36;1mCopy-Item -Path "ee\maintained-apps\outputs\apps.json" -Destination "ee\maintained-apps\outputs\apps.json.backup"�[0m
4616:  �[36;1m�[0m
4617:  �[36;1m# Create filtered apps.json�[0m
4618:  �[36;1m# Use a fixed path for the temp file to avoid issues with bash�[0m
4619:  �[36;1m$filteredAppsJson = Join-Path $env:TEMP "filtered-apps-$(New-Guid).json"�[0m
4620:  �[36;1mbash .github/scripts/filter-apps-json.sh "$windowsSlugsFileForBash" "$filteredAppsJson"�[0m
4621:  �[36;1mif ($LASTEXITCODE -ne 0) {�[0m
4622:  �[36;1m  Write-Host "Error: filter-apps-json.sh failed with exit code $LASTEXITCODE"�[0m
4623:  �[36;1m  exit 1�[0m
4624:  �[36;1m}�[0m
4625:  �[36;1m�[0m
4626:  �[36;1m# Verify the filtered file was created�[0m
4627:  �[36;1mif (-not (Test-Path $filteredAppsJson)) {�[0m
4628:  �[36;1m  Write-Host "Error: Filtered apps.json was not created at $filteredAppsJson"�[0m
4629:  �[36;1m  exit 1�[0m
...

4727:  go: downloading golang.org/x/oauth2 v0.35.0
4728:  go: downloading go.elastic.co/apm/v2 v2.7.0
4729:  go: downloading go.opentelemetry.io/otel v1.43.0
4730:  go: downloading go.opentelemetry.io/otel/metric v1.43.0
4731:  go: downloading go.opentelemetry.io/otel/trace v1.43.0
4732:  go: downloading github.com/mattn/go-colorable v0.1.13
4733:  go: downloading github.com/edsrzf/mmap-go v1.1.0
4734:  go: downloading github.com/secDre4mer/pkcs7 v0.0.0-20240322103146-665324a4461d
4735:  go: downloading github.com/aws/aws-sdk-go-v2/config v1.32.12
4736:  go: downloading github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.8
4737:  go: downloading github.com/aws/aws-sdk-go-v2 v1.41.5
4738:  go: downloading github.com/spf13/cobra v1.9.1
4739:  go: downloading github.com/spf13/viper v1.20.1
4740:  go: downloading github.com/go-kit/kit v0.12.0
4741:  go: downloading github.com/smallstep/pkcs7 v0.0.0-20240723090913-5e2c6a136dfa
4742:  go: downloading github.com/hashicorp/go-multierror v1.1.1
4743:  go: downloading github.com/micromdm/plist v0.2.3-0.20260123201933-667adaf87d87
4744:  go: downloading github.com/MicahParks/jwkset v0.11.0
4745:  go: downloading github.com/golang-jwt/jwt/v4 v4.5.2
4746:  go: downloading github.com/WatchBeam/clock v0.0.0-20170901150240-b08e6b4da7ea
4747:  go: downloading github.com/mattn/go-isatty v0.0.20
4748:  go: downloading go.opentelemetry.io/otel/sdk v1.43.0
4749:  go: downloading github.com/andygrunwald/go-jira v1.16.0
4750:  go: downloading github.com/cenkalti/backoff/v4 v4.3.0
4751:  go: downloading github.com/cenkalti/backoff v2.2.1+incompatible
4752:  go: downloading github.com/nukosuke/go-zendesk v0.13.1
4753:  go: downloading github.com/igm/sockjs-go/v3 v3.0.2
4754:  go: downloading gopkg.in/yaml.v2 v2.4.0
4755:  go: downloading github.com/oschwald/maxminddb-golang v1.10.0
4756:  go: downloading github.com/felixge/httpsnoop v1.0.4
4757:  go: downloading github.com/elastic/go-sysinfo v1.11.2
4758:  go: downloading github.com/pkg/errors v0.9.1
4759:  go: downloading go.elastic.co/fastjson v1.1.0
...

4815:  go: downloading cloud.google.com/go/iam v1.5.3
4816:  go: downloading go.opencensus.io v0.24.0
4817:  go: downloading golang.org/x/sync v0.20.0
4818:  go: downloading google.golang.org/grpc v1.79.3
4819:  go: downloading google.golang.org/protobuf v1.36.11
4820:  go: downloading github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8
4821:  go: downloading github.com/micromdm/nanolib v0.2.0
4822:  go: downloading github.com/nats-io/nkeys v0.4.15
4823:  go: downloading github.com/nats-io/nuid v1.0.1
4824:  go: downloading cloud.google.com/go/auth v0.18.2
4825:  go: downloading cloud.google.com/go/auth/oauth2adapt v0.2.8
4826:  go: downloading cloud.google.com/go/compute/metadata v0.9.0
4827:  go: downloading github.com/google/s2a-go v0.1.9
4828:  go: downloading github.com/go-logfmt/logfmt v0.5.1
4829:  go: downloading go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352
4830:  go: downloading github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901
4831:  go: downloading github.com/elastic/go-windows v1.0.1
...

4854:  time=level=INFO msg="Found app: 'AWS Command Line Interface v2' at , Version: 2.34.63.0" app="AWS Command Line Interface v2"
4855:  time=level=INFO msg="Executing uninstall script for app..." app="AWS Command Line Interface v2"
4856:  time=level=INFO msg="Looking for app: AWS Command Line Interface v2, version: 2.34.63" app="AWS Command Line Interface v2"
4857:  time=level=INFO msg="All checks passed for app: AWS Command Line Interface v2 (aws-cli/windows)"
4858:  time=level=INFO msg="Validating app: Cursor (cursor/windows)"
4859:  time=level=INFO msg=Downloading...
4860:  time=level=INFO msg="Executing install script..." app=Cursor
4861:  time=level=INFO msg="New application detected at: C:\\Program Files\\cursor" app=Cursor
4862:  time=level=INFO msg="Looking for app: Cursor, version: 3.7.12" app=Cursor
4863:  time=level=INFO msg="Found app: 'Cursor' at C:\\Program Files\\cursor\\, Version: 3.7.12" app=Cursor
4864:  time=level=INFO msg="Executing uninstall script for app..." app=Cursor
4865:  time=level=INFO msg="Looking for app: Cursor, version: 3.7.12" app=Cursor
4866:  time=level=INFO msg="All checks passed for app: Cursor (cursor/windows)"
4867:  time=level=INFO msg="Validating app: TextExpander (textexpander/windows)"
4868:  time=level=INFO msg=Downloading...
4869:  time=level=ERROR msg="Error downloading maintained app: downloading installer: validation failed: fleet_maintained_app.url Couldn't download maintained app installer. URL (\"https://cdn.textexpander.com/windows/844.2.0/TextExpander_x64.msi\") received response status code 403." app=TextExpander
4870:  time=level=WARN msg="Some apps were validated with warnings: [AWS Command Line Interface v2]"
4871:  time=level=INFO msg="Validated 3 out of 4 apps successfully."
4872:  time=level=INFO msg="Apps with errors: [TextExpander]"
4873:  exit status 1
4874:  ##[error]Process completed with exit code 1.
4875:  Post job cleanup.
...

4881:  [command]"C:\Program Files\Git\bin\git.exe" config --global --add safe.directory D:\a\fleet\fleet\fleet
4882:  [command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp core\.sshCommand
4883:  [command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\""
4884:  [command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
4885:  [command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :\""
4886:  Post job cleanup.
4887:  [harden-runner] post-step
4888:  stopping windows agent process...
4889:  agent PID from file: 5220
4890:  stopping agent process (PID: 5220)...
4891:  agent process stopped gracefully
4892:  PID file cleaned up
4893:  agent log:
4894:  time=level=INFO msg="[buildInfo] name=AgentWindows branch=HEAD tag=v1.0.2 commit=28f16fdca062c8e84782028adbfdc2bbe9759dcc"
4895:  time=level=INFO msg="GithubHeartBeatManager started"
4896:  time=level=INFO msg="Error Sending runner status Started: API call error, status code: 400"
4897:  {"time":"2026-06-06T16:24:57.278Z","level":"info","component":"session","session":"SS-User-d47ae229-2723-4a35-b0bd-aa6410c4751d","Handle":34,"BufferSizeKB":64,"MinBuffers":8,"MaxBuffers":30,"message":"Session started"}
...

5021:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5022:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5023:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5024:  time=level=WARN msg="pid reused" pid=10096 exe=wsl.exe existingExe=compile.exe existingStartTime=time=level=WARN msg="existing process not stopped, resetting it" pid=10096 exe=wsl.exe existingExe=compile.exe existingStartTime=time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5025:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5026:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5027:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5028:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5029:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5030:  time=level=WARN msg="pid reused" pid=7344 exe=CompatTelRunner.exe existingExe=compile.exe existingStartTime=time=level=WARN msg="existing process not stopped, resetting it" pid=7344 exe=CompatTelRunner.exe existingExe=compile.exe existingStartTime=time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5031:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5032:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5033:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5034:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5035:  time=level=WARN msg="pid reused" pid=8812 exe=SingleClientServicesUpdater.exe existingExe=asm.exe existingStartTime=time=level=WARN msg="existing process not stopped, resetting it" pid=8812 exe=SingleClientServicesUpdater.exe existingExe=asm.exe existingStartTime=time=level=WARN msg="pid reused" pid=7384 exe=msiexec.exe existingExe=compile.exe existingStartTime=time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5036:  time=level=WARN msg="existing process not stopped, resetting it" pid=7384 exe=msiexec.exe existingExe=compile.exe existingStartTime=time=level=WARN msg="pid reused" pid=6840 exe=armsvc.exe existingExe=compile.exe existingStartTime=time=level=WARN msg="existing process not stopped, resetting it" pid=6840 exe=armsvc.exe existingExe=compile.exe existingStartTime=time=level=INFO msg="Error Sending runner status Alive: API call error, status code: 400"
5037:  time=level=WARN msg="pid reused" pid=3604 exe=svchost.exe existingExe=compile.exe existingStartTime=time=level=WARN msg="existing process not stopped, resetting it" pid=3604 exe=svchost.exe existingExe=compile.exe existingStartTime=time=level=WARN msg="pid reused" pid=10176 exe=SingleClientServicesUpdater.exe existingExe=compile.exe existingStartTime=time=level=WARN msg="existing process not stopped, resetting it" pid=10176 exe=SingleClientServicesUpdater.exe existingExe=compile.exe existingStartTime=time=level=WARN msg="pid reused" pid=9300 exe=wsl.exe existingExe=git.exe existingStartTime=time=level=WARN msg="existing process not stopped, resetting it" pid=9300 exe=wsl.exe existingExe=git.exe existingStartTime=time=level=WARN msg="pid reused" pid=7508 exe=wsl.exe existingExe=compile.exe existingStartTime=time=level=WARN msg="existing process not stopped, resetting it" pid=7508 exe=wsl.exe existingExe=compile.exe existingStartTime=time=level=WARN msg="pid reused" pid=6824 exe=osqueryi.exe existingExe=wsl.exe existingStartTime=time=level=WARN msg="existing process not stopped, resetting it" pid=6824 exe=osqueryi.exe existingExe=wsl.exe existingStartTime=time=level=WARN msg="pid reused" pid=5228 exe=CompatTelRunner.exe existingExe=compile.exe existingStartTime=time=level=WARN msg="existing process not stopped, resetting it" pid=5228 exe=CompatTelRunner.exe existingExe=compile.exe existingStartTime=time=level=WARN msg="pid reused" pid=9240 exe=conhost.exe existingExe=compile.exe existingStartTime=time=level=WARN msg="existing process not stopped, resetting it" pid=9240 exe=conhost.exe existingExe=compile.exe existingStartTime=time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
...

5145:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5146:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5147:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5148:  time=level=WARN msg="pid reused" pid=2848 exe=wsl.exe existingExe=bash.exe existingStartTime=time=level=WARN msg="existing process not stopped, resetting it" pid=2848 exe=wsl.exe existingExe=bash.exe existingStartTime=time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5149:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5150:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5151:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5152:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5153:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5154:  time=level=WARN msg="pid reused" pid=2296 exe=CompatTelRunner.exe existingExe=compile.exe existingStartTime=time=level=WARN msg="existing process not stopped, resetting it" pid=2296 exe=CompatTelRunner.exe existingExe=compile.exe existingStartTime=time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5155:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5156:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5157:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5158:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5159:  time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12
5160:  time=level=INFO msg="Error Sending runner status Alive: API call error, status code: 400"
5161:  time=level=WARN msg="pid reused" pid=7260 exe=wsl.exe existingExe=compile.exe existingStartTime=time=level=WARN msg="existing process not stopped, resetting it" pid=7260 exe=wsl.exe existingExe=compile.exe existingStartTime=time=level=INFO msg="Desnation IP is Ignored" destAddr=168.63.129.16 event_header=12

@github-actions

github-actions Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Closing in favor of #47007.

@github-actions github-actions Bot closed this Jun 6, 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