Skip to content

Add macOS Fleet-maintained apps (L) - #47519

Merged
allenhouchins merged 3 commits into
mainfrom
new-mac-fmas-l
Jun 12, 2026
Merged

Add macOS Fleet-maintained apps (L)#47519
allenhouchins merged 3 commits into
mainfrom
new-mac-fmas-l

Conversation

@allenhouchins

@allenhouchins allenhouchins commented Jun 12, 2026

Copy link
Copy Markdown
Member

Adds 23 Fleet-maintained app(s) whose cask token starts with 'L': inputs, outputs, app icons (TSX + website PNG), and the matching index.ts and apps.json entries.

Summary by CodeRabbit

  • New Features
    • Added support for 24 new macOS applications (Lapce, Lasso, Last Window Quits, Latest, LaunchBar, LightBurn, LinearMouse, Lingon X, lo‑rain, Local, LocalSend, LocationSimulator, Logseq, LookAway, Loop, Loopback, LosslessCut, Low Profile, Lunacy, Lunar, LunaSea, Lunatask, Lychee Slicer).
    • Added corresponding app icons and installer/management entries to the software catalog for in‑app discovery and installation.

Adds 23 Fleet-maintained app(s) whose cask token starts with 'L':
inputs, outputs, app icons (TSX + website PNG), and the matching
index.ts and apps.json entries. Split out from #47121.
fleet-release
fleet-release previously approved these changes Jun 12, 2026
@codecov

codecov Bot commented Jun 12, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 50.00000% with 23 lines in your changes missing coverage. Please review.
✅ Project coverage is 67.15%. Comparing base (0611f2b) to head (12905fd).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
...tend/pages/SoftwarePage/components/icons/Lapce.tsx 50.00% 1 Missing ⚠️
...d/pages/SoftwarePage/components/icons/LassoApp.tsx 50.00% 1 Missing ⚠️
.../SoftwarePage/components/icons/LastWindowQuits.tsx 50.00% 1 Missing ⚠️
...end/pages/SoftwarePage/components/icons/Latest.tsx 50.00% 1 Missing ⚠️
.../pages/SoftwarePage/components/icons/Launchbar.tsx 50.00% 1 Missing ⚠️
.../pages/SoftwarePage/components/icons/Lightburn.tsx 50.00% 1 Missing ⚠️
...ages/SoftwarePage/components/icons/Linearmouse.tsx 50.00% 1 Missing ⚠️
...nd/pages/SoftwarePage/components/icons/LingonX.tsx 50.00% 1 Missing ⚠️
...end/pages/SoftwarePage/components/icons/LoRain.tsx 50.00% 1 Missing ⚠️
...tend/pages/SoftwarePage/components/icons/Local.tsx 50.00% 1 Missing ⚠️
... and 13 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #47519      +/-   ##
==========================================
- Coverage   67.15%   67.15%   -0.01%     
==========================================
  Files        3524     3547      +23     
  Lines      228732   228778      +46     
  Branches    11907    11909       +2     
