Skip to content

Fix macOS-only copy on two Windows FMA catalog entries - #50111

Merged
allenhouchins merged 1 commit into
mainfrom
fix-windows-fma-macos-copy
Jul 29, 2026
Merged

Fix macOS-only copy on two Windows FMA catalog entries#50111
allenhouchins merged 1 commit into
mainfrom
fix-windows-fma-macos-copy

Conversation

@allenhouchins

@allenhouchins allenhouchins commented Jul 29, 2026

Copy link
Copy Markdown
Member

Related issue: N/A — found while removing the macOS Yubikey Manager FMA (#50109)

Two Windows Fleet-maintained apps describe themselves as macOS software in ee/maintained-apps/outputs/apps.json, because the entries were copy-pasted from their macOS counterparts. This copy is customer-facing: it shows in the Fleet UI's software catalog and on fleetdm.com/software-catalog/<slug>.

  • proxyman/windows — "Proxyman is a high-performance macOS app that enables developers to view HTTP/HTTPS requests and responses." → drops "macOS". (The proxyman/darwin description keeps it; it's accurate there.)
  • wechat/windows — name "WeChat for Mac" and "WeChat for Mac is a free messaging and calling application." → "WeChat". The winget input (inputs/winget/wechat.json) already declares "name": "WeChat", so this also makes apps.json agree with its own input. The wechat/darwin entry keeps "WeChat for Mac", which is the actual macOS product name.

Renaming the Windows entry needs a matching icon key. getMatchedSoftwareIcon matches on the lowercased app name and requires an exact match or a whole-word prefix (matchLoosePrefixToKey: s === key || s.startsWith(key + " ")), so the existing "wechat for mac" key would not match a name of "WeChat" and the app would fall back to the generic package icon. Added a wechat: Wechat key alongside it (both point at the same component; the "wechat for mac" key stays for macOS and for hosts reporting that name in inventory).

No server-side impact: UpsertMaintainedApp keys on slug and updates name in place, and ReconcileMaintainedAppSoftwareNames only renames darwin titles, so the Windows rename doesn't touch existing software titles. Website icons resolve from the slug (build-static-content.js builds app-icon-<slug>-60x60@2x.png), not the name, so app-icon-wechat-60x60@2x.png is unaffected.

Descriptions here mirror upstream cask/winget copy, so these are minimal factual corrections rather than a voice rewrite.

Checklist for submitter

  • Input data is properly validated, SELECT * is avoided, SQL injection is prevented (using placeholders for values in statements), JS inline code is prevented especially for url redirects, and untrusted data interpolated into shell scripts/commands is validated against shell metacharacters.

Testing

  • QA'd all new/changed functionality manually:
    • apps.json still parses; 1378 apps; verified the four proxyman/wechat entries read as intended and the darwin ones are untouched.
    • Traced the icon lookup by hand: name "wechat" now hits the new exact-match key; "wechat for mac" still hits the original.
    • Swept every non-darwin entry in apps.json for macOS-only phrasing (Rosetta, macOS, Mac, Apple) — these two were the only genuine mismatches. duo-desktop/windows (lists macOS, Windows, and Linux) and imazing-profile-editor/windows (edits Apple configuration profiles) are correct as written.

Note: node_modules isn't installed in my working copy, so ESLint/Prettier weren't run locally — the added line is a one-line map entry matching the surrounding style. CI will confirm.

Summary by CodeRabbit

  • Bug Fixes
    • Corrected the Windows app listings for Proxyman and WeChat with clearer, platform-appropriate names and descriptions.
    • Updated WeChat icon mapping so the correct icon appears for the normalized app name.

The proxyman/windows and wechat/windows entries in apps.json were
copy-pasted from their macOS counterparts, so the Windows apps describe
themselves as macOS software in the Fleet UI and on the fleetdm.com
software catalog.

Drops "macOS" from the Proxyman Windows description, and renames the
WeChat Windows entry from "WeChat for Mac" to "WeChat" (matching its
winget input, which already says "WeChat").

Adds a 'wechat' key to SOFTWARE_NAME_TO_ICON_MAP. Icon matching is by
lowercased app name and requires an exact or whole-word-prefix match, so
the existing 'wechat for mac' key would not match the new name and the
app would fall back to the generic package icon. The old key stays for
macOS and for hosts reporting that name.
Copilot AI review requested due to automatic review settings July 29, 2026 02:43

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 corrects customer-facing copy in the Fleet-maintained app catalog for two Windows entries that were mistakenly describing macOS software, and updates the frontend software-icon mapping so the renamed Windows WeChat entry still resolves to the correct icon.

Changes:

  • Fixes proxyman/windows description to remove the incorrect “macOS” reference.
  • Renames wechat/windows from “WeChat for Mac” to “WeChat” and updates its description accordingly.
  • Adds a wechat icon map key so “WeChat” matches an icon (while retaining "wechat for mac" for macOS/inventory matches).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
frontend/pages/SoftwarePage/components/icons/index.ts Adds wechat: Wechat mapping so the Windows “WeChat” name resolves to the correct icon.
ee/maintained-apps/outputs/apps.json Corrects Windows catalog copy for proxyman/windows and wechat/windows to remove macOS-only wording.

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

@allenhouchins
allenhouchins marked this pull request as ready for review July 29, 2026 02:47
@allenhouchins
allenhouchins requested a review from a team as a code owner July 29, 2026 02:47
@allenhouchins
allenhouchins merged commit a3cdb7e into main Jul 29, 2026
24 of 25 checks passed
@allenhouchins
allenhouchins deleted the fix-windows-fma-macos-copy branch July 29, 2026 02:47
@codecov

codecov Bot commented Jul 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 68.05%. Comparing base (3a78739) to head (589ff6d).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #50111   +/-   ##
=======================================
  Coverage   68.05%   68.05%           
=======================================
  Files        3929     3929           
  Lines      250284   250284           
  Branches    13238    13238           
=======================================
  Hits       170324   170324           
  Misses      64661    64661           
  Partials    15299    15299           
Flag Coverage Δ
frontend 60.95% <ø> (ø)

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.

@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 0eab7e9b-f596-4081-9550-ddb67347d24c

📥 Commits

Reviewing files that changed from the base of the PR and between 3a78739 and 589ff6d.

📒 Files selected for processing (2)
  • ee/maintained-apps/outputs/apps.json
  • frontend/pages/SoftwarePage/components/icons/index.ts

Walkthrough

Updated the Proxyman Windows description to remove the macOS qualifier. Normalized the WeChat Windows entry name, identifier, and description from “WeChat for Mac” to “WeChat”. Added a wechat software-name mapping to the existing Wechat icon component.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix-windows-fma-macos-copy

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.

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