Skip to content

Update Fleet-maintained apps - #49174

Merged
allenhouchins merged 1 commit into
mainfrom
fma-2607110018
Jul 11, 2026
Merged

Update Fleet-maintained apps#49174
allenhouchins merged 1 commit into
mainfrom
fma-2607110018

Conversation

@fleet-release

@fleet-release fleet-release commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Automated ingestion of latest Fleet-maintained app data.

Summary by CodeRabbit

  • Updates
    • Updated managed app installers and release metadata for the latest versions of Arc, Beekeeper Studio, Claude, CleanMyMac, Clop, Dropbox, Google Credential Provider, Hive, Kiro CLI, PDFsam Basic, RewriteBar, Santa, Super Productivity, Superwhisper, and Warp.
    • Updated installer download links and verification checksums to support the new releases.
    • Refreshed Dropbox uninstall handling and Santa’s installation package for improved upgrade support.

Generated automatically with cmd/maintained-apps.
@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/arc/windows.json

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

ee/maintained-apps/outputs/beekeeper-studio/darwin.json

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

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

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

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

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

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

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

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

=== Install Script (no changes) ===
=== Uninstall // db5b3d96 -> cb543651 ===

--- /tmp/old.Sb0Nco	2026-07-11 00:25:35.801039046 +0000
+++ /tmp/new.ptcwv6	2026-07-11 00:25:35.801039046 +0000
@@ -1,4 +1,4 @@
-$product_code = '{C3CA8C95-7298-5ACF-ACD0-1F954F0A551F}'
+$product_code = '{D222FC32-3F3D-5818-9C9E-F00102AE398D}'
 $timeoutSeconds = 300  # 5 minute timeout
 
 # Fleet uninstalls app using product code that's extracted on upload

ee/maintained-apps/outputs/google-credential-provider-for-windows/windows.json

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

ee/maintained-apps/outputs/hive-app/darwin.json

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

ee/maintained-apps/outputs/kiro-cli/darwin.json

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

ee/maintained-apps/outputs/pdfsam-basic/darwin.json

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

ee/maintained-apps/outputs/pdfsam-basic/windows.json

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

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

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

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

=== Install // 301d1718 -> 374f38f4 ===

--- /tmp/old.cjS6GS	2026-07-11 00:25:36.044039759 +0000
+++ /tmp/new.nZAcB2	2026-07-11 00:25:36.044039759 +0000
@@ -101,5 +101,5 @@
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
 quit_and_track_application 'com.northpolesec.santa'
-sudo installer -pkg "$TMPDIR/santa-2026.5.pkg" -target /
+sudo installer -pkg "$TMPDIR/santa-2026.6.pkg" -target /
 relaunch_application 'com.northpolesec.santa'

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

ee/maintained-apps/outputs/super-productivity/darwin.json

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

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

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

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

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

@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Updated 17 maintained-app output entries to newer releases across macOS and Windows. Changes synchronize version fields, patch-query thresholds, installer URLs, and SHA-256 checksums. Dropbox’s uninstall reference now uses a new MSI product code. Santa’s install reference and embedded script now install the 2026.6 package.

Possibly related PRs

  • fleetdm/fleet#49117: Updates overlapping maintained-app output definitions and release metadata.
  • fleetdm/fleet#49032: Applies similar version, query, installer URL, and checksum updates to several entries.
  • fleetdm/fleet#47570: Updates the Dropbox Windows definition and uninstall MSI product code.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description is far too vague and does not follow the required template sections or checklist items. Expand the description to include the required issue reference, checklist items, and a Testing section with any relevant validation details.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately reflects the main change: updating Fleet-maintained apps.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fma-2607110018

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.

