Skip to content

Update Fleet-maintained apps - #49901

Merged
allenhouchins merged 1 commit into
mainfrom
fma-2607241629
Jul 24, 2026
Merged

Update Fleet-maintained apps#49901
allenhouchins merged 1 commit into
mainfrom
fma-2607241629

Conversation

@fleet-release

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

Copy link
Copy Markdown
Contributor

Automated ingestion of latest Fleet-maintained app data.

Summary by CodeRabbit

  • Updates
    • Updated LibreOffice’s Windows download source for version 26.2.4.2.
    • Updated Miro to version 0.11.164.
    • Updated Mullvad Browser to version 15.0.19.
    • Updated Proxyman to version 6.14.0, including improved removal cleanup.
    • Updated Reqable to version 3.2.14.
    • Updated Vivaldi to version 8.1.4087.58.
    • Refreshed installer links, checksums, and version detection for each updated application.

Generated automatically with cmd/maintained-apps.
@github-actions

Copy link
Copy Markdown
Contributor

Script Diff Results

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

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

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

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

ee/maintained-apps/outputs/mullvad-browser/windows.json

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

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

=== Install Script (no changes) ===
=== Uninstall // 48bbada4 -> c4a25ff5 ===

--- /tmp/old.KTUm2I	2026-07-24 16:38:46.743831439 +0000
+++ /tmp/new.dVqfb1	2026-07-24 16:38:46.743831439 +0000
@@ -166,6 +166,7 @@
 quit_application 'com.proxyman.NSProxy'
 sudo rm -rf '/Library/PrivilegedHelperTools/com.proxyman.NSProxy.HelperTool'
 sudo rm -rf "$APPDIR/Proxyman.app"
+sudo rm -rf '/Users/Shared/Proxyman'
 trash $LOGGED_IN_USER '~/.proxyman*'
 trash $LOGGED_IN_USER '~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.proxyman.nsproxy.sfl*'
 trash $LOGGED_IN_USER '~/Library/Application Support/com.proxyman'

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

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

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

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