==========================================
+ Hits       153611   153634      +23     
- Misses      61268    61290      +22     
- Partials    13853    13854       +1     
Flag Coverage Δ
frontend 57.94% <50.00%> (-0.02%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@allenhouchins
allenhouchins marked this pull request as ready for review June 12, 2026 15:53
@allenhouchins
allenhouchins requested a review from a team as a code owner June 12, 2026 15:53
Copilot AI review requested due to automatic review settings June 12, 2026 15:53
@fleet-release
fleet-release requested a review from eashaw June 12, 2026 15:53
fleet-release
fleet-release previously approved these changes Jun 12, 2026

Copilot AI 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.

Pull request overview

This PR adds a new batch of macOS Fleet-maintained apps whose Homebrew cask token starts with “L”, including the generated app manifests (inputs/outputs), installer/uninstaller scripts, and corresponding Software page icons and icon map entries.

Changes:

  • Added new Software page icon components for several “L*” apps and wired them into SOFTWARE_NAME_TO_ICON_MAP.
  • Added new Fleet-maintained app definitions under ee/maintained-apps/inputs/homebrew/ and generated ee/maintained-apps/outputs/<app>/darwin.json.
  • Updated ee/maintained-apps/outputs/apps.json to include the new app metadata entries.

Reviewed changes

Copilot reviewed 71 out of 94 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
frontend/pages/SoftwarePage/components/icons/Lunasea.tsx Adds LunaSea icon component (base64 PNG-in-SVG).
frontend/pages/SoftwarePage/components/icons/Logseq.tsx Adds Logseq icon component (base64 PNG-in-SVG).
frontend/pages/SoftwarePage/components/icons/Localsend.tsx Adds LocalSend icon component (base64 PNG-in-SVG).
frontend/pages/SoftwarePage/components/icons/Lapce.tsx Adds Lapce icon component (base64 PNG-in-SVG).
frontend/pages/SoftwarePage/components/icons/index.ts Registers new icon imports and maps software-name keys to the new icons.
ee/maintained-apps/outputs/lycheeslicer/darwin.json Adds generated Lychee Slicer manifest + install/uninstall script refs.
ee/maintained-apps/outputs/lunatask/darwin.json Adds generated Lunatask manifest + install/uninstall script refs.
ee/maintained-apps/outputs/lunasea/darwin.json Adds generated LunaSea manifest + install/uninstall script refs.
ee/maintained-apps/outputs/lunar/darwin.json Adds generated Lunar manifest + install/uninstall script refs.
ee/maintained-apps/outputs/lunacy/darwin.json Adds generated Lunacy manifest + install/uninstall script refs.
ee/maintained-apps/outputs/low-profile/darwin.json Adds generated Low Profile manifest + install/uninstall script refs.
ee/maintained-apps/outputs/losslesscut/darwin.json Adds generated LosslessCut manifest + install/uninstall script refs.
ee/maintained-apps/outputs/loopback/darwin.json Adds generated Loopback manifest + install/uninstall script refs.
ee/maintained-apps/outputs/loop/darwin.json Adds generated Loop manifest + install/uninstall script refs.
ee/maintained-apps/outputs/lookaway/darwin.json Adds generated LookAway manifest + install/uninstall script refs.
ee/maintained-apps/outputs/logseq/darwin.json Adds generated Logseq manifest + install/uninstall script refs.
ee/maintained-apps/outputs/locationsimulator/darwin.json Adds generated LocationSimulator manifest + install/uninstall script refs.
ee/maintained-apps/outputs/localsend/darwin.json Adds generated LocalSend manifest + install/uninstall script refs.
ee/maintained-apps/outputs/local/darwin.json Adds generated Local manifest + install/uninstall script refs.
ee/maintained-apps/outputs/lo-rain/darwin.json Adds generated lo-rain manifest + install/uninstall script refs.
ee/maintained-apps/outputs/lingon-x/darwin.json Adds generated Lingon X manifest + install/uninstall script refs.
ee/maintained-apps/outputs/linearmouse/darwin.json Adds generated LinearMouse manifest + install/uninstall script refs.
ee/maintained-apps/outputs/lightburn/darwin.json Adds generated LightBurn manifest + install/uninstall script refs.
ee/maintained-apps/outputs/launchbar/darwin.json Adds generated LaunchBar manifest + install/uninstall script refs.
ee/maintained-apps/outputs/latest/darwin.json Adds generated Latest manifest + install/uninstall script refs.
ee/maintained-apps/outputs/last-window-quits/darwin.json Adds generated Last Window Quits manifest + install/uninstall script refs.
ee/maintained-apps/outputs/lasso-app/darwin.json Adds generated Lasso manifest + install/uninstall script refs.
ee/maintained-apps/outputs/lapce/darwin.json Adds generated Lapce manifest + install/uninstall script refs.
ee/maintained-apps/outputs/apps.json Adds new “L*” app entries (name/slug/identifier/description) to the catalog.
ee/maintained-apps/inputs/homebrew/lycheeslicer.json Adds Lychee Slicer input definition.
ee/maintained-apps/inputs/homebrew/lunatask.json Adds Lunatask input definition.
ee/maintained-apps/inputs/homebrew/lunasea.json Adds LunaSea input definition.
ee/maintained-apps/inputs/homebrew/lunar.json Adds Lunar input definition.
ee/maintained-apps/inputs/homebrew/lunacy.json Adds Lunacy input definition.
ee/maintained-apps/inputs/homebrew/low-profile.json Adds Low Profile input definition.
ee/maintained-apps/inputs/homebrew/losslesscut.json Adds LosslessCut input definition.
ee/maintained-apps/inputs/homebrew/loopback.json Adds Loopback input definition.
ee/maintained-apps/inputs/homebrew/loop.json Adds Loop input definition.
ee/maintained-apps/inputs/homebrew/lookaway.json Adds LookAway input definition.
ee/maintained-apps/inputs/homebrew/logseq.json Adds Logseq input definition.
ee/maintained-apps/inputs/homebrew/locationsimulator.json Adds LocationSimulator input definition.
ee/maintained-apps/inputs/homebrew/localsend.json Adds LocalSend input definition.
ee/maintained-apps/inputs/homebrew/local.json Adds Local input definition.
ee/maintained-apps/inputs/homebrew/lo-rain.json Adds lo-rain input definition.
ee/maintained-apps/inputs/homebrew/lingon-x.json Adds Lingon X input definition.
ee/maintained-apps/inputs/homebrew/linearmouse.json Adds LinearMouse input definition.
ee/maintained-apps/inputs/homebrew/lightburn.json Adds LightBurn input definition.
ee/maintained-apps/inputs/homebrew/launchbar.json Adds LaunchBar input definition.
ee/maintained-apps/inputs/homebrew/latest.json Adds Latest input definition.
ee/maintained-apps/inputs/homebrew/last-window-quits.json Adds Last Window Quits input definition.
ee/maintained-apps/inputs/homebrew/lasso-app.json Adds Lasso input definition.
ee/maintained-apps/inputs/homebrew/lapce.json Adds Lapce input definition.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread ee/maintained-apps/outputs/apps.json Outdated
Comment thread ee/maintained-apps/outputs/apps.json Outdated
Comment thread ee/maintained-apps/outputs/apps.json Outdated
Comment thread ee/maintained-apps/outputs/apps.json Outdated
Comment thread ee/maintained-apps/outputs/loopback/darwin.json
@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 1f8ca11b-0ecf-42e3-9ac8-3be9a05f4163

📥 Commits

Reviewing files that changed from the base of the PR and between ebd1516 and 12905fd.

📒 Files selected for processing (1)
  • ee/maintained-apps/outputs/apps.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • ee/maintained-apps/outputs/apps.json

Walkthrough

This PR adds 23 macOS applications (Lapce → Lychee Slicer) to Fleet’s maintained-apps pipeline. It introduces Homebrew input JSON files, per-app darwin.json installer/uninstaller manifests with embedded Bash scripts and checksums, updates ee/maintained-apps/outputs/apps.json to register the apps, and adds frontend React SVG icon components plus name→icon mappings for the SoftwarePage.

Possibly related PRs

  • fleetdm/fleet#47018: Also adds Homebrew/app metadata and updates the SoftwarePage icon mapping for a new app.
  • fleetdm/fleet#46497: Adds maintained-app manifests and corresponding frontend icon wiring, touching the same inputs/outputs and icon index.
  • fleetdm/fleet#47360: Adds managed-app entries and icon components, updating the shared apps.json and SOFTWARE_NAME_TO_ICON_MAP.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description provides a clear summary but does not follow the provided template structure with required sections like Related issue, Checklist items, Testing, Database migrations, and configuration settings. Follow the repository's PR description template by including all relevant checklist sections, testing information, and any applicable sections for database migrations or configuration changes.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Add macOS Fleet-maintained apps (L)' clearly summarizes the main change—adding 23 Fleet-maintained macOS applications whose cask tokens start with 'L'.
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 new-mac-fmas-l

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: 16

🧹 Nitpick comments (1)
frontend/pages/SoftwarePage/components/icons/LoRain.tsx (1)

10-10: ⚡ Quick win

Strip PNG metadata before embedding this asset.

Line 10 still includes EXIF/XMP chunks in the data URI, so the frontend ships non-rendered metadata in the JS bundle. Re-exporting the PNG without metadata keeps the icon identical but reduces client download size across this new icon set.

🤖 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 `@frontend/pages/SoftwarePage/components/icons/LoRain.tsx` at line 10, The
embedded PNG data URI in the LoRain component still contains EXIF/XMP metadata;
re-export/optimize the image (e.g., using pngcrush/optipng/Imagemagick or an
image editor's “remove metadata” option) to strip metadata, replace the long
base64 in the href value inside the LoRain component with the new metadata-free
base64 string, and verify the visual output is identical and bundle size reduced
(refer to the href data URI in LoRain.tsx).
🤖 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/apps.json`:
- Around line 3463-3475: Update the user-facing description strings for the
listed app entries to be grammatical and consistent: locate the objects for
"Lasso" (unique_identifier "com.heavylightapps.lasso"), "Last Window Quits"
("io.lawand.last-window-quits"), "LosslessCut" and "Lunar" and rewrite their
"description" values into clear, natural English (e.g., "Lasso lets you move and
resize windows with the mouse.", "Last Window Quits automatically quits an app
when its last window is closed.", etc.), then scan the nearby blocks (around the
referenced entries at the same array) for similar malformed descriptions and
normalize them to the same concise style.

In `@ee/maintained-apps/outputs/lapce/darwin.json`:
- Line 20: The install flow currently moves the existing app before confirming
the extracted bundle and copy succeeded; change the sequence in the script
around MOUNT_POINT/TMPDIR/APPDIR so you first validate the extracted bundle and
copy completed (check the return codes of sudo cp -R and/or that
"$TMPDIR/Lapce.app" exists and is a valid .app bundle) and only then move the
existing "$APPDIR/Lapce.app" to a backup and atomically install the new bundle;
update the logic that uses MOUNT_POINT, TMPDIR, quit_and_track_application, and
the following mv/cp steps so failure to extract/copy aborts without removing the
original app and relaunch_application only runs after a successful install.

In `@ee/maintained-apps/outputs/lasso-app/darwin.json`:
- Line 12: The manifest currently disables integrity verification by setting the
JSON field "sha256": "no_check" and also points to an unversioned download URL;
replace the no_check value with the actual SHA-256 checksum of the specific DMG
release you intend to ship and update the URL to a pinned, versioned release
asset (or verify the checksum against the exact artifact you will publish).
Ensure the checksum string replaces "no_check" in the "sha256" field and that
the URL used corresponds exactly to the release used to compute that checksum so
installer integrity is enforced.

In `@ee/maintained-apps/outputs/latest/darwin.json`:
- Line 19: In quit_and_track_application replace the pgrep -f "$bundle_id" check
inside the quit loop with polling the same AppleScript check used earlier
(osascript -e "application id \"$bundle_id\" is running") so the loop waits for
the app to report not running before treating quit as successful; keep the
timeout logic and quit_success handling, and ensure all references to the old
pgrep-based condition are switched to the osascript application id check to
avoid false negatives on macOS.
- Line 19: The unzip step does not verify success or the presence of the
extracted bundle before moving the existing app; update the flow around unzip,
TMPDIR, and the copy logic so we fail fast if extraction fails or
"$TMPDIR/Latest.app" does not exist: after unzip "$INSTALLER_PATH" -d "$TMPDIR"
check the exit status and verify [[ -d "$TMPDIR/Latest.app" ]] before calling
quit_and_track_application, backing up or moving the existing
/Applications/Latest.app only when the extracted bundle is present, and exit
with a non-zero status and an error message if the check fails to avoid removing
the current app when extraction was unsuccessful.

In `@ee/maintained-apps/outputs/launchbar/darwin.json`:
- Line 20: The install phase must fail fast and restore backups if copy/move
fails: after attaching the DMG and creating MOUNT_POINT/TMPDIR, make the unpack
copy (sudo cp -R "$MOUNT_POINT"/* "$TMPDIR") and the subsequent sudo mv
"$APPDIR/LaunchBar.app" "$TMPDIR/LaunchBar.app.bkp" and sudo cp -R
"$TMPDIR/LaunchBar.app" "$APPDIR" check their exit codes and abort on error; if
the mv to *.app.bkp succeeds but the final cp to $APPDIR fails, restore the
backup by moving "$TMPDIR/LaunchBar.app.bkp" back to "$APPDIR/LaunchBar.app"
(and set a flag to skip relaunch_application 'at.obdev.LaunchBar'), ensure
errors cause immediate exit (non-zero) so scripts for LightBurn/LinearMouse and
functions quit_and_track_application/relaunch_application behave consistently.
- Line 20: quit_and_track_application currently uses pgrep -f "$bundle_id" to
decide if the GUI app stopped after running osascript ... to quit, which is
unreliable; change the loop in quit_and_track_application to repeatedly call
osascript -e "application id \"$bundle_id\" is running" (parsing for
"true"/"false") until it returns "false" or the existing timeout_duration
elapses, set quit_success accordingly, and remove the pgrep -f check; keep the
existing SECONDS timeout logic and messages so behavior/timing stays the same.

In `@ee/maintained-apps/outputs/lingon-x/darwin.json`:
- Line 19: In quit_and_track_application, replace the pgrep-based liveness check
(pgrep -f "$bundle_id") with polling of the same AppleScript query used earlier
— osascript -e "application id \"$bundle_id\" is running" — inside the SECONDS
loop so the loop breaks only when that AppleScript returns "false" (or not
"true"); update the quit detection logic and the quit_success flag accordingly
and remove reliance on pgrep -f "$bundle_id" to avoid false-negatives when
matching bundle identifiers.

In `@ee/maintained-apps/outputs/local/darwin.json`:
- Around line 4-12: The darwin.json manifest currently hardcodes an Apple
Silicon installer via the installer_url field (e.g.,
"local-10.1.0-mac-arm64.dmg"), which will break Intel hosts; update the manifest
generation so the macOS installer is either a universal/x64-compatible artifact
or the pipeline emits architecture-aware installer URLs and selects the correct
one at install time. Specifically, change the installer_url entry in the
affected darwin.json (and similar manifests like logseq/darwin.json) to point to
a universal or x64 build, or extend the manifest schema and generation logic to
produce/install using installer_url_arm64 and installer_url_x64 (or an arch
selector) and ensure the installer selection code uses that new field. Ensure
the version/queries lines remain unchanged and tests cover both Intel and Apple
Silicon cases.

In `@ee/maintained-apps/outputs/locationsimulator/darwin.json`:
- Line 19: The uninstall JSON uses the wrong bundle identifier in several trash
calls; update the string patterns passed to the trash function (the calls after
sudo rm -rf and the trash invocations) to consistently use the app ID used
elsewhere (com.schlaubi.LocationSimulator) instead of
de.davidklopp.locationsimulator so the trash function (and LOGGED_IN_USER usage)
targets the correct Application Scripts, Application Support, Containers and
recent documents paths; verify all occurrences in the lines calling trash
(including the Application Scripts,
com.apple.LSSharedFileList.ApplicationRecentDocuments, and Containers entries)
are replaced to match com.schlaubi.LocationSimulator.

In `@ee/maintained-apps/outputs/lookaway/darwin.json`:
- Line 19: The installer currently moves the existing bundle to
"$TMPDIR/LookAway.app.bkp" then runs sudo cp -R "$TMPDIR/LookAway.app" "$APPDIR"
without checking for failure, which can leave the app missing; update the
replacement flow (the backup/move + cp sequence around TMPDIR/LookAway.app and
APPDIR/LookAway.app.bkp) to check the exit status of the copy and, on failure,
restore the backup (move "$TMPDIR/LookAway.app.bkp" back to
"$APPDIR/LookAway.app"), emit an error and exit non‑zero so the script fails
hard; ensure this error/restore logic is applied to the same pattern used for
LookAway (and mirrored in the other installers) and reference TMPDIR, APPDIR,
and the backup filename/paths when implementing the checks.

In `@ee/maintained-apps/outputs/loopback/darwin.json`:
- Around line 4-12: The manifest declares "version": "2.4.10" but uses an
unversioned installer_url and sets "sha256": "no_check", which allows the
downloaded bits to change despite the pinned version; update the installer_url
to point to a deterministic, versioned artifact (one that includes the 2.4.10
release in its path or filename) and replace "sha256": "no_check" with the
actual SHA-256 checksum of that exact ZIP; verify the checksum matches the
artifact and, if the packaging hosts separate artifact IDs, also ensure
"install_script_ref" / "uninstall_script_ref" still reference the correct
immutable script versions after switching to the versioned URL.
- Line 20: The uninstall script fails to remove the Loopback LaunchAgent because
the literal '~/Library/LaunchAgents/…' is quoted and not expanded and the agent
isn't unloaded before deleting; update the removal to expand the logged-in
user's home using the LOGGED_IN_USER variable (e.g.
"/Users/$LOGGED_IN_USER/Library/LaunchAgents/com.rogueamoeba.loopbackd.plist")
and unload the agent first (use launchctl bootout gui/$(id -u
"$LOGGED_IN_USER")/system or launchctl remove com.rogueamoeba.loopbackd) before
calling sudo rm -rf; locate the LOGGED_IN_USER variable and the current sudo rm
-rf '~/Library/LaunchAgents/com.rogueamoeba.loopbackd.plist' line and replace
with an unload step followed by an expanded-path removal.

In `@ee/maintained-apps/outputs/losslesscut/darwin.json`:
- Line 19: The cleanup script calls trash(...) and uses LOGGED_IN_USER without
validating it; ensure you check LOGGED_IN_USER and that the corresponding home
directory exists before calling trash or performing any removals. Update the
top-level logic (where LOGGED_IN_USER is set and where trash is invoked) to
short-circuit when LOGGED_IN_USER is empty, "loginwindow", or when
/Users/$LOGGED_IN_USER does not exist, and only call the trash function (and
construct $trash) after confirming a real console user/home.

In `@ee/maintained-apps/outputs/low-profile/darwin.json`:
- Line 19: The delete pipeline in remove_receipt_files uses
/${INSTALL_LOCATION}/ instead of the computed FULL_INSTALL_LOCATION, so files on
non-root volumes aren’t removed; update the pipelines inside
remove_receipt_files (the two sudo pkgutil --only-files --files and sudo pkgutil
--only-dirs --files flows and their sed prefixes) to prefix matches with
${FULL_INSTALL_LOCATION}/ (use the FULL_INSTALL_LOCATION variable) instead of
/${INSTALL_LOCATION}/ so deletions target the actual install path, and ensure
the printed echo lines reflect the corrected prefix as well.

In `@frontend/pages/SoftwarePage/components/icons/LastWindowQuits.tsx`:
- Around line 5-10: The SVG component LastWindowQuits hard-codes width/height
and lacks a viewBox so forwarded SVGProps (like width/height or CSS sizing)
don’t scale the embedded raster; update the root <svg> in LastWindowQuits to
include viewBox="0 0 32 32" (keeping the existing width/height/default props and
the <image> unchanged) so external sizing props correctly scale the icon.

---

Nitpick comments:
In `@frontend/pages/SoftwarePage/components/icons/LoRain.tsx`:
- Line 10: The embedded PNG data URI in the LoRain component still contains
EXIF/XMP metadata; re-export/optimize the image (e.g., using
pngcrush/optipng/Imagemagick or an image editor's “remove metadata” option) to
strip metadata, replace the long base64 in the href value inside the LoRain
component with the new metadata-free base64 string, and verify the visual output
is identical and bundle size reduced (refer to the href data URI in LoRain.tsx).
🪄 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: 0a035407-716c-4b97-8d5f-c5b172435e92

📥 Commits

Reviewing files that changed from the base of the PR and between 0611f2b and ebd1516.

⛔ Files ignored due to path filters (23)
  • website/assets/images/app-icon-lapce-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-lasso-app-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-last-window-quits-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-latest-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-launchbar-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-lightburn-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-linearmouse-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-lingon-x-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-lo-rain-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-local-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-localsend-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-locationsimulator-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-logseq-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-lookaway-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-loop-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-loopback-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-losslesscut-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-low-profile-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-lunacy-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-lunar-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-lunasea-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-lunatask-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-lycheeslicer-60x60@2x.png is excluded by !**/*.png
📒 Files selected for processing (71)
  • ee/maintained-apps/inputs/homebrew/lapce.json
  • ee/maintained-apps/inputs/homebrew/lasso-app.json
  • ee/maintained-apps/inputs/homebrew/last-window-quits.json
  • ee/maintained-apps/inputs/homebrew/latest.json
  • ee/maintained-apps/inputs/homebrew/launchbar.json
  • ee/maintained-apps/inputs/homebrew/lightburn.json
  • ee/maintained-apps/inputs/homebrew/linearmouse.json
  • ee/maintained-apps/inputs/homebrew/lingon-x.json
  • ee/maintained-apps/inputs/homebrew/lo-rain.json
  • ee/maintained-apps/inputs/homebrew/local.json
  • ee/maintained-apps/inputs/homebrew/localsend.json
  • ee/maintained-apps/inputs/homebrew/locationsimulator.json
  • ee/maintained-apps/inputs/homebrew/logseq.json
  • ee/maintained-apps/inputs/homebrew/lookaway.json
  • ee/maintained-apps/inputs/homebrew/loop.json
  • ee/maintained-apps/inputs/homebrew/loopback.json
  • ee/maintained-apps/inputs/homebrew/losslesscut.json
  • ee/maintained-apps/inputs/homebrew/low-profile.json
  • ee/maintained-apps/inputs/homebrew/lunacy.json
  • ee/maintained-apps/inputs/homebrew/lunar.json
  • ee/maintained-apps/inputs/homebrew/lunasea.json
  • ee/maintained-apps/inputs/homebrew/lunatask.json
  • ee/maintained-apps/inputs/homebrew/lycheeslicer.json
  • ee/maintained-apps/outputs/apps.json
  • ee/maintained-apps/outputs/lapce/darwin.json
  • ee/maintained-apps/outputs/lasso-app/darwin.json
  • ee/maintained-apps/outputs/last-window-quits/darwin.json
  • ee/maintained-apps/outputs/latest/darwin.json
  • ee/maintained-apps/outputs/launchbar/darwin.json
  • ee/maintained-apps/outputs/lightburn/darwin.json
  • ee/maintained-apps/outputs/linearmouse/darwin.json
  • ee/maintained-apps/outputs/lingon-x/darwin.json
  • ee/maintained-apps/outputs/lo-rain/darwin.json
  • ee/maintained-apps/outputs/local/darwin.json
  • ee/maintained-apps/outputs/localsend/darwin.json
  • ee/maintained-apps/outputs/locationsimulator/darwin.json
  • ee/maintained-apps/outputs/logseq/darwin.json
  • ee/maintained-apps/outputs/lookaway/darwin.json
  • ee/maintained-apps/outputs/loop/darwin.json
  • ee/maintained-apps/outputs/loopback/darwin.json
  • ee/maintained-apps/outputs/losslesscut/darwin.json
  • ee/maintained-apps/outputs/low-profile/darwin.json
  • ee/maintained-apps/outputs/lunacy/darwin.json
  • ee/maintained-apps/outputs/lunar/darwin.json
  • ee/maintained-apps/outputs/lunasea/darwin.json
  • ee/maintained-apps/outputs/lunatask/darwin.json
  • ee/maintained-apps/outputs/lycheeslicer/darwin.json
  • frontend/pages/SoftwarePage/components/icons/Lapce.tsx
  • frontend/pages/SoftwarePage/components/icons/LassoApp.tsx
  • frontend/pages/SoftwarePage/components/icons/LastWindowQuits.tsx
  • frontend/pages/SoftwarePage/components/icons/Latest.tsx
  • frontend/pages/SoftwarePage/components/icons/Launchbar.tsx
  • frontend/pages/SoftwarePage/components/icons/Lightburn.tsx
  • frontend/pages/SoftwarePage/components/icons/Linearmouse.tsx
  • frontend/pages/SoftwarePage/components/icons/LingonX.tsx
  • frontend/pages/SoftwarePage/components/icons/LoRain.tsx
  • frontend/pages/SoftwarePage/components/icons/Local.tsx
  • frontend/pages/SoftwarePage/components/icons/Localsend.tsx
  • frontend/pages/SoftwarePage/components/icons/Locationsimulator.tsx
  • frontend/pages/SoftwarePage/components/icons/Logseq.tsx
  • frontend/pages/SoftwarePage/components/icons/Lookaway.tsx
  • frontend/pages/SoftwarePage/components/icons/Loop.tsx
  • frontend/pages/SoftwarePage/components/icons/Loopback.tsx
  • frontend/pages/SoftwarePage/components/icons/Losslesscut.tsx
  • frontend/pages/SoftwarePage/components/icons/LowProfile.tsx
  • frontend/pages/SoftwarePage/components/icons/Lunacy.tsx
  • frontend/pages/SoftwarePage/components/icons/Lunar.tsx
  • frontend/pages/SoftwarePage/components/icons/Lunasea.tsx
  • frontend/pages/SoftwarePage/components/icons/Lunatask.tsx
  • frontend/pages/SoftwarePage/components/icons/Lycheeslicer.tsx
  • frontend/pages/SoftwarePage/components/icons/index.ts

Comment thread ee/maintained-apps/outputs/apps.json
Comment thread ee/maintained-apps/outputs/lapce/darwin.json
Comment thread ee/maintained-apps/outputs/lasso-app/darwin.json
Comment thread ee/maintained-apps/outputs/latest/darwin.json
Comment thread ee/maintained-apps/outputs/launchbar/darwin.json
Comment thread ee/maintained-apps/outputs/loopback/darwin.json
Comment thread ee/maintained-apps/outputs/loopback/darwin.json
Comment thread ee/maintained-apps/outputs/losslesscut/darwin.json
Comment thread ee/maintained-apps/outputs/low-profile/darwin.json
Comment thread frontend/pages/SoftwarePage/components/icons/LastWindowQuits.tsx
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@allenhouchins
allenhouchins merged commit a30298d into main Jun 12, 2026
29 of 31 checks passed
@allenhouchins
allenhouchins deleted the new-mac-fmas-l branch June 12, 2026 17:31
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.

3 participants