@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/santa/darwin.json`:
- Around line 4-19: Update the Santa entry’s install_script_ref and refs mapping
so they use the hash of the current install script body, 7be72426, ensuring the
runtime lookup resolves correctly; update the key consistently wherever the
existing 374f38f4 reference appears.
🪄 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: 92a23ea3-522b-41ef-83b8-90c8e91fc0e4

📥 Commits

Reviewing files that changed from the base of the PR and between a1b764a and 0d03b0c.

📒 Files selected for processing (17)
  • ee/maintained-apps/outputs/arc/darwin.json
  • ee/maintained-apps/outputs/arc/windows.json
  • ee/maintained-apps/outputs/beekeeper-studio/darwin.json
  • ee/maintained-apps/outputs/claude/windows.json
  • ee/maintained-apps/outputs/cleanmymac/darwin.json
  • ee/maintained-apps/outputs/clop/darwin.json
  • ee/maintained-apps/outputs/dropbox/windows.json
  • ee/maintained-apps/outputs/google-credential-provider-for-windows/windows.json
  • ee/maintained-apps/outputs/hive-app/darwin.json
  • ee/maintained-apps/outputs/kiro-cli/darwin.json
  • ee/maintained-apps/outputs/pdfsam-basic/darwin.json
  • ee/maintained-apps/outputs/pdfsam-basic/windows.json
  • ee/maintained-apps/outputs/rewritebar/darwin.json
  • ee/maintained-apps/outputs/santa/darwin.json
  • ee/maintained-apps/outputs/super-productivity/darwin.json
  • ee/maintained-apps/outputs/superwhisper/darwin.json
  • ee/maintained-apps/outputs/warp/darwin.json

Comment on lines +4 to +19
"version": "2026.6",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.northpolesec.santa';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.northpolesec.santa' AND version_compare(bundle_short_version, '2026.5') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.northpolesec.santa' AND version_compare(bundle_short_version, '2026.6') < 0);"
},
"installer_url": "https://github.com/northpolesec/santa/releases/download/2026.5/santa-2026.5.dmg",
"install_script_ref": "301d1718",
"installer_url": "https://github.com/northpolesec/santa/releases/download/2026.6/santa-2026.6.dmg",
"install_script_ref": "374f38f4",
"uninstall_script_ref": "8bd95da7",
"sha256": "33beb0e72be4e80a082c9bf0df4c9fa05e818148f7235eeaa932db4984eab342",
"sha256": "7a0bc3a01bd9b3f1fdd5e870aff79eeda88f62e55e1b28200b5d1cda5710e081",
"default_categories": [
"Productivity"
]
}
],
"refs": {
"301d1718": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath \"$INSTALLER_PATH\")\")\n# functions\n\nquit_and_track_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n eval \"export $var_name=0\"\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n eval \"export $var_name=0\"\n return\n fi\n\n # App was running, mark it for relaunch\n eval \"export $var_name=1\"\n echo \"Application '$bundle_id' was running; will relaunch after installation.\"\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nrelaunch_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local was_running\n\n # Check if the app was running before installation\n eval \"was_running=\\$$var_name\"\n if [[ \"$was_running\" != \"1\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping relaunching application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Relaunching application '$bundle_id'...\"\n\n # Launch the app in the logged-in user's GUI session. Apps launched by root\n # won't register with the user's Dock/GUI, so run 'open' as the console user.\n # Use 'launchctl asuser' to bootstrap into the console user's Mach namespace\n # and GUI session — 'sudo -u' alone doesn't do this, which can cause\n # LSOpenURLsWithRole() failures even when 'open' exits 0.\n local open_status=0\n if [[ $EUID -eq 0 ]]; then\n local console_uid\n console_uid=$(id -u \"$console_user\")\n /bin/launchctl asuser \"$console_uid\" sudo -u \"$console_user\" open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n else\n open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n fi\n\n if [[ $open_status -eq 0 ]]; then\n echo \"Application '$bundle_id' relaunched successfully.\"\n else\n echo \"Failed to relaunch application '$bundle_id'.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nyes | hdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\" || exit 1\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\" || true\n# install pkg files\nquit_and_track_application 'com.northpolesec.santa'\nsudo installer -pkg \"$TMPDIR/santa-2026.5.pkg\" -target /\nrelaunch_application 'com.northpolesec.santa'\n",
"374f38f4": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath \"$INSTALLER_PATH\")\")\n# functions\n\nquit_and_track_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n eval \"export $var_name=0\"\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n eval \"export $var_name=0\"\n return\n fi\n\n # App was running, mark it for relaunch\n eval \"export $var_name=1\"\n echo \"Application '$bundle_id' was running; will relaunch after installation.\"\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nrelaunch_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local was_running\n\n # Check if the app was running before installation\n eval \"was_running=\\$$var_name\"\n if [[ \"$was_running\" != \"1\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping relaunching application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Relaunching application '$bundle_id'...\"\n\n # Launch the app in the logged-in user's GUI session. Apps launched by root\n # won't register with the user's Dock/GUI, so run 'open' as the console user.\n # Use 'launchctl asuser' to bootstrap into the console user's Mach namespace\n # and GUI session — 'sudo -u' alone doesn't do this, which can cause\n # LSOpenURLsWithRole() failures even when 'open' exits 0.\n local open_status=0\n if [[ $EUID -eq 0 ]]; then\n local console_uid\n console_uid=$(id -u \"$console_user\")\n /bin/launchctl asuser \"$console_uid\" sudo -u \"$console_user\" open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n else\n open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n fi\n\n if [[ $open_status -eq 0 ]]; then\n echo \"Application '$bundle_id' relaunched successfully.\"\n else\n echo \"Failed to relaunch application '$bundle_id'.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nyes | hdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\" || exit 1\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\" || true\n# install pkg files\nquit_and_track_application 'com.northpolesec.santa'\nsudo installer -pkg \"$TMPDIR/santa-2026.6.pkg\" -target /\nrelaunch_application 'com.northpolesec.santa'\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.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Verify that install_script_ref matches sha256(script)[:8] of the install script content.

# Extract the install_script_ref value
ref=$(jq -r '.versions[0].install_script_ref' ee/maintained-apps/outputs/santa/darwin.json)
echo "install_script_ref: $ref"

# Extract the script content for that ref
script=$(jq -r ".refs[\"$ref\"]" ee/maintained-apps/outputs/santa/darwin.json)

# Compute sha256[:8] of the script content
computed=$(printf '%s' "$script" | sha256sum | cut -c1-8)
echo "computed hash:   $computed"

if [[ "$ref" == "$computed" ]]; then
  echo "✅ Match: install_script_ref is consistent with script content."
else
  echo "❌ Mismatch: install_script_ref ($ref) != sha256(script)[:8] ($computed)"
fi

Repository: fleetdm/fleet

Length of output: 309


🏁 Script executed:

#!/bin/bash
set -euo pipefail

json='ee/maintained-apps/outputs/santa/darwin.json'
ref=$(jq -r '.versions[0].install_script_ref' "$json")
script=$(jq -r --arg ref "$ref" '.refs[$ref]' "$json")

python3 - <<'PY' "$ref" "$script"
import hashlib, sys
ref = sys.argv[1]
script = sys.argv[2]
digest = hashlib.sha256(script.encode("utf-8")).hexdigest()[:8]
print(f"install_script_ref: {ref}")
print(f"computed hash:   {digest}")
print("match:" , ref == digest)
PY

Repository: fleetdm/fleet

Length of output: 219


Fix the install script ref mismatch in ee/maintained-apps/outputs/santa/darwin.json:4-19

install_script_ref is 374f38f4, but the referenced script body hashes to 7be72426, so the script lookup will miss at runtime. Regenerate the ref from the current script content or update the key to match the script.

🤖 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/santa/darwin.json` around lines 4 - 19, Update the
Santa entry’s install_script_ref and refs mapping so they use the hash of the
current install script body, 7be72426, ensuring the runtime lookup resolves
correctly; update the key consistently wherever the existing 374f38f4 reference
appears.

@allenhouchins
allenhouchins merged commit 61d1ba6 into main Jul 11, 2026
13 checks passed
@allenhouchins
allenhouchins deleted the fma-2607110018 branch July 11, 2026 01:21
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