Skip to content

Update Fleet-maintained apps - #45922

Merged
allenhouchins merged 1 commit into
mainfrom
fma-2605201929
May 20, 2026
Merged

Update Fleet-maintained apps#45922
allenhouchins merged 1 commit into
mainfrom
fma-2605201929

Conversation

@fleet-release

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

Copy link
Copy Markdown
Contributor

Automated ingestion of latest Fleet-maintained app data.

Summary by CodeRabbit

  • Chores
    • Updated Cursor Windows to version 3.5.17, including installer URL and security checksum validation.

Review Change Stack

Generated automatically with cmd/maintained-apps.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Claude Code Review

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

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

@coderabbitai

coderabbitai Bot commented May 20, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This PR updates the Cursor Windows maintained-app configuration in ee/maintained-apps/outputs/cursor/windows.json. The version entry is bumped from 3.4.20 to 3.5.17, with corresponding updates to the installer URL, SHA256 checksum, and the version-comparison threshold used in the patched query. The install and uninstall script references remain unchanged.

Possibly related PRs

  • fleetdm/fleet#44914: Both PRs modify ee/maintained-apps/outputs/cursor/windows.json by updating the Cursor Windows maintained-app version plus the corresponding patched query comparison and installer metadata (installer_url/sha256), leaving the install/uninstall script refs unchanged.
  • fleetdm/fleet#45158: Both PRs update maintained-app Windows metadata in ee/maintained-apps/outputs/*/windows.json by changing the version plus corresponding queries.patched/installer_url and sha256.
  • fleetdm/fleet#45225: Both PRs only update version metadata for Fleet-maintained apps in ee/maintained-apps/outputs/* Windows/darwin JSON without touching any shared code logic.
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is minimal and lacks required sections from the template (related issue, checklist items). It only contains a single sentence describing automated data ingestion. Complete the PR description with the template structure, including related issue reference and relevant checklist items such as changes files and testing confirmation.
Title check ❓ Inconclusive The title 'Update Fleet-maintained apps' is a generic, vague description that doesn't clarify what specific version updates were made or which applications were modified. Make the title more specific, e.g., 'Update Cursor Windows app to version 3.5.17' to clearly indicate which app(s) and versions were updated.
✅ Passed checks (3 passed)
Check name Status Explanation
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-2605201929

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/cursor/windows.json`:
- Line 9: The installer_url value for the Cursor entry is pointing to a URL that
returns HTTP 403 on download; locate the "installer_url" key (the value ending
with "CursorSetup-x64-3.5.17.exe") and replace it with a verified, publicly
downloadable URL (or remove/disable the entry) that returns HTTP 200 for GET
requests; confirm the new URL resolves for both HEAD and GET and update any
checksum or metadata tied to that installer if present (ensure the updated
installer filename/version matches the rest of the JSON metadata).
🪄 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: 3c6a3d75-f8dc-432b-81c0-ace44f78b531

📥 Commits

Reviewing files that changed from the base of the PR and between 59f6f84 and 8d9ef48.

📒 Files selected for processing (1)
  • ee/maintained-apps/outputs/cursor/windows.json

"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cursor' AND publisher = 'Anysphere' AND version_compare(version, '3.5.17') < 0);"
},
"installer_url": "https://downloads.cursor.com/production/0cf8b06883f54e26bb4f0fb8647c9500ccb4331f/win32/x64/system-setup/CursorSetup-x64-3.4.20.exe",
"installer_url": "https://downloads.cursor.com/production/d5b2fc092e16007956c9e5047f76097b9e626cab/win32/x64/system-setup/CursorSetup-x64-3.5.17.exe",

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 | 🔴 Critical | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Verify Cursor installer URL accessibility and SHA256 checksum

INSTALLER_URL="https://downloads.cursor.com/production/d5b2fc092e16007956c9e5047f76097b9e626cab/win32/x64/system-setup/CursorSetup-x64-3.5.17.exe"
EXPECTED_SHA256="69544572efa261a35e04732fc88a246b8116fd1a0e0e438cb1849df909320a2b"

echo "Checking URL accessibility..."
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" -I "$INSTALLER_URL")

if [ "$HTTP_STATUS" = "200" ]; then
  echo "✓ URL is accessible (HTTP $HTTP_STATUS)"
  
  echo "Downloading installer to compute SHA256..."
  TEMP_FILE=$(mktemp)
  curl -s -L "$INSTALLER_URL" -o "$TEMP_FILE"
  
  echo "Computing SHA256 checksum..."
  COMPUTED_SHA256=$(sha256sum "$TEMP_FILE" | awk '{print $1}')
  
  echo "Expected:  $EXPECTED_SHA256"
  echo "Computed:  $COMPUTED_SHA256"
  
  if [ "$COMPUTED_SHA256" = "$EXPECTED_SHA256" ]; then
    echo "✓ SHA256 checksum matches"
  else
    echo "✗ SHA256 checksum mismatch!"
    exit 1
  fi
  
  rm -f "$TEMP_FILE"
else
  echo "✗ URL is not accessible (HTTP $HTTP_STATUS)"
  exit 1
fi

Repository: fleetdm/fleet

Length of output: 373


🏁 Script executed:

#!/bin/bash
# Verify Cursor installer SHA256 using Python

INSTALLER_URL="https://downloads.cursor.com/production/d5b2fc092e16007956c9e5047f76097b9e626cab/win32/x64/system-setup/CursorSetup-x64-3.5.17.exe"
EXPECTED_SHA256="69544572efa261a35e04732fc88a246b8116fd1a0e0e438cb1849df909320a2b"

python3 <<'EOF'
import hashlib
import urllib.request
import sys

url = "https://downloads.cursor.com/production/d5b2fc092e16007956c9e5047f76097b9e626cab/win32/x64/system-setup/CursorSetup-x64-3.5.17.exe"
expected_sha256 = "69544572efa261a35e04732fc88a246b8116fd1a0e0e438cb1849df909320a2b"

print("Downloading installer...")
try:
    with urllib.request.urlopen(url) as response:
        sha256_hash = hashlib.sha256()
        chunk_size = 8192
        while True:
            chunk = response.read(chunk_size)
            if not chunk:
                break
            sha256_hash.update(chunk)
        
        computed_sha256 = sha256_hash.hexdigest()
        print(f"Expected:  {expected_sha256}")
        print(f"Computed:  {computed_sha256}")
        
        if computed_sha256 == expected_sha256:
            print("✓ SHA256 checksum matches")
            sys.exit(0)
        else:
            print("✗ SHA256 checksum mismatch!")
            sys.exit(1)
except Exception as e:
    print(f"✗ Error: {e}")
    sys.exit(1)
EOF

Repository: fleetdm/fleet

Length of output: 219


🏁 Script executed:

#!/bin/bash
# Verify Cursor installer SHA256 with SSL verification disabled

python3 <<'EOF'
import hashlib
import urllib.request
import ssl
import sys

url = "https://downloads.cursor.com/production/d5b2fc092e16007956c9e5047f76097b9e626cab/win32/x64/system-setup/CursorSetup-x64-3.5.17.exe"
expected_sha256 = "69544572efa261a35e04732fc88a246b8116fd1a0e0e438cb1849df909320a2b"

# Create SSL context that ignores certificate verification (sandbox limitation)
ssl_context = ssl.create_default_context()
ssl_context.check_hostname = False
ssl_context.verify_mode = ssl.CERT_NONE

print("Downloading installer...")
try:
    with urllib.request.urlopen(url, context=ssl_context) as response:
        sha256_hash = hashlib.sha256()
        chunk_size = 8192
        total_size = 0
        
        while True:
            chunk = response.read(chunk_size)
            if not chunk:
                break
            sha256_hash.update(chunk)
            total_size += len(chunk)
        
        computed_sha256 = sha256_hash.hexdigest()
        print(f"Downloaded: {total_size} bytes")
        print(f"Expected:   {expected_sha256}")
        print(f"Computed:   {computed_sha256}")
        
        if computed_sha256 == expected_sha256:
            print("✓ SHA256 checksum matches")
            sys.exit(0)
        else:
            print("✗ SHA256 checksum mismatch!")
            sys.exit(1)
except Exception as e:
    print(f"✗ Error: {e}")
    sys.exit(1)
EOF

Repository: fleetdm/fleet

Length of output: 117


🏁 Script executed:

cat -n ee/maintained-apps/outputs/cursor/windows.json | sed -n '5,15p'

Repository: fleetdm/fleet

Length of output: 810


The installer URL is inaccessible and returns HTTP 403 Forbidden on download attempts.

The URL passes HEAD requests (HTTP 200) but actively blocks downloads with 403 Forbidden responses. This prevents the installer from being downloaded, making this configuration non-functional. Verify that the installer URL is correct and accessible before proceeding with this update.

🤖 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/cursor/windows.json` at line 9, The installer_url
value for the Cursor entry is pointing to a URL that returns HTTP 403 on
download; locate the "installer_url" key (the value ending with
"CursorSetup-x64-3.5.17.exe") and replace it with a verified, publicly
downloadable URL (or remove/disable the entry) that returns HTTP 200 for GET
requests; confirm the new URL resolves for both HEAD and GET and update any
checksum or metadata tied to that installer if present (ensure the updated
installer filename/version matches the rest of the JSON metadata).

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