Update Fleet-maintained apps - #49901
Conversation
Generated automatically with cmd/maintained-apps.
Script Diff Resultsee/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) === |
WalkthroughUpdated 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 Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
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
📒 Files selected for processing (6)
ee/maintained-apps/outputs/libreoffice/windows.jsonee/maintained-apps/outputs/miro/windows.jsonee/maintained-apps/outputs/mullvad-browser/windows.jsonee/maintained-apps/outputs/proxyman/darwin.jsonee/maintained-apps/outputs/reqable/windows.jsonee/maintained-apps/outputs/vivaldi/windows.json
| "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", |
There was a problem hiding this comment.
🗄️ 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")
PYRepository: 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' || trueRepository: 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 *
PYRepository: 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 || trueRepository: 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])
PYRepository: 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.
Automated ingestion of latest Fleet-maintained app data.
Summary by CodeRabbit