@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Updated maintained application packaging metadata for LibreOffice, Miro, Mullvad Browser, Reqable, Vivaldi, and Proxyman. Changes include release versions, version-detection queries, installer URLs, and SHA-256 checksums. Proxyman also switches to a new uninstall script that removes /Users/Shared/Proxyman.

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description is far too brief and omits the required issue, checklist, testing, and other template sections. Expand it to match the template, including the related issue, completed checklist items, testing details, and any applicable notes.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the primary 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-2607241629

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/miro/windows.json`:
- Around line 4-12: Update the Miro Windows entry’s installer_url to an
immutable endpoint that explicitly encodes version 0.11.164, while keeping the
existing sha256 aligned with that artifact. Do not leave the versionless
Miro-setup.exe URL unless the generator verifies the endpoint is byte-stable for
the pinned checksum.
🪄 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 Plus

Run ID: 99412764-8eca-484d-b67c-354fb7e3af95

📥 Commits

Reviewing files that changed from the base of the PR and between 09fea47 and 4dd4473.

📒 Files selected for processing (6)
  • ee/maintained-apps/outputs/libreoffice/windows.json
  • ee/maintained-apps/outputs/miro/windows.json
  • ee/maintained-apps/outputs/mullvad-browser/windows.json
  • ee/maintained-apps/outputs/proxyman/darwin.json
  • ee/maintained-apps/outputs/reqable/windows.json
  • ee/maintained-apps/outputs/vivaldi/windows.json

Comment on lines +4 to +12
"version": "0.11.164",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'Miro' AND publisher = 'Miro';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Miro' AND publisher = 'Miro' AND version_compare(version, '0.11.162') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Miro' AND publisher = 'Miro' AND version_compare(version, '0.11.164') < 0);"
},
"installer_url": "https://desktop.miro.com/platforms/win32-nsis-pu/Miro-setup.exe",
"install_script_ref": "c9d9747e",
"uninstall_script_ref": "66f6a4de",
"sha256": "4171f42b7e96474da7074f4dbd4fd7f554a931af01d26a2fe67098890bb4a268",
"sha256": "0e6f2095ad9e5983a70d5eeaa64b349887e05a964944e82f134ef35560931465",

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.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Files matching windows.json:"
fd -a 'windows\.json$' ee/maintained-apps/outputs 2>/dev/null || true

echo
echo "Relevant miro entry:"
if [ -f ee/maintained-apps/outputs/miro/windows.json ]; then
  cat -n ee/maintained-apps/outputs/miro/windows.json
fi

echo
echo "Search for installer validation / generator references:"
rg -n "installer_url|sha256|byte-stable|Miro-setup|validate|checksum" ee/maintained-apps -S || true

echo
echo "Miro URL probe (headers/response size without saving payload):"
python3 - <<'PY'
import urllib.request
url='https://desktop.miro.com/platforms/win32-nsis-pu/Miro-setup.exe'
try:
    req=urllib.request.Request(url, method='HEAD')
    with urllib.request.urlopen(req, timeout=20) as r:
        print(r.status, dict(r.headers), 'Content-Type:', r.headers.get('Content-Type'))
except Exception as e:
    print("HEAD error:", type(e).__name__, e)
print("HEAD request completed")
PY

Repository: fleetdm/fleet

Length of output: 50370


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Exact miro windows.json entry:"
sed -n '1,25p' ee/maintained-apps/outputs/miro/windows.json

echo
echo "Check if URL contains the pinned version and current headers:"
python3 - <<'PY'
import json, urllib.request
with open('ee/maintained-apps/outputs/miro/windows.json', encoding='utf-8') as f:
    data=json.load(f)
url=data.get('installer_url')
version=data.get('version')
print(json.dumps({
    "installer_url": url,
    "version": version,
    "contains_version": str(version) in url if version else None
}, indent=2))
req=urllib.request.Request(url, method='HEAD', headers={'User-Agent':'CodeRabbit-verifier'})
with urllib.request.urlopen(req, timeout=20) as r:
    print("status", r.status)
    print("headers", dict(r.headers))
    print("canonical", r.geturl())
PY

echo
echo "Find maintenance/generation sources for outputs:"
git ls-files ee/maintained-apps | sed -n '1,120p'
rg -n "installer_url|sha256|no_check|Miro|windows\.json" ee/maintained-apps -S --glob '!ee/maintained-apps/outputs/**' --glob '!**/*.json' || true

Repository: fleetdm/fleet

Length of output: 4231


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Miro Windows installer URL:"
python3 - <<'PY'
import json
from ee.maintained_apps.packages.miro import *
PY

Repository: fleetdm/fleet

Length of output: 310


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Tracked miro-related files:"
git ls-files | rg '(^|/)ee/maintained-apps/[^/]*miro|ie/maintained-apps/.*miro|Miro|miro' || true

echo
echo "Miro producer files:"
git ls-files | rg '(^|/)miro\.(py|yaml|yml|json|json5)$|packages.*miro|miro.*package|maintained.*app|maintained_app' || true

echo
echo "Search generation logic around maintained app installers:"
rg -n "installer_url|generate|packages|maintained|windows\.json|Miro" ee/maintained-apps --glob '!ee/maintained-apps/outputs/**' -S || true

Repository: fleetdm/fleet

Length of output: 50370


🏁 Script executed:

#!/bin/bash
Set -euo pipefail

echo "Exact tracked files around maintained-apps root:"
git ls-files ee/maintained-apps | sed -n '1,80p'

echo
echo "Files that reference maintainer/app/package APIs:"
rg -n "maintained_apps|installer_url|versions\\[|json:|windows\\.go|go run|go build|Generate|Generator" ee/maintained-apps --glob '!ee/maintained-apps/outputs/**' -S || true

echo
echo "Miro-specific tracked entries excluding outputs:"
git ls-files ee/maintained-apps | rg -i '(^|/)mir(o|o).*|miro|windows\.json' | sed -n '1,200p' | grep -vi '/outputs/' || true

echo
echo "Read-only parsed verifier for Miro entry fields:"
python3 - <<'PY'
import json
from pathlib import Path
p=Path('ee/maintained-apps/outputs/miro/windows.json')
data=json.loads(p.read_text())
v=data['versions'][0]
print("url:", v['installer_url'])
print("version:", v['version'])
print("sha256:", v['sha256'])
print("url_contains_version:", v['version'] in v['installer_url'])
print("path_contains_version:", str(v['version']) in str(p).rsplit('/', 1)[0])
PY

Repository: fleetdm/fleet

Length of output: 34121


Use an immutable installer URL with the pinned checksum.

The Miro Windows entry pins version 0.11.164 and its sha256, but installer_url points to https://desktop.miro.com/platforms/win32-nsis-pu/Miro-setup.exe, which does not encode the version. A later update to that endpoint can break checksum validation or install an unintended version for deployments using this pinned record. Use a URL that encodes 0.11.164, or ensure the generator verifies that the endpoint remains byte-stable for the pinned checksum.

🤖 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/miro/windows.json` around lines 4 - 12, Update the
Miro Windows entry’s installer_url to an immutable endpoint that explicitly
encodes version 0.11.164, while keeping the existing sha256 aligned with that
artifact. Do not leave the versionless Miro-setup.exe URL unless the generator
verifies the endpoint is byte-stable for the pinned checksum.

@allenhouchins
allenhouchins merged commit 5a7b610 into main Jul 24, 2026
17 checks passed
@allenhouchins
allenhouchins deleted the fma-2607241629 branch July 24, 2026 17:54
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